SSL/TLS
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*SSL/TLS とは [#ddd20f05]
-インターネット上で使われているデータ暗号化通信プロトコル。
-サーバとクライアント間を安全に通信できるようにするプロト...
-当初は[[SSL]]として標準化が行われていたが、[[TLS]]として...
--SSLからTLSへの移行が進められた
--SSLは全バージョンで非推奨となっている
--TLSはSSLバージョン3.0に基づいて標準化された規格
-[[IETF]]によって標準化が行われている
*SSL/TLSの機能 [#a0b4d41f]
**[[暗号化]] [#md86108c]
-[[共通鍵暗号方式]]に基づく暗号化機能
**認証 [#s3ab964a]
-公開鍵証明書に基づく認証機能
**改ざん検知 [#c3e5ab30]
-ハッシュ用共通鍵に基づく改ざん検知機能
-ドメイン所有者とサーバー管理者の同一性証明
-ドメイン所有者の物理的実在証明(EV証明書に限定)
*対応するアプリケーション層のプロトコル [#d72f1855]
| | プロトコル(平文) | ポート番号(平文) | プロトコル(SSL...
| HTTP over SSL/TLS | [[HTTP]] | 80 | HTTPS | 443 |
| SMTP over SSL/TLS | [[SMTP]] | 25 | SMTPS | 465 |
| FTP(data) over SSL/TLS | [[FTP]](データ転送用) | 20,102...
| FTP(control) over SSL/TLS | [[FTP]](制御用) | 21 | FTPS...
| Telnet over SSL/TLS | [[Telnet]] | 23 | TELNETS | 992 |
| POP over SSL/TLS | [[POP3]] | 110 | POP3S | 995 |
| IMAP over SSL/TLS | [[IMAP4]] | 143 | IMAPS | 993 |
| LDAP over SSL/TLS | [[LDAP]] | 389 | LDAPS | 636 |
**HTTP over SSL/TLS [#u6bfc529]
-SSLまたはTLSによって確立されたセキュアな通信経路上で行わ...
-[[HTTP]]でSSL/TLSを使ったプロトコルは「[[HTTPS]]」。
-URIスキーム:https
*SSL通信のフロー [#qb394114]
+Webブラウザが行う[[サーバ証明書]]の正当性の検証
--証明書の検証
--証明パスの検証
--有効期限の検証
--失効リストの検証
--ドメインの検証
---アクセス先の[[FQDN]]と[[サーバ証明書]]のコモンネームが...
--[[サーバ証明書]]が信頼できる認証機関から発行されている...
+鍵の交換
--[[公開鍵暗号方式]]で共通鍵の受け渡しを行う
+暗号化通信の開始
--[[共通鍵暗号方式]]で暗号化した通信を行う
*SSL通信の仕組み [#xb829376]
**SSL/TLS の構造 [#e6a0b2ec]
-[[TCP/IP]]階層のアプリケーション層とトランスポート層([[T...
-SSL/TLS自体のプロトコルの構造
--上位層
---Handshakeプロトコル
---Change Cipher Specプロトコル
---Alertプロトコル
---Application Dataプロトコル
--下位層
---Recordプロトコル
**TLSレコード [#x947bee7]
***データ送信時 [#p9802516]
-メッセージをフラグメント単位に分割して以下の処理を行いTL...
--圧縮
--HMACの生成
--暗号化
***データ受信時 [#daf12cf0]
--復号
--HMACの検証
--伸張
**TLSレコードの構造 [#tbb667f0]
-タイプ
-バージョン
-データ長
-通信データ
-HMAC
-パディング
-パディング長
**TLSハンドシェイク [#d9e7fbed]
+【クライアント】 => サーバ
++Client Hello
---利用可能な[[暗号化]]・圧縮アルゴリズムを送信して通信の...
+クライアント <= 【サーバ】
++Server Hello
---クライアントから受領した[[暗号化]]・圧縮アルゴリズムか...
++Certificate
---[[サーバ証明書]](サーバの[[デジタル証明書]])とルートCA...
++Server Key Exchange
---(Certificateで[[サーバ証明書]]を送信しない場合)一時的...
++Certificate Request
---([[クライアント認証]]を行う場合)クライアントに対して[[...
++Server Hello Done
---Server Helloから始まったクライアントに対する一連のメッ...
+【クライアント】 => サーバ
++Certificate
---([[クライアント認証]]を行う場合)[[クライアント証明書]]...
++Client Key Exchange
---[[暗号化]]通信に使う&color(black,yellow){プリマスター...
---Certificateでサーバから受領した[[サーバ証明書]]に含ま...
++Certificate Verify
---([[クライアント認証]]を行う場合)Client Helloから始まる...
---ダイジェストに秘密鍵で[[デジタル署名]]を作成してサーバ...
---サーバは、Certificateでクライアントから受領した[[クラ...
++Change Cipher Spec
---Client Key Exchangeで生成した&color(black,yellow){プリ...
---Recordプロトコルは、Handshakeプロトコルから&color(whit...
---Change Cipher Specプロトコルは、使用する暗号アルゴリズ...
++Finished
---鍵交換と認証処理が成功したことをサーバに通知する
---Change Cipher Specで生成した鍵を使い、メッセージを[[暗...
+クライアント <= 【サーバ】
++Change Cipher Spec
---Client Key Exchangeでクライアントから受領した&color(bl...
---復号した&color(black,yellow){プリマスターシークレット}...
---Recordプロトコルは、Handshakeプロトコルから&color(whit...
---Change Cipher Specプロトコルは、使用する暗号アルゴリズ...
++Finished
---鍵交換と認証処理が成功したことをクライアントに通知する
---Change Cipher Specで生成した鍵を使い、メッセージを[[暗...
---SSL/TLSのセッションとコネクションが確立した。以降、ア...
**暗号スイートの選択 [#oe0f80ab]
-[[暗号スイート]](Cipher Suite)
|鍵交換に使うアルゴリズム | [[RSA]], [[DHE]] | |
|証明書の署名アルゴリズム | [[RSA]], [[DSA]](DSS) ...
|共通鍵暗号のアルゴリズム | [[RC4]], [[3DES]], [[AES]] |...
|改竄チェック用の[[メッセージ認証コード]](MAC)の種類 | [[...
**セッションとコネクション [#yb38eb58]
***セッション [#ydd8238b]
-マスターシークレットが共有される単位で作成される
***コネクション [#ib62b47a]
--セッションに従属して作成される(1つのセッションに複数の...
--同一セッションのコネクションは、マスターシークレットを...
--コネクションは[[TCP/IP]]階層のトランスポート層にあたる
--クライアント側はコネクションごとに異なる[[ポート番号]]...
**SSL通信の高速化 [#f6389259]
-SSL Session Cache
*SSL/TLSの拡張仕様 [#fc59d2f8]
-[[SNI]] -Server Name Indication
*常時SSL [#za3c3906]
-[[AOSSL]](Always on SSL)
-[[HSTS]]
*セキュリティ上の攻撃 [#m301b90e]
-[[バージョンロールバック攻撃]]
--古いバージョンのSSL/TLSを意図的に使わせることで、脆弱性...
--[[OpenSSL]]のVer.0.9.8以前のバージョンには、SSL2.0を受...
-[[ダウングレード攻撃]]
--暗号通信を確立する際に、[[中間者攻撃]]によって弱い暗号...
**SSL/TLSに関係する脆弱性 [#a8914c51]
***FREAK [#u3f788d5]
-2015年3月に公開された脆弱性
-Webブラウザ等が輸出グレードが弱い暗号強度の[[RSA]]をサポ...
-[[ダウングレード攻撃]]により、暗号化通信の解読等を試みる...
***[[HeartBleed]] [#l7f38142]
-[[OpenSSL]]の脆弱性
***BEAST攻撃 [#wa70abf1]
-SSL3.0、TLS1.0 の脆弱性
-CBCモードの初期化ベクトルの使い方が悪用され、Cookieの情...
***POODLE [#i139e5b0]
-SSL3.0, TLS1.0, 1.1 の脆弱性
-[[中間者攻撃]]により暗号化通信が解読される[[脆弱性]]
*ツール [#re032a96]
-sslscan ※SSLの強度を調査する
sslscan <https://url>
*ガイドライン [#k1dcff35]
-「SSL/TLS暗号設定ガイドライン」([[IPA]])-https://www.i...
-TLS暗号設定ガイドライン~安全なウェブサイトのために(暗...
https://www.ipa.go.jp/security/vuln/ssl_crypt_config.html
*関連サイト [#b94bc932]
-Bad SSL~
https://badssl.com/
-SSL Server Test -[[Qualys]]~
http://www.ssllabs.com/ssltest.index.html
-Crt.sh~
https://crt.sh/
-SSL Server Test - [[Qualys]]~
https://www.ssllabs.com/ssltest/
-SSL Pulse - [[Qualys]]~
https://www.ssllabs.com/ssl-pulse/
*関連用語 [#od75de33]
-[[ATS]]
-[[BR]](Baseline Requirements)
-[[CSR]] - Certificate Signing Request
-[[DANE]] - DNS-Based Authentication of Named Entities
-[[Domain Fronting]]
-[[DTLS]] - Datagram Transport Layer Security
-[[OCSP]]
-[[PRF]] -Pseudo-Random Function
-[[SSL]]
-[[SSL-VPN]]
-[[SSLアクセラレータ]]
-[[STARTTLS]]
-[[TLS]]
終了行:
*SSL/TLS とは [#ddd20f05]
-インターネット上で使われているデータ暗号化通信プロトコル。
-サーバとクライアント間を安全に通信できるようにするプロト...
-当初は[[SSL]]として標準化が行われていたが、[[TLS]]として...
--SSLからTLSへの移行が進められた
--SSLは全バージョンで非推奨となっている
--TLSはSSLバージョン3.0に基づいて標準化された規格
-[[IETF]]によって標準化が行われている
*SSL/TLSの機能 [#a0b4d41f]
**[[暗号化]] [#md86108c]
-[[共通鍵暗号方式]]に基づく暗号化機能
**認証 [#s3ab964a]
-公開鍵証明書に基づく認証機能
**改ざん検知 [#c3e5ab30]
-ハッシュ用共通鍵に基づく改ざん検知機能
-ドメイン所有者とサーバー管理者の同一性証明
-ドメイン所有者の物理的実在証明(EV証明書に限定)
*対応するアプリケーション層のプロトコル [#d72f1855]
| | プロトコル(平文) | ポート番号(平文) | プロトコル(SSL...
| HTTP over SSL/TLS | [[HTTP]] | 80 | HTTPS | 443 |
| SMTP over SSL/TLS | [[SMTP]] | 25 | SMTPS | 465 |
| FTP(data) over SSL/TLS | [[FTP]](データ転送用) | 20,102...
| FTP(control) over SSL/TLS | [[FTP]](制御用) | 21 | FTPS...
| Telnet over SSL/TLS | [[Telnet]] | 23 | TELNETS | 992 |
| POP over SSL/TLS | [[POP3]] | 110 | POP3S | 995 |
| IMAP over SSL/TLS | [[IMAP4]] | 143 | IMAPS | 993 |
| LDAP over SSL/TLS | [[LDAP]] | 389 | LDAPS | 636 |
**HTTP over SSL/TLS [#u6bfc529]
-SSLまたはTLSによって確立されたセキュアな通信経路上で行わ...
-[[HTTP]]でSSL/TLSを使ったプロトコルは「[[HTTPS]]」。
-URIスキーム:https
*SSL通信のフロー [#qb394114]
+Webブラウザが行う[[サーバ証明書]]の正当性の検証
--証明書の検証
--証明パスの検証
--有効期限の検証
--失効リストの検証
--ドメインの検証
---アクセス先の[[FQDN]]と[[サーバ証明書]]のコモンネームが...
--[[サーバ証明書]]が信頼できる認証機関から発行されている...
+鍵の交換
--[[公開鍵暗号方式]]で共通鍵の受け渡しを行う
+暗号化通信の開始
--[[共通鍵暗号方式]]で暗号化した通信を行う
*SSL通信の仕組み [#xb829376]
**SSL/TLS の構造 [#e6a0b2ec]
-[[TCP/IP]]階層のアプリケーション層とトランスポート層([[T...
-SSL/TLS自体のプロトコルの構造
--上位層
---Handshakeプロトコル
---Change Cipher Specプロトコル
---Alertプロトコル
---Application Dataプロトコル
--下位層
---Recordプロトコル
**TLSレコード [#x947bee7]
***データ送信時 [#p9802516]
-メッセージをフラグメント単位に分割して以下の処理を行いTL...
--圧縮
--HMACの生成
--暗号化
***データ受信時 [#daf12cf0]
--復号
--HMACの検証
--伸張
**TLSレコードの構造 [#tbb667f0]
-タイプ
-バージョン
-データ長
-通信データ
-HMAC
-パディング
-パディング長
**TLSハンドシェイク [#d9e7fbed]
+【クライアント】 => サーバ
++Client Hello
---利用可能な[[暗号化]]・圧縮アルゴリズムを送信して通信の...
+クライアント <= 【サーバ】
++Server Hello
---クライアントから受領した[[暗号化]]・圧縮アルゴリズムか...
++Certificate
---[[サーバ証明書]](サーバの[[デジタル証明書]])とルートCA...
++Server Key Exchange
---(Certificateで[[サーバ証明書]]を送信しない場合)一時的...
++Certificate Request
---([[クライアント認証]]を行う場合)クライアントに対して[[...
++Server Hello Done
---Server Helloから始まったクライアントに対する一連のメッ...
+【クライアント】 => サーバ
++Certificate
---([[クライアント認証]]を行う場合)[[クライアント証明書]]...
++Client Key Exchange
---[[暗号化]]通信に使う&color(black,yellow){プリマスター...
---Certificateでサーバから受領した[[サーバ証明書]]に含ま...
++Certificate Verify
---([[クライアント認証]]を行う場合)Client Helloから始まる...
---ダイジェストに秘密鍵で[[デジタル署名]]を作成してサーバ...
---サーバは、Certificateでクライアントから受領した[[クラ...
++Change Cipher Spec
---Client Key Exchangeで生成した&color(black,yellow){プリ...
---Recordプロトコルは、Handshakeプロトコルから&color(whit...
---Change Cipher Specプロトコルは、使用する暗号アルゴリズ...
++Finished
---鍵交換と認証処理が成功したことをサーバに通知する
---Change Cipher Specで生成した鍵を使い、メッセージを[[暗...
+クライアント <= 【サーバ】
++Change Cipher Spec
---Client Key Exchangeでクライアントから受領した&color(bl...
---復号した&color(black,yellow){プリマスターシークレット}...
---Recordプロトコルは、Handshakeプロトコルから&color(whit...
---Change Cipher Specプロトコルは、使用する暗号アルゴリズ...
++Finished
---鍵交換と認証処理が成功したことをクライアントに通知する
---Change Cipher Specで生成した鍵を使い、メッセージを[[暗...
---SSL/TLSのセッションとコネクションが確立した。以降、ア...
**暗号スイートの選択 [#oe0f80ab]
-[[暗号スイート]](Cipher Suite)
|鍵交換に使うアルゴリズム | [[RSA]], [[DHE]] | |
|証明書の署名アルゴリズム | [[RSA]], [[DSA]](DSS) ...
|共通鍵暗号のアルゴリズム | [[RC4]], [[3DES]], [[AES]] |...
|改竄チェック用の[[メッセージ認証コード]](MAC)の種類 | [[...
**セッションとコネクション [#yb38eb58]
***セッション [#ydd8238b]
-マスターシークレットが共有される単位で作成される
***コネクション [#ib62b47a]
--セッションに従属して作成される(1つのセッションに複数の...
--同一セッションのコネクションは、マスターシークレットを...
--コネクションは[[TCP/IP]]階層のトランスポート層にあたる
--クライアント側はコネクションごとに異なる[[ポート番号]]...
**SSL通信の高速化 [#f6389259]
-SSL Session Cache
*SSL/TLSの拡張仕様 [#fc59d2f8]
-[[SNI]] -Server Name Indication
*常時SSL [#za3c3906]
-[[AOSSL]](Always on SSL)
-[[HSTS]]
*セキュリティ上の攻撃 [#m301b90e]
-[[バージョンロールバック攻撃]]
--古いバージョンのSSL/TLSを意図的に使わせることで、脆弱性...
--[[OpenSSL]]のVer.0.9.8以前のバージョンには、SSL2.0を受...
-[[ダウングレード攻撃]]
--暗号通信を確立する際に、[[中間者攻撃]]によって弱い暗号...
**SSL/TLSに関係する脆弱性 [#a8914c51]
***FREAK [#u3f788d5]
-2015年3月に公開された脆弱性
-Webブラウザ等が輸出グレードが弱い暗号強度の[[RSA]]をサポ...
-[[ダウングレード攻撃]]により、暗号化通信の解読等を試みる...
***[[HeartBleed]] [#l7f38142]
-[[OpenSSL]]の脆弱性
***BEAST攻撃 [#wa70abf1]
-SSL3.0、TLS1.0 の脆弱性
-CBCモードの初期化ベクトルの使い方が悪用され、Cookieの情...
***POODLE [#i139e5b0]
-SSL3.0, TLS1.0, 1.1 の脆弱性
-[[中間者攻撃]]により暗号化通信が解読される[[脆弱性]]
*ツール [#re032a96]
-sslscan ※SSLの強度を調査する
sslscan <https://url>
*ガイドライン [#k1dcff35]
-「SSL/TLS暗号設定ガイドライン」([[IPA]])-https://www.i...
-TLS暗号設定ガイドライン~安全なウェブサイトのために(暗...
https://www.ipa.go.jp/security/vuln/ssl_crypt_config.html
*関連サイト [#b94bc932]
-Bad SSL~
https://badssl.com/
-SSL Server Test -[[Qualys]]~
http://www.ssllabs.com/ssltest.index.html
-Crt.sh~
https://crt.sh/
-SSL Server Test - [[Qualys]]~
https://www.ssllabs.com/ssltest/
-SSL Pulse - [[Qualys]]~
https://www.ssllabs.com/ssl-pulse/
*関連用語 [#od75de33]
-[[ATS]]
-[[BR]](Baseline Requirements)
-[[CSR]] - Certificate Signing Request
-[[DANE]] - DNS-Based Authentication of Named Entities
-[[Domain Fronting]]
-[[DTLS]] - Datagram Transport Layer Security
-[[OCSP]]
-[[PRF]] -Pseudo-Random Function
-[[SSL]]
-[[SSL-VPN]]
-[[SSLアクセラレータ]]
-[[STARTTLS]]
-[[TLS]]
ページ名: