平成25年秋期 午後問8設問3(3)について
広告
セキュリティ頑張るさん
(No.1)
https://www.ap-siken.com/s/kakomon/25_aki/pm08.html
どうしてSSLサーバ証明書があると通信内容を復号できるか分かりません。
自分の中では、
・クライアントはサーバの公開鍵を使って通信内容の暗号化を行う
・復号にはサーバの秘密鍵が必要
な認識です。
解説を読むとSSLサーバ証明書があれば通信内容の復号ができると解釈できるのですが、サーバ証明書って公開されているものですよね?(間違ってたらすみません)それで通信内容の復号ができてしまうものなのでしょうか?
どうしてSSLサーバ証明書があると通信内容を復号できるか分かりません。
自分の中では、
・クライアントはサーバの公開鍵を使って通信内容の暗号化を行う
・復号にはサーバの秘密鍵が必要
な認識です。
解説を読むとSSLサーバ証明書があれば通信内容の復号ができると解釈できるのですが、サーバ証明書って公開されているものですよね?(間違ってたらすみません)それで通信内容の復号ができてしまうものなのでしょうか?
2025.01.30 18:29
犬。さん
★AP ブロンズマイスター
(No.2)
>セキュリティ頑張るさん
こんにちは。
>解説を読むとSSLサーバ証明書があれば通信内容の復号ができると解釈できる
ここの記述ですが、解説を読む限り、そのような記載は無いと感じています。
「サーバにはクライアントから暗号化されたデータが送られてきますが、これを復号するためには暗号化に用いた公開鍵に対応する秘密鍵がサーバに組み込まれていなければなりません。」
上記内容のことでしょうか。
>自分の中では、
>・クライアントはサーバの公開鍵を使って通信内容の暗号化を行う
>・復号にはサーバの秘密鍵が必要
>な認識です。
ここも少し誤解があるように思います。
SSL/TLSにおいて、サーバの公開鍵で暗号化を行うのは、通信内容そのものではなく、共通鍵を作成するための基となる「プリマスタシークレット」ではないでしょうか。
この「プリマスタシークレット」を、サーバ証明書から取り出した、サーバの公開鍵で暗号化し、サーバに送信します。
その後、サーバ側では「暗号化に用いた公開鍵に対応する秘密鍵」を用いて復号し、「プリマスタシークレット」を取り出すのだと理解しています。
最終的に、「プリマスタシークレット」から「共通鍵」を生成し、双方のデータを暗号化することができるようになるはずです。
如何でしょうか?
2025.01.30 18:56
セキュリティ頑張るさん
(No.3)
>犬。さん
こんにちは、ご回答頂きありがとうございます!
自分のSSL/TLS通信についての誤解もご指摘いただきありがとうございます!とても勉強になりました。
>解説を読むとSSLサーバ証明書があれば通信内容の復号ができると解釈できる
解説についてですが、冷静になると確かに復号にSSLサーバ証明書が必要だとは書いていませんでした。すみません。
どうして上のように解釈したのか説明させてください。この(3)の問いではSSLサーバ証明書をどの機器に配置するか問われており、解説に通信を復号するためロードバランサに配置する必要があると書かれていました。そのため復号のためにSSLサーバ証明書が必要だと思った次第です。
犬。さんの解説によると復号に必要なのは秘密鍵ということであっていますか?
でしたらこの問題ではSSLサーバ証明書について聞かれているのに秘密鍵について解説しているように感じ違和感があるのですが、私はまだ何か誤解しているのでしょうか?
長文になってしまいすみません。ご回答いただけると幸いです。
2025.01.30 19:26
犬。さん
★AP ブロンズマイスター
(No.4)
>セキュリティ頑張るさん
こんばんは。
返信いただいた内容にも誤解が混じっているように思います。
>この(3)の問いではSSLサーバ証明書をどの機器に配置するか問われており、解説に通信を復号するためロードバランサに配置する必要があると書かれていました。
そのような記載はありません。
・この問題を解決するにはロードバランサで通信内容の復号を行い、Cookie情報を参照できるようにする必要があります。
・したがって、サーバ証明書および秘密鍵を導入すべき機器は「ロードバランサ」になります。
上記の2文をくっ付けて読んでいませんか?
ここで言う「サーバ証明書」は、クライアントとサーバがHTTPSで通信する際に、クライアントがサーバからダウンロードするものと同じ意味です。
クライアント------(HTTPS)------ロードバランサ------(HTTP)------サーバ
上記のような通信フローですよね。
仮に、ここからロードバランサを抜いて考えましょう。
クライアント------(HTTPS)------サーバ
この場合、サーバにサーバ証明書が格納されており、上述したとおり、HTTPSで通信する際に、クライアントはサーバからダウンロードします。
つまり、負荷分散装置に導入されるサーバ証明書は復号に利用されるものではなく、そこから取り出した公開鍵によって、「プリマスタシークレット」を暗号化するのに使用されます。
一方で、暗号化された「プリマスタシークレット」を受け取った負荷分散装置は、公開鍵と対になる秘密鍵によって復号を行い、「プリマスタシークレット」を取り出す…という流れは先ほどと同様です。
解説に記載されている内容を正しく理解するために、基本となる技術を押さえる方が近道になる気がします。
如何でしょうか?
2025.01.30 22:08
boyonboyonさん
★AP シルバーマイスター
(No.5)
横から失礼します。
ここでは、
TLS通信は、どこまで? こいつを先に考えます。
↓
ロードバランサ(終端する)
↓
ロードバランサに必要なものを準備する
↓
手順を踏んでTLS通信を確立
になります。必要なものの中にSSLサーバ証明書、秘密鍵があります。
ここでは、
TLS通信は、どこまで? こいつを先に考えます。
↓
ロードバランサ(終端する)
↓
ロードバランサに必要なものを準備する
↓
手順を踏んでTLS通信を確立
になります。必要なものの中にSSLサーバ証明書、秘密鍵があります。
2025.01.30 23:13
セキュリティ頑張るさん
(No.6)
>犬。さん
>boyonboyonさん
丁寧にご解説いただきありがとうございます。ようやく理解することができました。
秘密鍵だけでもロードバランサにおいておけば通信を復号化でき、Cookie情報を参照できると考えていたのですが、どことどこが通信しているのをまったく考慮できていませんでした。
ご指摘の通り基礎がまだ十分に身についていないと感じたので、もう少し教本をよんでから午後対策に入ろうと思います。
2025.01.31 07:58
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。
広告