証明書の正当性は、本来階層構造を上位にたどることによってルート証明書にたどり着くことで確認ができます。しかし第三者認証局の階層に参加せずとも、勝手にサーバ証明書を作ることができる「オレオレ証明書」と呼ばれる自己署名証明書も、知識があれば自分で作成することが可能です。しかしこうした正当性が証明できない自己署名証明書を使うことは信頼できないサイトという評価になります。
この記事では、なぜ自己署名証明書が危険なのか信頼のできない証明書であるかについて解説します。
目次
「自己署名証明書」は、なぜ信頼できない証明書といわれてしまうのか把握しよう
SSL通信において「電子証明書」は、重要な個人情報や決済情報を暗号化して、万が一途中でデータが盗まれた場合でも、内容が書き換えられないようにしてくれる大切な働きを持っています。
この暗号化をするにあたって、電子証明書は第三者認証局に依頼せずに作成した「自己署名証明書」であっても「暗号化の機能」は果たすことができます。
「自己署名証明書」は技術的な知識のある人にとってはそれ程苦労せずに発行できるものなので、料金を払って第三者認証局に証明書を発行してもらわずに済ませてしまうケースも見受けられます。
「自己署名証明書」ですまそうとしてしまう人は、たいてい「暗号化できているから問題ない」ということをその理由としますが、ここには重大な落とし穴があるのです。そうした人はサーバ証明書には、暗号化通信の他に、Webサイトの運営者・運営組織が実在することを証明する「組織の実在性確認」という大切な役割があることを忘れてしまっているのです。
組織の実在性確認
「自己署名証明書」は自分で自分の正当性を証明するという構造になっていますので、オレオレ詐欺のように、信頼できる組織を騙ることができてしまい、このことを指して「自己署名証明書」を信頼できない証明書という意味で俗称として「オレオレ証明書」と呼ぶ場合もあるほどです。
「自己署名証明書」であってもSSL通信自体は暗号で行われるので、悪意ある第三者による「盗み見」は防がれています。しかし悪意のある第三者が接続先サーバを偽装して「フィッシング詐欺」などを行うことが可能となってしまいます。
「自己署名証明書」でSSLを運用することの危険性を認識しよう
SSL接続の際に使用するブラウザには、大手認証局のルート証明書がデフォルトで入っています。ルート証明書は接続先のサーバから送付される証明書が、信頼できるかどうかを判断するための証明書ですので、これがないと接続先が信頼できるサイトかどうか判断できません。第三者認証局の証明書の場合にはデフォルトで、このルート証明書がインストールされているので何の警告もなしに接続することが可能です。
しかし、個人的に作成した証明書は、Internet ExplorerやChrome、Firefoxなどの著名なブラウザにはデフォルトでは入っていません。したがって、接続しようとすると”信頼できないサイト”であるという警告が出ます。
しかし、ここでも「自己署名証明書」を使おうとしてしまう人は、次のように反論するかもしれません。
「フィッシング詐欺などは確かに問題だが、ユーザがいろいろなサイトをネットサーフィンするという使い方ではなく、社内のイントラネットに接続するというだけなら、管理者が自己署名証明書を発行したことを知っているので問題ない。ブラウザに”信頼出来ないサイト”と警告されても、それは事前に分かっていることなので問題はない」
つまり、接続先にアクセスしようとした時にブラウザが警告を出したとしても、そのサイトが自分のアクセスしたいイントラネットだということを信じてよい、ということを言っているわけですが、もちろんこれは非常に危険な考え方です。
ネットサーフィンをしていろいろなサイトを見に行った時に「自己署名証明書」だった場合には、それは危険だとしてアクセスしないという行動は取れますが、「自己署名証明書だけど、自分の会社のイントラネットだから安心だ」と思い込んでいるそのサイト自体が「フィッシング詐欺」のサイトとなっていたらどうでしょうか?
悪意ある第三者が、あなたの会社のイントラネットのログイン画面の様子を何らかの方法で入手して、それとそっくりな画面を用意して、メールなどで「緊急メンテナンスがあるので、すぐにアクセスして必要な書類のバックアップを取ってください」などとアナウンスして、偽イントラネットサイトに誘導することは可能です。
そして、あなたは「このサイトはブラウザが警告を出すけれど、分かっていて接続しているのだから大丈夫」といつもの通りそこにIDやパスワードを打ち込みます。この後はもうご想像の通り、重要なログインデータは悪意ある第三者の手に渡ってしまっているというわけです。
また上記のようなことは、プライベートでも同様に起こりえます。
警告が表示されるサイトでも問題ないという社員教育を行っていると、プライベートにおいてネットショッピングなどをした際に、自分の会社のイントラネットのページも同じように警告が出ているから、このサイトも警告が出ていても暗号化されているから大丈夫と解釈をして、フィッシングサイトに引っかかることもあり得ます。このような被害者を生み出さないようにすることも、システム管理者の役割と考えます。
安全なSSL通信は第三者認証局に依頼することによって確立できる
「自己署名証明書」だと分かっていてアクセスし、ブラウザが警告を出すけれどそれをあえて無視するのだ、という考え方では、そのサイト自体を偽装された場合、フィッシング詐欺サイトを用意した悪意ある第三者の思う壺になってしまいます。
銀行などのサイトで自分の口座にアクセスするときなどは「フィッシング詐欺にかからないように・・・」という自制心が働きますが、「自己署名証明書だと分かっているから安心」という思い込みがかえって仇となるわけです。
ここで「自己署名証明書」は注意して使えば大丈夫、と考えている方はもう一度「安全なSSL通信は第三者認証局に依頼することによって確立できる」という大原則を肝に銘じてください。
SSL通信の役割は「暗号化」と「実在性証明」の2つがありますが、このうち「暗号化」は「自己署名証明書」でも可能ですが、「実在性証明」は第三者認証局に依頼することによって初めて確立できるのです。
第三者認証局に依頼して発行された電子証明書は階層構造の一部になっており、下位の認証局(CA)は上位の認証局に証明書を発行してもらうことで、その信頼性を担保しています。そして階層構造の最上位に位置する認証局はルート認証局と呼ばれますが、このルート認証局自身は自分自身に対して電子証明書を発行しています。
つまり、自分自身で自分の証明をしている「自己署名証明書」が本当に信頼できるのは、厳しい監査基準をクリアしたルート認証局だけなのです。ルート認証局でもないのに自分自身で自分の正当性を証明しているサイトが「オレオレ証明書」を発行している、と詐欺まがいのいわれ方をしてしまう理由はここにあります。
とはいえ、SSL通信を行いたいサーバが常に階層構造の根幹までさかのぼり、信頼できる認証局から発行されている電子証明書であるかを判断しなければならない、というのは非常に手間がかかります。
そこで、厳しい監査基準を満たした第三者認証局がルート認証局の代わりに、「サーバ証明書」の正当性を担保してくれるのです。データの送信先を信頼するには、証明書自体が信頼できるものでなければなりません。証明書に信頼性を持たせるためには、信頼のできる第三者認証機関から発行された証明書を使うことが必要になります。
この証明書があれば、「分かっているのであえてブラウザの警告を無視する」という危険な行為をしなくて済むわけです。
「暗号化」できていても「実在確認」が伴わないSSL通信は危険
「暗号化できているから、コストの安い自己署名証明書で良いじゃないか」という見解は非常に危険だということを見てきました。「暗号化」できていても「実在性証明」が伴わないSSL通信は危険だということをしっかり認識しましょう。
「自己署名証明書=安心ではない」というセキュリティ意識を社員に対してしっかり植え付けることも、会社として必要なセキュリティ教育の一環であるといえます。
腕に覚えのある社内のエンジニアに「オレオレ証明書」を発行してもらっても、「実在性証明」をすることはできません。安全なSSL通信を行いたいなら、信頼できる第三者認証局に依頼することをぜひ検討してください。