「暗号スイート」の版間の差分
提供: セキュリティ
(ページの作成:「暗号スイート (Cipher suite, サイファースイート)とは、Transport Layer Security(TLS) / Secure Sockets Layer(SSL) ネットワークプロト...」) |
|||
(同じ利用者による、間の1版が非表示) | |||
行8: | 行8: | ||
== 概要 == | == 概要 == | ||
TLS接続が確立するとき、TLSハンドシェイクプロトコルによってハンドシェイクが行われます。ハンドシェイクの過程で、 client hello(ClientHello)と server hello(ServerHello)のメッセージが交換されます。最初に、クライアントが[[暗号スイート]]のリストを送信します。リストは、サポートしている暗号で、優先順位があります。それから、サーバは、クライアントの[[暗号スイート]]のリストから洗濯した[[暗号スイート]]を返信します。SSL/TLSのスキャナーは、サーバのTLS暗号をテストするために使います。 | TLS接続が確立するとき、TLSハンドシェイクプロトコルによってハンドシェイクが行われます。ハンドシェイクの過程で、 client hello(ClientHello)と server hello(ServerHello)のメッセージが交換されます。最初に、クライアントが[[暗号スイート]]のリストを送信します。リストは、サポートしている暗号で、優先順位があります。それから、サーバは、クライアントの[[暗号スイート]]のリストから洗濯した[[暗号スイート]]を返信します。SSL/TLSのスキャナーは、サーバのTLS暗号をテストするために使います。 | ||
+ | == 詳細説明 == | ||
+ | * 鍵交換アルゴリズム(key exchange algorithm)は、ハンドシェイクの間で、クライアントとサーバがどのように認証するか決定するために使われます。 | ||
+ | * 一括暗号化アルゴリズム(bulk encryption algorithm)は、メッセージストリームを暗号化するために使われます。鍵サイズと明示的な長さ、暗黙の初期ベクトル(initialization vector)(cryptographic nonce, 暗号化の[[ノンス]](ナンス) )が含まれます。 | ||
+ | * メッセージ認証符号(メッセージ認証コード, message authentication code, MAC)は、[[メッセージダイジェスト]], メッセージストリームのそれぞれのブロックの暗号学的ハッシュを作成するために使われます。 | ||
+ | * 擬似乱数関数(pseudorandom function, RPF)は、接続の2つのピアの間で共有される48バイトのシークレット、マスターシークレット(master secret)を作成するために使用されます。マスターシークレットは、MACを作成するときに利用されるようなセッションキーの作成のときに、エントロピーのソースとして使用されます。 | ||
+ | === 使用されるアルゴリズムの例 === | ||
+ | ;key exchange/agreement:[[RSA]], Diffie-Hellman, ECDH, SRP, PSK | ||
+ | ;authentication:[[RSA]],[[DSA]],[[ECDSA]] | ||
+ | ;bulk ciphers:[[RC4]], Triple DES, [[AES]], IDEA, [[DES]], または [[Camellia]]。古いSSLのバージョンでは、RC2が使われます。 | ||
+ | ;message authentication:TLSでは、Hash-based Message Authentication Code のために MD5 か SHA ハッシュ関数の1つを使用されます。 SSL では、 SHA, [[MD5]], MD4, MD2 が使われます。 | ||
== OpenSSLで暗号スイートを確認する方法 == | == OpenSSLで暗号スイートを確認する方法 == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行15: | 行25: | ||
* [[Transport Layer Security]] | * [[Transport Layer Security]] | ||
* [[OpenSSL]] | * [[OpenSSL]] | ||
+ | * [[暗号学的ハッシュ関数]] | ||
+ | * [[ハッシュ]] | ||
+ | * [[擬似乱数]] | ||
<!-- vim: filetype=mediawiki | <!-- vim: filetype=mediawiki | ||
--> | --> |
2015年5月25日 (月) 21:54時点における最新版
暗号スイート (Cipher suite, サイファースイート)とは、Transport Layer Security(TLS) / Secure Sockets Layer(SSL) ネットワークプロトコルで利用されるネットワーク接続のセキュリティ設定をネゴシエートするときに使用される認証, 暗号, メッセージ認証符号(Message authentication code, MAC)と鍵交換アルゴリズムのコンビネーションです。
読み方
- 暗号スイート
- あんごう すいーと
- Cipher suite
- さいふぁー すいーと
概要
TLS接続が確立するとき、TLSハンドシェイクプロトコルによってハンドシェイクが行われます。ハンドシェイクの過程で、 client hello(ClientHello)と server hello(ServerHello)のメッセージが交換されます。最初に、クライアントが暗号スイートのリストを送信します。リストは、サポートしている暗号で、優先順位があります。それから、サーバは、クライアントの暗号スイートのリストから洗濯した暗号スイートを返信します。SSL/TLSのスキャナーは、サーバのTLS暗号をテストするために使います。
詳細説明
- 鍵交換アルゴリズム(key exchange algorithm)は、ハンドシェイクの間で、クライアントとサーバがどのように認証するか決定するために使われます。
- 一括暗号化アルゴリズム(bulk encryption algorithm)は、メッセージストリームを暗号化するために使われます。鍵サイズと明示的な長さ、暗黙の初期ベクトル(initialization vector)(cryptographic nonce, 暗号化のノンス(ナンス) )が含まれます。
- メッセージ認証符号(メッセージ認証コード, message authentication code, MAC)は、メッセージダイジェスト, メッセージストリームのそれぞれのブロックの暗号学的ハッシュを作成するために使われます。
- 擬似乱数関数(pseudorandom function, RPF)は、接続の2つのピアの間で共有される48バイトのシークレット、マスターシークレット(master secret)を作成するために使用されます。マスターシークレットは、MACを作成するときに利用されるようなセッションキーの作成のときに、エントロピーのソースとして使用されます。
使用されるアルゴリズムの例
- key exchange/agreement
- RSA, Diffie-Hellman, ECDH, SRP, PSK
- authentication
- RSA,DSA,ECDSA
- bulk ciphers
- RC4, Triple DES, AES, IDEA, DES, または Camellia。古いSSLのバージョンでは、RC2が使われます。
- message authentication
- TLSでは、Hash-based Message Authentication Code のために MD5 か SHA ハッシュ関数の1つを使用されます。 SSL では、 SHA, MD5, MD4, MD2 が使われます。
OpenSSLで暗号スイートを確認する方法
$ openssl ciphers -v