トラストアンカーとは
トラストアンカーとは、インターネットなどで行われる、 電子的な認証の手続きのために置かれる基点のことです。 トラストポイントとも呼ばれます。ここで言う認証の手続きとは、 アクセスしている通信相手が正しいことを確かめたり、電子データが途中で変更されずに、 正しい状態にあることを確かめることを意味しています。
トラストアンカーという概念は、 PKI(Public Key Infrastructure)(*1)の電子証明書のような、 電子的な証明が連鎖した構造を持つ認証基盤を使うときに用いられます。 この証明の連鎖とは、「ある者が別の者の正しさを証明し、 その者が更に別の者の正しさを証明する」といった構造のことです。 このような認証基盤を使った認証の手続きは、通信相手の電子的な証明、 または電子データに付けられた署名が、あらかじめ設定しておいた基点との間で、 正しく連鎖しているかどうかを確認することで行われます。 この基点がトラストアンカーです。トラストアンカーは必ずしも連鎖の頂点ではなく、 認証の手続きを行う者が各自に信頼を置くところに設定します。 あらかじめ複数のトラストアンカーを設定しておくこともあります。
なお、この連鎖はあらかじめ定められているポリシー(目的や方針)にのっとって作られており、 認証の手続きは、認証の対象からトラストアンカーまでの連鎖が、 ポリシーから逸脱していないかどうかを確認する手続きでもあります。
PKIとSSL(Secure Sockets Layer)/TLS(Transport Layer Security)を例に挙げて説明します。 PKIの場合、トラストアンカーは認証局証明書で示されます。一般的には、 自己署名証明書を使って設定されます。SSL/TLSを使った通信相手の認証処理では、 通信相手の電子証明書に記載された発行元の電子証明書をたどっていき、 あらかじめ指定しておいた認証局証明書にたどり着くことができれば、 通信相手の認証が成功します。このあらかじめ指定する認証局証明書が、 認証を行う者にとってのトラストアンカーです。トラストアンカーの認証局と下位認証局は、 SSL/TLSを使った通信相手の認証のために電子証明書を発行する、 という証明のポリシーを持っています。SSL/TLSにおける電子証明書を用いた認証は、 SSL/TLSで使われるというポリシーにのっとって発行された、 証明の連鎖を確認することを意味しています。
DNSSECの場合、トラストアンカーはDNSゾーンの署名者の公開鍵です。 KSK(Key Signing Key)公開鍵や、そのハッシュ値を使って指定されます。 署名レコードの検証は、上位のドメイン名管理者による署名と、 さらに上位のドメイン名管理者による署名といった具合に連鎖を確認していき、 あらかじめ設定されたトラストアンカーにたどり着けるかどうかを確認して行われます。 DNSSECの場合、署名の連鎖は必ずDNSSECのために構築されるため、 ポリシーが意識されることはあまりありません。
Webブラウザやオペレーティングシステム(OS)では、PKIのトラストアンカーは、 証明書ストアと呼ばれるような専用の格納場所で設定されます。 DNSSECの場合には、DNSキャッシュサーバや、DNSリゾルバの設定ファイルで指定されます。 トラストアンカーは、認証処理の結果に大きく影響します。 古い証明書や間違った公開鍵をトラストアンカーに指定してしまうと、 不正な証明書が正しいかのような結果になってしまったり、 正常な署名が不正であるかのような結果になってしまったりします。 認証基盤の利用にあたっては、利用者がトラストアンカーに設定されるデータ、 つまり認証局証明書やKSK公開鍵を間違いのないように入手し、 適切に設定することが重要です。
(*1) JPNIC用語集:PKI
http://www.nic.ad.jp/ja/tech/glos-kz.html#03-PKI