HOME»情報処理安全確保支援士掲示板»H31春午後2問1設問6(2)
投稿する
すみません、質問の意図をくみ取れませんでした。
ですので、基本的なことを解答します。
公開鍵技術全般になりますが、秘密鍵は文字通り秘密として取り扱うもので、
クライアント端末からの持ち出しはできません。
そのため、FWにクライアントの秘密鍵を格納することはできません。
H31春午後2問1設問6(2) [0913]
ここさん(No.1)
主題の件、FW1が社内PCのクライアント証明書に対応した秘密鍵が必要になる通信として、クライアント証明書が必要なwebサーバーにアクセスした場合となっています。
FW1のクライアント証明書を用いてwebサーバーにアクセスすればクライアント認証は通ると考えました。
その場合、後続のTLSセッションが張れなくなるという制約はあるのでしょうか。
問題
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_1/2019h31h_sc_pm2_qs.pdf
解答
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_1/2019h31h_sc_pm1_ans.pdf
FW1のクライアント証明書を用いてwebサーバーにアクセスすればクライアント認証は通ると考えました。
その場合、後続のTLSセッションが張れなくなるという制約はあるのでしょうか。
問題
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_1/2019h31h_sc_pm2_qs.pdf
解答
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31_1/2019h31h_sc_pm1_ans.pdf
2022.08.31 12:23
pixさん(No.2)
★SC ダイヤモンドマイスター
クライアント認証に対する認識に誤りがあります。
クライアント認証には
・クライアント証明書
・クライアント証明書と対になる秘密鍵
が必要です。
クライアント証明書だけでは、クライアント認証を
パスできません。
クライアント認証には
・クライアント証明書
・クライアント証明書と対になる秘密鍵
が必要です。
クライアント証明書だけでは、クライアント認証を
パスできません。
2022.08.31 14:18
ここさん(No.3)
ありがとうございます。
FW1のクライアント証明書と対になる秘密鍵(FW自身の秘密鍵)はFW自身では持っていないということでしょうか。
webサーバーから見るとクライアントはFW1になるので、FW1自身の秘密鍵とクライアント証明書があれば良いのかと理解してしまいました、、
(FW1はあくまで社内PCになりすましているだけなので、社内PCの秘密鍵でないとwebサーバーとセッションがはれないのでしょうか。)
申しわけありませんがご教示いただけますと幸いです。
FW1のクライアント証明書と対になる秘密鍵(FW自身の秘密鍵)はFW自身では持っていないということでしょうか。
webサーバーから見るとクライアントはFW1になるので、FW1自身の秘密鍵とクライアント証明書があれば良いのかと理解してしまいました、、
(FW1はあくまで社内PCになりすましているだけなので、社内PCの秘密鍵でないとwebサーバーとセッションがはれないのでしょうか。)
申しわけありませんがご教示いただけますと幸いです。
2022.08.31 15:20
pixさん(No.4)
★SC ダイヤモンドマイスター
クライアント認証は、認証機関から発行された証明書と秘密鍵をクライアントに
導入することにより、正規のクライアントであることを確認するのが目的です。
FWはなりすましではなく、プロキシとしてクライアントとWebサーバの間で
通信を中継します。
FWは正規に証明書と秘密鍵が発行されていないため、クライアント認証を
パスできません。
導入することにより、正規のクライアントであることを確認するのが目的です。
FWはなりすましではなく、プロキシとしてクライアントとWebサーバの間で
通信を中継します。
FWは正規に証明書と秘密鍵が発行されていないため、クライアント認証を
パスできません。
2022.08.31 15:55
ここさん(No.5)
ありがとうございます。
WEBサーバー側で信頼されている認証局からの証明書と対になる秘密鍵が必要で、FWは認証局から正規に証明書と対になる秘密鍵を手に入れていないため不可と理解しました。
不勉強で大変申し訳ありませんが、FWに対して証明書の要求等する機能がない?ということでしょうか。
※検索してみても初歩的すぎるのかいまいち見つからず、、
WEBサーバー側で信頼されている認証局からの証明書と対になる秘密鍵が必要で、FWは認証局から正規に証明書と対になる秘密鍵を手に入れていないため不可と理解しました。
不勉強で大変申し訳ありませんが、FWに対して証明書の要求等する機能がない?ということでしょうか。
※検索してみても初歩的すぎるのかいまいち見つからず、、
2022.08.31 16:02
pixさん(No.6)
★SC ダイヤモンドマイスター
>FWに対して証明書の要求等する機能がない?ということでしょうか。
すみません、質問の意図をくみ取れませんでした。
ですので、基本的なことを解答します。
公開鍵技術全般になりますが、秘密鍵は文字通り秘密として取り扱うもので、
クライアント端末からの持ち出しはできません。
そのため、FWにクライアントの秘密鍵を格納することはできません。
2022.08.31 16:43
ここさん(No.7)
この投稿は投稿者により削除されました。(2022.08.31 21:03)
2022.08.31 21:03
ここさん(No.8)
伝え方が悪く申し訳ありません。
設問上では、
社内PC→←FW1→←WEBサーバー
という構造と理解しています。
そのため、webサーバーから見るとFW1がクライアントになると理解しています。
そのため、社内PCの秘密鍵ではなく、FW1の秘密鍵及び証明書があれば問題なく中継できるのではと思った次第です。
社内PCの秘密鍵をFW1に持ち出せないのは承知しているのですが、なぜ社内PCの秘密鍵が必要かよくわかっておらずです、、
設問上では、
社内PC→←FW1→←WEBサーバー
という構造と理解しています。
そのため、webサーバーから見るとFW1がクライアントになると理解しています。
そのため、社内PCの秘密鍵ではなく、FW1の秘密鍵及び証明書があれば問題なく中継できるのではと思った次第です。
社内PCの秘密鍵をFW1に持ち出せないのは承知しているのですが、なぜ社内PCの秘密鍵が必要かよくわかっておらずです、、
2022.08.31 21:04
pixさん(No.9)
★SC ダイヤモンドマイスター
細かい点は複雑になるので簡潔に解答します。
クライアント認証についての認識が一部違うと思われます。
クライアント証明書は1枚1枚別々のものになります。
クライアント認証は通常のパスワード認証の代替として、事前に申請された
社内PCのみ接続を許可するために利用されます。
また、認証後はその証明書で認証されたクライアントの権限でデータの操作(変更含む)が
行われます。
もし仮にFW1にクライアント証明書が発行されたとします。
FW1がクライアント認証をパスしたとしても、FW1がクライアントとみなされて
データの操作が実行されてしまいます。
本来社内PCのクライアント権限で操作されるべきデータがFW1のクライアント権限で
操作されてしまい、まったく意図しない状況になります。
秘密鍵の利用用途ですが、サーバ認証・クライアント認証は公開鍵技術の
ディジタル署名を基にして行われます。
秘密鍵はディジタル署名を作成するのに利用されます。
作成したディジタル署名と証明書(公開鍵)を相手側に送ります。
相手側でディジタル署名を証明書(公開鍵)を用いて検証できれば、認証OKとなります。
ここで秘密鍵が流出してしまうと、偽のディジタル署名を作成することができ、
なりすましが可能になってしまいます。
クライアント認証についての認識が一部違うと思われます。
クライアント証明書は1枚1枚別々のものになります。
クライアント認証は通常のパスワード認証の代替として、事前に申請された
社内PCのみ接続を許可するために利用されます。
また、認証後はその証明書で認証されたクライアントの権限でデータの操作(変更含む)が
行われます。
もし仮にFW1にクライアント証明書が発行されたとします。
FW1がクライアント認証をパスしたとしても、FW1がクライアントとみなされて
データの操作が実行されてしまいます。
本来社内PCのクライアント権限で操作されるべきデータがFW1のクライアント権限で
操作されてしまい、まったく意図しない状況になります。
秘密鍵の利用用途ですが、サーバ認証・クライアント認証は公開鍵技術の
ディジタル署名を基にして行われます。
秘密鍵はディジタル署名を作成するのに利用されます。
作成したディジタル署名と証明書(公開鍵)を相手側に送ります。
相手側でディジタル署名を証明書(公開鍵)を用いて検証できれば、認証OKとなります。
ここで秘密鍵が流出してしまうと、偽のディジタル署名を作成することができ、
なりすましが可能になってしまいます。
2022.08.31 21:46
マッチャスキーさん(No.10)
初めまして。私も初受験で今勉強の真っ最中なのですが、この問題に対する私の理解は以下の通りです。
まず、この問題は「HTTPS復号機能」についての問題です。
本問題では、HTTPS復号機能は、クライアントとWebサーバ間の通信がHTTPS通信だと暗号化されていて中身が見れない(マルウェアチェックできない)という問題に対して、FW1でいったん復号して中身を見てから再度暗号化してデータを相手に送るために導入されました。
HTTPS復号機能では、FW1はクライアントに対しては自身をWebサーバであるかのように見せかけ、Webサーバに対しては自身をクライアントであるかのように見せかけて、第三者中継のような形で暗号化通信を読み取ります。
ご質問の「FW1がクライアントの秘密鍵を必要とするのは何故か」という理由は、FW1がクライアントになりすまして署名データを作成するためかと思います。
ちなみに、
これだと、社内のPCだったらどれでも良いということになってしまうので、個々のクライアントの識別ができなくなってしまい、クライアント証明が意味を成さないことになってしまいます。
クライアントの秘密鍵を使わなければいけないという前提で、さらにHTTPS復号機能を使うためには、FW1自身がクライアントの秘密鍵を保持していなければいけません。
クライアント証明(サーバ証明でも同じですが)では、ディジタル証明書と一緒に署名データも必要になります。その署名データを作成するために、WebサーバとのSSL/TLSハンドシェイク時に交換した情報を含めたメッセージに対して秘密鍵を使ってデジタル署名をする必要があるため、ハンドシェイクを行うFW1自身が秘密鍵を持っている必要があります。Webサーバは受け取ったその署名データとディジタル証明書を使用して、通信相手が正しい秘密鍵を持っていることを検証(クライアント認証)をします。
また、図5の(2)でFW1が作成したディジタル証明書と秘密鍵は何に必要なのかというと(たぶんここが混乱の原因?)、クライアントとFW1間でTLSセッションを確立するためなのかと思います。
例えばアクセスしたいWebサーバがYahooだとすると、Yahooのディジタル証明書と秘密鍵を偽装しているような感じだと思います(クライアントからTLS接続要求があった時にどこのサーバにアクセスしたいかはCONNECT要求時のヘッダに情報があるので、そこからどのWebサーバになりすませばいいのか分かります)。
クライアントはFW1から偽のディジタル証明書を受け取ってそれを信じてTLSセッションを確立します。一方で、FW1はWebサーバとは、Webサーバが持っている本物のディジタル証明書を利用してTLSセッションを確立します。この状態でFW1はクライアントとWebサーバそれぞれでセッションを張ったことになり、それぞれの通信を暗号化・復号を通して両者の通信を読み取れるようになります(図4の流れです)。
※クライアントがなぜ偽物のディジタル証明書をすんなり信じてしまうかというと、FW1が発行する偽のディジタル証明書を信頼するように設定している(図5の1.(1)で設定している)からです。
とはいえ、この問題では実際にはクライアントの秘密鍵をFW1に持たせるのではなく、対象のWebサーバをHTTPS復号機能の例外リストに追加することで対応したようです。
と、こんな理解なのですが、長々書いたあげくに全然間違っていたらどうしよう。。。
どなかたご採点いただけましたら幸いです。
まず、この問題は「HTTPS復号機能」についての問題です。
本問題では、HTTPS復号機能は、クライアントとWebサーバ間の通信がHTTPS通信だと暗号化されていて中身が見れない(マルウェアチェックできない)という問題に対して、FW1でいったん復号して中身を見てから再度暗号化してデータを相手に送るために導入されました。
HTTPS復号機能では、FW1はクライアントに対しては自身をWebサーバであるかのように見せかけ、Webサーバに対しては自身をクライアントであるかのように見せかけて、第三者中継のような形で暗号化通信を読み取ります。
ご質問の「FW1がクライアントの秘密鍵を必要とするのは何故か」という理由は、FW1がクライアントになりすまして署名データを作成するためかと思います。
ちなみに、
>そのため、webサーバーから見るとFW1がクライアントになると理解しています。
>そのため、社内PCの秘密鍵ではなく、FW1の秘密鍵及び証明書があれば問題なく中継できるのではと>思った次第です。
これだと、社内のPCだったらどれでも良いということになってしまうので、個々のクライアントの識別ができなくなってしまい、クライアント証明が意味を成さないことになってしまいます。
クライアントの秘密鍵を使わなければいけないという前提で、さらにHTTPS復号機能を使うためには、FW1自身がクライアントの秘密鍵を保持していなければいけません。
クライアント証明(サーバ証明でも同じですが)では、ディジタル証明書と一緒に署名データも必要になります。その署名データを作成するために、WebサーバとのSSL/TLSハンドシェイク時に交換した情報を含めたメッセージに対して秘密鍵を使ってデジタル署名をする必要があるため、ハンドシェイクを行うFW1自身が秘密鍵を持っている必要があります。Webサーバは受け取ったその署名データとディジタル証明書を使用して、通信相手が正しい秘密鍵を持っていることを検証(クライアント認証)をします。
また、図5の(2)でFW1が作成したディジタル証明書と秘密鍵は何に必要なのかというと(たぶんここが混乱の原因?)、クライアントとFW1間でTLSセッションを確立するためなのかと思います。
例えばアクセスしたいWebサーバがYahooだとすると、Yahooのディジタル証明書と秘密鍵を偽装しているような感じだと思います(クライアントからTLS接続要求があった時にどこのサーバにアクセスしたいかはCONNECT要求時のヘッダに情報があるので、そこからどのWebサーバになりすませばいいのか分かります)。
クライアントはFW1から偽のディジタル証明書を受け取ってそれを信じてTLSセッションを確立します。一方で、FW1はWebサーバとは、Webサーバが持っている本物のディジタル証明書を利用してTLSセッションを確立します。この状態でFW1はクライアントとWebサーバそれぞれでセッションを張ったことになり、それぞれの通信を暗号化・復号を通して両者の通信を読み取れるようになります(図4の流れです)。
※クライアントがなぜ偽物のディジタル証明書をすんなり信じてしまうかというと、FW1が発行する偽のディジタル証明書を信頼するように設定している(図5の1.(1)で設定している)からです。
とはいえ、この問題では実際にはクライアントの秘密鍵をFW1に持たせるのではなく、対象のWebサーバをHTTPS復号機能の例外リストに追加することで対応したようです。
と、こんな理解なのですが、長々書いたあげくに全然間違っていたらどうしよう。。。
どなかたご採点いただけましたら幸いです。
2022.09.01 00:10
ここさん(No.11)
この投稿は投稿者により削除されました。(2022.09.01 23:27)
2022.09.01 23:27
ここさん(No.12)
お二人ともご丁寧にありがとうございます!
クライアント証明書はあくまで社内PCの識別のためにあり、FW1で認証してしまうと社内PCは全て通ってしまうというところで一番納得しました。
クライアント証明書はあくまで社内PCの識別のためにあり、FW1で認証してしまうと社内PCは全て通ってしまうというところで一番納得しました。
2022.09.01 23:34
とっとこハム太郎さん(No.13)
文字数については無視して、IPAの回答を細かく記載した方が分かりやすいですね。
IPA回答例=クライアント証明書の提示が必要な外部Webサーバにアクセスする。
詳細説明 =誰がアクセスしたかwebサーバのみで判断出来る証跡を残す為に、社内PCごとのクライアント証明書の提示が必要な外部Webサーバにアクセスする。
この「HTTPS復号機能」は、普段使うネット検索などで、「このwebサイトのセキュリティ証明書には問題があります」とポップアップが出る一つの原因ですね。
第三者によるなりすましの複合化パターン。まぁこれだけではなく証明書問題にはサーバ起因や端末起因など、他の原因のパターンもありますし。
IPA回答例=クライアント証明書の提示が必要な外部Webサーバにアクセスする。
詳細説明 =誰がアクセスしたかwebサーバのみで判断出来る証跡を残す為に、社内PCごとのクライアント証明書の提示が必要な外部Webサーバにアクセスする。
この「HTTPS復号機能」は、普段使うネット検索などで、「このwebサイトのセキュリティ証明書には問題があります」とポップアップが出る一つの原因ですね。
第三者によるなりすましの複合化パターン。まぁこれだけではなく証明書問題にはサーバ起因や端末起因など、他の原因のパターンもありますし。
2022.09.02 11:39