FIREFOXChrome
 最近になって、MozillaのFirefoxやGoogle Chromeなど主要なブラウザでは怪しいルート証明書をブロックしております。
 最近ではカザフスタンのルートCA証明書をブロックしてスパイ行為を防止したといったニュースもあります。
 ところで、この「認証局」や「ルート証明書」とは一体何なのか、わからない人が多いと思います。そこで、これらについて少し説明しましょう。


 本家ホームページ「0から楽しむパソコン講座」に記載されているのを引用します。
KOJINSSL

 まず、個人情報等をネット上で取り扱う場合に必要なのが「暗号化通信」ですが、この暗号化通信において重要となるのが「サーバー証明書」と呼ばれるデジタル証明書です。これはデータ通信におけるいわば「信頼の証明書」となります。

 この「サーバー証明書」はそのサーバーがきちんと実在するという証明書であり、第三者機関である認証局(CA)がそのサーバーに対して実態調査を行い、かつ所定の項目に合格した場合に発行する「バーチャル電子証明書」となります。

 もっと身近な例で説明しましょう。例えば、個人の実在証明を行うには「印鑑登録」があります。印鑑登録には印影、持ち主の住所、発行する自治体名があります。この印鑑証明によって法的機関への書類に対して、「自分のもの」である認証がこの印鑑証明で登録されている「印鑑」で証明することができます。
 これと同じように、ネット上では「サーバー証明書」というのが存在し、その中には「公開錠」(印影)、発行者名(持ち主の住所)、発行局の情報(自治体名)という情報があります。このサーバー証明書が存在することによって、今接続されているサーバーが、きちんと信頼を受けたサーバーであるということになります。
ANGOU03


 ここで、ちょっとした疑問がまた出てくると思います。この「印影」に相当する「公開錠」とは何なのかという点です。
 この公開錠は暗号化通信において非常に重要な役割をもっています。この公開錠が個人情報などのデータを暗号化するために必要となります。
 データ通信の暗号化は次のような仕組みで行っています。
 証明書を使用したSSL通信は「公開鍵暗号方式」で通信を確立し、「共通鍵暗号方式」でデータの暗号・復号化を行っています。
 
 「共通鍵暗号方式」は送信する側(暗号化)と受信する側(復号化)共に同じデータの暗号を解読する「鍵」を使用する方法です。
 共通暗号化方式は事前に相手からその「鍵」を入手していれば、暗号化の送受信を行うことが出来ます。
ANGOU02

 この方法はサーバー側とユーザー側が同じ鍵を使用してデータの暗号や複合を行うため、その鍵を第三者(ハッカーなど)が入手してしまうと、解読され情報が漏洩してしまう危険性があります。
 そこで、現在ではもっと強力な暗号化の方式である「公開鍵暗号方式」という方式を使用しています。

 公開鍵暗号方式はまず、「秘密鍵」 と 「公開鍵」 というペアの鍵を作ります。「秘密錠」と「公開錠」は全く無関係に生成されるわけではなく、ある特殊な計算方式に基づいて「秘密錠」と「公開錠」が生成されます。また暗号化に行う計算方式と復号化をする場合の計算方式は全く違った方式(計算方式)を使用しています。この計算方式は第三者にばれると大変なことになってしまいますので、「ブラックボックス」となっています。
 まず、受信側は送信側に「公開錠」を送ります。送信側がその公開錠を使って暗号化します。受信側はデータを受け取ったら、自分の持っている「秘密錠」と相手に渡している「公開錠」で復号化します。つまり、暗号するときは「公開錠」、復号するときは「秘密錠」「公開錠」を使用します。そのため、もしデータがハッキングされても復号できない仕組みとなっております。
 また、公開錠が別の鍵となっていた場合、受け取った側も「秘密錠」と「公開錠」で復号できない仕組みとなっています。これは、間違って情報が全く別のサーバーにいった場合に、情報が漏れないようにするためにこのような方式となっており、この公開鍵暗号方式は現在の暗号化通信の基本となっています。
ANGOU01

 それでは、このサーバー証明書を使った暗号化通信はどのようにして行われているのでしょうか?
 まずクライアント側(接続する側)がサーバーに接続して、サーバー側から「デジタル証明証明書」と「公開錠」をもらいます。
 クライアント側ではブラウザ内で証明書が正当なものかどうか「ルート証明書」で照合します。正当な証明書が確認されたら、「共通錠」を生成します。
 「共通錠」が生成されたら、「デジタル証明書」の中で「公開錠」を使用して「共通錠」の暗号化を行い、暗号化された共通錠をサーバー側に送信します。
 サーバー側は自分で持っている「秘密錠」で暗号化された共通錠を解読し復号を行い、もとの「共通錠」を取り出します。
 その後、双方でこの「共通錠」を使用して通信を行います。
 つまりサーバー証明書を使用した暗号通信はこの「公開錠」のやり取りも「暗号化」して行っている方式となります。
ANGOU05



 ではサーバー証明書にはどんな種類があるのでしょうか。

 サーバー証明書には3つの種類があり、「サーバー証明書」「EVサーバー証明書」「ドメイン認証証明書」となります。
「サーバー証明書」は企業の法的な実在証明の情報があり、きちんとした実態のある企業であるという証明書となります。この証明書はショッピングサイトなどに利用されており、フィッシング対策にも使われています。
 この「サーバー証明書」をより厳格に証明するのが「EVサーバー証明書」です。
「EVサーバー証明書」は企業の法的な実在証明の他に物理的な実在証明もなされています。つまり、きちんとした企業があり、きちんと営業をしているという証明書にもなります。そのため、金融関係など「信頼性」が重要視されるところで使用されています。
 一方、「ドメイン認証証明書」はきちんと「ドメインが存在している」という証明書であり、企業の法的な実在証明は行っていません。その反面、証明書の取得の費用や審査なども他の証明書よりも軽く済むため、個人などの証明などに使われています。ただし信頼性は低いので、ウエブサイト上でのアンケートや意見交換など簡単な所でしか使用できません。
 これらの証明書を発行するところは「認証局」になります。この「認証局(CA)」には3つあります。「下位認証局」「中間認証局」「ルート認証局」です。この認証局は階層式となっており、一番上位に「ルート認証局」、その下位に「中間認証局」「下位認証局」となっています。
 どこの認証局で認証を受けたかによって証明書の正当性の信頼度が違います。


ANGOU04

 今回の問題になった中国の認証局「WoSign」とイスラエルの認証局「StartCom」は一番上層の「ルート認証局」に位置します。この認証局がブロックされるということは、この認証局の下位の階層で発行された証明書もすべて「無効」になるということです。先ほどの暗号の記事の部分で説明した「ルート証明書」で照合することができませんので、当然暗号化通信が行えなくなるということです。

 いかがでしたか?少々難しかったかもしれません。「証明書」は暗号化を行うにあたって「必要な証明書」であるということを理解していただけたのではないでしょうか。「証明書」はネットワークで非常に重要なものなのです。