kdnakt blog

hello there.

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

2023年5月15日~2023年5月21日に読んだ中で気になったニュースとメモ書き(TLSらじお*1第106回の原稿)です。

[CTログのビット反転]

こちらのツイートから。

宇宙線とかでビット反転が起きるって話は昔何かで聞いたことあるけど、実際に問題を起こしてる例は初めて聞いたな...。

リンク先はこちら。

groups.google.com

Nessie 2024はDigiCertのCT(Certificate Transparency)ログ。登録されたログのSubjectPublicKeyInfoの51番目のバイトが本来0x92であるべきところ、CTログ上は0x93となってしまっているらしい。
Merkle Treeは(後述のひとくちPKI第16回によると)数珠繋ぎの署名になっている。結果として全体が検証できなくなるためか、DigiCertは当該CTログの稼働を停止したとのこと。確かに、CloudflareのMerkle Townで確認すると、TREE GROWTHのグラフがしばらく0になっている。メーリス上では、停止に際してGoogleの指示があったという情報もあるが詳細は不明。

「少なくとも1つのリタイアしていないCTログが必要」というChromeの要件上CTログを複数持っておく必要があるが、ビット反転対策とかも考えるといくつ持っておく必要があるんだろうか...。
ちなみに

CTログベースだと、最近の認証局ごとの証明書数は以下のようなグラフになるらしい。

今回の障害に関連して、2021年にもDigiCertのYeti 2022というCTログで同様の事例があった。

www.agwa.name

Agwa氏のブログによると、こうした障害によって証明書の大量の置き換えが発生するケースがあり、これに対処するためにLet's EncryptがARI(ACME Renewal Information)の開発に取り組んでいたらしい。そういう背景もあったのか〜と納得。

他にも似たような原因でCTログが廃止になった事例があるらしい。壊れやすいんだな...。

[NIST SP 1800-16]

こちらのツイートから。

リンク先はこちら。いくつかリンクがあり、Web版もある。

www.nccoe.nist.gov

Aが経営者向けのまとめで、Bがベストプラクティス集っぽい。
証明書の一元管理だけじゃなくて、組織として利用する認証局も管理しましょうねって書かれてた。なるほど。証明書のインストールや更新も自動化しましょうねって書かれてた。はい...。

一気に全部読むには長すぎるので、毎日ちょっとずつ読んでいくかChatGPTに食わせるかして消化したい。

[CAAレコードの実態]

こちらのツイートから。

CAAレコードというのはDNSレコードの一種で、そのドメインに対してどの認証局が証明書を発行できるか、を指定できる。2017年からCA/B Forumで認証局に対して遵守が求められているルールだ。

ツイートによると約2億のドメイン中、CAAレコードがあるのは300万ドメイン未満。1%ちょっとしかない。Tranco Top 1Mドメインに絞ると、4.8%程度にはなるらしいが、それでもまだまだ全然普及しているとは言い難い状況。
この手のアクセス数の多いサイト調査のときにはこれまでAlexaが利用されていたが、Trancoというサイトが今後使われていきそう。

CAAレコードで利用されている認証局としては、Comodo、DigiCert、Let's Encryptで全体の75%を占める様子。

2、3の認証局を指定してCAAレコードを指定するイメージだったので、あまり数は多くないと思っていた。しかし、以下のツイートによると、1ドメインにつき4〜5レコードが多数派だが、50レコード以上も指定しているドメインもあるとか。

CA/B Forumで追加された証明書発行時の連絡先として指定できるcontactemailタグがあるが、RFCに反映されていないこともあってか、利用はまだごく少数とのこと。

RFC 8657で追加されたaccounturi拡張についても同様。

スレッドの内容はブログにもまとめられている。

www.netmeister.org

@kjurさんが日本語でもまとめてくれている。

主に2017年以前の情報を元に書かれたプロフェッショナルSSL/TLSを読んだときに、どの認証局でもあなたのドメインに対して証明書を発行できてしまう問題がある、と書かれていた。その問題を知っていたので、解決策になりうるCAAレコードについて知ったときはすごい仕組みだな、と思ったんだが...現実は非情である。

[CAは信頼できるか?]

こちらのツイートから。

リンク先はこちら。

www.splunk.com

@kjurさんは結果にやや懐疑的なご様子。確かに、ここに上がってる認証局だけが危ないのか?というと他にも危ないところはありそう(逆のケースももちろんありうる)。

ただ、上記記事でリスクのあるルート認証局として指摘されているトルコのe-Tugra認証局は、本ブログで度々取り上げている通り、あまり安全とは言えない状態だった気がする。インシデントからの復旧後はどうなったか分からないけど...。

[その他のニュース]

