kdnakt blog

hello there.

今週気になったTLS関連のニュース

2024年3月18日~2024年3月24日に読んだ中で気になったニュースとメモ書きです。社内勉強会TLSらじお第149回分。

[PQCと証明書 [IETF119]]

こちらのツイートから。

リンク先はこちら。

https://datatracker.ietf.org/meeting/119/materials/slides-119-uta-pqc-recommendations-for-internet-applications

ML-DSA(Dilithium)の証明書のドラフトとかも出てるみたい。

www.ietf.org

www.ietf.org

証明書ディスカバリのメカニズムも提案されているらしい。プライマリ証明書を一般的なアルゴリズムセカンダリ証明書を新しいアルゴリズムで、みたいな使い方を想定している様子。

www.ietf.org

知らない間に証明書関連が結構進んでた。実際に発行されるのはもう少し先っぽいけど、仕様はもう話し合われてるのね(そりゃそうか)。

[Windowsの2048ビット未満RSA鍵廃止]

こちらのツイートから。

リンク先はこちら。

www.bleepingcomputer.com

1024ビットのRSAキーを利用しているソフトウェアやデバイス(プリンタなど)に影響があるとのこと。2012年に1024ビット未満の鍵を非推奨にした際にも猶予期間があったので、今回も猶予期間があるだろう、とのこと。

やはり2030年より前に動き出したか...。

[その他のニュース]

TLS with Verifiable Credential [IETF119]

こちらのツイートから。

リンク先はこちら。

https://datatracker.ietf.org/meeting/119/materials/slides-119-alldispatch-3-tls-authentication-with-vc

datatracker.ietf.org

新しいインターネットドラフトが出てるみたい。

これまで、X509の証明書やRawPublicKeyのみが定義されていた証明書種別のところにVerifiable Credentialというものを使おうという提案。Verifiable Credentialは非中央集権的モデルで、X509のような証明書と違って証明書の発行元に問い合わせることなく改ざんがないことなどの検証ができるのが特徴。どの発行元を信頼するのか、という問題は結局あるようだけど...。

大規模なIoT環境でのX.509証明書の管理が大変なので、VCがいいんじゃないか、という話らしい。

TLS, byte by byte

こちらのツイートから。

リンク先はこちら。

bytebybyte.dev

1バイトずつ解説があるので便利。またいつかTLS実装する時にお世話になろう。

似たようなサイトだとxargs.orgがあるが、こちらはサンプルのみの解説なので、byte by byteの方がライブ感があって良さげ。

tls13.xargs.org

▼AES-GCM-SST [IETF119]

こちらのツイートから。

リンク先はこちら。

https://datatracker.ietf.org/meeting/119/materials/slides-119-cfrg-galois-counter-mode-with-secure-short-tags-gcm-sst

datatracker.ietf.org

AESのGalois Counterモードは現在広く使われているが、短いタグを使うと偽造ができてしまう可能性がある。しかし音声パケットやファームウェアのアップデートなどで必要なことから、GCM with Secure Short Tags(AES-GCM-SST)というGCMの微修正バージョンが今回のドラフトに。

▼ルートCA分析

こちらのツイートから。

リンク先はこちら。

webpki-ca-countries.py · GitHub

ルートプログラムを国別に分析するとアメリカがトップになるらしい。リンク先はで、AppleGoogle ChromeMicrosoftMozillaの各ルートストアのCAの一覧も比較されている。Microsoftが一番寛容というのはちょっと意外かも。

CAの証明書発行割合はこちらに。

▼Let's Encryptの新中間証明書

こちらのブログから。

letsencrypt.org

1つだけじゃなくて、15個の新しい中間証明書が2024/03/13に発行されたとのこと。

内訳としては2048ビットのRSA証明書が5つ、P-384 ECDSAのキーペアが5つ。ECDSAのキーペアは、ISRG Root X1とISRG Root X2という2つのルート証明書で発行されるので、証明書としては10個になるとのこと。

また、現在のR3などの中間証明書は5年間の期限があり2025年まで有効だが、今回発行したものは3年間で2027年まで有効とのこと。アジリティ大事。

▼NSSのRSA復号タイミング攻撃(CVE-2023-5388)

こちらのツイートから。

リンク先はこちら。

hg.mozilla.org

FirefoxThunderbirdで利用されている暗号モジュールNSSにRSA復号時のタイミング攻撃が可能な脆弱性があったらしい。処理時間が一定でないとか、よく気づくなあ...。

nvd.nist.gov

MD5テキスト衝突攻撃

こちらのツイートから。

