The OpenBSD project produces a FREE, multi-platform 4.4BSD-based UNIX-like operating system. |
OpenBSDプロジェクトの開発者でありLibreSSLの開発に携わっているBob Beck氏は5月17日(カナダ時間)、「BSDCan2014: LibreSSL」においてLibreSSLの開発がはじまってからのおおよそ30日間のできごとを伝えた。なぜOpenSSLからLibreSSLを派生させ別プロジェクトとして取り組むことにしたのか、具体的にどういった変更を実施したのかなどが説明された。プロジェクトを立ち上げるきっかけはHeartbleed脆弱性が決め手だったのではなく、そのあとに取り組んだ作業によって別プロジェクトにするという判断が決定的なものになったと説明があった。懸念された点は特に次のとおり。
- OpenSSLでは処理速度を引き上げるために独自のmalloc実装に置き換わっているが、このmallocはセキュリティ上さまざまな問題を抱えておりこれを利用したままではセキュリティを確保することはできない
- OpenSSLプロジェクトは外部からのパッチをなかなかマージせず、外部の関係者がバグと判断して報告したものが何年も放置されている
- コードベースがひどいため、こうしたコードベースに新しい開発者が参加したいとは思わない
- 多くのオペレーティングシステムをサポートするためにソースコードが複雑なマクロ構造(深い#ifdefが散在)を持っておりわかりにくい
- ソースコードの記述スタイルが独自形式になっておりわかりにくい。よりモダンな書き方にはなっていない
OpenSSLは本来オペレーティングシステムがすべき処理をOpenSSL側で実施している部分があり、そういったものをOpenSSL側で実装すべきではないと指摘。オペレーティングシステムがすべき処理が対象のオペレーティングシステムには存在していない、またはバグを抱えているといった場合、それはOpenSSL側で対処するのではなくオペレーティングシステムで対応すべきだと指摘している。
またLibreSSLはOpenSSLのバグトラッキングシステムに登録されているバグを修正する取り組みを進めていることにも言及。これらバグはOpenSSL側では修正されておらず、LibreSSLのみでの修正となる。また公開すべきではないAPIまで公開されているといった潜在的に問題視される部分の改善も進めていると説明があった。
LibreSSLはAPI互換性を確保するなどしてOpenSSLの置き換えを目指すと説明。将来的にはOpenSSLをLibreSSLに入れ替えてソフトウェアをビルドするだけでLibreSSLへの移行が可能になるという。LibreSSLは移植性を考慮して開発が進められている。LibreSSLを搭載したOpenBSD 5.6が2014年11月にリリースされる予定になっているが、これと前後するタイミングでほかのオペレーティングシステムもOpenSSLからLibreSSLへの移行を進める可能性がある。
もともとBSDCan 2014 - MONTPETIT 207 10:00-11:00の枠はPC-BSDの開発者であるKris Moore氏の発表が予定されていたが、数日前にシカゴ空港で発生した問題で記録的なフライトキャンセルが発生。さらに前後して米国で発生した大規模な悪天候などの影響でフライトキャンセルが続き、Moore氏のカンファレンスへの参加が不可能になった。Bob Beck氏の発表は代替として急遽都合されたものだが、今もっとも話題になっているトピックであるだけに関係者の関心は高く、会場は立ち見が出る状況だった。