OpenSSL まとめ


概要

  • OpenSSLについて、あるフレームワークのインストールでハマったときに出てきたワードだったが、知らなかった
  • 調べた内容をまとめる

参考資料:「OpenSSL」とは何ですか?「Heartbleed」はどのような問題でしょうか?

OpenSSLとは

Wikipedia先生曰く

OpenSSL(オープン・エスエスエル)は、SSLプロトコル・TLSプロトコルの、オープンソースで開発・提供されるソフトウェアである。中心となっているライブラリ(C言語で書かれている)は基本的な暗号化関数と様々なユーティリティ関数を実装している。様々なコンピュータ言語でOpenSSLライブラリを利用できるようにするラッパーもある。OpenSSLはEric A. YoungとTim HudsonによるSSLeay(1998年12月に開発者がRSA Securityに異動したため開発は終了されている)を基にしている。

とのこと。

。。。何言ってるか分からない

SSL/TLSとは 参考

ここで、上記で出てきたSSL/TLSプロトコルについて復習すると

  • インターネット上でデータを暗号化して送受信する仕組み(プロトコル)
  • そもそもは通信の暗号化のためにSecure Sockets Layerが開発された
  • SSLに脆弱性が見つかった
  • SSLの脆弱性に対応するようにTLSが開発された
  • このため、SSL/TLSと呼ばれてはいるが、現行で使用されているのはほぼTLS

では、OpenSSLでは何ができるのか

  • OpenSSLは暗号化通信のプロトコルであるSSL/TLSを実装したプログラムのうちの一つである
  • OpenSSLをソフトウェアに組み込むことで通信の暗号化を行うことができる

導入の流れ

1. インストール

$ brew install openssl
$ brew link openssl #opensslにシンボリックリンクを貼る
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc #path追加
$ source ~/.zshrc #設定ファイル読み込み

2. 使えるようになっているか確認

$ which openssl #opensslのパス確認

$ openssl version #バージョン確認

その他情報

1. 過去に見つかった脆弱性(以下以外でもたくさんあります)

調べていて頻出したワードがHeartbleed問題という脆弱性の問題

Heartbleedとは

参考:Wikipedia

  • OpenSSLに見つかった重大な脆弱性であるソフトウェアバグにつけられた名称のこと
  • 元はHeartbeatというOpenSSLに対する拡張機能から生まれたバグ
  • このバグではHeartbeatを使った発信をするとメモリ上にあるデータが1回につき64キロバイトずつ漏洩する可能性があったとのこと
  • 現在では修正パッチが当てられているのでそれにアップデートすれば大丈夫だが、OpenSSLの再コンパイル、サイトなどで証明書を発行している場合は新しいサーバー証明書を発行するなどの対応に追われた

2. フォークされたOpenSSL

LibreSSLとは

参考:LibreSSL の意義

  • SSL/TLS通信用ソフトウェアとしてのシェアNo.1を誇っているOpenSSLからフォークされたSSL/TLS通信用ソフトウェア
  • OpenSSLのシェア率に対してのサポート体制の弱み、様々な問題に目をつぶれなくなったOpenBSDが、専用のSSL/TLS通信用ソフトウェアをOpenSSLからフォークしてメンテすることにした
  • 必要ないコード等を大量に削除したらしい(90000行以上削除したとか!)

力尽きた。。。

  • ここから先は必要になったときに調べることとする

リンク集