このページの本文へ

前へ 1 2 次へ

Googleの狙いと背景を分析する

GoogleからOpenSSL派生版「BoringSSL」登場

2014年06月27日 11時00分更新

文● 鈴木淳也(Junya Suzuki)

  • この記事をはてなブックマークに追加
  • 本文印刷

OpenBSDコミュニティが生み出したフォーク
「LibReSSL」

 こうした経緯の中で突如出現したのが「LibReSSL」だ。OpenBSD.orgプロジェクトの一部として誕生したもので、現在はOpenBSDのみをターゲットとしている。冒頭でも紹介したように、Heartbleed発覚から1週間後にはすでにプロジェクトが動き始めており、その後さらに1週間を経て最初のコードが公開された。LibReSSLOpenSSLのフォークであり、既存APIを維持しつつ別の派生ソフトウェアとして存在している。

OpenBSDコミュニティによる「LibReSSL」

 Ars Technicaの記事によれば、OpenBSD創始者のTheo de Raadt氏はOpenSSLのフォークを行なう決断をした理由について、OpenSSLのソースコードには非常に無駄があり、これらを一度整理する必要性があったことを指摘している。

 実際、OpenBSDのチームは1週間でOpenSSLのソースツリーの半分を削除しており、これが前述9万行のソースコード削除につながったとみられる。これはOpenSSLのプログラミング技術の問題というよりも、本来はすでに必要ないような古いコードや記述が多数含まれており、「無駄を省いて可読性を高める」ことが狙いのひとつのようだ。

 また、プロジェクト運営に関する問題も指摘されている。de Raadt氏がメーリングリストに投稿したとされる文書の中で、「OpenSSL is not developed by a responsible team.」(OpenSSLは責任あるチームによって開発されていない)という一文がある。

 つまり、先ほどの説明にもあったように、OpenSSLプロジェクトは責任あるチームによって運営されておらず、その利用範囲の広さとは裏腹に「信頼性の低いコード」が紛れ込む余地が多分に存在しているということを同氏は指摘している。仮に問題の原因がわかっていても、その根本対策が行なわれなければ同じ問題が再び発生する可能性があるからだ。

対策パッチよりもソフトウェアを根本から建て直す、
Googleの「BoringSSL」

 LibReSSLの根底にあるのは、「その場その場の対策から根本的な処置への移行」だ。OpenSSLに問題が発見されるたびに対策を行なうよりも、自ら対策しやすい形に作り替えてしまったほうがいいというアイデアだ。同じ発想の末、“パッチ”よりも“フォーク”を選んだのがGoogleだ。

 同社の暗号技術専門家のAdam Langley氏はブログの中で、「BoringSSL」と呼ばれるGoogle版OpenSSLフォークを発表するに至った経緯を紹介している。

 問題が発生するたびにOpenSSLにパッチを当て続け、場合によっては一度に70以上のパッチを充てる必要があるなど、その労力だけで相当な負担だったことを報告している。これらパッチは一部がOpenSSL本家のリポジトリに還流されたものの、残りの多くは現在もパッチとして残り続け、ソースコードの複雑性を高める悪循環となっている。ゆえに、従来のパッチ型モデルとは別に、OpenSSLで実装される機能を抜き出した新しいコードを別途用意する決断に至ったことを報告している。

Googleの「BoringSSL」

 これが「BoringSSL」で、Langley氏もブログの中で明記しているが、その狙いは「OpenSSL」の置き換えではなく、「よりシンプルなコードベース」のソフトウェアを用意することにあるとしている。APIやABIの互換性は維持していくものの、その安定性は現在のコードでは保証されず、まだGoogle内部での試験的なプロジェクトの位置付けだ。

 一方で、OpenSSLだけでなくLibReSSLでの変更もBoringSSLでは取り込んでいく方針としており、その意味では共存関係にある。Chromiumリポジトリでコードが公開され、今後はAndroidへの導入や内部での利用を想定するなど、外部への積極展開よりも内部利用が中心となっている。OpenSSLへのバグレポートやOpenBSDへの投資は引き続き行なっていく予定で、両プロジェクトとの関係は今後も維持されていくとの方針だ。

Googleの実際の狙いは

 Googleの実際の狙いについてはArs TechnicaZDNetでも紹介されているが、OpenSSLがプロジェクト的に慢性的な問題を抱えている点に加え、複雑性を増すコードに対して“内製”を目標に自社製品のOpenSSLからの順次置き換えを狙っているのがLibReSSLBoringSSLの共通の目標だという話だ。

 やり方は異なるものの、究極的には「内部利用に向いた軽量コードのソフトウェアSSL/TLSライブラリ」の開発が2つの“フォーク”プロジェクトの目的となる。先ほどのZDNetの記事でも紹介されているが、OpenBSDのde Raadt氏のBoringSSLに関する分析では「Googleの狙いは“互換性”よりも“安全性”」と指摘している。

 基本的にはOpenSSL全体の置き換えというより、内部利用を目的としたライブラリの軽量化と最適化にあるようだ。その意味で、「GoogleがOpenSSLプロジェクトを乗っ取る」ようなものではないとみられる。

■関連サイト

前へ 1 2 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン