ZTMSブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Perfect Forward Secrecy

そういえばいつぞやこのような記事を目にしまして、

Twitterが将来の暗号解読を防ぐため全サイトにわたってPerfect Forward Secrecyを採用
http://jp.techcrunch.com/2013/11/23/20131122twitter-enables-perfect-forward-secrecy-across-sites-to-protect-user-data-against-future-decryption/


なんだべそれ?「パーフェクト」ってなにそれ強いの?と思っていましたところ、
先日「SSL/TLSの場合には、鍵交換にECDHEかDHEを使った場合にPFSを有効にしたと言う事ができます。」という噂を見ました。

自堕落な技術者の日記 - TwitterのPerfect Forward Secrecy(PFS)対応
http://blog.livedoor.jp/k_urushima/archives/1728348.html


むう、では我がJCBookmarkもPFSを採用できるだか?強くなるだか!?ということで、
OpenSSLプログラムではどのようにECDHE鍵交換を有効にするのか?Google先生に教えてもらおう!
と聞いてみたのですが、先生はもったいぶって簡単には教えてくれません。

粘った挙句、やっと、このようなソースコードを見せてくれました。

https://github.com/openssl/openssl/blob/master/apps/s_server.c


これだけでは意味がぜんぜんわかりません・・容赦なく厳しいお方です・・。
でも・・適当にECDHEを有効にしているっぽい所だけ拾ってきて使うと・・こんな感じでしょうか?
SSL_CTX* ssl_ctx = SSL_CTX_new( ... );
if( ssl_ctx ){
EC_KEY* ecdh = EC_KEY_new_by_curve_name( NID_X9_62_prime256v1 );
if( ecdh ){
SSL_CTX_set_tmp_ecdh( ssl_ctx ,ecdh );
EC_KEY_free( ecdh );
}
}

えっ、こんだけ・・? ほんまかいな・・?

まあいいか・・コンパイル・・もあっさり通りまして、恐る恐る試してみたところ、
なんと、「鍵交換メカニズムは ECDHE_RSA が使用されています」と出たではありませんか!
ECDHE.png
※以前は、単なる RSA でした。

これで・・いいのでしょうか・・? パーフェクトなやつに、なったのでしょうか・・?
コメントの投稿







管理者にだけ表示を許可する


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。