電子書籍の厳選無料作品が豊富!

HTTPSサーバーにアクセスした場合、第三者証明機関は中間証明書とサーバー証明書が
渡すという話をしており、ほかの者に確認したら、中間証明書とサーバー証明書は
クライアントに渡すことはなく、渡していたら、オレオレ詐欺みたいに偽ることが
できてしまうので、CA証明書と中間証明書はOSに入っているという話をしています。

どちらが本当のことを言っているのか確認しようと思い、以下のことを行いました。

WindowsVistaを新規インストールした状態で確認したところ、IEの「信頼されたルート証明機関」
及び「中間証明機関」にベリサインなどのいくつかの証明書が入っていました。
その状態でセコムのサイトにアクセスしたら、セコムのCA証明書が「信頼されたルート証明機関」
に入っており、パス検証は問題ありませんでした。
WindowsVistaを新規インストールした状態では、セコムのCA証明書、中間証明書は入って
いませんでしたので、セコムのCA証明書がセコムのサイトにアクセスした際にインストールされたのは
間違いありません。セコムの中間証明書はIEの「中間証明機関」に入っていませんでした。

この時点でCA証明書はOSに入っているという話をされている者が間違っていることが確認できました。
CA証明書にも無論 有効期限があるので、ルート証明書の更新で更新されるので初めから入っているCA証明書がずっと使われるわけではありません。

<確認を行いたい点>
1.セコムのサイトにアクセスしたら、セコムのCA証明書が「信頼されたルート証明機関」に入ったので
これがどこからインストールされたか確認する方法はありますでしょうか。
パケットキャプチャを取得することになると思いますが、どの点に着眼すれば、それが確認できますでしょうか。

2.IEにはセコムの中間証明書は入っていないにもかかわらず、セコムのサイトにアクセスしたらパス検証は問題ありませんでした。パス検証に問題がないということは中間証明書及びサーバー証明書がHTTPSサーバー側から提示されているか、渡されているになると思いますが、どのような方法を行えば確認することができますでしょうか。
パケットキャプチャを取得することになると思いますが、どの点に着眼すれば、それが確認できますでしょうか。

A 回答 (4件)

ちょっと古い本ですが、以下の書籍に仕組みが詳しく書かれていました。


(図書館で見つけました)

SSL/TLS導入ガイドブック
ISBN: 4-8399-1943-7
http://honto.jp/netstore/pd-book_02628137.html

SSL/TLSによる通信のうち、HTTPS通信におけるサーバー証明書には、ルート証明書に連なるリストも一緒に入っているようです。
それが改ざんされていない事が前提ですが、サーバー証明書自体にそれらの処理が施されているので、クライアントに中間証明書を準備しておく必要はない、と解釈しました。

中間証明書に関しては詳しい記載がなかったのですが、「サーバー証明書」以外の用途(コード証明や、メールの証明)で利用する場合に必要になってくるのではないでしょうか。
HTTPS通信の場合は、「サーバー側」に中間証明書が必要なのは、#3の方が書いておられる通りです。

RootCAが勝手に入る件は、気持ち悪いと感じる部分もありますが、いわゆる「オレオレ証明書」では警告されることから、信用できる機関から信用できる情報で入手していると見て問題ないのではないでしょうか。
もちろん、そこの処理にセキュリティホールがあれば大変な事ですが。

この回答への補足

下記のサイトを見るとルート証明書は送信されるみたいです。


Lesson4:相手が信頼できることを確かめる「サーバー証明書」とは?
http://itpro.nikkeibp.co.jp/article/COLUMN/20071 …

補足日時:2013/12/06 01:18
    • good
    • 0
この回答へのお礼

ありがとうございます。

Webサーバー側にはCA証明書、中間証明書、サーバー証明書が必要ですが、クライアント側にはWebサーバー側からサーバー証明書とともに証明書チェインが提示されるので、クライアント側はその証明書チェインを見て、中間証明書がCAから発行されていることが確認できればいいので、クライアント側に中間証明書が無くても問題ないということでしょうか。

CA証明書がないと自動でインストールされるのはCA証明書がないと証明書チェインに記載されている中間証明書が正しいかどうか判断が出来ない為、おそらくインストールされるのではないかと思います。

