LibreSSL開発元The OpenBSD Project
最新版3.9.2[1]
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
歴史
OpenSSLからの変更点
メモリ関係
CVSログからは、潜在的な二重解放の可能性が修正されていることもわかる[26]。 潜在的な問題を早期に修正できるよう、安全のために設計されたコンパイルオプションやフラグ (-Wall, -Werror, -Wextra, -Wuninitialized) が既定で有効化されている。コードの可読性の向上(Kernel Normal Form、スペースによる整形、改行)や不要なラッパーやマクロの除去により、プログラムの正当性の検証やセキュリティ監査が容易となっている。 2038年問題にも対応済みである。
積極的な対策