OpenSSLとLibreSSLを比較

    「OpenSSL」と「LibreSSL」の概要

    「OpenSSL」と「LibreSSL」は、通信用ソフトウェアで、SSL/TLSプロトコルのオープンソース実装です。

    ■「OpenSSL」とは

    OpenSSLは、オープンソースのSSL/TLS暗号化ライブラリです。暗号化プロトコル「SSL」を利用するために必要な機能を提供しています。

    各種環境に対応しており、各種プログラミング言語用にOpenSSLライブラリを利用できるようにするためのラッパーも用意されています。

    さまざまなソフトウェアに暗号通信機能を組み込む手段として、世界レベルで幅広く利用されてきており、世界中のWebサイトで事実上の業界標準として圧倒的シェアを維持してきました。

    ■「LibreSSL」とは

    LibreSSLは、SSL/TLSプロトコルのオープンソース実装です。

    LibreSSLはOpenSSLの派生改良版です。OpenSSLの数々の問題点を解決するために、OpenBSD Projectにより「OpenSSL」からフォークされました。

    OpenSSLを全面的にリファクタリングすることにより、安定かつセキュアなソフトウェアとすることを目的として、「セキュアで安定したコードベース構築」「潜在バグ修正」「現代的プログラミングプラクティス導入」「ポータビリティ再設計」などを実施しています。

    安全性比較

    ■OpenSSL

    OpenSSLプロジェクトには、運営面や品質面などにおいて多くの問題があり、世界中を震撼させた「Heartbleed」脆弱性問題などが発生するなど、セキュリティを危惧する声が高まっていました。

    ・サポート体制が脆弱
    ・メンテナンスが不十分---外部関係者がバグ報告したものが何年も放置されている
    ・ソースコード品質が低い---複雑なマクロ構造により可読性が低い など

    ■LibreSSL

    セキュリティを最重要視しているOpenBSDは、OpenSSLをそのまま使い続けることはできないと判断し、OpenBSD用SSL/TLS通信用ソフトウェアとして、「OpenSSL 1.0.1」からフォークさせて「LibreSSL」プロジェクトを開始しました。

    LibreSSLでは、OpenSSLが内包する脆弱性を排除するため、全面的な改修を実施しています。
    ・ソースコード上の各種問題に対処
    ・大量の不要ソースコードを削除---不要機能の削除 など

    その結果、LibreSSLはOpenSSLと比較して見通しの良い健全なソースコードになり、セキュリティも大幅に向上しています。

     

    参考元サイト
    Qiita →LibreSSL の意義

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    基本情報

    概要

    OpenSSL(オープンエスエスエル)とは、オープンソースSSL/TLS暗号化ライブラリです。世界中のWebサイトで圧倒的シェアを持っており、事実上の業界標準となっています。

    「SSL」とは

    SSL(Secure Sockets Layer)とは、インターネット上で通信を暗号化する技術です。安全な接続を行う場合に有効な仕組みです。第三者によるデータ盗聴/改ざんなどを防ぐことができます。

    公開鍵を使った安全な通信路をつくるための基盤を「PKI(Public Key Infrastructure)」といいます。SSLもPKIの中の1つの暗号化通信プロトコルです。

    SSLは、主に2つの機能を提供します。「信頼性担保」と「暗号化による安全性の担保」です。

    URLに「https」のように「s」が付いて表示されている場合、SSLで接続されている(安全度が高い)サイトとなります。

    基本説明

    OpenSSLは、暗号化プロトコル「SSL」を利用するために必要な機能を提供する暗号化ライブラリです。

    コアとなるライブラリ(C言語実装)は、基本的な暗号化関数/さまざまなユーティリティ関数を実装しています。SSLライブラリ、暗号化ライブラリ、コマンドラインツールで構成されています。

    各種プログラミング言語/OSに対応しています。各種プログラミング言語用にOpenSSLライブラリを利用できるようにするためのラッパーも用意されています。

    さまざまなソフトウェアに暗号通信機能を組み込む手段として、世界レベルで幅広く利用されています。

    セキュリティの根幹を支えるソフトウェアなのですが、セキュリティホールが多く、大きな脆弱性問題を多数引き起こしています。

    経緯

    OpenSSLは、オーストラリアの「Eric A. Young」と「Tim J. Hudson」による「SSLeay」というソフトウェアを基にしています。その後、ボランティア組織「OpenSSL Project」によって「OpenSSL」となりました。

    最初にリリースされたのは1998年で、その後、Google、Amazon、Facebookといった企業が使い始め、世界中のWebサーバに普及していきました。

    2006年、アメリカ国立標準技術研究所(NIST)に承認された初めての暗号ソフトウェアとなりました。

    OpenSSLで起きた主な脆弱性

    2006年「Debianの弱い鍵」問題
    擬似乱数生成器が正しく動作しなくなり、生成される暗号鍵が予測可能なものとなってしまった脆弱性です。

    2014年「Heartbleed」問題
    サーバ側メモリを読むことで、機密情報にアクセスが可能となる脆弱性でした。この脆弱性が2年間気付かれずに放置されていたため、OpenSSL史上、最悪な事件となりました。

    2014年「CCS Injection Vulnerability」問題
    過去のOpenSSLのほとんどのバージョンが該当し、「一時的な暗号鍵が、第三者でも予想できてしまう」という脆弱性でした。

    2016年「DROWN攻撃」問題
    「新しいプロトコルであるTLSを使ったクライアントとサーバ間の接続を復号化できる」という脆弱性でした。

    「OpenSSL」フォーク製品

    OpenSSLの「Heartbleed」事件を受け、OpenSSLから「LibreSSL」がフォークされました。コードを一新してセキュリティと安定性を改善することを目指しています。

    Googleは、OpenSSLから「BoringSSL」をフォークさせました。OpenSSL、LibreSSL双方の開発者と協力していくとしています。

    TOPに戻る

    主な機能

    ポイント

    ・BIOによるI/Oの抽象化
    ・コマンドラインインターフェイス
    ・豊富な暗号方式 (暗号スイート一覧)
    ・マルチスレッド対応
    ・Re-Negotiation

    TOPに戻る

    同様製品(概要情報)

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「LibreSSL」「BoringSSL」「GnuTLS」など。

    TOPに戻る

    導入事例

    SSL技術を支えるデファクトスタンダードとして、世界規模で圧倒的シェアがあります。

    TOPに戻る

    ライセンス情報

    OpenSSLのライセンスは、「Apache License 1.0」「四条項BSDライセンス形式」のデュアルライセンスです。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。


    基本情報

    概要

    LibreSSL(リブレ エスエスエル)とは、SSL/TLSプロトコルのオープンソース実装(通信用ソフトウェア)で、「OpenSSL」の派生改良版です。圧倒的シェアを持つが問題が多い「OpenSSL」を代替できるものとして期待されています。

    基本説明

    LibreSSLは、OpenBSD Projectにより「OpenSSL」からフォークされたソフトウェアです。

    OpenSSLを全面的にリファクタリングすることにより、安定/セキュアなソフトウェアにすることを目的としています。

    「セキュアで安定したコードベース」「潜在バグ修正」「現代的プログラミングプラクティス導入」「ポータビリティ再設計」などを目指しています。

    TOPに戻る

    主な特徴

    「OpenSSL」の問題点

    OpenSSLは、httpsでのセキュア暗号化通信のほぼすべてで使用されており、圧倒的シェアを持つSSL/TLS通信用ソフトウェアです。事実上のデファクトスタンダードになっています。
    →OpenSSLとは

    OpenSSLプロジェクトには、運営面/品質面などにおいて多くの問題があるとされています。
    ・サポート体制が弱い(メンテナンスが十分になされていない)
     →世界中を震撼させた「Heartbleed」脆弱性
    ・処理速度向上用独自実装「malloc」が非セキュア
    ・外部からのパッチをなかなかマージしない
     →外部関係者がバグ報告したものが何年も放置されている
    ・ソースコード品質が低い
     →複雑なマクロ構造で分かりにくい

    「LibreSSL」へフォーク

    セキュリティを重要視するOpenBSDプロジェクトは、多くの問題があるOpenSSLを使い続けることはできないと判断し、2014年に「OpenSSL 1.0.1」からフォークして「LibreSSL」プロジェクトをスタートさせました。

    フォーク後の最初の1週間で90000行以上の使われていない不要なコードを削減しました。その後も改善を続けており、LibreSSLはOpenSSLに較べて、非常に健全なソースコードになっており、セキュリティを格段に高めています。

    継続的メンテナンスを続けているLibreSSLは「OpenSSLを代替するもの」として大きく期待されています。

    「OpenSSL」との互換性/相違点

    LibreSSLは、OpenSSLとの互換性(プログラミングAPIレベル)を持たせることを基本方針としています。差し替えてリビルドするだけで置き換えられる狙いがあります。徹底したリファクタリングのすべてにおいて、OpenBSDポートツリーを対象としたAPI互換性テストが行われています。

    しかし、フォーク後の数々のメンテナンスにより、両者には機能的な差異が生まれています。

    主な相違点
    ・OpenSSLとのバイナリ互換性の欠如
    ・「Heartbeat拡張」の削除
    ・疑似乱数生成アルゴリズム「Dual_EC_DRBG」の削除
    ・各種機能削除(FIPS140-2サポート、SRP、SSLv3、動的エンジンサポート、MDC-2DES、SHA-0など)
    ・脆弱プロトコルの無効化
    ・機能追加(新しい暗号スイートなど)
    ・メモリ呼び出しは、OpenSSL独自方式から標準ライブラリに変更
    ・安全用コンパイルオプション/フラグのデフォルト有効化

    他プラットフォーム版

    LibreSSLはOpenBSD用としてフォークされましたが、他プラットフォーム用に移植されたポータブル版もリリースされています。

    サポートプラットフォームは、
    ・BSD系
    ・Linux系
    ・商用Unix系
    ・Mac OS X
    ・Windows系
    など多岐に渡っています。

    TOPに戻る

    同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「OpenSSL」など。

    TOPに戻る

    導入事例

    「OpenBSD 5.6」からLibreSSLが標準になっています。

    その他の各種OSでも「OpenSSL」 から「LibreSSL」へ乗り換える動きが進んでいます。

    TOPに戻る

    ライセンス情報

    LibreSSLのライセンスは「Apache License 1.0」「4条項BSDライセンス」「ISCライセンス」「パブリックドメイン」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。