GoogleがOpenSSLをフォークした「BoringSSL」を公開 30
ストーリー by headless
公開 部門より
公開 部門より
GoogleがOpenSSLをフォークし、「BoringSSL」として公開した(ImperialVioletブログの記事、
Ars Technicaの記事、
本家/.)。
Googleは何年もの間、OpenSSLに数多くのパッチを当てて使用していたという。一部のパッチはOpenSSLのメインリポジトリに取り込まれたが、大半はAPIやABIの安定性の問題があるなどの理由で取り込まれていなかった。AndroidやChromeなどの製品はパッチの一部を必要とするが、パッチは70以上もあるために作業が複雑になっていたそうだ。そのため、OpenSSLをフォークして、OpenSSL側の変更をインポートする方式に変更したとしている。BoringSSLは近いうちにChromiumのリポジトリに追加される予定で、いずれAndroidや内部的にも使われるようになる。ただし、BoringSSLではAPIやABIの安定性は保証されず、OpenSSLプロジェクトを置き換えるつもりもないとのこと。Googleでは引き続きOpenSSLにバグ修正を送り、Core Infrastructure InitiativeとOpenBSD Foundationへの援助も続ける。また、LibreSSLとの間でも変更点を互いにインポートすることになるとのこと。この動きに対しては好意的な反応が多くみられ、Theo de Raadt氏もABIの互換性よりも安全性が重要だとして大歓迎している。
Googleは何年もの間、OpenSSLに数多くのパッチを当てて使用していたという。一部のパッチはOpenSSLのメインリポジトリに取り込まれたが、大半はAPIやABIの安定性の問題があるなどの理由で取り込まれていなかった。AndroidやChromeなどの製品はパッチの一部を必要とするが、パッチは70以上もあるために作業が複雑になっていたそうだ。そのため、OpenSSLをフォークして、OpenSSL側の変更をインポートする方式に変更したとしている。BoringSSLは近いうちにChromiumのリポジトリに追加される予定で、いずれAndroidや内部的にも使われるようになる。ただし、BoringSSLではAPIやABIの安定性は保証されず、OpenSSLプロジェクトを置き換えるつもりもないとのこと。Googleでは引き続きOpenSSLにバグ修正を送り、Core Infrastructure InitiativeとOpenBSD Foundationへの援助も続ける。また、LibreSSLとの間でも変更点を互いにインポートすることになるとのこと。この動きに対しては好意的な反応が多くみられ、Theo de Raadt氏もABIの互換性よりも安全性が重要だとして大歓迎している。
悪いAPIを消すタイミング (スコア:5, 興味深い)
OpenBSD/LibReSSL は 互換性を維持して ports/packages と同時にリリースする戦略なのに対して
Google/boringSSL は手元のソフトウェアで使えればいいから互換性無視なんですね。
用途が違うから互換性を壊すタイミングが違うけど、
OpenBSD も最終的には危険な API を obsolete にしていくつもりらしいので
方向性は同じということでしょう。
それよりも Theo が our safetybelts と呼ぶ以下の関数について議論が深まり、
POSIX かそれに準ずる標準環境になるということはあるのでしょうか。
arc4random strlcpy strlcat
explicit_bzero reallocarray
timingsafe_bcmp timingsafe_memcmp
もう strl* については散々議論されてきましたが、他にも
arc4random [blogspot.jp] や
reallocarray [undeadly.org] のように
一般人でも安全に書ける関数が標準で必要だと思いますが、どうでしょう。
timingsafe_* については OpenBSD の別の人が書いています [tedunangst.com]。
Re: (スコア:0)
RC4なんかから派生したrandom number generatorがなぜ必要とされるのかがよく解らない
いまどきは/dev/randomなどを生で使うのも推奨されなくなったんだろうか
Re: (スコア:0)
/dev/randomはエントロピーが貯まるまでブロックするので大量の乱数を高速に生成する必要があるときには使えない。疑似乱数のシードにするのが一般的だから下手な使い方ができる。/dev/urandomについてはリンク先見ろよ。
Re:悪いAPIを消すタイミング (スコア:3, 参考になる)
/dev/urandomについてはリンク先見ろよ。
それ長いんだよね。
Attacking /dev/(u)random usage という部分の前半は
とかいう偏執狂っぽい話。
でもユーザ権限で簡単確実に urandom を使う方法は存在しないというのはわかる。
後半、Linux にはエントロピーを確認できる ioctl(RNDGETENTCNT) があるけど
read するまでの間の TOCTOU 対策はどうするの (だから OpenBSD ではその ioctl インターフェースを廃止した) とか、
同時にエントロピーをクリアする ioctl インターフェース (RNDZAPENTCNT, RNDCLEARPOOL) もあるから信用できないとか。
とにかくそんなこと考えずにただポンと使える arc4random_buf みたいなのが欲しい。できれば POSIX で。
という話らしい。
大歓迎してるようには読めない (スコア:3, 参考になる)
Theo de Raadtのポストは、不安になっているメンバーを励ますものに読めました。
I suspect everyone working on LibReSSL is happy to hear the news about BoringSSL. Choice is good!! Their priority is on safety, not on ABI compatibility. Just like us. Over time, I suspect google's version will also become 'reduced API', since they require less legacy application support. That may give LibReSSL the opportunity to head in the same direction, if the applications are willing...
試訳: BoringSSLのニュースを聞いて、LibreSSLに携わっている人たちは喜んでいると思う。選択肢があるのは良いことだ! 彼らの優先は安全性であり、ABI互換性ではない。これは我々と同じだ。時が経つにつれ、Google版も、また「単純化されたAPI」(reduced API)になっていくだろうと思う。これは、LibreSSLが、同じ方向性で先んじる機会があるということだ。アプリケーションがそれを求めるなら、だが。
要は、我々にもチャンスはあるからがっかりするな、と言っているように見えます。
このメールを大歓迎と受け取ってしまうのは、ちょっとデリカシーがないような。
Re:大歓迎してるようには読めない (スコア:2)
私も同感です。
I suspect 〜 だと、多くの場合〜の部分は良くないことや望ましくない事を意味するからです。
openssl から分裂して LibReSSL をフォークした手前ひっこみが付かないので
BoringSSLに対しても、自虐的に「Choice is good!! 」と言ってるように感じます
Re: (スコア:0)
That may give LibReSSL the opportunity to head in the same direction, if the applications are willing...
試訳: ... これは、LibreSSLが、同じ方向性で先んじる機会があるということだ。アプリケーションがそれを求めるなら、だが。
この"head"は「先んじる」というよりも「向く」ではないでしょうか。
彼の予定 [marc.info] (Finally, we would like to apply light pressure against the worst & least used APIs, to convince application's to move to safer APIs. Shrink the API exposure, sim
なぜBoring? (スコア:0)
なんでBoring(うんざりするような、退屈な、つまらない)という語を使ったんだろう?
Google側としては、嫌々実装する感じなんだろうか?
Re:なぜBoring? (スコア:3, 参考になる)
本人のブログ末尾に aspirational と書いてある通り、
セキュリティ関連ライブラリの目標 [slashdot.org]だからでしょうね。
Re: (スコア:0)
OpenSSLに対する皮肉
Re: (スコア:0)
車輪の再発明だからでしょう。
ハッカーにやられるのとgoogleにやられるのと (スコア:0)
どっちがいい?的な
Re: (スコア:0)
Boringな日本企業にやられるよりはいいんじゃない?
Re:ハッカーにやられるのとgoogleにやられるのと (スコア:1)
じゃあ韓国企業の最高レベルの暗号技術 [srad.jp]でひとつ
ChromiumはNSS使ってたんじゃなかったっけ? (スコア:0)
NSS捨てちゃうのかな?
Re:ChromiumはNSS使ってたんじゃなかったっけ? (スコア:2, 参考になる)
Android版以外はNSS、Android版だけOpenSSL
全プラットフォームでNSSからOpenSSLに移行しよう、って話は出てるけど、実際の動きはないに等しい
https://docs.google.com/document/d/1ML11ZyyMpnAr6clIAwWrXD53pQgNR-DppM... [google.com]
https://code.google.com/p/chromium/issues/detail?id=338883 [google.com] (メタバグ)他プラットフォームごとに個別のメタバグあり
NSS本体のアップデートにもChromium側でちゃんと追随してるし、本体へのコミットも大きいし、NSSを捨てるとは思えないけど
自前でのOpenSSLフォークはサーバ側のためだと思われ
流石に仕込まないよね (スコア:0)
速攻でバレるだろうし。
Re: (スコア:0)
16年見過ごされていたOpenSSLのバグとかあったし、NSAだけに速攻でバレるとかいうオチにならなければいいけど。
くだらないオフトピ (スコア:0)
boeingに空目した。
空目しました (スコア:0)
BingSSL…!?
Re:阿部信者なら理解できるんじゃないか (スコア:1)
阿部って「やらないか」の人?
Re: (スコア:0)
Re: (スコア:0)
うーんそれは阿部というよりは上田ではないかな。
Re: (スコア:0)
やばいこの2人が何を言っているかさっぱり分からない。
Re: (スコア:0)
スラドの国政批判はいつも幼稚だな
Re: (スコア:0)
国政批判ではなく政治に関する知識が幼稚なんだよ。
脈絡もなく「国政批判」という単語を出すあんたも含めて。
Re: (スコア:0)
知識が幼稚ってのもなかなか聞かない用語だな
Re:阿部信者なら理解できるんじゃないか (スコア:1)
だが当を得ている