ガイドラインの種類: 種々のガイドを参考に2015年11月時点での超オススメ設定(by @kjur) CRYPTREC/IPAガイド(2015.05版)高セキュリティ型 - 高いセキュリティを求める医療・金融、政府機関等向け CRYPTREC/IPAガイド(2015.05版)推奨セキュリティ型 - 標準的な設定 CRYPTREC/IPAガイド(2015.05版)セキュリティ例外型 - 古いフィーチャーフォン、ゲーム機も対象に含む場合 Mozilla Modern Compatibility Profile - 高セキュリティ Mozilla Intermediate Compatibility Profile - 中セキュリティ(デフォルト) Mozilla Old Backward Compatibility Profile - 低セキュリティ Bulletproof SSL and TLS - recommended(中) Bulletproof SSL and TLS - compatibility(低) Qualys社のブログによる推奨設定 OpenSSLデフォルト設定 RedHat Linuxデフォルト設定 CentOS 6デフォルト設定 Ubuntu 12デフォルト設定 よくあるデフォルト設定
サーバーソフトウェアの種類: Apache HTTP Server 2.4 Apache HTTP Server 2.2 nginx lighttpd
a) Pinにマッチさせる証明書のPEM(SSLサーバー証明書や中間CA証明書等) b) Pinにマッチさせないバックアップの証明書もしくはPKCS#8公開鍵のPEM
「CRYPTREC/IPA SSL/TLS暗号設定ガイドライン~安全なウェブサイトのために(暗号設定対策編)~」 の発行を記念しまして、ウェブサーバーのSSL設定ファイルを生成するツールのベータ版を公開します。 本ツールは、CRYPTOREC/IPAのガイドラインで定義されている「高セキュリティ型」 「推奨セキュリティ型」「セキュリティ例外型」の設定に加え、Mozillaや他のプロファイルの 推奨設定もメニューで選ぶだけで簡単に生成できます。
現時点ではベータ版のため、
本ツールは、@kjur が個人的に作成したものであり、CRYPTRECやIPAにより公開されているページではありません。バグ報告や問題のご指摘はこちらのバグトラッカーで日本語でお知らせください。
必ずテスト環境および本番環境で、期待された動作をするかご確認ください。
Public Key Pinningのために、証明書をテキスト添付するのは気持ち悪いと思われるかもしれませんが、 ご安心ください。 すべての処理はブラウザのJavaScriptで行われ、サーバーに送信することもなく、 HTMLファイルとJavaScriptファイルさえあれば、オフラインでも実行することができます。 具体的には自作のjsrsasignという、 JavaScript暗号ライブラリを使って、PEM形式のX.509証明書を解析し、SubjectPublicKeyInfoから 公開鍵を取り出し、ハッシュ計算し、Pinning用のヘッダ値を生成しています。