ぼちぼち日記

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

Node.jsにおけるプロトタイプ汚染攻撃とは何か

1. はじめに 最近わけあってNodeのセキュリティ調査をしているのですが、今年の5月に開催された North Sec 2018 でセキュリティ研究者の Olivier Arteau 氏による 「Prototype pollution attacks in NodeJS applications」という面白い発表を見つけました。 …

「SSL/TLS暗号設定ガイドライン 第2.0版」を読んで

1. はじめに 昨日「SSL/TLS暗号設定ガイドライン 第2.0版」が公開されました。 前回から約3年経って今回はCRYPTREC暗号技術活用委員会で検討作業が行われたようです。 普段、TLS/HTTPSの記事を書いたり発表したりしている立場上、これを見逃すわけにはいけま…

RPCに特化したGoogleのセキュリティ通信ALTSとは何か

はじめに 昨年、Googleから Google Cloud Platform に関するWhitePaperがいくつか公開されました。その中でGoogleのサービス内部で使われている新しいALTSというプロトコルを説明した文書「Application Layer Transport Security」は、読んでみると非常に面…

書評:プロフェッショナルSSL/TLS

ごめんなさい、書いてたら長くなってしまいました。長文嫌いな方は避けて下さい。 鹿野さんの名前を間違えてました。大変失礼しました。(_O_) 1. はじめに。日本語翻訳版刊行によせて、 昨年10月、Vさんから 「 Bulletproof SSL and TLS 翻訳本のレビュ…

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

TLS

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

はてなブログの方に移りました。

こっち http://jovi0608.hatenablog.com/ に移りました。

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

TLS

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

JPNICの証明書失効の障害とCertificate Transparency(正解編)

前回のエントリーでJPNICの証明書失効の障害事故について事実認定と推測記事を書きましたが、本日報告書が公開されました。サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可についてのご報告文面自体は短いのですが、正解は 新たに発行され…

JPNICの証明書失効の障害とCertificate Transparency

PKI

0. Disclaimer 先日JPNICのサイトの証明書が誤って失効してしまったという障害が発生しました。「障害報告:サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可につ いて(第一報)」週末にもかかわらず迅速に復旧対応を行った関係者の方々のご…

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

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

本当は怖いAES-GCMの話

Disclaimer 本エントリーは、この夏 blackhat usa 2016で行われる予定の講演「NONCE-DISRESPECTING ADVERSARIES: PRACTICAL FORGERY ATTACKS ON GCM IN TLS」 のネタバレを含んでいます。現地で直接聞く方は読まないよう気をつけて下さい。 0. 短いまとめ 今…

新しい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時間、まぁ大変でした。講義の時間配分、分量などの検討が十分でなかったため、本番で…

HTTP/2時代のバックエンド通信検討メモ

1. はじめに、 今朝、こんな返事を元に kazuho さんとIPsec/TLS等バックエンド通信について議論する機会を得ました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)…

OpenSSLの脆弱性(CVE-2015-1793)によるAltチェーン証明書偽造の仕組み

TL;DR やっぱり書いていたら長文になってしまいました。あまりちゃんと推敲する気力がないので、変な文章になっているかもしれません。ご了承いただける方のみお読みください。 1. はじめに 昨晩未明にOpenSSL-1.0.2d, 1.0.1pがリリースされました。事前に予…

HTTP/2は流行らないけど広く使われるものだと思う。

まずは Disclaimer、 「あくまでも個人の感想であり、HTTP/2の効能を保証するものではありませんw」 1. はじめに、 先日、HTTP/2, HPACKのRFC(7540,7541)が無事発行されました。2年余りHTTP/2の標準化活動に参加してきたのですが、もうすっかり昔の事のよう…

io.jsのTechnical Committeeに推薦されました

1. はじめに 「こんな私がXXXに!?」の宣伝文句ではありませんが、こんな私がio.jsプロジェクトのTechnical Commitee(TC)に推薦されました。 Nominating Shigeki Ohtsu @shigeki to the TC window.twttr = (function(d, s, id) { var js, fjs = d.getElements…

華麗なる因数分解: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…

ES6時代のGoogle的Good Parts: V8のstrong modeを試す

1. 新しいGoogleのV8実験プロジェクト 巷ではIEの asm.js サポートのアナウンスが話題を集めていますが、実は先月末のTC39の会合でGoogleが今年新しくV8に2つのJavaScript機能の試験実装を進めていることがプレゼンされていました(すっかり見落としてた)。…

io.js-v1.0.0のリリースによせて

1. 祝 io.js-v1.0.0/1.0.1 のリリース NodeやJSの情報にアンテナを張っている人なら知っているとは思いますが、昨日無事「io.js」がリリースされました。 リリース直前のバグ修正の追い込みやライブラリアップデートのごたごたは、かつてのNodeのリリースそ…

Node-v0.10.34がはまったクロスルート証明書とOpenSSLの落とし穴

既に12月22日ですが、このエントリーは、Node.js Advent Calendar 2014の13日目のエントリーです。 いや私が書くの遅れたわけじゃないですけど…(言い訳)、ちょうどタイムリーなネタがあるので、先日リリースされたNode-v0.10.34で発生した(現在も継続してい…

Service WorkerとHTTP/2が切り開く新しいWeb Pushの世界

この記事は、HTTP2 Advent Calendar 2014の6日目のエントリーです(2日前にフライイング公開してます)。 1. はじめに、 HTTP/2仕様の標準化作業は、WGラストコールも終わり、今後IESGレビューやIETFラストコール等の大詰めの段階に来ました。来年のRFC化に…

不正な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仕様のWGラストコール始まる

(注)8月1日にチェアより正式にWGラストコールの宣言がありました。 "Working Group Last Call: draft-ietf-httpbis-http2-14 and draft-ietf-httpbis-header-compression-09" すったもんだしたあげく、draft-14が出ることに。結局ヘッダフォーマットなど色…

Node.js-v0.10.28でDate.now()が爆速になった

1. Node-v0.10.28とNode-v0.11.13のリリース 先週末、安定版のNode-v0.10.28と開発版のNode-v0.11.13がリリースされました。*1 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElemen…

Node-v0.12からデフォルトでES6の一部が使えるようになった(WeakMap解説編)

このエントリーは、4月24日(木)に行われる「東京Node学園 12時限目」の発表ネタを先出ししたものです。 1. はじめに、 過去2回、Node-v0.12における ES6(ECMAScript6)関連のエントリー*1を続けて書きました Node.jsにPromiseが再びやって来た! Object…