ルート証明書をインストールしても良い条件

と書いた。これはブラウザの警告を出さないために何の説明もなくルート証明書をインストールする行為を「もってのほか」と言うのであって、ルート証明書を入れること自体が悪いわけではない。
ただ、ルート証明書をインストールするという行為は「私の代わりに審査をお任せします」という行為であることを忘れないこと。一度ルート証明書を入れるとそのルート証明書で検証可能な証明書は全て信用できる証明書として扱われる。あとはサーバ名と有効期間しかブラウザは確認してくれない。
では、どういう条件が満たされればルート証明書をインストールしても良いのか。Webで調べてみると参考になる資料はある[1. 実際は高木氏のGPKIおよびLGPKIにおけるルート証明書配布方式の脆弱性と解決策(PDF)安全な通信を行うための証明書(サーバ管理者日誌)を参考にした。]が、条件を列記してある場所が見つからなかった[1. 実際は高木氏のGPKIおよびLGPKIにおけるルート証明書配布方式の脆弱性と解決策(PDF)安全な通信を行うための証明書(サーバ管理者日誌)を参考にした。]ので自分なりにまとめてみた。間違いがあればご指摘下さい。

  1. そのルート証明書の発行元(認証局)が実在し、信用がおけること
    これはインストールする人自身が判断しなければいけないことである。
    例えば、LGPKIの証明書であれば実在はしているし、国家プロジェクトなので信用もできるだろう。一方で俺がCubed-lCAという認証局を立てたとしてもどれほどの信用が置けるのか全く不明である。インストールする人の立場でこの信用の度合いは変化する。
  2. そのルート証明書が正しいものであること
    これは更にいくつかの条件に分ける。

    1. その証明書の配付に偽装不可能な経路を利用していること
      ベストな手法はオフラインである。
      そのルート証明書をインストールしたい人が直接窓口に行ってCDなどの媒体で受け取れば良い。あるいは郵送による申し込み、配布である。
      ベターな策としてはhttpsでダウンロードできる環境を構築すること。
      当然このhttpsで利用される証明書はベリサインなどの[2. やっぱりベリサインを代表例をして使ってしまうなぁ]既に信頼済みのルート証明書によって検証可能なものでないといけない。注意点としては、コンテンツ自体の改ざんが行われている場合はhttpsも無力であるという点である。
    2. その証明書の拇印(fingerprint)の配布に偽装不可能な経路を利用していること
      やはりベストはオフラインである。公的機関であれば官報に載せる、民間企業であれば自社発行物[3. 広告や会社案内かな。名刺は偽装が容易だろうか]に印刷するなどの手段が考えられる。
      ベターな策がhttpsなのは前項と同じ。コンテンツの改ざんを懸念するのであれば複数の異なるサーバに記載すべき。
    3. fingerprintが一致すること
      上記1,2項で改ざんが防止されていることを確認した上で突き合わせを行う。
      証明書の真正性を確認するためには証明書に記載されているfingerprintと発行者によって公開されているfingerprintの突き合わせがもっとも確実だが、そのどちらもが偽装不可能であることを確立しなければならない。
  3. CP/CPSが適切なものであること
    組織全体として信用が置けても運用が駄目なら駄目である。
    従ってCP/CPSまで目を通し、信用が置けないのであればインストールしてはいけない。

何か書き漏らしがある気がするが、ひとまず以上です。