kdnakt blog

hello there.

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

2023年10月2日~2023年10月8日に読んだ中で気になったニュースとメモ書き(TLSらじお*1第126回の原稿)です。
全文を公開している投銭スタイルです。

[Let's Encryptは詐欺?]

こちらのツイートから。

リンク先はこちら。

xtech.nikkei.com

他にも、LEゴールドスポンサーの時雨堂さんはじめ、いろんな人がツイートしてたけど、過激というかなんというか。Chromeの鍵マーク無くなってるし。後日、Let's Encryptは詐欺という部分は訂正されたらしい。

とはいえ、セキュリティインジケータがわかりにくいというか、あまり役に立ってない問題はあるよなあ...。

[Cloudflare + ML-KEM]

こちらのツイートから。

リンク先はこちら。

blog.cloudflare.com

よく分かってなかったけどFIPSのドラフトでX25519+Kyberの名前がML-KEM(Module-Lattice-Based Key Encapsulation Mechanism)にかわるらしい。なるほど。
ブラウザ-Cloudflare間だけじゃなくてCloudflare-オリジン間の通信もML-KEMをサポートし始めるとのこと。

HelloRetryRequestが必要になるのはサーバと鍵共有がうまくできなかった場合。HRRが発生すると、TLS1.2の時のように、1往復分やりとりが増えることになるので好ましくない。ということでChromeなど一部のブラウザはHRRを防ぐためにX25519とML-KEMの両方の鍵共有を同時に実行するらしい。なるほど。

[その他のニュース]

Wiresharkの使い方

こちらのツイートから。

リンク先はこちら。

unit42.paloaltonetworks.jp

列のカスタマイズ、便利。ClientHelloのserver name拡張を列にできるの知らなかった。

▼Say an encrypted hello

こちらのツイートから。

リンク先はこちら。

blog.mozilla.org

FirefoxがEncrypted ClientHelloをサポートしたらしい。DoH (DNS over HTTPS)などのプライバシー技術と組み合わさって動作するとのこと。なるほど。

▼GlobalSignのOV証明書ACMEサポート

こちらのツイートから。

リンク先はこちら。

www.globalsign.com

2023年3月からサポートしてるらしい。手続きがよくわからんしテストもしづらいし、使ってる人いるのかな...。
OVは無意味と言われていますし...。

▼OpenSSLのGitHub Projects

こちらのツイートから。

リンク先はこちら。

github.com

いろんなイシューが並んでて面白い。

▼新プロトコルはTLS1.3で

こちらのツイートから。

リンク先はこちら。

www.ietf.org

あくまでTLSの話で、DTLSは関係ないよ、とのこと。DoT(DNS over TLS)のデフォルトはTLS1.2で、TLS1.3がオプションだが、今後このようなプロトコルが登場する場合には、逆転することになる。

そういえばIETF 116でTLS1.2を非推奨にし、基本TLS1.3にする話が出てた。その流れだろうか。

kdnakt.hatenablog.com

▼Practical Challenges with AES-GCM

こちらのツイートから。

リンク先はこちらのPDF

AWSの人がNISTで発表したっぽい?

AES-GCMがブロック暗号なので、同一キーで暗号化できるブロック数に制限がある話とか、キーや初期化ベクターの衝突の危険性がある話とかの問題をどう解決するか、ということで、Rijndael-256などの新しい暗号アルゴリズムや、AEGISやOCBといった新しい暗号利用モードを使うことになるらしい。AEGISってそういう文脈でもあったのか...。

[暗認本:25 ハッシュ関数]

引き続き、ニュース以外のメインコンテンツとして『暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』を読んでいく。
今週はChapter 5 認証から、セクション25をざっとまとめた。

  • 指紋とハッシュ関数
    • コンピュータの扱う膨大なデータに全て異なる識別子を割り当てる仕組み
    • データはコピーできるので、ハッシュ関数単体では認証に使えないので他の技術と組み合わせる
      • 詳細はセクション29 署名
  • ハッシュ関数とは
  • 誕生日パラドックス
    • SHA-256は最大2^256通り:理論的には同じハッシュ値になるデータはたくさん存在する
    • 第二原像衝突困難性:あるデータのハッシュ値と同じハッシュ値になるデータを見つけるのが難しい性質
    • 誕生日のパラドックス:同じクラス40人で誕生日が同じペアが見つかる確率は89%(衝突)、自分と同じ誕生日の人がいる確率は10%(第二原像)
  • ハッシュ関数の歴史
    • MD5:1992年登場、2004年衝突
    • SHA-1:1995年登場、2017年衝突
    • SHA-256:2001年登場、今のところ安全
    • SHA-3:2015年登場、今のところ安全
  • パスワードとハッシュ関数
    • パスワードのように、よく使われる候補がある場合、ハッシュ値の元データを探すのは比較的容易
    • 日本の携帯電話番号であれば、せいぜい数億種類、高性能GPUでは1秒で80億回以上計算しチェック可能
      • 実際、2021年にAirDropがSHA-256で電話番号やメールアドレスを送信
    • パスワード英数8文字では200兆通り程度なので高性能GPUで8時間
      • 12文字だと1400万倍時間がかかる
  • パスワードの安全な保存方法
    • 単純なSHA-256のハッシュ値保存は安全ではない
    • レインボーテーブル攻撃や、同一パスワードの問題
    • ユーザーごとの乱数(ソルト)やハッシュ関数を複数回適用するストレッチングが有用
  • ファイルのパスワード暗号化
    • PKCS#5ではPBKDF2という関数の利用が推奨
      • CBCモードみたいな仕組み
      • ソルト+カウンタにパスワードを組み合わせてハッシュ化
      • その結果とパスワードでハッシュ化...を繰り返す
      • 各回のハッシュ値排他的論理和が最終的なハッシュ値
    • MS Officeは独自に128ビットソルトとSHA-512で10万回ストレッチング
    • PPAPは意味ない

[まとめ]

HTTPSの絵本かあ...どういう話にするといいんだろう。HTTPS太郎がACMEだんごをもらって3通のDV証明書を...いや昔話じゃなくてもいいか。

※以降に文章はありません。投銭スタイルです。

*1:TLSらじおは社内勉強会です。このブログを読み上げつつ弊社サービスの実情を語ったりします。

この続きはcodocで購入