トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

OpenSSL

本家

このサイト

メモ

https サーバのSSL証明書情報の取得

$ openssl s_client -connect nona.to:443 </dev/null 2>&1 | openssl x509 -noout -issuer -subject -dates
issuer= /C=US/O=GeoTrust Inc./OU=Domain Validated SSL/CN=GeoTrust DV SSL CA
subject= /serialNumber=8Z9tYaCq4TO-C/9BicKIHd3UbyVP9YaW/C=JP/O=nona.to/OU=3193087954/OU=See www.geotrust.com/resources/cps (c)11/OU=Domain Control Validated - QuickSSL(R) Premium/CN=nona.to
notBefore=Aug 27 14:55:14 2011 GMT
notAfter=Oct 29 09:03:52 2012 GMT

https サーバのSSL証明書有効期限の確認

$ openssl s_client -connect nona.to:443 </dev/null 2>&1 | openssl x509 -noout -dates
notBefore=Aug 18 17:08:25 2008 GMT
notAfter=Aug 19 17:08:25 2009 GMT

SSL証明書ファイルの有効期限の確認

$ openssl x509 -noout -dates < certificate.crt
notBefore=Aug 18 17:08:25 2008 GMT
notAfter=Aug 19 17:08:25 2009 GMT

鍵ファイルからのパスフレーズの除去

  • Apache が自動起動するようにしたい
  • SSL キーのパスフレーズを解除するには
openssl -rsa -in path.to.key.pass -out path.to.key.nopass

p7b --> crt 変換

openssl pkcs7 -in www.domain.p7b -print_certs > www.domain.crt

参考サイト

OpenSSLでの自己認証局(CA)と自己証明書の作成 / Unix な生活

OpenSSLを利用した、自己認証局(CA)の構築と、サーバ証明書の作成手順とApache+mod_SSLでの設定方法についてもご紹介します。

Section.1では、通常のhttps通信を可能とするため、以下の手順を行います。

1.自己認証局(CA)の構築

2.サーバの証明書の作成

3.自己認証局によるサーバ証明書への署名

4.Apache+mod_sslの設定例

Section.2では、Section.1に加えてクライアント認証に利用する証明書の発行方法とApacheの設定例を示します。

1.クライアント認証用証明書の作成

2.Apache+mod_sslでの設定例

CCS Injection脆弱性(CVE-2014-0224)発見の経緯についての紹介

バグを発見するまでの過程

Heartbleedが公開されたときに、どのようにして次のバグを防ぐかが話題になっていました。ユニットテストを使うとか、各種アナライザーツールで検査するとか、フォークして綺麗に書き直してみるとか、APIも悪いとか、mallocを自作してはいけないとか、C言語はよくないから他の言語を使うべきとかいろいろありました。

他の言語の候補としてはATSが人気のようでしたが、自分の使い慣れているCoqでTLS/SSLを実装するとどうなるか考えていました。 プロトコルの安全性の証明などは大変ですし、実装の安全性にはたいして寄与しないので、見ただけで正しい実装をしているとすぐに確認できる程度のものを作ることを考えていました。

パーザとプリンタが正しく対になってることと、プリンタが自明に正しく実装されていることと、状態機械の動作が述語で表現できていることぐらいを目標にしていました。状態機械の一番複雑な部分がChangeCipherSpecにおける遷移なのは明らかだったので、そこだけ最初に考えてみて上に書いた条件を決定しました(一番複雑といっても、全く難しくはないです)。

次に、既存の実装が正しくこの条件をチェックしているかの確認を始めました。OpenSSL以外の実装はそれなりに検査をしていましたが、OpenSSLの実装はほとんど検査をしていないように見えました。その後、実際に攻略可能であることを確認しました。