暗号化通信と聞いて、「https」によるSSL暗号化通信を思い浮かべる人は多いと思います。
多くの方が、暗号化通信=「https」=SSLサーバー証明書が必要、という認識ではないでしょうか。
しかし、なぜ、暗号化通信するのにSSLサーバー証明書は必要なのでしょうか?
SSLサーバー証明書を使わずに、「https」以外の通信方式で暗号化通信はできないのでしょうか?
確かに、SSLサーバー証明書を使わなくても暗号化通信は可能です。
ただ一般的には、WEBで暗号化通信に最も適しているのは、「https」によるSSL暗号化通信であると言われており、SSL以外での暗号化通信を使用する利点はほとんどないのが現状です。
暗号化通信の仕組み
そもそも暗号化通信とは、どういう仕組みで通信を行う手段なのでしょうか。
暗号化通信では、インターネット上でやりとりされるデータが途中経路で第三者に悪用されないよう、決まった規則に従いデータの暗号化(変換)と復号(元に戻すこと)を行います。
平文(暗号化なしのテキストそのままの状態)を暗号データに変換することを暗号化、逆に暗号データから平文に戻すことを復号化と言います。
暗号化するのに用いられるのが「鍵」と呼ばれる変換方式で、その方法は2通りあります。
1. 公開鍵暗号方式(PKI)
暗号化と復号する際に、異なる鍵を使用する方法です。
あらかじめ一対の鍵(公開鍵と秘密鍵)を用意して暗号化や復号を行います。
片方の鍵を使用して暗号化したものは、対になっているもうひとつの鍵でなければ復号できない仕組みになっています。
- メリット・・・・「公開鍵」「秘密鍵」は一対でなくては機能しないので、仮に片方が流出してしまったとしても復号される危険性がない。そのため、共通鍵に比べて、鍵の管理がしやすく安全性が高い。
- デメリット・・・・暗号化、復号の処理に時間がかかる。
2. 共通鍵暗号方式
暗号化と復号する際に、同じ鍵を使用する方法です。
ある「共通鍵」で暗号化したものは、同じ「共通鍵」でなければ復号できない仕組みです。
- メリット・・・・暗号化、復号の処理時間が早い。
- デメリット・・・・1つの鍵で暗号化・復号化するので、流出がそのまま盗聴・改ざんにつながる危険性がある。そのため、鍵の管理を厳重に行う必要がある。
SSLサーバー証明書を使った暗号化通信では、「1. 公開鍵暗号方式」で通信を確立し、「2. 共通鍵暗号方式」で実際のデータをやり取りする仕組みになっています。
SSLを使った暗号化通信「https」
通常何もしない状態だとインターネット通信は「http」通信で行われますが、その場合、情報は平文(暗号化なしのテキストそのままの状態)で送信されます。
平文状態だと、インターネット上で入力した情報などは、悪意ある第三者による攻撃(盗聴・改ざん・なりすまし)のターゲットにされる危険性があります。
そこで、「https」による暗号化通信の出番です。
「https」は「HTTP over SSL/TLS」の略で、SSL(SecureSockets Layer)/TLS(Transport Layer Security)で暗号化し、セキュアな接続で「http」通信が出来るようになります。
「https」通信では、SSLサーバー証明書を使用し、前述した鍵を使用した通信の暗号化に加え、サーバー認証も行います。
サーバー認証とは、クライアント(受信者)がこれから接続するサーバーは信頼できるサーバーかどうかのチェックを行い、サーバーの身分証明を提示させて確認することです。
このサーバー認証と暗号化を行うことで、通信が暗号化されるので、盗聴やなりすましの危険性から、Webサイトの閲覧者を守ります。
主にSSLサーバー証明書の最大の機能とも言うべき点は2つです。
1. SSLによる暗号化通信
秘密鍵を使ったサーバー認証を行い、Webブラウザとサーバー間の通信内容が、悪意のある第三者によって盗聴・改ざんされるのを防ぎます。
2. サーバーの正当性を証明
信頼のある第三者機関である認証局(CA)から発行され、通信先のサーバーが本物であるという証明ができるので、悪意のある第三者による「なりすまし」を防止することができます。
これら機能を、SSLサーバー証明書を設定するだけで導入できるので、SSL暗号化通信は最も普及している暗号手段となっているのです。
この記事のポイント
- 暗号化通信は「鍵」を使用し、「公開鍵」「共通鍵」の2種類の方式がある
- SSLサーバー証明書は、暗号化通信とサーバーの正当性の証明ができる
- SSLサーバー証明書を設定しなくても暗号化通信は出来るが、情報漏えいなどの危険が高まる