「Transport Layer Security」の版間の差分
行1: | 行1: | ||
− | [[Transport Layer Security]] (TLS)は、セキュリティを必要とされる通信のためのプロトコルです。 | + | [[TLS]]/[[SSL]]は、通信の暗号化で利用されます。ウェブサービスの安全性を高めるために良く利用されています。[[Transport Layer Security]] (TLS)は、セキュリティを必要とされる通信のためのプロトコルです。[[Secure Sockets Layer]] ( [[Secure Sockets Layer|SSL]] ) とも呼ばれます。 |
− | [[Secure Sockets Layer]] ( [[ | + | |
− | + | ||
− | + | ||
+ | '''読み方''' | ||
;[[Transport Layer Security]]: とらんすぽーと・れいやー・せきゅりてぃ | ;[[Transport Layer Security]]: とらんすぽーと・れいやー・せきゅりてぃ | ||
;[[TLS]]:てぃーえるえす | ;[[TLS]]:てぃーえるえす | ||
行12: | 行10: | ||
== 概要 == | == 概要 == | ||
− | [[Transport Layer Security]] (TLS)の元になったプロトコルは、[[ | + | [[Transport Layer Security]] (TLS)の元になったプロトコルは、[[Secure Sockets Layer|SSL]] です。 |
− | [[ | + | [[Transport Layer Security|TLS]]は、[[TCP]]をラッピングする形で利用されます。[[Hypertext Transfer Protocol|HTTP]]での利用意識されて設計されていますが、アプリケーション層のプロトコルには依存しません。[[HTTPS]]は、[[URIスキーム]]の1つで、[[TLS]]を使った[[Hypertext Transfer Protocol|HTTP]]のことを表します。 |
SSLは、[[暗号化]]、[[認証]]、[[改竄]]検出の機能を提供します。 | SSLは、[[暗号化]]、[[認証]]、[[改竄]]検出の機能を提供します。 | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |+ 開発元 | ||
+ | ! 開発元 | ||
+ | ! 正式名称 | ||
+ | ! 省略系 | ||
+ | |- | ||
+ | | ネットスケープコミュニケーション | ||
+ | | Secure Socket Layer | ||
+ | | SSL | ||
+ | |- | ||
+ | | IETF | ||
+ | | Transport Layer Security | ||
+ | | TLS | ||
+ | |} | ||
+ | |||
+ | == TLS/SSLのバージョン == | ||
+ | {|class="wikitable" | ||
+ | |+ SSL/TLSのバージョン | ||
+ | ! バージョン | ||
+ | ! 安全性 | ||
+ | ! 説明 | ||
+ | |- | ||
+ | | SSLv1.0 | ||
+ | | x | ||
+ | | 設計レビューの時点でプロトコルに脆弱性が発見され破棄されました。 | ||
+ | |- | ||
+ | | SSLv2.0 | ||
+ | | x | ||
+ | | SSLv1.0の問題を修正して設計されました。1994にSSL2.0として発表されました。いくつかの脆弱性が発見され SSLv3.0が開発されます。 | ||
+ | |- | ||
+ | | SSLv3.0 | ||
+ | | △ | ||
+ | | SSLv2.0の問題を修正し、機能追加され1995年に発表されました。 | ||
+ | |- | ||
+ | | TLSv1.0 | ||
+ | | o | ||
+ | | SSLv3.0とTLSv1.0に正確な互換性はありませんが、だいたい同じです。 | ||
+ | |- | ||
+ | | TLSv1.1 | ||
+ | | o | ||
+ | | 発見された攻撃手法に対する耐性の強化が中心です。 | ||
+ | |- | ||
+ | | TLSv1.2 | ||
+ | | o | ||
+ | |ハッシュアルゴリズムにSHA-256が追加されました。ブロック暗号は、GCMとCCMの認証付き暗号が利用可能になりました。 | ||
+ | |} | ||
+ | |||
+ | == Perfect Forward Secrecy == | ||
+ | Perfect Forward Secrecy(PFS)は、「暗号化された通信」と「秘密鍵」の両方が漏えいしても、復号化できない、という鍵交換の概念です。 | ||
== 暗号化 == | == 暗号化 == | ||
行46: | 行94: | ||
SSL は、[[公開鍵証明書]]による認証を提供します。 | SSL は、[[公開鍵証明書]]による認証を提供します。 | ||
− | SSLでは、署名アルゴリズムとして [[RSA暗号]]や[[ | + | SSLでは、署名アルゴリズムとして [[RSA暗号]]や[[Digital Signature Algorithm|DSA]]が利用されます。 |
== 改竄検出 == | == 改竄検出 == |
2014年6月7日 (土) 20:16時点における版
TLS/SSLは、通信の暗号化で利用されます。ウェブサービスの安全性を高めるために良く利用されています。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のことを表します。
開発元 | 正式名称 | 省略系 |
---|---|---|
ネットスケープコミュニケーション | Secure Socket Layer | SSL |
IETF | Transport Layer Security | TLS |
TLS/SSLのバージョン
バージョン | 安全性 | 説明 |
---|---|---|
SSLv1.0 | x | 設計レビューの時点でプロトコルに脆弱性が発見され破棄されました。 |
SSLv2.0 | x | SSLv1.0の問題を修正して設計されました。1994にSSL2.0として発表されました。いくつかの脆弱性が発見され SSLv3.0が開発されます。 |
SSLv3.0 | △ | SSLv2.0の問題を修正し、機能追加され1995年に発表されました。 |
TLSv1.0 | o | SSLv3.0とTLSv1.0に正確な互換性はありませんが、だいたい同じです。 |
TLSv1.1 | o | 発見された攻撃手法に対する耐性の強化が中心です。 |
TLSv1.2 | o | ハッシュアルゴリズムにSHA-256が追加されました。ブロック暗号は、GCMとCCMの認証付き暗号が利用可能になりました。 |
Perfect Forward Secrecy
Perfect Forward Secrecy(PFS)は、「暗号化された通信」と「秘密鍵」の両方が漏えいしても、復号化できない、という鍵交換の概念です。
暗号化
暗号方式 | 暗号アルゴリズム |
---|---|
共通鍵暗号 ブロック暗号 | 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関連