# 信頼の網
# OpenPGPによる公開鍵の正当性の確認
暗号化されたメッセージを送ったり、電子署名されたメッセージを受け取って検証する際には、公開鍵が正当なものであることが重要です。公開鍵とペアになっている私有鍵を悪意の第三者が持っていた場合には、メッセージが漏洩してしまったり、メッセージが改竄されていたり偽物だったりしても気づくことができません。
OpenPGPでは、信頼の網(web of trust)と呼ばれる方法で、メッセージのやりとりをする人が公開鍵の正当性を確認できるようにしています。OpenPGPを利用する人たちは、互いの公開鍵に信頼度を設定してデジタル署名して、公開鍵と共に公開します。手元の公開鍵には、自分で信頼度を設定してデジタル署名をすることも、自分が信頼している人(私有鍵の持ち主)のデジタル署名によって信頼できると確認することもできます。
鍵対を持っている人どうしが直接会った時に、互いの公開鍵に信頼度を電子署名することあります。直接互いの公開鍵のIDや指紋を確認することができるので、悪意の第三者の公開鍵がまぎれこんでしまう可能性を抑えられます。
多くの開発者が集まる機会があれば、キーサインパーティが開かれることがあります。参加者が公開鍵のIDや指紋、そして、身分証明書を確認しあい、それぞれの公開鍵にそれぞれの私有鍵で電子署名することで、効率的に信頼の網を拡張することができます。
このほか紙の名刺などにIDや指紋を印刷しておくことによってオンラインでの改竄を防ぐこともできます。また、直接会うことが困難な相手のために、メーリングリストに投稿する電子メールやウェブページなどの多くの媒体を通してIDや指紋を公開しておくことで、悪意の第三者による改竄を困難にすることもあります。
# PKIによる公開鍵の正当性の確認
HTTPSでの通信に使われるTLS (Transport Layer Securrity)でも、公開鍵暗号を利用して通信内容を暗号化しています。ブラウザなどのHTTPSクライアントは、TLS接続を確立する時に通信先から提示された公開鍵(TLSサーバ証明書)を確認して、通信先を信頼するかどうかを決めます。HTTPSクライアントは、TLSサーバ証明書に施された電子署名を検証する公開鍵(中間CA証明書)を辿り、信頼すると決めている認証局の公開鍵(ルートCA証明書)のいずれかに到達できた場合には、TLSサーバ証明書を正当なものとして信頼します。
OpenPGPの信頼の網とは異なり、TLSサーバ証明書を信頼するかどうかは、HTTPSクライアントがルートCA証明書を信頼するかどうかで決まります。このように、公的に信頼されている認証局が電子署名をすることで公開鍵の信頼を裏づける仕組みをPKI (Public Key Infrastructure、公開鍵基盤)と呼びます。信頼するルートCA証明書のリストは、ウェブブラウザやOSと共に配布されていますしHTTPクライアントの利用者が自分で設定することもできます。
HTTPSへの応用のほか、文書への電子署名に利用する鍵対として、認証局に電子署名されたクライアント証明書を利用することで、鍵対の正当性を確認することもあります。
OpenPGPの基本的な動作を確認したら、実際の活用方法を概観していきます。
← 電子署名 電子メールの暗号化と署名 →