暗号スイートとは、SSL通信をする際に、サーバーとクライアントで利用可能な鍵交換の方法、サーバー認証の方法、暗号化の方法、MACアルゴリズムをまとめたものです。サーバーとクライアント双方で許容する暗号スイートが一致しない場合、SSL/TLS通信は失敗します。
具体的な暗号スイートの例を下表に示します。どのような種類があるのかを示すため、既に非推奨となっている脆弱な暗号スイートもあえて含めています。また、暗号強度が高い順ではないことにも注意してください。
暗号スイート名 | 鍵交換の方法 | サーバー認証の方法 | 暗号化の方法(鍵長bit) | MACアルゴリズム |
---|---|---|---|---|
NULL-SHA | RSA | RSA | なし | SHA-1 |
RC4-MD5 | RSA | RSA | RC4(128) | MD5 |
ADH-DES-CBC3-SHA | DH | なし | 3DES(112) | SHA-1 |
DH-DSS-DES-CBC3-SHA | DH | DSS | 3DES(112) | SHA-1 |
DH-RSA-DES-CBC3-SHA | DH | RSA | 3DES(112) | SHA-1 |
AES128-SHA | RSA | RSA | AES(128) | SHA-1 |
AES256-SHA | RSA | RSA | AES(256) | SHA-1 |
DHE-RSA-AES128-SHA256 | DH | RSA | AES(128) | SHA-256 |
DHE-RSA-AES256-SHA256 | DH | RSA | AES(256) | SHA-256 |
CAMELLIA128-SHA | RSA | RSA | CAMELLIA(128) | SHA-1 |
CAMELLIA256-SHA | RSA | RSA | CAMELLIA(256) | SHA-1 |
ECDHE-RSA-AES128-GCM-SHA256 | ECDH | RSA | AESGCM(128) | AEAD |
ECDHE-ECDSA-AES128-GCM-SHA256 | ECDH | ECDSA | AESGCM(128) | AEAD |
以下、暗号スイートに利用されるそれぞれの項目に関して説明します。
暗号スイート名
鍵交換の方法、サーバー認証の方法、暗号化の方法、MACアルゴリズムを一意に特定する名称です。上表はOpenSSLの表記に基づいて記載しています。例えば、上表最終行の「ECDHE-ECDSA-AES128-GCM-SHA256」をRFCでの暗号スイート名は「TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256」というように、「プロトコル」_「鍵交換の方法」_「サーバー認証の方法」_WITH_「暗号化の方法」_「暗号化モード」_「MACアルゴリズム」という表記を用います。
鍵交換の方法
SSL/TLSのハンドシェイク時に暗号化を行うための基になる値(premaster secret)を交換する際に使用するアルゴリズムを示します。暗号スイート名の「鍵交換の方法」部分の末尾にEが付くものはEphemeral(一時的)を意味し、DHやECDHの鍵を一時的にしか使わない(時折変更する)ことを意味するため、Eが付かないものに比べてセキュリティ上優れています。
サーバー認証の方法
SSL/TLS通信においてサーバーの認証を行うアルゴリズムを示します。サーバー証明書の公開鍵アルゴリズムと、サーバー側で許容する暗号スイートのサーバー認証の方法は対応する必要があります。つまり、サーバー証明書にRSA公開鍵を格納したものを使用する場合はサーバー認証の方法がRSAのものしか有効となりませんし、サーバー証明書がDSA公開鍵の場合はDSS、サーバー証明書がECC公開鍵の場合はECDSAの暗号スイートしか有効となりません。サーバー証明書にDSA公開鍵を使用するものはほとんど普及しておらず、RSA公開鍵を使用するものがが最も普及しています。一方、RSA公開鍵に比較して短い鍵長で高い暗号強度を示すことから、ECC公開鍵のサーバー証明書が近年注目されています。暗号スイート名の「鍵交換の方法」部分の先頭にAが付くものはAnonymous(匿名の)を意味し、サーバー認証を行わないことを示します。
暗号化の方法(鍵長bit)
SSL/TLSの暗号化通信に使用する共通鍵アルゴリズムを示します。OpenSSLにおいてブロック暗号のモードが明示されていない場合はCBCモードを表すようです。暗号スイート名の「暗号化の方法」部分がNULLとなっているものは暗号化しないことを意味します。
MACアルゴリズム
SSL/TLSの暗号化通信時に使用するメッセージ認証コード(MAC)アルゴリズムを示します。SSL/TLS通信ではこのMACを基に改ざん検知を実施します。暗号スイート名の「MACアルゴリズム」部分がAEAD(Authenticated Encryption with Associated Data)となっているものは「暗号化の方法」として認証付き暗号を使用していることを意味し、暗号文とは別にMACを使用していません。
暗号の危殆化
暗号の危殆化(きたいか)とは、安全とされていた暗号が攻撃の研究やコンピュータの性能向上により安全でなくなることです。
危殆化した暗号方式として、DESやRC4が挙げられ、既に使用は禁止されています。3DESも推奨リストから外れており、互換性維持以外の目的では使うべきではない暗号方式となっています。(2021年現在)