ぼちぼち日記

おそらくプロトコルネタを書いていることが多いんじゃないかと思います。

TLS

OpenSSLの脆弱性(CVE-2017-3733)に見られる仕様とcastの落とし穴

TLS

0. 短いまとめ OpenSSL-1.1.0dに脆弱性(CVE-2017-3733)が見つかり、Encrypt-Then-Mac と renegotiation を組み合わせて crashさせることができました。 この脆弱性は、仕様の準拠不足や不適切な変数の cast などが原因でした。 TLS1.3ではこういう落とし穴が…

錆びついたTLSを滑らかに、GoogleによるGREASE試験

TLS

0. 短いまとめ 長い間、TLSのクライアント・サーバ間で使用するTLSバージョンを合意する際に、 不完全なサーバ実装によって version intolerance が発生することが問題になっていました。 TLS1.3ではこの version intolerance の影響を最小化するため、新し…

HTTP/2とTLSの間でapacheがハマった脆弱性(CVE-2016-4979)

0. 短いまとめ 昨晩apache2.4でHTTP/2利用時にTLSクライアント認証をバイパスする脆弱性(CVE-2016-4979)が公表され、対策版がリリースされました。 実際に試すと Firefoxで認証バイパスができることが確認できました。 HTTP/2でTLSのクライアント認証を利用…

新しいTLSの暗号方式ChaCha20-Poly1305

TLS

Disclaimer 本エントリは、近々IETFで標準化される予定の新しいTLSの暗号方式 ChaCha20-Poly1305 について解説したものです。 本来なら、新しい暗号方式を紹介するいうことは、その暗号の安全性についてもちゃんと解説しないといけないかもしれません。しか…

ハッシュ衝突でTLSを破るSLOTH攻撃(CVE-2015-7575)とは何か

TLS

0. 簡単なSLOTH攻撃のまとめ 最初に簡単なまとめを書いておきます。長文になりそうなので、読むのが大変な方はここだけ見ておいてください。 MD5ハッシュは既に安全ではなく、証明書の署名方式での利用は停止されていたが、後方互換のためハンドシェイクデー…

パンドラの箱?TLS鍵交換の落とし穴、KCI攻撃とは何か

TLS

1. 初参加のセキュリティキャンプ 先週ですが、講師としてセキュリティキャンプに初めて参加しました。 担当したのは高レイヤーのセッションで、TLSとHTTP/2の講義を合計6時間、まぁ大変でした。講義の時間配分、分量などの検討が十分でなかったため、本番で…

華麗なる因数分解:FREAK攻撃の仕組み

1. はじめに ちょうど今朝 OpenSSLをはじめとした様々なTLS実装の脆弱性の詳細が公表されました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d…

不正なSSL証明書を見破るPublic Key Pinningを試す

先日のエントリー 「TLSとSPDYの間でGoogle Chromeがハマった脆弱性(CVE-2014-3166の解説)」で予告した通り、今回不正なSSL証明書を見破る Public Key Pinningの機能について解説します。Public Key Pinning は2種類の方法があります。あらかじめブラウザー…

TLSとSPDYの間でGoogle Chromeがハマった脆弱性(CVE-2014-3166の解説)

1. はじめに、 Googleがハマったシリーズ第3弾。今度は Chrome の脆弱性がテーマです。先日(8月12日頃)突然Google ChromeでSPDYの機能が一旦停止されました。CloudFareの人が気づいてspdy-devへのMLの問い合わせし、すぐGoogleのaglさんからの返事で計画的…

OpenSSLの脆弱性(CVE-2014-3511)でTLSプロトコルの基礎を学ぶ

1. はじめに、 昨日 OpenSSLのバージョンアップがアナウンスされ、9つの脆弱性が公開されました。バージョンアップの数日前にOpenSSLの次期リリース予告がアナウンスされていましたが、ちょうど BlackHat 開催初日にあたることもあり、なんかまた重大な脆弱…

GoogleによるOpenSSLのfork、BoringSSLを試す。

TLS

1. はじめに、 先日、Chrome で 「Issue 401153002: Switch to BoringSSL. (Closed)」 という変更が行われました。これは、従来の Android向け Chrome では OpenSSL を利用していたのですが、今回これをGoogleがOpenSSLをforkしたBoringSSLに切り替えたこと…

HTTP/2.0のALPN利用に伴うSSL負荷分散装置の不具合、その後の顛末

1. ワークアラウンドが見つかった! 先日 id:jovi0608:20131106 で書きました256バイト以上のSSL ClientHello で負荷分散装置のTLSハンドシェイクがハングアップする件ですが、ワークアラウンドが見つかりました。Re: ALPN concerns にてF5のエンジニアから…

HTTP/2.0のALPN利用に伴うSSL負荷分散装置の不具合にご注意下さい

1. はじめに、 ただ今IETF-88@バンクーバーの開催が真っただ中です。スノーデン事件の余波もあり、インターネット技術(特にセキュリティ関連)の議論は熱くなっています。ちょうど今朝未明(バンクバーでは11/5朝)に HTTP/2.0の標準化を進める httpbis ワ…