kdnakt blog

hello there.

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

2022年12月26日~2023年1月8日に読んだ中で気になったニュースとメモ書き(TLSらじお第87回の前半用原稿)です。
年末年始を挟んだので2週間分まとめてお送りします。

 

[RSA Broken?]

こちらのツイートから。

リンク先の記事はこちら。

www.schneier.com

こちらの記事も。

therecord.media

話の元になったのは2022年12月23日にarxiv.orgで公開された論文:Factoring integers with sublinear resources on a superconducting quantum processor*1
48ビットの整数を効率的に10個の量子ビット(キュビット)で因数分解できた、2048ビットのRSAにトライするには372個のキュビットが必要(未確認)、ということらしい。2022年11月にはIBMのOspreyが433キュビットを達成しているので、もしかしたらもうRSAはおしまいなのか?
アメリカの研究者Bruce Schneier氏によると「I don’t think this will break RSA」とのこと。違う、ということの根拠として、この論文が依拠している別の論文が大きな整数では成り立たない点を指摘している。
もしこの仮説が成り立つとすれば、耐量子暗号の根拠となっている格子ベースの公開鍵暗号も破られる危険性があるとのこと。
IBMが検証結果を出してくれたら面白いのに(仕事が色々とやばいことになりそうだけど)。

[Bulletproof TLS Newsletter #96]

こちらのツイートから。

ニュースレターはこちら。

www.feistyduck.com

トップニュースはTrustCorというCAが各ルートストアから削除された件。以前にうちでも取り上げた。CAをビジネスとして運営することの難しさや、EUが目指しているeIDASとの関連についても触れられている。

kdnakt.hatenablog.com

その他の主なニュースは以下。

[Chromeのセキュリティ総括2022年7-9月]

Bulletproof TLS Newsletter #96より。

groups.google.com

TLSに関係のあるところだと以下の内容。

  • Chromiumの証明書検証機能をBoringSSLに移行中
  • Encrypted Client HelloがCanaryとDevで50%を超えた
  • iOSchromeHTTPSファーストモード追加

ECHは2022年10月にバージョン15のドラフトが出ていた。前のバージョンとの差分を確認すると、ECHのゴールとしてTLSのセキュリティの維持、ハンドシェイクのプライバシーに加えて、ECH非利用のハンドシェイクへのダウングレード耐性が追加されていた。
iOSHTTPSファーストモード、どうやって使うんだろうと思ったら「Settings > Privacy and Security」で「Always Use Secure Connections」をオンにすると使えそう。デフォルトではオフだったのでオンにしておいた。

[Androidルート証明書ストア]

Bulletproof TLS Newsletter #96より。

blog.esper.io

Let's Encryptのルート証明書起源切れ問題や、TrustCorの件を受けて、Googleが動いたらしい。
この機能のベースとなったのは、Androidのシステムコンポーネントを独立モジュールとして提供可能にするProject Mainlineで、Android用のTLS実装としてConscriptというモジュールある。ここに更新可能なルートストアが実装予定。

github.com

[HTTPS RR@DNS DAY]

こちらのツイートから。

DNS DAYというイベントがあったらしい。記事はこちら。

internet.watch.impress.co.jp

TLS関連では、ECHにも利用されるHTTPSリソースレコードについて触れられていた(仕様はまだドラフト段階)。

小坂氏によると、2019年から2021年にかけて観測されたクエリ数の急増は落ち着きを見せたものの、その原因の1つであるHTTPSリソースレコード(RR)のクエリ数の増加は現在も続いており、2022年10月現在で全体の15%に達した

HTTPS RRが設定されているユニークなドメイン名の数は19万を超えており、実際に使われ始めていること、夜(21時ごろ)にレスポンス数が増えることから、HTTPS RRは現時点ではビジネス用途よりも、コンシューマーがアクセスするドメイン名に設定されている傾向にあるように思える

HTTPS RRのalpnパラメーター(アクセス先のウェブサーバーで使用可能なプロトコル)の内容を見ると、QUICで通信するHTTP/3にウェブサーバーを対応させる際、HTTPS RRを設定しているのではないか

とのこと。HTTPSリソースレコード結構使われてるんだな。

以下の記事によると、2022年3月時点でAレコード、AAAAレコードに次いでHTTPSレコードが10%ということなので、半年で約5%増加したことになる。

eng-blog.iij.ad.jp

[韓国のプロトコル事情]

こちらのツイートから。

リンク先の記事はこちら。

palant.info

TLS脆弱性FREAKなどに繋がった1990年代アメリカの暗号輸出規制は、日本については2000年に解除された(参考:ホワイトハウスの声明のアーカイブ)が、韓国についてはしばらく規制が残っていたようである。
現在の輸出規制を定めた文書では韓国は日本と同じ扱いになっているので、どこかのタイミングで規制が解除されたものと思われる。
ただ、その過程でアメリカを信用しない韓国はSSL/TLSの上にActiveXでしか動かない独自プロトコルを実装したため、銀行のサイトなどを利用する際には複数のアプリケーションをインストールする必要があるとのこと。辛い...。
なにをやっているアプリケーションなんだろう?と思ったら、「暗号化というよりは難読化(cryptography is merely being used as obfuscation)」らしい...いいのかそれで。
本件については3月までに複数回追加の情報開示が行われる予定とのこと。ちょっと楽しみ。

[その他のニュース]

▼crip: Certificate Ripper v2 

こちらのツイートから。

サーバ証明書CLIで取得できるJava製のツール。

github.com

picocliGraalVMを使っているみたい。
ちなみにOpenSSLで同じようなことをやる場合は次のようになる。

$ echo quit | openssl s_client -showcerts -connect curl.se:443 > cacert.pem

参考。出力した証明書をcurlで使うには--cacertオプションを使う。
daniel.haxx.se

▼rust-tls

こちらのツイートから。

リポジトリはこちら。LinuxカーネルでRustが使えるようになったので...ということらしい。

github.com

TLS1.3のみ実装されている。tls.rsを見ると見慣れたハンドシェイクメッセージが並んでいて勉強になる。
use kernel::Result;とかはRust By Exampleで見たやつだ!と2022年の勉強の甲斐があってよかった。

▼Go 1.20の変更点

こちらのツイートから。

リンク先はこちら。

words.filippo.io

新しくcrypto/ecdhが標準パッケージとして追加されるのと、タイミングサイドチャネル攻撃に利用されがちだったmath/bigパッケージを置き換えるbigmodパッケージが追加されるとのこと。
他にも、ルートストアのないコンテナで実行するTLSクライアント向けにSetFallbackRootsというAPIが追加されたり、ハンドシェイクが証明書検証で失敗する場合にCertificateVerificationErrorを返すようになるとか。証明書検証、むしろ今までどうしてたんだろう...。

[まとめ]

2023年もTLSらじおをよろしくお願いします。

*1:上の記事によると、どうやらこの論文は査読を受けていないらしい。