ACMEフローチャート

こちらのツイートから。

ACMEなんか難しそうだなと思ってたけど、普通の証明書発行の手順とそう違わなそうだった。なるほど。

▼Certify v6.0

こちらのツイートから。

リンク先はこちら。

community.certifytheweb.com

Certifyという証明書管理ツールがあるらしい。

目玉機能として取り上げられているSTIR/SHAKENは、Wikipediaによると公衆電話ネットワークでのなりすましを防ぐためのプロトコルっぽい。そういうとこでも証明書が使われてるんだな...北米限定ぽいけど。

▼OpenSSL s_clientのQUICサポート

こちらのツイートから。

リンク先はこちら。

github.com

リリース一覧を見る限りまだ正式リリースはされていないものの、OpenSSLのs_clientコマンドでQUICをサポートするコミットが入ったとのこと。
ロードマップによるとOpenSSL3.2でクライアント実装を提供予定らしい。

▼DNSCrypt

こちらのツイートから。

リンク先はこちら。

blog.sweetpproductions.com

 DNS-over-HTTPSなどを利用してDNSの通信を暗号化するためのプロキシがあるとのこと。検討中の仕様Encrypted Client Helloとかと組み合わせると通信先ドメインを第三者が知るのはほぼ不可能になりそう。
名前のもとになったDNSCrypt自体がDNSを暗号化するプロトコルらしい。

ECHは検討中とはいえ、Chromiumに実装されていて、QUICでもECHが使えるらしい。

▼ARIのハッシュアルゴリズム

こちらのツイートから。

ACME Renewal Information拡張に関する情報。ドラフトでは以下のようにASN.1の証明書IDをBase64エンコードして、ハッシュ化したものをURLに含めてARIをリクエストするらしい。

   GET https://example.com/acme/renewal-info/
           MFswCwYJYIZIAWUDBAIBBCCeWLRusNLb--vmWOkxm34qDjTMWkc
           3utIhOMoMwKDqbgQg2iiKWySZrD-6c88HMZ6vhIHZPamChLlzGH
           eZ7pTS8jYCCD6jRWhlRB8c

ドラフトからははっきりとは読み取れなかったけどこのハッシュアルゴリズムはなんでもいいっぽい。キャッシュのためにACMEサーバが利用可能なアルゴリズムを制限しても良い、と書かれてる。なるほど。

TLS 1.2 is Frozen

こちらのツイートから。

リンク先はこちら。

datatracker.ietf.org

もうTLS1.3が出て5年近く経つので、今更TLS1.2でもないか。
拡張の追加だけでなく、アルゴリズムも追加しない、ということなので、最近検討されているTLS_AEGIS_256_SHA384とかもTLS1.2では使えなさそう?あれはそもそも鍵交換アルゴリズムの指定のないTLS1.3用スイートだから無理か...。

▼ECDHE+Kyber

こちらのツイートから。

リンク先はこちら。

datatracker.ietf.org

supported_groupにSecP256r1Kyber768Draft00とかを使うらしい。ECDHEとKyberそれぞれの鍵交換を同時に行なって、得られた結果をくっつけて秘密情報とするとか。

▼Cloudflare UniversalSSLの障害

こちらのツイートから。

Googleリポジトリによると、GTS Root R4は2012年11月の発行なので、それ以前のOSがダメそう?

pki.goog

現在は解消している様子。

Android 9って2018年リリースなのにGTS Root R4のルート証明書入ってないんだ...意外。

▼CloudflareでmTLS

こちらのツイートから。

リンク先はこちら。

blog.cloudflare.com

先週はFastlyがmTLSやってたし、最近流行ってるのかしら。

▼技術書典14

こちらのツイートから。

オフラインでも開催された技術書典14でもいくつかプロトコルや暗号関連の本が出ていそう。買わなきゃ...。

techbookfest.org

techbookfest.org

オンライン開催は6/4(日)までとのこと。

▼X.509証明書のnoRevAvail拡張

こちらのツイートから。

リンク先はこちら。

www.ietf.org

失効情報の不要な短命な証明書が流行ってるから、失効情報がないことを識別できるようにしようぜって提案っぽい。
元々はX.509を定めた国連期間ITU-Tが2000年に定めた仕様に含まれているとか。あっちこっちに仕様があって分かりづらい...。

Firefoxは既に有効期限が短くなった証明書の失効情報を無視するフラグを持っている様子。

Chrome Root Program的には証明書の有効期間は90日にしていく方針らしいし、失効情報って今後ちゃんと使われるんだろうか...。

[まとめ]

最近なんだかニュースを集めすぎている気がする...まとめきれない...というわけで今週は暗認本はおやすみ。

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