SSLサイト運営者は一度確認した方がいい事

Diary
cert-sig-alg2

背景

  • こちらの件。世の中騒がれて居なさすぎだなぁと思ってます。
  • opensslがデフォルトで作成するCSRはSHA1を使っています。そのため、Web上のほとんどのドキュメントはハッシュアルゴリズムオプションは指定していないので、デフォルトのSHA1が使われてしまっています。
    • 特に、このCSR作成サービスとかは、MD5を使っていて、かなりやばいかも。
    • そもそも、CSR作成してもらうと言うことは、秘密鍵の安全性の担保が自分の責任の範囲内で管理出来ないと思うけど。

CSRハッシュアルゴリズム確認方法

  1. ちょっと判定結果が怪しいけど、簡易的には以下で調べられます。
SHAAAAAAAAAAAAA | Check your site for weak SHA-1 certificates.
(Retired.) Check a site to see if it's still using dangerously weak SHA-1 certificates. Open source tool by @konklone.
  1. CSRファイルから調べる
% openssl req -in server.csr -text | grep Signature
    Signature Algorithm: sha1WithRSAEncryption

この結果が、sha1だったら、ちょっと危険。MD5なら、かなり危険。

SHA-256でCSRを作る方法

秘密鍵作って、CSR作る一通りの手順。

% openssl genrsa -rand /tmp/random -des3 2048 -o server.key
% openssl req -new -sha256 -key server.key -out server.csr
% openssl req -in server.csr -text | grep Signature
    Signature Algorithm: sha256WithRSAEncryption

参考資料

コメント

  1. Yuki Matsukura より:

    よく調べていくと、CSRの一方向ハッシュが問題が直接的な問題では無く、証明機関が発行する証明書の一方向ハッシュが問題っぽい。

    証明機関が、CSRのハッシュ方法を見て、そのハッシュアルゴリズムと同じハッシュアルゴリズムを使う場合があるから、CSR自体をSHA2でやる必要があるという感じに見て取れる。

    ということで、最終的にCAがSHA2で署名していなかったら、CSRからSHA2使って取り直しましょうよ。という提案だと思う。