改めて知ろう、SSLサーバー証明書とは?
こんにちは、サイバートラストの坂本です。このたび、さくらのナレッジの筆者陣に加わることになりました。どうぞよろしくお願いします。
SSL サーバー証明書が注目をあびた 2014 年
今年ほど、SSLサーバー証明書に関するニュースを頻繁に目にした年はなかったのではないでしょうか。
最近の話題であれば、Chrome による、SHA-1 アルゴリズムを用いた SSL サーバー証明書の制限。また、SSL に関する脆弱性ということでは、全国紙やテレビのニュースでも取り上げられた「 Heartbleed 」や、他にも POODLE が深刻度の高いものでした(いきなり脱線しますが、私は「SSL サーバー証明書」でなく、「TLS サーバー証明書」といつから呼ぼうか迷っています)。
さらに、Chrome といえば、Google は SSL サーバー証明書が使用された Web サイトを SEO の評価として優遇する動きもありました。
いまや、Web サイトの運営に際して SSL サーバー証明書は非常に身近なものである一方、対応しなければならない課題や、知っておかなければならない関連知識が多種多様になっています。また、冒頭の SHA-1 の制限ですが、Google とは別に Microsoft や CA/Browser Forum (認証局やブラウザベンダーより組成される団体で、SSL サーバー証明書に関する規制を策定しています)では、SHA-1 の SSL サーバー証明書の発行を来年 2015 年末で終了することを認証局に求めています。
ですから、サーバー管理者の皆様におかれましては、SHA-1 から SHA-2 を用いた証明書への変更が既に行われているものの、この動きは来年さらに活性化されることでしょう。
このような慌ただしい状況においてお客様と色々な会話をしておりますと、改めて SSL サーバー証明書について理解しておきたいという要望を頂戴します。
そこで、これから何度かにわたり、「さくらのナレッジ」の場をお借りして、SSL とは何かを説明させて頂きます。入門編としての説明を意識しておりますので、使用する例えや文章に極端さがみられたとしても、そこはご容赦のほど、お願いします。
昔も今も、暗号化と認証のためのもの
SSL サーバー証明書が使用され始めて20年以上が経ちますが、SSL サーバー証明書で出来ることは昔も今も2つで、「通信の暗号化」と、「Web サイトの認証」です。ではまず、暗号化について理解しましょう。
通信の暗号化といっても、どことどこの間の通信でしょうか。インターネットが使用できる端末とサーバーの間、またはサーバーとサーバーの間とお考えください。インターネットが使用できる端末といえば、PC、携帯電話、スマートフォン、タブレット端末の他、ゲーム機やテレビ等、さまざまな端末がありますね。機器から機器へ送られる機密情報を保護するために暗号化が求められているのですから、特定の端末でしか使えないというユビキティではなく、様々な端末が SSL サーバー証明書に対応しています。
では次に、なぜ機密情報の保護が必要なのでしょうか。ここで、現実の世界とインターネット上の世界を比較して、考えてみます。
まず、現実の世界の話からいきます。あなたが欲しい商品が、隣町でも外国でもいいのですが、どこかのお店にあったとします。お店で商品を購入するために、あなたは、クレジットカードを持って自宅を出発します。
目的地までの道路では、色々な人が歩いています。自分しか使えない道路というのはありませんものね。どこへでも行ける私道を持っている人はいませんし。
ここで、スリにあう可能性がありますね。
次に、ネットの世界に話が変わります。あなたが欲しい商品が、ネット上のとあるお店にありました。購入には、クレジットカードを使うことにします。あなたのクレジットカード情報は、インターネットという誰もが自由に使える通信網(道路)を経由して、お店に届きます(自分しか使えない通信路として専用線という手段はありますが、一元的な買い物という点で現実的ではありませんので、ここでは手段としては取り上げません)。
ですから、通信路の中を流れるデータを見ることが出来る人には、あなたのカード情報は見られてしまいます。
現実の世界でいうスリがネットにもいたらどうでしょう。つまり、盗聴を働く人です。
盗聴するためのツールが無料でダウンロードできたりするのが実際ですから、こういうスリは、少なからずいると思ったほうがよいでしょう。しかも、スリにあったかどうかは、通信路上の話なので、あなたはわからないでしょう。きっと、「もしや?」と思うのは、知らない間に自分のカードで色々買い物がされて多額の請求がきたときでしょうか。
誰でも通れる道路を「通るな!」と制限するのはできません。あなたのクレジットカードを「見るな!」とは言えないのですね。
そこで、盗聴対策としては「見たところで何を意味しているのかわからなくする」のが有効で、そのために「暗号化」が出番となるわけです。実現方法はさておき、SSL サーバー証明書を使うことで、端末とサーバーの間でやりとりされるデータを暗号化することが出来ます。
暗号化だけでは不十分
さて、暗号化により、目的地である Web サイトまでの道中は安全になりました。そして、暗号されたデータは、Web サイトに到着したら復号されます。そうしないと、ネットの商店の主は決済処理できないですから。
ところが、この商店が、偽物だったらどうしますか。
カード情報は盗まれて、商品は届かないというわけです。カード情報が悪用されて、身に覚えのない買い物に、支払の責だけを負うということです。
では、あなたに Web サイトが本物か偽物か区別できますか。
初めて利用するサイトなら、そもそも本物を知らないでしょうし、また、本物を知っていたとしても、偽サイトは本物のデザインに巧妙に似せて作られているでしょうから、やはり区別するのは難しいことでしょう。
ここで、SSL サーバー証明書の「認証」の出番です。
誰がサイトを運営しているのかを証明
私が所属するサイバートラストのような SSL サーバー証明書を発行する会社は、「認証局」や「認証事業者」と呼ばれたりしますが、認証局というのは、その証明書を使う組織がどういうところか調査(※)したうえで、作成し、提供します。そして、調べた結果を証明書の中に情報として含めます。(※:認証局によって、調べるレベルは異なります。違いについては、次回の寄稿で説明させて頂きます。)
例えばサイバートラストの証明書では、使用する会社が実際に存在するかを調べます。確かに存在すると確認できた時は、会社名や住所、その証明書が使われるWebサイトの場所(例:www.cybertrust.ne.jp)を証明書に入れます。
ところで、存在さえすれば、誰が申し込んできても提供してよいかというと、そうではありません。偽サイトを立てるかもしれない人に提供してしまうリスクがあるので。証明書を提供する人(組織)は、本物であると確認できた人、あるいは、本物から確かに代理を受けた人に限らなければいけません。
ですから、申請者の存在を確認のうえで証明書を発行する認証局の場合ですと、事前に本物の組織からの申請であるかを確認し、本物または代理人へのみ納品する仕組みを設けています。
このようなやり方で取得された SSL サーバー証明書を Web サイトに使用することで、その証明書を見たサイトの訪問者は、「誰が運営しているサイトか、それは自分が取引しようとしている会社であるか」が確認できるようになります。平たく言えば、存在確認をしている証明書であれば、本物か偽物かの判断の目安になるわけです。
実際のネットの利用場面で、サイトの訪問者がいちいち証明書の中身を確認するのか、という疑問はあるかと思います。この点について、証明書やブラウザがどのように課題を解決しているのか、次回の寄稿で説明させて頂きたいと考えています。
高まる「認証」の必要性
SSL サーバー証明書の役割、いかがでしょうか。道中安全でも、たどり着いた先が安全でなければ意味はないので、暗号化と認証は、切り離すことができないことをご理解頂けましたでしょうか。
Web サイトの管理者にとって、サイトの訪問者に安心してもらいながら利用頂くためには、SSL サーバー証明書は不可欠なものです。一昔前は、個人情報を入力するページにだけ証明書が使用されていたのが、今では入力がない Top ページ、あるいは、サイトによっては全ページに証明書を使うサイトを見かけるようになりました。これは、SSL サーバー証明書を暗号化のためだけでなく、認証にも重点を置いた使用例です。
しかし、SSL サーバー証明書が市場に登場した 90 年代は、組織の認証のレベル(認証局が調べるレベル)は一つしかなかったのですが、今では認証レベルが三段階にわかれています。レベルの低い証明書ですと、偽サイトでも本物のような内容の証明書が使われたりします。そこで、次回は認証レベルの違いについて説明いたします。