タグ

ブックマーク / jovi0608.hatenablog.com (27)

  • 本当は怖いAES-GCMの話 - ぼちぼち日記

    Disclaimer エントリーは、この夏 blackhat usa 2016で行われる予定の講演「NONCE-DISRESPECTING ADVERSARIES: PRACTICAL FORGERY ATTACKS ON GCM IN TLS」 のネタバレを含んでいます。現地で直接聞く方は読まないよう気をつけて下さい。 0. 短いまとめ 今回は短めにと思ったのですが、やっぱりそれなりの分量でした。なので短いまとめを書いておきます。 4千万以上のサイト対してAES-GCM使ったTLS通信の初期ベクトル(IV)データのサーベイが行われ、7万程のサイトでIVの値が再利用される可能性があることがわかりました。IVが再利用された場合、AES-GCMの安全性は致命的な影響を受けます。IVの再利用が判明した幾つか実装から既に脆弱性のアナウンスが出ています。 IVが再利用された場合、現実的にHTTPS

    本当は怖いAES-GCMの話 - ぼちぼち日記
  • ハッシュ衝突でTLSを破るSLOTH攻撃(CVE-2015-7575)とは何か - ぼちぼち日記

    0. 簡単なSLOTH攻撃のまとめ 最初に簡単なまとめを書いておきます。長文になりそうなので、読むのが大変な方はここだけ見ておいてください。 MD5ハッシュは既に安全ではなく、証明書の署名方式での利用は停止されていたが、後方互換のためハンドシェイクデータの署名方式にRSA-MD5が今でも利用できるTLS実装が幾つか存在していた(Firefox NSS, Java等)。 先週、INRIAグループからハッシュ衝突を利用して実際にTLSを破る攻撃(SLOTH)が公開された。それを受け、いくつかの実装でRSA-MD5を完全に利用不能にする修正が行われた(CVE-2015-7575)。 SLOTHでは、SHA1やTLS、IKE、SSHに対する攻撃についても評価を行い、幾つかは全く現実的に不可能なレベルではないことが示された。MD5とSHA-1でTLSハンドシェイクの完全性を担保しているTLS1.0/

    ハッシュ衝突でTLSを破るSLOTH攻撃(CVE-2015-7575)とは何か - ぼちぼち日記
  • OpenSSLの脆弱性(CVE-2015-1793)によるAltチェーン証明書偽造の仕組み - ぼちぼち日記

    TL;DR やっぱり書いていたら長文になってしまいました。あまりちゃんと推敲する気力がないので、変な文章になっているかもしれません。ご了承いただける方のみお読みください。 1. はじめに 昨晩未明にOpenSSL-1.0.2d, 1.0.1pがリリースされました。事前に予告されていた通り深刻度高の脆弱性CVE-2015-1793が修正されています。Advisoryを見ると、この脆弱性がiojs/Nodeに影響があるということが判明したので直ちにiojs/Nodeのアップデートを行い、今朝未明に無事脆弱性対応版をリリースしました。 今回が初めてではありませんが、深夜に日欧米のエンジニアgithub上で互いに連携しながら速やかにセキュリティ対策のリリース作業を行うことは何回やってもなかなかしびれる経験です。時差もありなかなか体力的には辛いものがありますが、世界の超一流のエンジニアと共同でリア

    OpenSSLの脆弱性(CVE-2015-1793)によるAltチェーン証明書偽造の仕組み - ぼちぼち日記
  • HTTP/2は流行らないけど広く使われるものだと思う。 - ぼちぼち日記

    まずは Disclaimer、 「あくまでも個人の感想であり、HTTP/2の効能を保証するものではありませんw」 1. はじめに、 先日、HTTP/2, HPACKのRFC(7540,7541)が無事発行されました。2年余りHTTP/2の標準化活動に参加してきたのですが、もうすっかり昔の事のような感じがします。 今日、Scutumの開発をされている金床さんの「HTTP/2のRFCを読んだ感想」のエントリーが公開され、読ませて頂きました。今回初めてHTTP/2の仕様書を読まれた感想ということで、長くかかわってきた立場から見ると非常に新鮮な内容でした。 実は「HTTP/2が流行らない」という指摘は、1年半ほど前に私も同じことを書いていました。 HTTP/2.0がもたらす�Webサービスの進化(後半) また、偶然なのかわかりませんが、同じ Proxy製品 vanish varnish *1 の開

    HTTP/2は流行らないけど広く使われるものだと思う。 - ぼちぼち日記
  • 華麗なる因数分解:FREAK攻撃の仕組み - ぼちぼち日記

    1. はじめに ちょうど今朝 OpenSSLをはじめとした様々なTLS実装の脆弱性の詳細が公表されました。 この InriaとMSRのグループは以前からTLSのセキュリティに関して非常にアクティブに調査・検証をしているグループで、今回も驚きの内容でした。 このグループは、TLSのハンドシェイク時の状態遷移を厳密にチェックするツールを開発し、様々なTLS実装の脆弱性を発見・報告を行っていたようです。 特にFREAKと呼ばれるOpenSSLの脆弱性(CVE-2015-0204)に関しては、ちょうど修正直後の1月初めに Only allow ephemeral RSA keys in export ciphersuites で見ていましたが、具体的にどのように攻撃するのかさっぱりイメージできず、あのグループだからまた超絶変態な手法だろうが、まぁそれほど深刻じゃないだろうと見込んでいました。 今回

    華麗なる因数分解:FREAK攻撃の仕組み - ぼちぼち日記
  • ES6時代のGoogle的Good Parts: V8のstrong modeを試す - ぼちぼち日記

    1. 新しいGoogleのV8実験プロジェクト 巷ではIEの asm.js サポートのアナウンスが話題を集めていますが、実は先月末のTC39の会合でGoogleが今年新しくV8に2つのJavaScript機能の試験実装を進めていることがプレゼンされていました(すっかり見落としてた)。 Experimental New Directions for JavaScript, Andreas Rossberg, V8/Google このV8実験プロジェクトは、資料によると SaneScript (strong mode) より安全なセマンティクスと性能向上が図れるよう一部機能を削減したJSサブセット。 SoundScript*1 TypeScriptをベースとしたより堅固で効率的な型システムの導入。 の2つです。ちょうど今朝知ったのでV8のソースを見てみると、今まさに strong mode の

    ES6時代のGoogle的Good Parts: V8のstrong modeを試す - ぼちぼち日記
  • io.js-v1.0.0のリリースによせて - ぼちぼち日記

    1. 祝 io.js-v1.0.0/1.0.1 のリリース NodeやJSの情報にアンテナを張っている人なら知っているとは思いますが、昨日無事「io.js」がリリースされました。 リリース直前のバグ修正の追い込みやライブラリアップデートのごたごたは、かつてのNodeのリリースそのままでした。 今日のリリースを予言していたわけではないですが、実は昨年の8月初旬に、 ということを書いていました。 これがまさに現実になってしまったなぁ、と驚きと共に感慨深いものがあります。 Nodeの方は、今Julienが頑張ってチケットをクローズしており、近日中に Node-v0.11.15がリリースされる予定です。問題なければNode-v0.11.15のリリース2週間後にNode-v0.12 になるでしょう。 io.jsができた細かい経緯については、古川さんの「io.jsについて知っていること」が詳しいです。

    io.js-v1.0.0のリリースによせて - ぼちぼち日記
  • GoogleによるOpenSSLのfork、BoringSSLを試す。 - ぼちぼち日記

    1. はじめに、 先日、Chrome で 「Issue 401153002: Switch to BoringSSL. (Closed)」 という変更が行われました。これは、従来の Android向け Chrome では OpenSSL を利用していたのですが、今回これをGoogleがOpenSSLをforkしたBoringSSLに切り替えたことになります。 BoringSSLの発表からわずか1か月ぐらいですが、何回か Revert された末ようやく切り替えが成功したようです。 今回 BoringSSL を試しに少し使ってみましたので、そのレポートしてみたいと思います。 2. BoringSSLとは何か BoreingSSLがどういうもので、なぜOpenSSLをforkしたかは、GoogleセキュリティExpert agl さんのブログ「ImperialViolet - BoringSS

    GoogleによるOpenSSLのfork、BoringSSLを試す。 - ぼちぼち日記
  • 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 次の0.11.14が0.11系の最後となる予定とアナウンス。そう、次々はいよいよNode-v0.12です。 安定版の0.10系は、基バグフィックスなどが中心のリリースですが、今回 deps: make v8 use CLOCK_REALTIME_COARSE のような修正が入りました。Node-v0.10のV8でLinux向けにNode固有の性能向上パッチが適応されたようです。 CLOCK_REALTIME_COARSEとはどのようなものでしょうか? RedHatのドキュメント「15.2.1. CLOCK_MONOTONIC_COARSE と CLOCK_REALTIME_COARSE」では、 カーネルへのコンテ

    Node.js-v0.10.28でDate.now()が爆速になった - ぼちぼち日記
  • Node-v0.12からデフォルトでES6の一部が使えるようになった(WeakMap解説編) - ぼちぼち日記

    このエントリーは、4月24日(木)に行われる「東京Node学園 12時限目」の発表ネタを先出ししたものです。 1. はじめに、 過去2回、Node-v0.12における ES6(ECMAScript6)関連のエントリー*1を続けて書きました Node.jsにPromiseが再びやって来た! Object.observe()とNode.jsのイベントループの関係 いつNodeでES6の機能がデフォルトで使えるようになるのか…と夢見てたのですが、なんとすぐその時がやってきました。 パチパチ! Angular2.0 の開発のため Chrome M35 の機能として先行的に一部ES6対応したようです。 *2 Googleさん、えらい。 Nodeの現リーダTJも、最初はこのV8アップグレードに”ちょっと待った”をしていたみたいですが、今では”現状容認”に変わりました。 今後、V8 3.25で何か問題が

    Node-v0.12からデフォルトでES6の一部が使えるようになった(WeakMap解説編) - ぼちぼち日記
  • Node.jsにPromiseが再びやって来た! - ぼちぼち日記

    tl;dr サンプルコードを付けたら記事がかなり長くなってしまったのでご注意下さい。 Node.jsの current master で V8がアップデートされ ES6の Promise が使えるようになりました(要オプションですが)。Promise を使うと Node.jsの非同期処理がどのようになるのか、Stream と Promise を組み合わせた使い方なども含めて紹介します。 1. はじめに Nodeの次期安定版 v0.12は、すぐ出ると言われながら既に v0.10のリリースから1年が過ぎてしまいました。 現在、v0.12の主要な新機能の実装は完了していますが、まだ安定版のリリースに向けて手当できていない部分が残っている感じです。そんな残っている部分の一つだった V8 のアップデートが先週末に行われました。 deps: update v8 to 3.24.40 (3/19現在は

    Node.jsにPromiseが再びやって来た! - ぼちぼち日記
  • SPDYとLinuxの間でGoogleマップがハマった落とし穴 - ぼちぼち日記

    tl;dr 書いていたら思わず長文の大作になってしまいましたので、プロトコルオタ以外の方は文章の多さに退屈されるかと思います。GoogleマップサービスでSPDYの問題が発覚し、GoogleLinuxカーネルに修正を加えて対応したというお話です。将来 Linux + nginx + SPDY を使いリバースプロキシでサービス運用を検討されている方は参考になるかもしれません。 1. はじめに、 プロトコルに執着する年寄りエンジニア老害が叫ばれて久しい。 年甲斐もなく自分好みのパケットを追っかけるおやじエンジニアの姿を見て眉をひそめる若者も多いと聞く。 そんな批判に目もくれず、今日も一つ、プロトコルオタのネタをブログで公開したいと思いますw 今回はちょうど1年ほど前に書いたブログ記事 「GmailがハマったSPDYの落とし穴」の続編です。といっても今度の舞台は、Googleマップ。ネタ元も

    SPDYとLinuxの間でGoogleマップがハマった落とし穴 - ぼちぼち日記
  • 隠れていたNode.jsの4バイトメモリリーク、Walmart問題の解決 - ぼちぼち日記

    この記事は、 Node.js Advent Calendar 2013 - Adventar の12日目です。 1. ありがとう Ben Nodeの情報に普段アンテナを張っている人は既にご存じでしょうが、Nodeコア開発の中心的エンジニア Ben Noordhuis がNodeのコアチームから離れました。Node.jsの公式ブログに「Ben Noordhuis's Departure」としてアナウンスされています。 なぜ彼がNodeの開発を止めなければならなかったのかその経緯をここで述べることは控えますが、彼のこれまでの貢献なしでは今のNodeは存在し得なかった、と言えるほど彼は重要な存在でした。Benは、Nodeやlibuvのコードの開発だけでなく、github の issue の回答やPRのレビュー、 MLの質問の返答などNodeコミュニティにも精力的に対応し、去年来日した isaac

    隠れていたNode.jsの4バイトメモリリーク、Walmart問題の解決 - ぼちぼち日記
  • Googleの新プロトコルQUICを試す - ぼちぼち日記

    1.QUIC仕様の公開 以前、「Googleが仕掛ける新プロトコルQUICとは何か」のブログエントリーを書いたのが2月末の事でした。それから4か月経ち、今朝Googleが初めてQUICの公表(Chromium Blog: Experimenting with QUIC)を行いました。 IE11のSPDY/3対応が判明した直後でした。なんというタイミングでしょうか。 また、近いうち(来週?)には HTTP/2.0 の Implementation Draft が公開される予定です。8月上旬には、GoogleMicrosoft等が集まって初めての HTTP/2.0 の相互接続試験を行う予定です。ただ今HTTP関連のプロトコルが急激に進化する真っ最中です。目が離せません。 2. で、QUICとは何なのか? 先のChromium BlogのエントリーでQUICは、 「Quick UDP Inte

    Googleの新プロトコルQUICを試す - ぼちぼち日記
  • Node.js-v0.10リリースアナウンスの簡単な解説と感想など - ぼちぼち日記

    1. はじめに、 昨年6月末に node-v0.8がリリースされて8か月半ほど経って node-v0.10 がリリースされました。私もいくつかパッチがこのリリースに採用されていまして、ちょっと感慨深いです。 当初1月末のリリース予定でしたが、やっぱり今日まで延びました。安定版リリース直前のゴタゴタはもうNodeの風物詩なんですね。 今回、Node-v0.10のリリースにあたり、 isaacs から次のリリース文 http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/ がポストされています。英語かつ長文なので内容をちゃんと読み切れな方もいらっしゃるかと思いますので、リリース文の項目にあわせて私の視点で簡単な解説と感想などを書いてみます。(ちゃんとリリース文を理解された方はわざわざお読みにならなくても大丈夫です。) 尚、このリリースはこれ以

    Node.js-v0.10リリースアナウンスの簡単な解説と感想など - ぼちぼち日記
  • Googleが仕掛ける新プロトコルQUICとは何か - ぼちぼち日記

    まずは免責事項。 1.Disclaimer ブログの記載内容は、筆者が独自に QUIC に関する Chromium のソースを分析し、検証した結果です。 QUICに関するGoogle からの公式な技術資料は現状公開されていません。 今後、QUICの技術仕様の公表でブログの記述内容が不十分だったり、誤っている可能性があります。ご理解の上お読みください。 (注: 2013年6月27日に Google は正式に QUIC 仕様を公開しました。「Experimenting with QUIC 」 ブログの内容は大筋では間違っていませんが、当時の解析漏れやその後の開発等により、細かいところで異なっていたり、説明が大きく不足している部分もあります。お読みになる際はご注意ください。) 2. はじめに、 Googleがまたまた新しいプロトコルの実装を始めました。Web表示の高速化を目指した SPDY

    Googleが仕掛ける新プロトコルQUICとは何か - ぼちぼち日記
  • GmailがハマったSPDYの落とし穴 - ぼちぼち日記

    1. SPDYブーム到来 おかげさまで、ここ数日 SPDY が私の周りで非常にブームになってきています。 前回案内したSPDY&WS勉強会は既に200名以上の申し込みがあり、今ではSPDYネタでブログを書くと非常に注目されるうれしい状況です。時代はまさに、 SPDYはハイプサイクルを順調に駆け上がっている 状況だと思います。 図1:2012年のハイプサイクル: 図はガートナー社のプレスリリース http://www.gartner.co.jp/press/html/pr20120906-01.html から引用 SPDYが、まだ黎明期に入ったばかりなのか、それとも既にピーク期に入ったのか、それは歴史が証明してくれるでしょう。 ということで勉強会までSPDY熱が冷めないよう、私もいろんなSPDYネタを出していきたいと思います。 2. GmailがハマったSPDYの落とし穴とは 先日、 Goo

    GmailがハマったSPDYの落とし穴 - ぼちぼち日記
  • Node API のクラス図を公開しました。 - ぼちぼち日記

    東京Node学園祭2012 アドベントカレンダー 13日目の記事です。 はじめに、 自分が Node.js を一番最初に使い始めた頃、Hello World のサンプルコードを動かしたのはいいけど、その後にNodeマニュアルを読んで勉強し始めたら内容が全然理解できず、挫折しちゃった思い出があります。 人のサンプルコードやモジュールの中身とかもいろいろ見てみたんですが、 .on() ってなんのオブジェクトにもつけていいの? req と res とかどっから出てきたの? どう使うの? イベントってどれだけ種類があって、どういう時に発生するの? なんて???がたくさんついて前に進みません。マニュアルを見てもなかなか探し出せないし、読んでもちゃんと書いてあることが理解できません。 一度マニュアルで調べたところもすぐ忘れる。何度も同じところを調べているのに全然ものになっていない。あぁこりゃダメだなと

    Node API のクラス図を公開しました。 - ぼちぼち日記
  • libuvで消費者ー生産者問題を解く(Condition Variableを使う) - ぼちぼち日記

    1. 最近 libuv の開発が熱い V8と並ぶNode.jsの屋台骨のlibuvですが、最近 libuv 周りの開発が熱いです。 まず libeio が削除され、ファイルI/O は libuv独自のスレッドプールを用いた管理方式に変わりました(unix: remove libeio)。 これまでファイルI/Oは libeio で同時スレッドが4つに限定されてされていましたが、今月末ぐらいに自動的にスレッド数をチューニングするように変える予定らしいです。 これが実装されると多数のファイルを同時に読み書きするような場合の性能がぐんと向上することでしょう。 そしてNodeのイベント管理の丸、 libev の置き換え作業も進められています(unix: remove libev )。 どんな実装になるのか楽しみです。 2. Condition Variable のサポート このようにいろいろ機能

    libuvで消費者ー生産者問題を解く(Condition Variableを使う) - ぼちぼち日記
  • Node.js-v1.0 リリースに向けてどうなる? - ぼちぼち日記

    9/24にサンフランシスコで Dataweek2012のカンファレンスにてNodeSummit が開催されました。ちょうど今朝 Node の Gatekeeper である isaacs のプレゼンがあり、資料を見てみると今後の Node に関する話題(node-v1.0のリリースに向けて)が記載されていたので紹介したいと思います。 オリジナルの資料は http://j.mp/2012-dataweek-state-of-the-node にあります。(Keynote ファイルです。) 今回、今後の展望について述べられている後半のスライドの部分だけ意訳してみます。 (原文は後に引用しています。) API廃止について、 Node が意図的に API を変更する時代は終わった。 あなた方のプログラムが今動作しているなら、来年もきっとそれが動作するよう頑張ります。 これまでは Node がここまで

    Node.js-v1.0 リリースに向けてどうなる? - ぼちぼち日記