「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のことを表します。

SSLは、暗号化認証改竄検出の機能を提供します。

暗号化

共通鍵暗号による暗号化を提供します。

SSL/TLSで利用可能な暗号
暗号方式 暗号アルゴリズム
共通鍵暗号 ブロック暗号 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では、データレコードを送信するときに、レコードのシーケンス番号、ハッシュ用共通鍵、データからハッシュ値を計算し、レコードに付加します。ハッシュ用共通鍵を知らない攻撃者によりデータが改竄されても、ハッシュ値で検出できます。

選択肢として、 MD5SHA-1SHA-256ハッシュ関数があります。


SSL/TLS ハンドシェイクプロトコル

ハンドシェイクプロトコル
クライアント サーバ
ClientHello
Server Hello

ServerCertificate
ServerKeyExchnage(Option)
CertificateRequest(Option)
ServerHelloDone

ClientCertificate

ClientKeyExchange
CertificateVerify(Option)
ChangeCipherSpec
Begin new CipherSpec
Finished

ChangeCipherSpec

Begin new CipherSpec
Finished

Application Data ←→ Application Data

Change Cipher Specプロトコルとは

Change Cipher Specプロトコルは、通信に使用する暗号アルゴリズムを変更することを相手に通知するためのプロトコルです。 クライアントは、 ClientKeyExchangeメッセージ、または、 ClientVerifyメッセージの後に、ChangeCipherSpecメッセージを送信します。 サーバは、クライアントから受信した鍵交換メッセージの処理が正常に終了した後で、ChangeCipherSpecメッセージを送信します。

BEAST攻撃

BEAST攻撃対策としてRC4を利用すると言われてきましたが、必ずしも良いとはいえません。

使い方

関連項目