72バイトの、アルファベットと数字のみからなる文字列のMD5ハッシュ値が一致したとのこと。元の文字列は1バイトしか差異がない。

ツイートしたのは、2008年にMD5の選択的プレフィクス衝突攻撃を利用して偽造CA証明書を取得したMarc Stevens氏。

▼フリーWiFiでMITM

こちらのツイートから。

それはそう。

ただ、一昔前の研究では、ブラウザ利用者の一定数が証明書の警告を無視すると言われている。最近はどうなんだろう...?

https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/41927.pdf

▼耐量子暗号は巨大

こちらのツイートから。

リンク先はこちら。

dadrian.io

TLSハンドシェイクでやりとりされる署名や公開鍵のサイズが詳しくまとめられている。通常のRSA証明書などであれば、SCTやハンドシェイクのECDSA署名を含めても1度のハンドシェイクで1248バイトだが、ML-DSAは公開鍵だけで1312バイト、署名は2420バイトになるという。

中間証明書の省略や、Merkle Tree証明書によるSCTと証明書のマージなどによって、どの程度改善できるだろうか。

先週のCloudflareの記事と似たような内容だった。

kdnakt.hatenablog.com

[暗認本:48 量子コンピュータ]

『暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』より、Chapter 9 高機能な暗号技術のセクション48をまとめた。

  • 量子ビットと観測
    • 量子:波のように複数の状態が重なって存在
    • |ψ〉= a|0〉+ b|1〉
      • 0と1の状態の重なり
      • a,bは|a|^2+|b|^2=1となる複素数
      • 確率|a|^2で|0〉になる
    • 実数に制限:|0〉を(1, 0)、|1〉を(0, 1)とする
      • |ψ〉は半径1の円周のどこかを指す
  • 量子ゲート
    • 量子ビットに対して変換処理をする部分
      • ※従来のコンピュータでビットの変換処理をする部分をゲートと呼ぶ
    • ゲートX(反転):a|0〉+ b|1〉→a|1〉+ b|0〉
    • ゲートZ(符号変換):a|0〉+ b|1〉→a|0〉- b|1〉
    • ゲートH(回転、Hadamard)
  • CNOTゲートと量子もつれ
    • ここでは2量子ビット入力、2量子ビット出力のゲートを考える
    • x= a|0〉+ b|1〉、y= c|0〉+ d|1〉とする
    • 積:x (x) y = ac|00〉+ ad|01〉+ bc|10〉+ bd|11〉
    • CNOTゲート:|10〉と|11〉を交換
      • ac|00〉+ ad|01〉+ bd|10〉+ bc|11〉となる
      • (x, y)を(x, x (+) y)に変換するとも書く
      • 従来の排他的論理和に相当
    • CNOTを通すとxとyの観測結果が独立でなくなる:量子もつれentanglement
    • 従来andとxorで任意の回路を構成できたのと同様、1量子ビットの量子ゲートとCNOTゲートを組み合わせると任意の量子ゲートを構成できる
  • 量子コンピュータにおける計算
    • nビット:2^n通りのデータのどれか1つ
    • n量子ビット:2^n通りのパターンの重なりあった状態
      • 量子ゲートを組み合わせると、計算結果が重なり合ったn量子ビットとなる
    • 最終的な計算結果を得るために観測することで確率的にどれか1つに確定する
    • N=2^n個のデータから1つを探す問題
    • 効率よく計算できる方法が見つかっていない計算もある
  • 量子超越性
    • 従来のコンピュータで理論的に時間がかかるとされている計算を量子コンピュータで確かに計算した(2019年、Google
    • ただし、出力はランダムな値で計算自体に意味はない
  • 暗号技術に対する影響
  • 量子ゲート方式と量子アニーリング方式
    • 量子アニーリング方式のコンピュータ:組合せ最適化問題に特化
    • 組合せ最適化問題:多次元上の関数f(x)の値を最小にするベクトルx0を見つける
      • 暗号ではなく、製薬や機械学習、金融サービスなど
      • 実用化は当分先、かつShorの方式ほど(暗号にとって)脅威ではない
  • 量子鍵配送
    • 量子の一種である光子1個を秘密鍵1ビットに対応させる
      • 盗聴されると状態が変化するため傍受を検知できる
    • 量子鍵配送Quantum Key Distribution。(量子暗号通信とも)
      • ワンタイムパッド暗号に利用できる
      • 公開鍵暗号などの機能はないので注意
      • 転送速度や転送距離の向上が今後の課題(2020年の実験で7km10Mbps)
  • 量子計算機暗号

[まとめ]

IETFTLS WGはこういうとこでやってるらしい。広っ