「Transport Layer Security」の版間の差分
(→関連項目) |
|||
行44: | 行44: | ||
== 認証 == | == 認証 == | ||
− | |||
SSL は、[[公開鍵証明書]]による認証を提供します。 | SSL は、[[公開鍵証明書]]による認証を提供します。 | ||
行54: | 行53: | ||
選択肢として、 [[MD5]]、[[SHA-1]]、[[SHA-256]] の[[ハッシュ関数]]があります。 | 選択肢として、 [[MD5]]、[[SHA-1]]、[[SHA-256]] の[[ハッシュ関数]]があります。 | ||
+ | |||
+ | |||
+ | == SSL/TLS ハンドシェイクプロトコル == | ||
+ | {|class="wikitable" | ||
+ | |+ ハンドシェイクプロトコル | ||
+ | ! クライアント | ||
+ | ! | ||
+ | ! サーバ | ||
+ | |- | ||
+ | | ClientHello | ||
+ | | → | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | | ← | ||
+ | | Server Hello<br> | ||
+ | ServerCertificate<br> | ||
+ | ServerKeyExchnage(Option)<br> | ||
+ | CertificateRequest(Option)<br> | ||
+ | ServerHelloDone | ||
+ | |- | ||
+ | |ClientCertificate<br> | ||
+ | ClientKeyExchange<br> | ||
+ | CertificateVerify(Option)<br> | ||
+ | ChangeCipherSpec<br> | ||
+ | Begin new CipherSpec<br> | ||
+ | Finished | ||
+ | | → | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | | ← | ||
+ | | ChangeCipherSpec<br> | ||
+ | Begin new CipherSpec<br> | ||
+ | Finished | ||
+ | |- | ||
+ | | Application Data | ||
+ | | ←→ | ||
+ | | Application Data | ||
+ | |} | ||
+ | == Change Cipher Specプロトコルとは == | ||
+ | Change Cipher Specプロトコルは、通信に使用する[[暗号アルゴリズム]]を変更することを相手に通知するためのプロトコルです。 | ||
+ | クライアントは、 ClientKeyExchangeメッセージ、または、 ClientVerifyメッセージの後に、ChangeCipherSpecメッセージを送信します。 | ||
+ | サーバは、クライアントから受信した鍵交換メッセージの処理が正常に終了した後で、ChangeCipherSpecメッセージを送信します。 | ||
== BEAST攻撃 == | == BEAST攻撃 == | ||
行71: | 行114: | ||
{{openssl}} | {{openssl}} | ||
{{ssh}} | {{ssh}} | ||
− | <!-- vim: filetype=mediawiki --> | + | <!-- vim: filetype=mediawiki |
+ | --> |
2014年6月7日 (土) 18:57時点における版
Transport Layer Security (TLS)は、セキュリティを必要とされる通信のためのプロトコルです。 Secure Sockets Layer ( SSL ) とも呼ばれます。
読み方
- Transport Layer Security
- とらんすぽーと・れいやー・せきゅりてぃ
- TLS
- てぃーえるえす
- SSL
- :えすえすえる
- Secure Sockets Layer
- せきゅあ そけっつ れいやー
概要
Transport Layer Security (TLS)の元になったプロトコルは、SSL です。
TLSは、TCPをラッピングする形で利用されます。HTTPでの利用意識されて設計されていますが、アプリケーション層のプロトコルには依存しません。HTTPSは、URIスキームの1つで、TLSを使ったHTTPのことを表します。
暗号化
暗号方式 | 暗号アルゴリズム |
---|---|
共通鍵暗号 ブロック暗号 | RC2(40), DES(40,56),Triple DES, IDEA,AES, Camellia, SEED |
共通鍵暗号 ストリーム暗号 | RC4(40,128) |
公開鍵暗号 | RSA, ECDH, DH |
デジタル署名 | RSA, DSS, ECDSA |
ハッシュ関数 | MD5, SHA-1, SHA-256, SHA-384, SHA-512 |
認証
SSL は、公開鍵証明書による認証を提供します。
SSLでは、署名アルゴリズムとして RSA暗号やDSAが利用されます。
改竄検出
SSLでは、データレコードを送信するときに、レコードのシーケンス番号、ハッシュ用共通鍵、データからハッシュ値を計算し、レコードに付加します。ハッシュ用共通鍵を知らない攻撃者によりデータが改竄されても、ハッシュ値で検出できます。
選択肢として、 MD5、SHA-1、SHA-256 のハッシュ関数があります。
SSL/TLS ハンドシェイクプロトコル
クライアント | サーバ | |
---|---|---|
ClientHello | → | |
← | Server Hello ServerCertificate | |
ClientCertificate ClientKeyExchange |
→ | |
← | ChangeCipherSpec Begin new CipherSpec | |
Application Data | ←→ | Application Data |
Change Cipher Specプロトコルとは
Change Cipher Specプロトコルは、通信に使用する暗号アルゴリズムを変更することを相手に通知するためのプロトコルです。 クライアントは、 ClientKeyExchangeメッセージ、または、 ClientVerifyメッセージの後に、ChangeCipherSpecメッセージを送信します。 サーバは、クライアントから受信した鍵交換メッセージの処理が正常に終了した後で、ChangeCipherSpecメッセージを送信します。
BEAST攻撃
BEAST攻撃対策としてRC4を利用すると言われてきましたが、必ずしも良いとはいえません。
- 電子政府における調達のために参照すべき暗号のリストの電子政府推奨暗号リストにRC4はありません。
- SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS オプションを無効にすることで対応できます。
- BEAST攻撃の攻撃条件は非常に厳しいものです。
使い方
関連項目
- BEAST攻撃
- Hypertext Transfer Protocol (HTTP)
- HTTPS
- Transport Layer Security (TLS)
- Secure Sockets Layer (SSL)
- SPDY
- HTTP cookie
- 同一生成元ポリシー
- OpenSSL
- Secure Shell(セキュアシェル)
- OpenSSHのコマンド
- sshのプライベート鍵
- ssh関連