今回も情報処理安全確保支援士の試験勉強の内容をアウトプットをしていきます。
勉強に使ったのはこちら
章の終わりにあるCheck問題に私なりの答えで解答していきます。
主にWebブラウザとWebサーバ間でデータを安全にやり取りするための業界標準プロトコルとして使用され、セキュアな通信経路を確立できる。
主な機能としては以下
・アプリケーション層とトランスポート層の間で暗号化が行われる。
・ディジタル証明書を用いてサーバ・クライアントの正当性を相互に認証する。
・SMTP・FTP・Telnet・POP3・IMAP4・LDAPといった多くのTCP/IPアプリケーションに対応している。
・MACによるメッセージ認証を行う。
近年ではSSLの全バージョンとTLSの1.0・1.1に重大な脆弱性が発見されたため、TLS1.2以降の使用が推奨される。
【Q2】SSL/TLSどのようなプロトコルから構成されるか。
①Recordプロトコル
②Handshakeプロトコル
③Change Cipher Specプロトコル
④Alertプロトコル
⑤Application Dataプロトコル
【Q3】SSL/TLSはどのような手順でセッション及びコネクションを確立するか。
①Client Hello
クライアントが利用可能な暗号化・圧縮アルゴリズムの一覧をサーバに送信し、通信開始を通知する。
②Server Hello
①の中から通信に使用する暗号化・圧縮アルゴリズムをサーバが決定し、クライアントに通知する。
③Certificate
サーバのディジタル証明書をルートCAまでの証明書リストを含めてクライアントに送信する。
④Sever Key Exchange
③でディジタル証明書を送信しない場合、一時的なRSA鍵かDH鍵を生成しクライアントに送信する。
⑤Certificate Request
サーバがクライアントに対し、ディジタル証明書の提示を要求する。
⑥Server Hello Done
サーバからクライアントへ、②からの一連のメッセージが完了したことを通知する。
⑦Sertificate
クライアントのディジタル証明書をルートCAまでの証明書リストを含めてサーバに送信する。
⑧Client Key Exchange
暗号化通信に使用するセッション鍵を生成するもととなる情報をクライアントが生成し、ディジタル証明書に含まれるサーバの公開鍵で暗号化してサーバに送信する。
⑨Certificate Verify
クライアントは①から⑧までの通信内容のハッシュ値を自身の秘密鍵を用いてディジタル署名しを作成し、サーバに送信する。これを受信したサーバは⑦でクライアントから受け取ったディジタル証明書に含まれる公開鍵を使い、ディジタル署名を検証する。
⑩Change Cipher Spec
クライアントは⑧で生成したプリマスタシークレットとサーバ及びクライアントがそれぞれ生成した乱数からマスタシークレットを生成する。続いて、RecordプロトコルがHandshakeプロトコルより受け取ったマスタシークレットから完全性の検証に用いるMAC鍵、暗号鍵、ブロック暗号のCBCモードで使用する初期ベクトルを生成する。Change Cipher Specプロトコルが使用する暗号アルゴリズムが整ったことをサーバに通知する。
⑪Finished
⑩で生成した鍵を用いてメッセージを暗号化し、鍵交換と認証処理が成功したことをクライアントからサーバに通知する。
⑫Change Cipher Spec
サーバはクライアントから受信した暗号化されたプリマスタシークレットを自身の秘密鍵を用いて復号し、それと乱数を用いてクライアントと同様にマスタシークレットを生成する。続いて、RecordプロトコルがHandshakeプロトコルより受け取ったマスタシークレットから完全性の検証に用いるMAC鍵、暗号鍵、ブロック暗号のCBCモードで使用する初期ベクトルを生成する。Change Cipher Specプロトコルが使用する暗号アルゴリズムが整ったことをクライアントに通知する。
⑬Finished
⑫で生成した鍵を用いてメッセージを暗号化し、鍵交換と認証処理が成功したことをサーバからクライアントに通知する。
【Q4】SSL/TLSにおけるセッションとコネクションの違いは何か。
セッションはHandshakeプロトコルによるサーバとクライアントの鍵交換の結果生成されたマスタシークレットによって特定される概念。新たにマスタシークレットが共有されるたびに新たなセッションが作成される。
コネクションはセッションに従属して存在する通信チャンネル。一つのセッションに複数のコネクションが存在する。
Q3の⑩⑫で鍵を生成し、鍵を生成するための演算処理にはPRFが使用される。
【Q6】SSL/TLSのRecordプロトコルでは送信データをどのように処理するか。
アプリケーションからのデータを2^14バイト以下のブロックに分割し、圧縮、HMACの生成、暗号化の処理を行ってSSL/TLSレコードに加工し、階層のプロトコルに引き渡す。
【Q7】SSL-VPNはIPsec VPNと比較してどのようなメリットがあるか。
クライアント環境に特別なソフトウェアをインストールせず使用できる。
【Q8】SSL-VPNをWeb以外のアプリケーションで使用する場合にはどのような留意点があるか。
アプリケーションによって使用するポートが異なるため、ファイアウォールの設定を追加する必要がある。
【Q9】HSTS機構とは何か。
HSTS(HTTP Strict Transport Security)はWebサイトがHTTPでアクセスしたブラウザに対し、当該ドメイン以降のアクセスにおいてmax-ageで指定した有効期限までHTTPSの使用を強制させる機構。
HTTPの応答ヘッダにStrict-Transport-Securityを指定することでHSTSを有効にできる。
WebサイトがHSTSを有効に設定していたとしても初回にHTTPでWebサイトにアクセスした際にはHSTSが有効にならずパケットが盗聴される可能性がある。
私が使っているのは2022年版のテキストですが、2024年版も出ています。