kdnakt blog

hello there.

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

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

[0-RTTリプレイ攻撃対策TLS Guard]

こちらのツイートから。

リンク先はこちら。

https://www.sciencedirect.com/science/article/pii/S1319157823003518

Bulletproof TLS and PKIプロフェッショナルSSL/TLSの特別版PDF)の解説によると、0-RTTの場合に送信されるearly_data拡張を含む0-RTTのClientHelloに続くApplicationDataをサーバ側で記録しておき、再利用のリクエストを弾くことでリプレイ攻撃に対処することが理論上可能とされている。ただし、分散環境の場合、複数サーバでのデータの同期が複雑になり大変なのは容易に想像できる。
他の対策として、今回の論文では、時刻ベースの対策や、セッションチケットの利用回数制限、PPRF(Puncture Pseudorandom Function)などが紹介されているが、いずれも分散環境での対策としては不十分とされている。

TLSガードを導入すると、TLSクライアント側の変更は不要で、サーバ側のCPU使用量を30%程度追加することでクラウドCDNなどの分散環境でのリプレイ攻撃を防止できるとのこと。分散システムで使われるRaftアルゴリズムを用いて分散システムのリーダーを決定し、分散システムクラスター内の各サーバーにTLSセッション情報をコピーすることで、0-RTTのリプレイ攻撃に対処可能になる。

有用だ、ということになればCloudflareとかGoogleとかAmazonが採用してくれるだろうか...?

[RHELとExtended Master Secret拡張]

こちらのツイートから。

リンク先はこちら。

www.redhat.com

安全な再ネゴシエーションを悪用したトリプルハンドシェイク攻撃への対策として、2015年に導入されたのがExtended Master Secret(EMS)拡張である(RFC 7627)。マスターシークレットの計算に、ClientHelloとServerHelloのランダム値を利用する既存のやり方をやめ、Finishedメッセージの計算に利用される各ハンドシェイクメッセージを連結した値のハッシュ値を利用することで、中間者による未知の鍵共有が発生するのを防ぐことができる。

NISTが定めるFIPS 140-3では、2023年5月以降のFIPS準拠モジュールが、TLS1.2の場合EMSに対応することを必須としている。RHEL7など古いOSはOpenSSL 1.0を同梱しておりEMS(とTLS1.3)をサポートしていないため、RHEL9ではOpenSSL 3.0を同梱することでFIPSに対応したとのこと。

TLS1.2は一応安全に使えるバージョンのTLSとはいえ、やはり気をつけるポイントが多い...。古いOSとかは特に気をつけないと。

[TLS Trust Expressions]

こちらのツイートから。

リンク先はこちら。

www.ietf.org

新しいインターネットドラフトが出た。ルートプログラムまたはCAが事前に共有した情報を利用することで、サポートしているトラストアンカー(=ルート証明書)についてネゴシエートできるようになるとか。

具体的には、trust_expressions拡張がClientHelloかCertificateRequestに含まれるようになり、以下のようにトラストストアの名前とバージョンを含んだ値が送信される。この拡張を受信した側は、該当のトラストストアをもとに、証明書パスを選択して証明書を返す。

struct {
    opaque name<1..2^8-1>;
    uint24 version;
} TrustStore;

struct {
    TrustStore trust_store;
    uint24 excluded_labels<0..2^16-1>;
} TrustExpression;

TrustExpression TrustExpressionList<1..2^16-1>;

ルートの異なる複数の証明書をデプロイして、ルートキーのローテーションが可能になるほか、新しいCAを併用したり、バックアップとして複数のCAから取得した証明書をデプロイしたり、といった用途が想定されている。

[その他のニュース]

▼偽サイトの見分け方

こちらのツイートから。

某経済新聞と違ってちゃんとした見分け方を提示していて良い。

とはいえ、目視に頼りすぎると、以下のような事例もあるので悩ましいところ...uniqlοとか書かれてたら確実に間違える気がする(oではなくギリシャ文字のオミクロンοを利用)。

ドメインに国際化文字列が入ると脆弱性に繋がるケースもあったし、そういうのやめた方がいいと思うんだけど、完全なる後知恵なのでなんとも...。

▼DiStefano

こちらのツイートから。

リンク先はこちら。

https://eprint.iacr.org/2023/1063.pdf

TLSって書いてあったからとりあえずピックアップしてみたけど、private attestationsとかcommitmentsって何なのか謎。
論文を流し読みすると、『暗認本』のChapter 9にある「秘密計算」とか「ゼロ知識証明」といった用語がたくさんでてくるのが分かる。ちょっと今の自分には発展的すぎるのでパス...。

[暗認本:27 SHA-1の衝突]

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

[まとめ]

今週は割とガッツリTLS仕様に関わるネタが多めだった。

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

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

この続きはcodocで購入