お礼日時:2013/11/29 15:18

前回の「ルート証明書の更新機能について」に回答したものです。


結局、信じてはもらえなかったってコトなのね・・・。てな愚痴は置いといて。
(^o^//

まず 1 ですが、ご認識通りHTTPSですのでパケットキャプチャでは確認できません。
存在しない → アクセス → 存在する
という事象から推論するしか方法は無いと思います。

2 は簡単です。自分でルート認証局+中間認証局+SSLサーバーを立てれば確認できます。
「ルート証明書をダウンロードする」 と 「中間証明書を検証する」 は独立した処理ですので、自分で認証局を立てて あらかじめインストールしておけば 「中間証明書を検証する」 のはテストできます。

一番簡単に中間認証局を構築できるのはOpenSSLです。ルート認証局と中間認証局を構築したら、ルート証明書のみVISTAへインストールします。
中間認証局からSSLサーバー証明書を発行したらApacheに設定します。中間証明書はSSL.confのSSLCertificateChainFileです。

最初は中間証明書を入れずにアクセスしてみてください。エラーになるハズです。
次に中間証明書を設定してからアクセスすると、正常にいくハズです。

以上です。

この回答への補足

ありがとうございます。

すみません。前回の「ルート証明書の更新機能について」の回答で"Windows VISTAと7ではOS出荷時にルート証明書は空の状態"と伺っていたのですが、
Vista,7でネットワークに接続できない状態でOSセットアップを行ったところ、ルート証明書が空ではなくベリサインの証明書などが入っていたので理解するために確認してみました。

2についてですが、SSLクライアントに中間証明書がインストールされていなければエラー
になるので中間証明書もインストールが必要なのは分かるのですが、セコムトラストネット
のサイトにアクセスしたときにルートCAしかインストールされませんでした。

セコムトラストネットのサイトを見るとルート証明書を更新する手順としてあり、それを実施すると
Security Communication RootCA1、Security Communication RootCA2、Security Communication EV RootCA
が追加されるとあります。
---------------------------------------------
http://repository.secomtrust.net/rootupdate

Security Communication RootCA1
Security Communication RootCA2
Security Communication EV RootCA
---------------------------------------------

しかし、その手順を実施しないでセコムトラストネットにアクセスするとパス検証は問題なく、
IEにインストールされている証明書はセコムトラストネットのルート証明書のみでした。
他にセコムトラストネットの証明書はなく、その証明書の有効期限からセコムルート証明書
であることを確認しました。
--------------------------------------
SECOM Trust System CO LTD
Security Communication EV RootCA1
Security Passport for EV CA
www.secomtrust.net
-------------------------------------

本来、中間証明書が入っていない場合、エラーになるはずですが、エラーにならないので
調べていたところ、ベリサインのサイトに下記の情報がありましたので中間証明書が自動で
インストールされているのではと思って確認しましたが、IEの信頼されたルート証明機関、
中間証明機関にもない状態でした。

IEの信頼されたルート証明機関、中間証明機関にもない状態なのでダウンロードされていない
のではなるのですが、その場合、パス検証が通った理由がつかなくなってしまっています。

https://www.verisign.co.jp/ssl/help/faq/110116
一部環境の Internet Explorer は、自動的に必要な中間CA証明書をダウンロードする機能を持っています。
このため、Internet Explorerの環境によっては中間CA証明書がインストールされていなくても警告が表示されないことがあります。
中間CA証明書は、必ずウェブサーバにインストールしてください。

補足日時:2013/11/04 09:09
    • good
    • 0

すみません。

拡張子は、.cer でした。(Certification)
当方でも確認してみました。最新パッチ適用済みでもセコムトラストさんのRootCAはなく、セコムトラストさんにアクセスしたら現れました。(パケットキャプチャはしていません)

中間証明書がクライアント上に現れない件についてはもう少し調べてみないといけませんが、SSLを使うサイトすべての中間証明書を保管しておく事は、量的にも、安全性といった面でもあまりよろしくないようですね。
(個別にインストールする事は可能ですが)

あと、パケットキャプチャで中身が分かるものであれば、改ざんも可能なわけで、簡単に見つけられるものではないのではないでしょうか。

専門家ではないのですが、気になるのでもう少し調べてみます。

この回答への補足

ありがとうございます。

下記のサイトを見ると下記の記載があるので、Microsft Updateでダウンロードされている
と考えられますが、IEの信頼されたルート証明機関、中間証明機関にも中間証明書は
入っていませんでした。
Secom Trust System CO LTDはIEの信頼されたルート証明機関に入っていますが、
"Security Communications EV Root CA1"と"SECOM Passport for Web EV CA"がIEの信頼された
ルート証明機関にも中間証明機関にも入っていませんでした。
http://repository.secomtrust.net/rootupdate/を見るとルート更新プログラムを実行すると
インストールされるようですが、実行していないにもかかわらずパス検証が通ったかが
不思議な状態です。
---------------------------------------------------------------------------------
http://support.microsoft.com/kb/931125/ja

Windows Vista 以降のルート証明書は、自動ルート更新メカニズムを介して、
つまりルート証明書ごと配信されます。ユーザーが (HTTPS SSL を使用して)
セキュリティで保護された Web サイトにアクセスし、セキュリティで保護された
電子メール (S/MIME) を読み取り、署名 (コード署名) された ActiveX コントロール
をダウンロードし、新しいルート証明書を検出した場合は、Windows 証明書チェーンの
確認ソフトウェアにより Microsoft Update でルート証明書が確認されます。
そのルート証明書が見つかった場合は、プログラムのすべての信頼されるルート証明書の
一覧が含まれる現在の証明書信頼リスト (CTL) がダウンロードされ、そのルート証明書が
その一覧に存在することが確認されます。続いて、指定のルート証明書がシステムにダウン
ロードされ、Windows の信頼されたルート証明機関ストアにインストールされます。
----------------------------------------------------------------------------------

ルート証明書のダウンロードですが、下記のサイトにあるので、恐らくHTTPS(443)で行われているのではないかと思います。そのため、パケットをとっても渡されているルート証明書のデータを見るとできないので確認することができないと考えています。
http://support.microsoft.com/kb/822712/ja

補足日時:2013/11/03 14:15
    • good
    • 0

https://www.verisign.co.jp/ssl/help/faq/110116/
> 一部環境の Internet Explorer は、自動的に必要な中間CA証明書をダウンロードする機能を持っています。
> このため、Internet Explorerの環境によっては中間CA証明書がインストールされていなくても警告が表示されないことがあります。
> 中間CA証明書は、必ずウェブサーバにインストールしてください。

中間CA証明書は、RootCA証明書または上部中間CA証明書によって証明されているので、それが確認できれば自動でダウンロード、インストールしてしまうようですね。

証明書は、.csr 拡張子のファイルですから、それを観測すれば良いのではないでしょうか?

----
SECOMさんは、SSL認証局の事業も行ってます。
https://www.secomtrust.net/service/pfw/

http://repository.secomtrust.net/rootupdate/
上記説明によると、7までは初期インストールの状態ではRootCAが入っていないように見受けられます。
Microsoft Updateやサービスパック等で更新されているのかもしれません。

この回答への補足

ありがとうございます。

セコムトラストネットのサイトにアクセスしたときCA証明書は自動でインストールされましたが、
クロスルート証明書のためか中間証明書はインストールされていませんでした。
IEの中間証明書で確認してもセコムトラストネットの証明書がありませんでしたので、
どうやってパス検証が行われたかが不思議な状態です。

パケットキャプチャを見ると207.46.15.253があがっており、これがマイクロソフトのサーバー
のようですがHTTPでCSRをゲットしている形跡はありませんでした。
Wiresharkでみると207.46.15.253に対してCliant Helloを送っており、207.46.15.253からは
Server Helloが返ってきていることが確認できますが、その間での通信でのバイナリを見ても
セコムトラストネットの文字列はありませんでした。

セコムトラストネットのサーバーにアクセスしたときは、Server Helloが返ってきているバイナリ
データにセコムトラストネットの文字列はありました。

補足日時:2013/11/02 15:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!