2023年12月18日~2023年12月24日に読んだ中で気になったニュースとメモ書き(TLSらじお*1第137回の原稿)です。
全文を公開している投銭スタイルです。
[Terrapin Attack]
こちらのツイートから。
SSHプロトコルに、中間者がメッセージを操作し、SSH通信路の完全性 (Integrity) を破る攻撃が発見されました。
— TeraTerm Project (@Tera_Term) 2023年12月18日
Tera Termの更新をおすすめします。また、接続先サーバの対応についてもサーバ管理者に確認してください。https://t.co/lDiZqTdM0Y
Terrapin(すっぽん?)攻撃:SSHのプロトコル脆弱性の話。SSHはハンドシェイクの完全性チェックがなく鍵更新でシーケンス番号がリセットされないので、MITMで番号ずらして鍵交換後にデータ削除してやれば番号が合ってデータが抜けた通信がそのままできちゃうとのこと。https://t.co/3K4HEEQ2dZ
— Shigeki Ohtsu (@jovi0608) 2023年12月19日
TLS1.3はdraft段階でこの問題の指摘を受け、鍵更新でシーケンス番号をリセットするように仕様変更したので大丈夫だと。その時のアイデアをSSHに適応してこの脆弱性を見つけたとのこと。
— Shigeki Ohtsu (@jovi0608) 2023年12月19日
ChaCha20は、このシーケンス番号を直接カウンターとして使っているので脆弱性の影響を受けるけど、AES-GCMはIVをカウンターにしているので影響を受けないと。 なるほどー
— Shigeki Ohtsu (@jovi0608) 2023年12月19日
リンク先はこちら。
ChaCha20-Poly1305またはCBCモードの暗号方式と、Encrypt-then-MACを組み合わせて利用している場合に、SSHのメッセージを削除したり、別のアカウントに接続させることができてしまうとのこと。AES-GCMなどのアルゴリズムは影響なし。
古いTLSではMAC-then-Encrypt方式が主に利用されていて、IV(初期化ベクター)の問題やパディングが認証されない問題が指摘され、2014年にEncrypt-then-MACがTLS拡張として公開された(RFC 7366)。が、使い方によっては今回のように問題が起きるのだな...。
CBCモードはTLS1.2以前で散々パディングオラクル攻撃の原因になっているので脆弱性の原因になっても驚かないが、ChaCha20は脆弱性の多いRC4に代わるストリーム暗号として広まってきているイメージだったので、関連する脆弱性が見つかってちょっとびっくり。
[tldr.fail]
こちらのツイートから。
Hey TLS servers, get it together! https://t.co/fq6tZjktnA
— Christopher Patton (@cjpatton_) 2023年12月18日
リンク先はこちら。
failなんてTLDがあるんだ...それはともかく。
耐量子暗号が導入されても、非対応のサーバが多数残ると言われている。こうしたサーバは、一般的には耐量子暗号に非対応であることを示し、既存の暗号アルゴリズムにフォールバックしてハンドシェイクを継続することが期待されている。
しかし。耐量子暗号の導入により、鍵や署名のサイズが大きくなるため、ClientHelloメッセージのサイズが通常のTCP通信で1回で読み込み可能なサイズを超えてしまうケースがあるという。こうしたサーバはClientHello全体を取得できないため、既存の暗号アルゴリズムにフォールバックできず、ハンドシェイクに失敗してしまう。
テスト用のPythonスクリプトが提供されているが、ChromeでKyberオプションを有効化してもこの問題をテストできるとのこと。
[その他のニュース]
▼博士論文:Post-Quantum TLS
こちらのツイートから。
I will be publicly defending my PhD thesis on January 9 at 14:30 precisely. If you'd like to read the thesis, attend the defense, or watch the livestream, visit my website for more information: https://t.co/ST1FoVulJL pic.twitter.com/up7EopQksI
— Thom Wiggers (@ThomWiggers) 2023年12月18日
リンク先はこちら。
耐量子暗号TLSをテーマにした博士論文が出るらしい。Cloudflareのブログでも紹介されていた、RustlsにKEMTLSを実装したのが本論文の著者とのこと。
耐量子暗号を利用したTLSハンドシェイクについてはこんな論文も出ていた。SoKはSystematization of Knowledgeの略らしい。
▼耐量子サーバ証明書のACME
こちらのツイートから。
Automated Issuance of Post-Quantum Certificates: a New Challenge https://t.co/c9dwV6zWOp #ACME #PKI #X509
— Ryan Hurst (@rmhrisk) 2023年12月18日
リンク先はこちら。
既存のACMEのチャレンジ方式(HTTP-01など)でPQC証明書を発行すると遅いので、新しいチャレンジ方式を提案するよ、とのこと。PQC証明書が使われてるの見たことないんだけど、ブラウザの対応状況ってどうなってるんだろう...。
▼Siemensの食器洗浄機
こちらのツイートから。
Pragmatic engineering > Dogmatic engineering https://t.co/v9tpIAIhuR
— Ryan Hurst (@rmhrisk) 2023年12月18日
(The key exchange takes the poor microcontroller three full seconds.)
— Bas Westerbaan (@bwesterb) 2023年12月18日
食洗機が鍵長が512ビットの楕円曲線暗号を使って、OCSPのチェックもしていて、最終的に鍵交換の完了に3秒間かかっているとのこと。なぜこんなにセキュリティに気を使っているのか。食洗機がハッキングされたら確かに困りはするだろうけど...。
▼KyberSlash
こちらのツイートから。
New KyberSlash resource page about Kyber libraries using divisions on secret inputs and thus leaking secret information into timings in various environments: https://t.co/vWCy59J784 Tracks various Kyber libraries to see which ones have this division and which ones have patched.
— Daniel J. Bernstein (@hashbreaker) 2023年12月19日
リンク先はこちら。
耐量子暗号アルゴリズムKyberを実装したライブラリにタイミング攻撃を仕掛けて秘密情報を抜き取るKyberSlashという攻撃手法があるらしい。AWSの暗号ライブラリであるaws-lcや、Zig言語のKyber実装などは修正済みだが、Debianの実装などは未修正、BoringSSLの実装などは影響なし、とのこと。
▼RFC 9500 Standard Public Key Cryptography (PKC) Test
こちらのツイートから。
RFC 9500 Standard Public Key Cryptography (PKC) Test Keyshttps://t.co/QfSYtwT5Sr
— kjur (@kjur) 2023年12月19日
テスト専用の公開鍵と秘密鍵の鍵ペア。自分のオープンソースも徐々にこちらに移すかな。本当は同じ鍵サイズのやつが複数必要なんだけどね、、、、
リンク先はこちら。
RSA 4096とかsecp256のテスト用公開鍵。何か実装する時に使えるかな...。
▼NIST SP1800-38
こちらのツイートから。
NISTからSP1800 -38 (PQCへの移行に関するドキュメント)のDraftが公開されました!
— 菅野 哲 / GMOイエラエ 取締役CTO (@satorukanno) 2023年12月21日
今回、2種類ののドキュメントが公開されており、2つ合わせて130ページ越えの力作となっておりますよっ!!
しっかり読む必要はあるな〜と思いつつ、ザザッと斜め読みした感触を共有させていただきますっ
※… pic.twitter.com/MoHekkDrUa
リンク先はこちら。
TLSだけじゃなくてSSHやHSMの耐量子暗号移行も触れられているらしい。
▼トラストのためのデジタル署名検証解説
こちらのツイートから。
JNSA
— kjur (@kjur) 2023年12月22日
トラストのためのデジタル署名検証解説https://t.co/OQpT6Fc7yD
付録A.6「証明書の適用領域による検証時の留意点」を担当させてもらいました。見てね。
リンク先はこちら。
付録A.6ではCRLやOCSPの発行パターンや、関連する証明書の拡張などについて解説されている。
▼Internet Week 2023: DNS DAY
こちらのツイートから。
DNS屋さん目線で2023年を振り返る――「HTTPS RR」クエリ数が48%も増加、「ランダムサブドメイン攻撃」からの教訓など、今年の「DNS DAY」の話題… https://t.co/Tkko1wVusC #iw2023jp
— INTERNET Watch (@internet_watch) 2023年12月21日
リンク先はこちら。
ECHの利用、平文接続の防止、初手HTTP3(QUIC)接続などに利用されるHTTPS RRの利用が増えているらしい。
▼AWSのTLS関連アップデート(2023.12)
こちらのツイートから。
DNS over HTTPS が Amazon Route 53 リゾルバーで利用可能になりましたhttps://t.co/O7pJXCbg4f
— みのるん☁️ (@minorun365) 2023年12月22日
リンク先はこちら。
DoHがサポートするのはHTTPまたはHTTP/2だけらしい。HTTP/3はないのかしら?
リゾルバーエンドポイントではDo53(通常のDNS)に加えてDoHが利用できるようになっているだけでなく、DoH-FIPSというプロトコルも選択できるらしい。追加料金がかからないなら全部DoH-FIPSでよさそうなのに、なんで分けたんだろう...。
Amazon CloudFront now supports 4096-bit RSA TLS certificates
AWS Network Firewall egress TLS inspection is now available in all regions
[暗認本:36 証明書の透明性]
『暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』より、Chapter 6 公開鍵基盤のセクション36をまとめた。
- 問題のある認証局や証明書
- 攻撃を受けて偽の証明書を発行したり不適切な運用をする認証局もあったため、監視が必要
- 詳細は『プロフェッショナルTLS&PKI 改題第2版』の「第5章PKIに対する攻撃」を読もう!
- より新しい話はTLS季報 vol.1にも。
- 失効が間に合わないためブラウザやOSがアップデートで対応するケースも。
- 攻撃を受けて偽の証明書を発行したり不適切な運用をする認証局もあったため、監視が必要
- 証明書の透明性(CT, Certificate Transparency)
- 2013年にGoogleが提唱した証明書発行監視の仕組み。
- 認証局はCTログサーバに証明書を登録し、SCT(Signed Certificate Timestamp)を受け取り証明書にSCTを埋め込んで発行
- 最初はEV証明書のみが対象だったが、Chrome/Safariは2018年以降に発行された全ての証明書で必須化(FirefoxはCTを義務付けていない)
- 一般ユーザ:SCTの有無、CTログでの登録有無で証明書を判断可能(ほぼ無理だけど...)
- サイト管理者:不正な証明書が発行されていないか監視可能
- 2015年、Symantecが不正に証明書を発行していることが判明
- CTログサーバの運営は特定の巨大な組織に頼りがち
[まとめ]
KyberSlash、名前がカッコよすぎる。しかし、耐量子暗号関連のニュースが多いなあ。
※以降に文章はありません。投銭スタイルです。