Loading AI tools
ウィキペディアから
LibreSSLは、TLS/SSLプロトコルのオープンソースによる実装である。TLSの実装にOpenSSLを利用していたOpenBSDの開発者が、2014年4月に明らかとなったOpenSSLのハートブリード脆弱性を受けて独自にフォークしたものである[2][3][4][5][6]。OpenSSLのコードを見直し、よりセキュアな実装とすることを目的としている[7]。
LibreSSLはOpenSSL 1.0.1ブランチからフォークしたものであり、OpenBSDプロジェクトの標準TLSライブラリとして利用されている[8]。
OpenSSLのハートブリード脆弱性が明らかとなった後、OpenBSDプロジェクトではOpenSSLのソースコードの監査を新たに行った。その結果、OpenSSLをフォークし、OpenBSDプロジェクト自身によって管理する必要があると判断した[2]。libressl.orgドメインの取得は2014年4月11日、プロジェクト名の発表は同月22日であった。
コードの見直しの最初の一週間で、C言語によるコードのうち90,000行以上が削減された[7][9]。削減されたのは、古く使われていないコードや、古かったり現在となってはほとんど使われていないシステムのサポートのためのコードである。当初LibreSSLはOpenBSD 5.6においてOpenSSLを置き換えることを目的としていたが、安定版を他のプラットフォーム向けにもバックポートして公開することとした[10][11]。2014年4月現在、LibreSSLプロジェクトでは外部からの継続的な経済的な支援を求めている[9]。
6月5日、いくつかのOpenSSLのバグが公開された。いくつかのプロジェクトにはあらかじめバグの詳細が伝えられていた[12]が、LibreSSLには伝えられていなかった。OpenBSDプロジェクトのテオ・デ・ラートは、OpenSSLの開発者がこの情報を意図的にOpenBSDおよびLibreSSLプロジェクトに伝えなかったとして非難している[13]。
6月20日、GoogleによってOpenSSLの新たなフォークとしてBoringSSLが発表された。Googleは、バグ修正に関する情報をLibreSSLと相互にやり取りすることを表明している[14][15]ほか、LibreSSL側の要請に応じてGoogle自身によるコミットを従来のライセンスだけでなくISCライセンスで再ライセンスしている[14][16]。6月21日、テオ・デ・ラートはBoringSSLを歓迎する旨を表明し、他プラットフォーム向けのLibreSSL Portableの概要を発表した[17]。6月20日にはLinux向けの、7月8日にはOS XおよびSolaris向けのポートの準備が開始された[18][19]。
7月11日、ポータブル版のLibreSSL 2.0.0が公開された[20][21]。また、2.1.4以降はWindowsにも対応している[22]。macOS High Sierra以降、現行macOS VenturaではOpenSSLに代えLibreSSLが標準インストールされている[23]。
LibreSSLでは、メモリ呼び出しがOpenSSLで用いられていた独自のものから標準ライブラリによるもの( strlcpy
、calloc
、asprintf
、reallocarray
など)に変更されている[24][25]。これにより、詳細なメモリデバッガを用いたり、ASLR・NXビット・スタックカナリアによってプログラムのクラッシュを観察することでバッファオーバーフローを検出することが可能となる。
潜在的な問題を早期に修正できるよう、安全のために設計されたコンパイルオプションやフラグ (-Wall, -Werror, -Wextra, -Wuninitialized) が既定で有効化されている。コードの可読性の向上(Kernel Normal Form、スペースによる整形、改行)や不要なラッパーやマクロの除去により、プログラムの正当性の検証やセキュリティ監査が容易となっている。
2038年問題にも対応済みである。
擬似乱数生成器による乱数のシード生成も、より安全となるよう改良されている[27][28]。
また、新しい暗号アルゴリズム(ストリーム暗号であるChaCha、メッセージ認証コードであるPoly1305)、楕円曲線暗号(512ビットまでのbrainpool[29])にも対応している。
SSL 3.0における脆弱性であるPOODLEの報告をうけて、10月16日リリースのバージョン2.1.1よりSSL 3.0を既定で無効化した[30]。
ハートブリードへの対応としてLibreSSLから除去された最初の機能は、Heartbeat拡張そのものであった[31]。また、他のオペレーティングシステムやハードウェアアーキテクチャのサポート(バージョン9までの「クラシックな」Mac OS、NetWare、OS/2、OpenVMS、16-bitのWindowsなど)、不要あるいは安全ではないと考えられるプリプロセッサマクロ、アセンブリ言語、C言語、Perlのための古いデモ・ドキュメントファイルも除去されている。
NSAによるバックドアが存在すると疑われている[32]Dual_EC_DRBGは、これを必要とするFIPS 140-2標準と共にサポートが廃止された。
MD2、SSL 2.0、ケルベロス認証、Password Authenticated Key Exchange by Juggling (J-PAKE)、Secure Remote Password protocol (SRP)といった使われていないプロトコル、安全ではないアルゴリズムのサポートも廃止されている。
OpenSSLに対する批判の一つに、報告されているにもかかわらず長年修正されずに放置されているバグの数が挙げられる。LibreSSLではこれらのバグの修正も行っている[33]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.