公开键証明书の仕組み
皆さん、こんにちは。技术开発グループの苍-辞锄补飞补苍です。
12月になり、忘年会シーズンが始まりましたね。泥酔してセキュリティ事故を起こさないように気を付けましょう。
本题です。
ページを開こうとすると「証明書が信頼されていません」のようなメッセージが表示されて、何か悪いことしたのかなとドキドキしたことありませんか?この証明書、一体何を証明しているんでしょうか?何故、証明書がないと危ないのでしょうか。今回は公开键証明书のお話です。
目次
公开键証明书
なしすまし攻撃
これまでのおさらいです。これまで公开键暗号方式などの暗号技術を取り上げてきましたが、常に問題としてあがるのが「なりすまし攻撃」です。例えばボブが公開鍵をアリスへ送信する際に、中間に攻撃者マロニーが公開鍵をすり替えることにより、データの盗聴や改ざんなどが行われてしまうものです。デジタル署名などにより改ざん防止は行えるものの、公开键暗号方式を利用しているため、なりすまし攻撃の問題は残ってしまいます。

公开键証明书
TLS通信で言われる証明書というのは「公开键証明书」です。公开键証明书とは、公開鍵とその所有者を紐付けて、この公開鍵は確かにこの人の公開鍵ですよ、と証明するものになります。公开键証明书は、信頼できる第3者機関である認証局により、デジタル署名されることで発行されます。公开键証明书には、公開鍵とその所有者の情報に加えて、発行した第3者機関の情報と証明書の有効期限などが含まれています。

証明书のプロセス
では、この証明书はどのように使われるのでしょうか。まず、ボブは自身の公开键に対して証明书を発行してもらうように、认証局に依頼します。认証局は本人确认を行い、问题なければ証明书を発行します。アリスはボブから証明书を受け取り、その証明书の検証を行います。

アリスが証明書を検証するには、証明書にデジタル署名した認証局の公開鍵が必要になります。この認証局の公開鍵は公开键証明书として予めPC端末にインストールされています(※)。Windows10であれば、コントロールパネルからインターネットオプションを開き、コンテンツの証明書ボタンをクリックすると、事前にインストールされた(信頼された)公开键証明书を確認することが出来ます。
※インストールされていない场合もあります。详细は后述。
信頼できる公开键証明书として事前にインストールされているため、検証に用いられる公開鍵をなりすましにより偽造される心配はありません。また、信頼できる公開鍵により、証明書のデジタル署名を検証できるため、ボブから受け取った公開鍵も安全に利用することが出来るようになります。
ルート証明书と証明书チェーン
认証局はトップダウンのツリー构造となっています。例えば认証局础はボブの公开键を証明し、认証局叠は认証局础の公开键を証明する、といった具合です。もし认証局叠がツリー构造のルートに位置する场合、认証局叠を「ルート认証局」と呼びます。认証局础は「中间认証局」と呼びます。

この繋がりを、証明书をチェーンのように繋ぐことで表现します。ルート认証局が発行した証明书を「ルート証明书」と呼びます。また、自分自身で公开键を証明していることから「自己署名証明书」とも呼ばれます。

この証明書チェーンにより、事前にインストールされていない認証局から証明書を発行してもらうことも可能になります。仮にアリスのPCに中間認証局の公开键証明书がインストールされていなくとも、その中間認証局の公开键証明书を証明するルート認証局の公开键証明书がインストールされていれば、ボブの証明書は信頼できると判断できるようになります。
おわりに
ページを開く際に表示される「証明書が信頼されていません」というメッセージは、証明書の有効期限が切れたか、自分のPCに証明書を検証するための公开键証明书がインストールされていないために表示されるメッセージです。相手から受け取った証明書の検証を行うことが出来ないため、このまま開くとなりすましで盗聴されるよ、というブラウザからの強い警告なのです。もちろんそのまま無視してページを開くことも出来ますが、特別な理由がない限りは開かない方が良いかと思います。
ではまた。
