【SSLの豆知識】後編:SSLで使われている技術


KIS2015_ブログ記事_2014_11_20_SSL_後編_005

【SSLとは?】
SSLはインターネットで広く使われている通信方式(プロトコル)の一つです。
ユーザーはこの方式を使うことで安全に通信を行うことができます。

【プロトコルとは?】
SSLはインターネット上で利用される通信方式(プロトコル)の一つです。
プロトコルとは、”Communication Protocol”を日本語に訳したもので、正確には「通信プロトコル」と呼ばれます。
通信の手順が規約として定めたもので「通信規約」や「通信手順」と訳される場合もあります。

インターネットの通信に関係するプロトコルでは、ソフトウェア・ハードウェア両方の動作が含まれます。
一般ユーザー利用するプロトコルの多くは、標準化団体の一つ IETF(Internet Engineering Task Force) により規格化され、国際標準として公表されているものです。
SSLもまた、IETFにより規格化がされています。

【SSLの機能】
SSLによって実現される機能は下記の3つです。
・通信を暗号化する :盗聴されないようにする
・改ざんを検出する   :内容を書き換えられた事を知る
・正当性を確認する  :なりすましが行われていないことを確認する

これらの機能はブラウザやメールソフトに標準で搭載されており、ユーザーは内容を気にすること無く利用することができます。
今回は、これらの機能を実現するために利用されている技術を説明します。

KIS2015_ブログ記事_2014_11_20_SSL_後編_002

 
【SSLで使われている技術】
SSLの各機能を実現するために使われている技術は下記の通りです。
・通信を暗号化する :ハイブリット暗号(暗号化アルゴリズムは選べる)
・改ざんを検出する    :ディジタル署名(=デジタル署名/電子署名)
・正当性を確認する :ディジタル証明書(=デジタル証明書/サーバー証明書)

これらはそれぞれ別々の技術ですが、SSLではこの3種類を組み合わせことで、すべての機能を同時に利用することができるよう規格化されています。

KIS2015_ブログ記事_2014_11_20_SSL_後編_003

【ハイブリッド暗号】
暗号化の方式は大きく分けて下記の2種類があります。
・共通鍵暗号方式:暗号化と復号化(元に戻す)に使う鍵が同じです
・公開鍵暗号方式:暗号化と復号化(元に戻す)に使う鍵が異なります

KIS2015_ブログ記事_2014_11_20_SSL_後編_004

公開鍵暗号方式は、インターネットでの利用に適して便利な方式ですが、暗号化と復号化に時間がかかります。
一般的には、共通鍵暗号方式を使う場合に比べてCPU/メモリへの負担が高くなり、数百倍~数千倍の時間が必要とされます。

そのため、SSLでは下記のタイミングで暗号化の方式を切り替えます。
1.通信のスタート時 :公開鍵暗号方式を使う
2.通信を確立 :共通鍵を交換する
3.鍵を交換した後の通信 :共通鍵暗号方式で通信を行う

暗号化の方式を通信中に切り替えることにより、安全の確保とスピードを両立させることができます。

このような方式は、共通鍵暗号方式と公開鍵暗号方式を組み合わせて使うため「ハイブリッド暗号」と呼ばれます。
そのため、SSLは「ハイブリッド暗号」を使った通信プロトコルであると言えます。

【ディジタル署名】
ディジタル署名は「デジタル署名」「電子署名」とも呼ばれる技術で、下記の機能を提供します。
・なりすましを防止する
・改ざんを検出する
・事後否認を防止する

現実世界のサインや印鑑は、文書などを本人が作ったこと、作った後で修正していないこと、作った後で否認ができないこと(本人でなければ作れない)を保証するものですが、ディジタル署名は通信に対してこれを行います。

通信の送信者は、平文(もとのメッセージ)とそれを元に作られたディジタル署名を送信し、受信者が受け取ったメッセージとディジタル署名を比べる事でその文書を確認する事ができます。

ディジタル署名には下記のような特徴があります。
・本人しか作ることができない
・メッセージが改ざんされた場合、ディジタル署名とメッセージに食い違いが発生する
・本人しか作成することができないため、事後否認をすることができない

SSLでは送られて来たデータとディジタル署名の比較を自動的に行い、データの改ざんをチェックしています。

【ディジタル証明書】
ディジタル証明書はディジタル署名に認証局がディジタル署名したものを言い、「デジタル証明書」「サーバー証明書」「証明書」などとも呼ばれます。

KIS2015_ブログ記事_2014_11_20_SSL_後編_006

「認証局」とは、ディジタル署名について本人の確認と公開鍵の登録を行う機関です。
(ユーザー自身が認証局を設置することも可能ですが、公的なものとみなされないためブラウザなどでは警告が表示されます)

公的機関に運営されるものと民間で運営されるものとがあり、作成したディジタル署名をいずれかの認証局に登録することで、「ディジタル署名」を「ディジタル証明書」にすることができます。
代表的な機関には下記があります。

・政府認証基盤(GPKI) :日本政府の運営する認証基盤(認証局のネットワーク)
https://www.gpki.go.jp
・地方公共団体組織認証基盤(LGPKI) :地方公共団体情報システム機構の運営する認証基盤(認証局のネットワーク)
http://www.lgpki.jp
・シマンテックウェブセキュリティ
https://www.jp.websecurity.symantec.com
・ジオトラスト
https://www.geotrust.co.jp
・セコムトラストシステムズ
https://www.secomtrust.net/service/pfw/

上記のような認証局では、ディジタル証明書を必要とする企業や個人からの申し込みを受けた際に、申し込んだ企業や個人を審査しディジタル証明書の発行を行います。
審査の内容は運営機関によって異なりますが、一般的には「弁護士意見書」「登記簿」など書類の確認や、申し込み企業の人事担当者/登録担当者/申し込み責任者へ直接電話しての確認などを行います。

信頼される認証局から発行されているディジタル証明書を確認することでなりすましを防止ことができます。
SSLでは信頼されると思われる認証局のからの情報を自動的に取得し、ディジタル証明書の検証を行うことでなりすましを防止しています。
以上がSSLで使われている技術の概要です。