kdnakt blog

hello there.

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

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

[TLS Key Share Prediction]

こちらのツイートから。

リンク先はこちら。

datatracker.ietf.org

Googleの人による新しいインターネットドラフトが提案されています。TLSハンドシェイクのラウンドトリップを削減するためにDNS経由で鍵共有の設定を伝達する手法だとか。

TLS1.3のClientHelloメッセージでは、supported_groupsとkey_shareという2つのTLS拡張を利用して鍵共有のための情報を送信します。supported_groups拡張には、クライアントがサポートするアルゴリズムのことで、secp256r1やx25519といった楕円曲線のグループや、ffdhe2048やffdhe4096といった有限体のグループが含まれます。key_share拡張はTLS1.3で登場したTLS拡張です。supported_groupsのうちで、サーバーがサポートしておりハンドシェイクが成立するであろうとクライアントが想定するグループ1つ以上の、クライアントの公開鍵がkey_share拡張に含まれます*1。しかし、最終的に利用される鍵は1つなので、通常クライアントは無駄に複数の公開鍵を計算することはしません。

サーバー側はClientHelloメッセージを受け取り、key_shareで送られてきたグループでハンドシェイクできる場合は、サーバーの公開鍵をServerHelloメッセージのkey_share拡張に含めて返送します。

しかし、サーバーがサポートしているアルゴリズムがkey_shareに含まれていない場合は、ServerHelloメッセージではなくHelloRetryRequestメッセージがクライアントに送られ、ClientHelloからハンドシェイクをやり直すことになります。

このやり直しは、耐量子暗号の場合にはコストが顕著になります。特に、このドラフトで問題とされているのは、ある耐量子暗号アルゴリズムから別のアルゴリズムへの移行が行われるようなフェーズのようです。

DNSを経由してsupported_groupsの情報を伝えるのに利用されるのは、SVCBリソースレコード(Service Binding and Parameter Specification、RFC 9460)です。これは、Encrypted Client Helloで利用するための公開鍵を公開するためにも利用されるほか、TLS上でやりとりされるHTTPのバージョンなどをやりとりするためにも利用されています。既存の利用法を考えると、確かに今回提案されている使い方はアリな気がします。

www.rfc-editor.org

eng-blog.iij.ad.jp

[その他のニュース]

▼OpenSSLの脆弱性(CVE-2024-4741)

こちらのツイートから。

リンク先はこちら。

news.mynavi.jp

https://www.openssl.org/news/secadv/20240528.txt

アプリがSSL_free_buffersというAPIを直接呼び出す場合にのみ問題があるとか。TLSレコードのボディをネットワークから完全に受け取れていない場合に問題があるようです。耐量子暗号アルゴリズムでClientHelloが巨大化したことが影響したりするかも?

不正アクセスによるドメインハイジャック

こちらのツイートから。

リンク先はこちら。

www.nikkei.com

こういうのがあるとCT(Certificate Transparency)が普及してて良かったな、と思います。crt.shのようなサイトを使えば、証明書が不正発行されていても気づくことができます。

レジストラ脆弱性を利用した過去事例もあるようです。

▼NIST SP800-108の脆弱性

こちらのツイートから。

リンク先はこちら。

scottarc.blog

NIST SP800-108はPRF(擬似乱数関数)を用いた鍵導出についての標準ですが、実際にこのドキュメントで提案されたAES-CMACを利用すると、最終的にえられる鍵を攻撃者がコントロールできるようです。

Dual_EC_DRBGに続くNISTの陰謀説が思い浮かびますが、ブログの筆者は否定的なようです。

▼Let's Encrypt 2024 Ceremony

こちらのツイートから。

何度か取り上げていた中間証明書の変更がついに行われるようです。

kdnakt.hatenablog.com

実際に切り替えられたことを確認してくれているツイートも。

ちなみにLet's Encryptは2024年に入って1日平均の証明書発行数が400通を超えている模様。すごい。

▼ひとくちPKI 67

こちらのツイートから。

リンク先はこちら。

podcasters.spotify.com

ひとくちPKI Journal 3のeIDAS 2.0の補足パートが良かったです。

techbookfest.org

メインはDigiCertのEV証明書失効の件。pkilint(リンティングツール)というか、根気強くエンジニアとコミュニケーションしてるコンプライアンス担当すごいなー。エンジニアが誤検知と言いたくなった気持ちも分かる...。Baseline Requirements違反というより、CPS(Certificate Practice Statement)違反...難しい。細かい経緯を把握できてなかったので助かりました。

kdnakt.hatenablog.com

▼わずかな平文通信の問題

こちらのツイートから。

リンク先はこちら。

emilymstark.com

HTTPでアクセスした場合にネットワークインジェクション攻撃を受けて、別のサイトを閲覧させられてしまう問題は2023年にも知られています。

kdnakt.hatenablog.com

そうした問題があるので、http://shrug.io/のような「¯\_(ツ)_/¯」のAAをコピーするためだけのサイトであっても、HTTPでアクセスするのは危険だ、という話がまとめられていました。

[おわりに]

技術書典16オンラインマーケットは終わりましたが、電子版なので引き続きご購入いただけます。何卒ごひいきに🙏

techbookfest.org

techbookfest.org

*1:RFC 8446によると、正確には0でもいいらしいです。ただし、鍵共有のための追加のラウンドトリップが必要となり、パフォーマンスがTLS1.2と同等になってしまいます。