gnoMintは、独自の認証機関(CA)を簡単に管理できるデスクトップ・アプリケーションだ。多くのセキュア通信テクノロジは、接続先の団体やサービスが成りすましではないことを確認するためにデジタル証明書を使用する。ほとんどの人にとってデジタル証明書を目にするのは、HTTPS Webサイトを開いて、正しいWebサーバに接続したことを検証するために証明書が提示されたときである。
このような証明書を信頼できるのは、信頼されたCAによって署名されているからだ。CAの署名付きの証明書を入手するプロセスはいろいろあるが、一般にCertificate Signing Request(CSR:署名要求)を生成してCAに送信し、CAがこの要求が偽造ではないこと、そして送信者が申し立てどおりの本人であることを検証する。送信者の本人確認のためにCAで実行される検証のレベルはさまざまだ。認証で問題がなければ、CAによってCSRに署名が付けられ、有効な証明書が生成される。Webサイトにやってきたユーザはこの証明書を提示され、そこに記されたCAの署名を確認することで正しいWebサイトに接続したかどうかを検証できる。Webブラウザには信頼関係のあるCAのリスト(および各CAの署名検証用のパブリックキー)が登録されているため、このリストにあるCAによって署名された証明書は有効と考えてよい。
独自のCAを稼働することには、生成する証明書の使い方によっては短所がある。最大の短所は、その証明書をパブリックサーバで使う場合に生じる。このシナリオではサーバに接続中のクライアントにとって、そのサイトから提示された証明書を信頼できるかどうかを知る手段がない。Webブラウザに登録された既知のCAのリストには、この独自のCAに関する情報がないからだ。
証明書をパブリックサーバで使う予定であれば、無料の証明書署名を提供するStartSSLのようなサービスを利用するか、年間20ドル程度で署名付きの証明書を購入できる。
一方で、プライベートサーバへの接続を特定のユーザグループに許可する目的で証明書を使う場合、独自のCAは便利だ。独自のCAを稼働するということは、外部のCAを頼らずに20通の署名付き証明書を2、3時間内で発行できることを意味する。また、発行した証明書を長い期間(極端に言うと数十年でも)有効にすることも可能だ。独自の署名付き証明書を俊敏に生成できれば、サーバだけでなくクライアントの検証にも使える証明書を生成できる。これもメリットの1つだ。たとえば、Webメールインタフェースでは、クライアントの正当性の検証はサーバの正当性の検証と同じぐらい重要だ。また、クライアント・サーバ型アプリケーションでクライアント証明書を使用できれば、セキュリティレベルが高くなる。サーバに不正アクセスするためにはクライアント証明書を偽造しなければならないからだ。
