さよなら OpenSSL 1.0.1


SSL/TLS 通信のデファクト OpenSSL ですが、お使いのバージョンをご存知ですか。
もし 1.0.1 ならサポートが今月末までですよ。

OpenSSL とは

Webブラウザでショッピングしたりする時など、https:// にアクセスしている時は SSL/TLS 暗号化通信をしています。このような暗号化された通信を行っている場合、SSL/TLS 通信モジュールとして OpenSSL が使われていることが多いです。それは、自分が選んでそうしているというよりなんとなくそうなっているのではないでしょうか。

OpenSSL は広く普及して様々なソフトウェアで利用されています。商用のソフトウェアやネットワーク機器なんかに組み込まれていることもあります。

その OpenSSL にはバージョンがあって、サポート期限があることをご存知でしょうか?

OpenSSL の バージョン と リリース方針

現在の OpenSSL の Release Strategy を見てみると以下のように書かれてます。

  • バージョン 1.1.0 は 2018-08-31 までサポート
  • バージョン 1.0.2 は 2019-12-31 までサポート (LTS)
  • バージョン 1.0.1 のサポートは 2016-12-31 で終了
  • バージョン 1.0.0 はもうサポートされていません
  • バージョン 0.9.8 はもうサポートされていません

サポートが終了すると、セキュリティ脆弱性が発見されても修正版が出されなくなります。

OpenSSL のセキュリティ脆弱性

OpenSSL プロジェクト は脆弱性を発見すると、以下のメーリングリストでアナウンスを出し、修正版をリリースします。
http://marc.info/?l=openssl-announce&r=1&w=2
2016年は大体3~4ヶ月に一度くらいの修正版リリースがありました。

OpenSSL 修正版の適用

OpenSSL の修正版がリリースされた後には、Linux等のディストリビューションがその修正のパッケージをリリースします。
ソフトウェアで OpenSSL を組み込んでいるものは、修正を適用したバージョンをリリースしたりもするでしょう。
商用製品のパッチがリリースされたりすることもあります。

ユーザはこれらの修正版を適用していけばセキュリティ脆弱性を放置しなくて済むわけですが、OpenSSL のバージョンが古くて修正版がリリースされなければセキュリティ脆弱性を排除できなくなってしまいます。

修正版を適用せず古い環境のまま稼動しているコンピュータやネットワーク機器の OpenSSL バージョンいくつなのでしょう。
例えば一時期非常に騒がれた Heartbleed が放置されたりしていないでしょうか。

まとめ

OpenSSL 1.0.1 のサポートが今月末の 2016/12/31 までというお話でした。

LTS の 1.0.2 や最新の 1.1.0 より 1.0.1 は広く普及してると思われるので、このバージョンのサポート終了は多くの方への影響があると考え、この文章を書いてみました。

OpenSSL のバージョンは次のコマンドで確認できます。

$ openssl version

一度、自分の環境の OpenSSL のバージョンを確認してみてはいかがでしょうか?