近年 SSL の重要性が高まる中、レンタルサーバーの公式サイトをはじめ、様々なサイトで SSL に関する記事をよく見かけるようになりました。
SSLというと「何となく安全そう」というようなイメージしかない人が多いと思いますが、Webサイトで使用される SSL とはどういうものなのか、どういった仕組みなのかなどをできるだけわかりやすく説明してみたいと思います。
第一回目は、SSL の概要について説明します。
SSL とは?
「SSL」 は「Secure Socket Layer」の略で、インターネット上でやりとりされるデータを保護するための暗号化プロトコル(通信方式)のことです。
大手企業のサイトなどを開くと、「https」から始まる URL で鍵のマークが表示され、またアドレスバーも緑色になって、安心できるようなイメージを与えてくれると思います。
この「https」は「Hypertext Transfer Protocol Secure」の略で、「SSL プロトコルで HTTP の通信を行う」という意味です。
https で暗号化されるのは、閲覧者のブラウザと Webサイトの情報を発信するサーバー間で、この間でやり取りされるデータを盗聴しても、解読することはできません。
主にクレジットカードの情報や個人情報などを送信するフォームなどで使われていましたが、近年ではより安全性を高めるためにサイト全体を SSL で保護(常時SSL化)するようになってきています。
このSSLを実現するために必要なものが、「SSL証明書」です。
なお、SSL にもバージョンがあり、SSL 3.0 以降のバージョンは「TLS」(Transport Layer Security)に名称が変わりました。
そのため、現在多く使用されているものは、正しくは TLS ですが、SSL の名称が広く普及しているため、現在も SSL と呼ばれています。または「SSL/TLS」「TLS/SSL」と呼ばれることもあります。
SSL証明書とは?
SSL証明書とは、サイトの所有者の情報や暗号化に必要な鍵、署名データなどを含んだ電子証明書のことです。
この SSL証明書を使用することで、はじめて SSL での通信が行えるようになります。
SSL証明書には 2つの種類があります。
- SSLサーバー証明書
- SSLクライアント証明書
「SSLサーバー証明書」はサーバー側に格納する証明書で、Webサイトの閲覧者に対してサイトの実在証明をしたり、通信の安全を確保したりします。
一方、「SSLクライアント証明書」はユーザー側のパソコン内に格納する証明書でそのユーザーがその組織に所属していることを証明するものです。この証明書を持っていないユーザーはアクセスできないように設定することで、セキュリティを保つことができます。
この一連の記事で説明しているのは「SSLサーバー証明書」ですので、以下の「SSL証明書」はすべて「SSLサーバー証明書」のことだと認識してください。
SSL証明書の2つの役割
前述のように、SSL証明書を使用することでデータを暗号化し、通信を保護することができますが、SSL証明書にはもう一つ大きな役割があります。
- Webサイト上で送受信する情報を暗号化すること
- Webサイトの運営者の身元を証明すること
この 2つ目の身元の証明も非常に重要な役割を果たしています。
ただ、この身元証明は、一般的な保証人などの身元証明とは異なり、実際に存在するかどうかまでしか保証しません。基本的にはその組織が本当に信頼に足る組織なのか、安定した経営をしているかなどまではチェックしないため、「実在証明」というほうがより正確でしょう。
SSL証明書が必要な理由
SSL が重視されるようになってきた背景としては、インターネット上での商取引が増えるに従い、様々な犯罪が発生するようになったことが挙げられます。
インターネット上でやり取りされる情報は、通常「平文」といって、入力した情報がそのまま送受信されています。そのため、通信を傍受するなどしてその情報を取得することができれば、決済情報や個人情報を簡単に手に入れることができてしまいます。
そこで、SSL証明書を利用して、以下のような問題に対処するようになりました。
盗聴
通信を傍受することで、やりとりしている内容をのぞき見する行為。
ブラウザとサーバー間の通信を暗号化することにより、傍受されても通信の内容がわからないようにする。
なりすまし(フィッシング)
銀行などのサイトに似たサイトを作り、客を誘導して ID やパスワードを入力させ、情報を盗む。
電子署名と電子証明書でサイトの身元証明をすることで、本物であることをユーザーに示すことができる。
改ざん
サーバーやプログラムなどの脆弱性を利用して Webサイトを書き換える。
Secure Hash Algorithm (セキュア・ハッシュ・アルゴリズム)などを使用した「メッセージ・ダイジェスト」という方法を用いて、サイトの完全性をチェックする。
SSL証明書 の使用例
SSL証明書を使用することで、安全に通信を行うことができること、またサイトや運営者の実在性を証明できることから、主に以下のようなところで使われています。
- 金融機関(ネットバンキングなど)
- 問い合わせフォーム
- ネットショップ
- 会員制サイト
これらは ID やパスワードをはじめ、決済や個人情報に関わる内容をやり取りする必要があるため、データの安全性を確保し、サイトの信頼性をユーザーに示す必要があります。もし、インターネットで商取引を行うような Webサイトを作るのであれば、SSL の利用は必須です。
また、検索エンジンの Google は、https(SSL)を検索順位を決めるアルゴリズムに利用するということをアナウンスしています。そのため、SEO対策(検索エンジン対策)としても SSL の価値が高まってきています。