OpenSSL + Rubyでの共通鍵の実装
- 2010年 2月1日(月) 17:50 JST
- 投稿者: akira
- 表示回数 122
pkcs5_keyivgenの方法も、現在では推奨されていない。 私は別にRubyの実装が悪いと責めているつもりはありません。
低レベルな方法も用意されているので、問題ではないと思います。
ただ、マニュアルの記載内容(以下)は直した方がいいのではと思います。
(以下、マニュアルから引用)
encrypt(key, iv) 暗号化の準備をする。iv は initialization vector、
必要なら使用される。このAPIに引数を渡すのは推奨しない。パスワードから
鍵を生成する場合は、 pkcs5_keyivgenを使用すること。
http://www.ruby-lang.org/ja/man/html/...ipher.html
この説明だけ見ると、初心者はpkcs5_keyivgenを利用すればいいと判断して、
詳しく調べることに行き着かないのでは?「pkcs5_keyivgenの方法も、現在
では推奨されていない。Ruby 1.9/1.8.7のOpenSSL::PKCS5.pbkdf2_hmac_sha1
を使用すること。また、OpenSSL の将来のバージョンでは、OpenSSL::PKCS5.
pbkdf2_hmacでsha256を利用することを推奨する(○年○月現在)。」
などと記載した方がいいと思います。
セキュリティに関することなので、日付を入れたらどうですか?
Rubyは少ない記述で楽しく書けるのがウリだと思うので、「知識をつけて
低レベルから書かないから悪い」という考え方は嫌ですね。
ただ、人手も足りなくて、他にもやることがあるでしょうから、この部分を
標準で対応しないのは、仕方ないと思います。
低レベルな方法も用意されているので、問題ではないと思います。
ただ、マニュアルの記載内容(以下)は直した方がいいのではと思います。
(以下、マニュアルから引用)
encrypt(key, iv) 暗号化の準備をする。iv は initialization vector、
必要なら使用される。このAPIに引数を渡すのは推奨しない。パスワードから
鍵を生成する場合は、 pkcs5_keyivgenを使用すること。
http://www.ruby-lang.org/ja/man/html/...ipher.html
この説明だけ見ると、初心者はpkcs5_keyivgenを利用すればいいと判断して、
詳しく調べることに行き着かないのでは?「pkcs5_keyivgenの方法も、現在
では推奨されていない。Ruby 1.9/1.8.7のOpenSSL::PKCS5.pbkdf2_hmac_sha1
を使用すること。また、OpenSSL の将来のバージョンでは、OpenSSL::PKCS5.
pbkdf2_hmacでsha256を利用することを推奨する(○年○月現在)。」
などと記載した方がいいと思います。
セキュリティに関することなので、日付を入れたらどうですか?
Rubyは少ない記述で楽しく書けるのがウリだと思うので、「知識をつけて
低レベルから書かないから悪い」という考え方は嫌ですね。
ただ、人手も足りなくて、他にもやることがあるでしょうから、この部分を
標準で対応しないのは、仕方ないと思います。