こんにちは、さとうです。
2018年5月8日にIPAから
SSL/TLS暗号設定ガイドライン 第2.0版 ~安全なウェブサイトのために(暗号設定対策編)~
が公開されています。
当ガイドラインは、SSL/TLSサーバの構築者や運営者が適切なセキュリティを考慮した暗号設定ができるようにするためのガイドラインです。
これまで1.1班がありましたが、当2.0版は、実際に設定すべき「要求設定項目」として3つの設定基準(「高セキュリティ型」「推奨セキュリティ型」「セキュリティ例外型」)を提示しているのが大きな特徴です。
現在のSSL/TLSの状況は以下の通りになっていると記述されています。
・SSL2.0:2005年頃以降に出荷されているサーバやブラウザでは初期状態で利用不可となっている
・SSL3.0:2018年3月時点での主流の最新版ブラウザでは初期状態で利用不可となっている
・TLS1.0:約12万の主要なサイトについて TLS1.0 が利用できるのは約 88%(SSL Pulseの調査結果)
・TLS1.1:約12万の主要なサイトについて TLS1.1 が利用できるのは約 85%(SSL Pulseの調査結果)
・TLS1.2:約12万の主要なサイトについて TLS1.1 が利用できるのは約 91%(SSL Pulseの調査結果)
・TLS1.3:まだ draft であるが、サーバやブラウザで実装が始まっている
これらSSL2.0 から TLS1.2 までの各プロトコルバージョンにおける安全性の違いは、以下のようにまとめられています。
<SSL/TLS への攻撃方法に対する耐性>
・ダウングレード攻撃(最弱の暗号アルゴリズムを強制的に使わせることができる) ⇒SSL3.0以上が安全
・バージョンロールバック攻撃(SSL2.0 を強制的に使わせることができる) ⇒SSL3.0以上が安全
・ブロック暗号の CBC モード利用時の脆弱性を利用した攻撃(BEAST/POODLE 攻撃など) ⇒TLS1.1以上が安全(TLS1.0はパッチ適用可)
<利用可能な暗号アルゴリズム>
・128 ビットブロック暗号(AES, Camellia) ⇒TLS1.0以上が可
・認証付き秘匿モード(GCM, CCM) ⇒TLS1.2 以上が可
・楕円曲線暗号 ⇒TLS1.0以上が可
・SHA-2 ハッシュ関数(SHA-256, SHA-384) ⇒TLS1.2 以上が可
サーバ構築における暗号の設定要求項目は、まず以下の3つの設定基準を設けています。
【設定基準】
●高セキュリティ型扱う情報が漏えいした際、組織の運営や資産、個人の資産やプライバシー等に致命的または壊滅的な悪影響を及ぼすと予想される情報を、高い安全性を確保して SSL/TLS で通信するような場合に採用する設定基準※高い安全性を必要とする理由があるケースを対象としており、高度な使い方をする場合の設定基準である。<利用例>・政府内利用(G2G 型)のなかでも、高い安全性が要求される通信を行う場合
●推奨セキュリティ型扱う情報が漏えいした際、組織の運営や資産、個人の資産やプライバシー等に何らかの悪影響を及ぼすと予想される情報を、安全性確保と利便性実現をバランスさせて SSL/TLSでの通信を行うための標準的な設定基準※ほぼすべての一般的な利用形態で使うことを想定している<利用例>• 政府内利用(G2G 型)や社内システムへのリモートアクセスなど、特定された通信相手との安全な通信が要求される場合• 電子申請など、企業・国民と役所等との電子行政サービスを提供する場合• 金融サービスや電子商取引サービス、多様な個人情報の入力を必須とするサービス等を提供する場合• 既存システムとの相互接続を考慮することなく、新規に社内システムを構築する場合
●セキュリティ例外型脆弱なプロトコルバージョンや暗号が使われるリスクを受容したうえで、安全性よりも相互接続性に対する要求をやむなく優先させてSSL/TLS での通信を行う場合であって、推奨セキュリティ型への移行完了までの短期の暫定運用としての設定基準<利用例>• 利用するサーバやクライアントの実装上の制約、もしくは既存システムとの相互接続上の制約により、推奨セキュリティ型(以上)の設定が事実上できない場合
設定基準ごとの要求設定について、例えば暗号スイートについて本ガイドラインでは以下の様に記載されています
【暗号スイートの要求設定】
●高セキュリティ型・以下の条件を満たす暗号スイート(*1)を選定する。-CRYPTREC 暗号リストに掲載されているアルゴリズムのみで構成される。-暗号化として 128 ビット安全性以上を有する。-安全性向上への寄与が高いと期待されることから、認証付き秘匿モードを採用する。-Perfect Forward Secrecy(*2)の特性を満たす。-ただし、本ガイドラインではサーバ証明書で DSA を利用しないことを要求設定の前提としているため、DSA を含む暗号スイートは選定しない。・暗号スイートの優先順位は以下の通りとする。-選定した暗号スイートをグループαとグループβに分類し、安全性の高いグループを優先する。グループ分けの基準はブロック暗号の鍵長によるものとする。・上記以外の暗号スイートは利用除外とする。・鍵交換で DHE を利用する場合には鍵長 2048 ビット以上、ECDHE を利用する場合には鍵長256 ビット以上の設定を必須とする。
*1 暗号スイート:「鍵交換_署名_暗号化_ハッシュ関数」の組によって構成される暗号の設定。
⇒例えば、「TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384」であれば、鍵交換には「DHE」、署名には「RSA」、暗号化には「鍵長 256 ビット GCM モードのCamellia(CAMELLIA_256_GCM)」、ハッシュ関数には「SHA-384」が使われることを意味する。
*2 Perfect Forward Secrecy:鍵交換で使う暗号アルゴリズムの秘密鍵が漏えいしたとしても、当該セッション鍵の共有のために利用した乱数がわからなければ過去に遡って通信データの中身が読まれる危険性を回避することができるという考え方
高セキュリティ型の暗号スイートは、例えば以下の通り。(グループα、グループβはガイドライン参照)
・TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
・TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
推奨セキュリティ型の暗号スイートは、例えば以下の通り。(グループA~グループFはガイドライン参照)●推奨セキュリティ型・以下の条件を満たす暗号スイートを選定する。-CRYPTREC 暗号リストに掲載されているアルゴリズムのみで構成される。-暗号化として 128 ビット安全性以上を有する。-ただし、本ガイドラインではサーバ証明書で DSA を利用しないことを要求設定の前提としているため、DSA を含む暗号スイートは選定しない。・暗号スイートの優先順位は以下の通りとする。-選定した暗号スイートを、安全性と実用性とのバランスの観点に立って、グループ A、グループ B、・・・、グループ F とグループ分けをする。-以下の条件でグループごとの優先順位を付ける。☆本ガイドライン公開時点(2018 年 5 月)では、通常の利用形態において、128 ビット安全性があれば十分な安全性を確保できることから 128 ビット安全性を優先する。ただし、256 ビット安全性を優先することを妨げるものではない。☆鍵交換に関しては、Perfect Forward Secrecy の特性の有無と実装状況に鑑み、DHE、次いで RSA の順番での優先順位とする。・上記以外の暗号スイートは利用除外とする。・鍵交換で DHE を利用する場合には鍵長 1024 ビット以上、ECDHE/ECDH を利用する場合には鍵長 256 ビット以上、RSA を利用する場合には鍵長 2048 ビット以上の設定を必須とする
・TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
・TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
・TLS_DHE_RSA_WITH_AES_128_CBC_SHA
・TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
セキュリティ例外型の暗号スイートは、例えば以下の通り。(グループA~グループHはガイドライン参照)●セキュリティ例外型・以下の条件を満たす暗号スイートを選定する。-CRYPTREC 暗号リストに掲載されているアルゴリズムのみで構成される。-ただし、今までほとんど使われていない楕円曲線暗号と Triple DES や RC4 の組合せを今後使っていく積極的な理由は見いだせないことから、楕円曲線暗号と Triple DES、RC4 の組み合わせは選定しない。-また、本ガイドラインではサーバ証明書で DSA を利用しないことを要求設定の前提としているため、DSA を含む暗号スイートも選定しない。・暗号スイートの優先順位は以下の通りとする。-選定した暗号スイートを、安全性と実用性とのバランスの観点に立って、グループ A、グループ B、・・・とグループ分けをする。なお、グループ A からグループ F までは推奨セキュリティ型と同様であり、推奨セキュリティ型での優先順位のつけ方を適用する。・上記以外の暗号スイートは利用除外とする。・鍵交換で DHE を利用する場合には鍵長 1024 ビット以上、ECDHE/ECDH を利用する場合には鍵長 256 ビット以上、RSA を利用する場合には鍵長 2048 ビット以上の設定を必須とす
る。
・TLS_RSA_WITH_RC4_128_SHA
・TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
・TLS_RSA_WITH_3DES_EDE_CBC_SHA
なお、プロトコルバージョンは、
高セキュリティ型TLS1.2のみ、
推奨セキュリティ型TLS1.2 ~ TLS1.0、
セキュリティ例外型TLS1.2~1.0, SSL3.0
となっています。
高セキュリティ型TLS1.2のみ、
推奨セキュリティ型TLS1.2 ~ TLS1.0、
セキュリティ例外型TLS1.2~1.0, SSL3.0
となっています。
推奨セキュリティ型に該当するケースが多いとは思いますが、環境によっては高セキュリティ型もしくはセキュリティ例外型にすべきか悩むパターンがありそうです。
さとう