HOME»情報処理安全確保支援士掲示板»TLSのサーバ証明書とSNIの比較
投稿する
以下の文章は
「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに
記載されたwww.y-sha.domが一致しているかを【クライアント側で】確認します。」
という意味ではないでしょうか。
SNIとは「ServerNameIndicator」のことです。
Webサーバ側でHTTPリクエストのHostヘッダを基にバーチャルホストを
識別する機能です。
また、バーチャルホスト名(FQDN)とサーバ証明書のCNの一致の検査は、
クライアント側で証明書の検証時に行われます。
したがって、以下のように文章を変更すれば分かりやすくなると思います。
「TLS通信では、クライアント側で証明書の検証として、
接続先バーチャルホスト名www.y-sha.domと、サーバ証明書のCNに
記載されたwww.y-sha.domが一致しているかを確認します。」
すみません。私がHTTPのVertualHostとHTTPSのSNIを混同していたようです。
そういう意味ですと、
「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに記載された
www.y-sha.domが一致しているかを確認します。」
という文言は、
「Webサーバ側で複数所持しているデジタル証明書を、SNIによって適切な1枚の
デジタル証明書を選ぶ」
という意味ではないでしょうか。
それ以上のことは申し訳ありませんが、最初の文言の表現が不適切か、私の知識不足の
どちらかと思われます。
TLSの仕様にどこまで含まれるのかはすみません、わかりません。
①-③の流れの記載は、
「セキュリティ技術の教科書 第3版」の
P348 9.1.1 (10)TLSの拡張仕様
にあった説明を引用しました。
上記は、あくまでWebブラウザとWebサーバ間の話で、TLSはそれ以外にも
使われるので、SNIとデジタル証明書のCNの一致を検証するかは
アプリケーション次第でケースバイケース(?)だと思います。
違っていたらどなたか指摘してください。
TLSのサーバ証明書とSNIの比較 [1423]
4月受けますさん(No.1)
支援士R4に以下の内容が書かれていました。
「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに記載されたwww.y-sha.domが一致しているかを確認します。」
これは事実でしょうか?
一致しているか確認するのはクライアント(ブラウザ)の実装次第で、TLSにそんな決まりはないと思っていました..
お詳しい方がいらっしゃいましたら教えていただきたいです。
「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに記載されたwww.y-sha.domが一致しているかを確認します。」
これは事実でしょうか?
一致しているか確認するのはクライアント(ブラウザ)の実装次第で、TLSにそんな決まりはないと思っていました..
お詳しい方がいらっしゃいましたら教えていただきたいです。
2024.03.18 22:03
pixさん(No.2)
★SC ダイヤモンドマイスター
>「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに
>記載されたwww.y-sha.domが一致しているかを確認します。」
>これは事実でしょうか?
>一致しているか確認するのはクライアント(ブラウザ)の実装次第で、
>TLSにそんな決まりはないと思っていました..
以下の文章は
「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに
記載されたwww.y-sha.domが一致しているかを【クライアント側で】確認します。」
という意味ではないでしょうか。
SNIとは「ServerNameIndicator」のことです。
Webサーバ側でHTTPリクエストのHostヘッダを基にバーチャルホストを
識別する機能です。
また、バーチャルホスト名(FQDN)とサーバ証明書のCNの一致の検査は、
クライアント側で証明書の検証時に行われます。
したがって、以下のように文章を変更すれば分かりやすくなると思います。
「TLS通信では、クライアント側で証明書の検証として、
接続先バーチャルホスト名www.y-sha.domと、サーバ証明書のCNに
記載されたwww.y-sha.domが一致しているかを確認します。」
2024.03.18 22:18
4月受けますさん(No.3)
ご返信ありがとうございます。
Webサーバ側でHTTPリクエストのHostヘッダを基にバーチャルホストを
識別する機能です。
いえ、SNIはTLSの拡張仕様のことです。
具体的にはClient Helloのパケット内のServer Name Indicate extensionに含まれるServerNameのことをさしています。
また、TLSにはCNとSNIを比較する仕様は無いと思いますが、こちらに対する回答はいかがでしょうか?
>SNIとは「ServerNameIndicator」のことです。
Webサーバ側でHTTPリクエストのHostヘッダを基にバーチャルホストを
識別する機能です。
いえ、SNIはTLSの拡張仕様のことです。
具体的にはClient Helloのパケット内のServer Name Indicate extensionに含まれるServerNameのことをさしています。
また、TLSにはCNとSNIを比較する仕様は無いと思いますが、こちらに対する回答はいかがでしょうか?
2024.03.19 15:27
pixさん(No.4)
★SC ダイヤモンドマイスター
>いえ、SNIはTLSの拡張仕様のことです。
>具体的にはClient Helloのパケット内のServer Name Indicate extensionに含まれる
>ServerNameのことをさしています。
すみません。私がHTTPのVertualHostとHTTPSのSNIを混同していたようです。
>また、TLSにはCNとSNIを比較する仕様は無いと思いますが、こちらに対する回答は
>いかがでしょうか?
そういう意味ですと、
「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに記載された
www.y-sha.domが一致しているかを確認します。」
という文言は、
「Webサーバ側で複数所持しているデジタル証明書を、SNIによって適切な1枚の
デジタル証明書を選ぶ」
という意味ではないでしょうか。
それ以上のことは申し訳ありませんが、最初の文言の表現が不適切か、私の知識不足の
どちらかと思われます。
2024.03.19 15:57
wrinklyさん(No.5)
横から失礼します。
調べてみました。
の意味ですが、
①Webブラウザ(クライアント)が、ClientHelloで、<SNI>で接続先サーバ
(www.y-sha.dom)を指定して送信
②Webサーバが、SNIで指定されたサーバ(www.y-sha.dom)に基づいて、
ServerHelloで、サーバ(www.y-sha.dom)のサーバ証明書
(CNにwww.y-sha.domが設定されている)を送信
③Webブラウザ(クライアント)が、接続先であるSNIで指定したwww.y-sha.domと、
サーバ証明書のCNに記載されたwww.y-sha.domが一致しているかを確認
ということだと思います。
<補足>
Webサーバがバーチャルホスト(1台のサーバで複数のWebサーバが動作)の場合、
Webブラウザが<SNI>で指定した接続先に応じたサーバ証明書を使い分けて送信します。
調べてみました。
>「TLS通信では、接続先のSNIであるwww.y-sha.domと、サーバ証明書のCNに記載された
>www.y-sha.domが一致しているかを確認します。」
の意味ですが、
①Webブラウザ(クライアント)が、ClientHelloで、<SNI>で接続先サーバ
(www.y-sha.dom)を指定して送信
②Webサーバが、SNIで指定されたサーバ(www.y-sha.dom)に基づいて、
ServerHelloで、サーバ(www.y-sha.dom)のサーバ証明書
(CNにwww.y-sha.domが設定されている)を送信
③Webブラウザ(クライアント)が、接続先であるSNIで指定したwww.y-sha.domと、
サーバ証明書のCNに記載されたwww.y-sha.domが一致しているかを確認
ということだと思います。
<補足>
Webサーバがバーチャルホスト(1台のサーバで複数のWebサーバが動作)の場合、
Webブラウザが<SNI>で指定した接続先に応じたサーバ証明書を使い分けて送信します。
2024.03.19 16:45
4月受けますさん(No.6)
pixさん
wrinklyさん
ご回答ありがとうございます。
私も改めて調べ直してみたのですが、TLSの中でクライアント側でSNIとサーバ証明書のCNを比較する動作の情報はTLSのRFC上では見つけられませんでした...
私の質問も誤解を招いてしまうような内容で失礼しました。
wrinklyさん
①-③の流れを記載いただきましたが、この動作はTLSの仕様ですかね?
それともただのクライアントの実装でしょうか?
wrinklyさん
ご回答ありがとうございます。
私も改めて調べ直してみたのですが、TLSの中でクライアント側でSNIとサーバ証明書のCNを比較する動作の情報はTLSのRFC上では見つけられませんでした...
私の質問も誤解を招いてしまうような内容で失礼しました。
wrinklyさん
①-③の流れを記載いただきましたが、この動作はTLSの仕様ですかね?
それともただのクライアントの実装でしょうか?
2024.03.19 18:44
wrinklyさん(No.7)
>①-③の流れを記載いただきましたが、この動作はTLSの仕様ですかね?
>それともただのクライアントの実装でしょうか?
TLSの仕様にどこまで含まれるのかはすみません、わかりません。
①-③の流れの記載は、
「セキュリティ技術の教科書 第3版」の
P348 9.1.1 (10)TLSの拡張仕様
にあった説明を引用しました。
2024.03.19 19:31
橙色文書さん(No.8)
R4春秋の問題冊子を持っていますが、指定が「R4」だけでは当該箇所を探す気にもなれません。
2024.03.19 20:44
GinSanaさん(No.9)
★SC ブロンズマイスター
橙色文書さん(No.8)
たぶん支援士R4は、書籍名のことだと思います(左門至峰の本)。
たぶん支援士R4は、書籍名のことだと思います(左門至峰の本)。
2024.03.19 23:32
wrinklyさん(No.10)
>①-③の流れを記載いただきましたが、この動作はTLSの仕様ですかね?
>それともただのクライアントの実装でしょうか?
上記は、あくまでWebブラウザとWebサーバ間の話で、TLSはそれ以外にも
使われるので、SNIとデジタル証明書のCNの一致を検証するかは
アプリケーション次第でケースバイケース(?)だと思います。
違っていたらどなたか指摘してください。
2024.03.20 07:49