2011年9月1日木曜日

openssl の s_client -sess_out と sess_id

-sess_outsess_id が便利だったのでメモ。


openssl s_client コマンド

openssls_clientは、サーバーとのSSL通信を確認するためのコマンド。いろいろな場面で応用できる。


-sess_out オプション

-sess_out を使うと、openssl s_client の結果(SSLセッション情報)をファイルに記録することができる。

$ openssl s_client -connect smtp.gmail.com:587 -starttls smtp -sess_out sess_out.txt

上の例では、sess_out.txtに記録される(鍵の情報が含まれているので、扱いには要注意)。

$ cat sess_out.txt
-----BEGIN SSL SESSION PARAMETERS-----
MIIEdQIBAQICAwEEAgAFBCCiljn8yfXmDAlDzxlv53HgKo02ds87ncxERAAfYxf2
(略)
-----END SSL SESSION PARAMETERS-----

ただし、cat で表示してみると分かるように、PEMエンコードされているためそのままでは読めない。


openssl sess_id コマンド

SSLセッション情報を解読するためのコマンドとして、openssl sess_id が提供されている。

$ openssl sess_id -text -noout -in sess_out.txt
SSL-Session:
    Protocol  : TLSv1
    Cipher    : 0005
    Session-ID: A29639FCC9F5E60C0943CF196FE771E02A8D3676CF3B9DCC4444001F6317F68E
    Session-ID-ctx:
    Master-Key: 0FF83FC108F7A09BD6E9D76CD707804B6DFCCA3520EA13574B42EE40E21718D651432D79645AB91DAF2937D9373D1F97
    Key-Arg   : None
    Krb5 Principal: None
(略)
    Start Time: 1314886612
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

上の例のように、Protocol, Cipher, Session-ID, Master-Keyなど、SSLセッションを特徴づけるデータが分かる。

このコマンドのオプションは man sess_id で確認ができる。

0 件のコメント:

コメントを投稿