SSL(Secure Sockets Layer) は、「暗号化されたプロトコル」です。
プロトコルとは通信の手順の決まりで、SSLの場合は通信データとリンクの両方の暗号方法を決めています。
サーバーとクライアント(典型的には Webサーバーとブラウザ)間に暗号化された接続を確立する標準的なセキュリティ技術で、この技術はメールサーバーとメールクライアント間の接続にも利用されます。
一般にはWebサーバーとブラウザ間のデータ通信は、盗聴が可能なプレーンテキストで行われています。
インターネットでは複数のルーターなどを経由してデータが送られますので、第三者は比較的簡単に通信内容を取得できます。第三者にWebサーバーとブラウザ間の通信内容を取得されてしまった場合、すべてのデータが読み取られ、悪用される可能性があります。
SSLを利用して通信内容を暗号化することで、クレジットカード情報や個人情報・パスワードなどのログイン情報のような、機密性の高い情報を安全に通信できるようになります。
SSLはオンライン取引や機密情報の送信で必須の手段になっています。
インターネットユーザーはブラウザのアドレスバーの鍵のマークやEV証明書による緑色のアドレスバーなどがあれば安全だと考えるようになっています。
SSLを使っているサイトのURLはhttpではなくhttpsで始まります。
すべてのブラウザは、SSLプロトコルでWebサーバとの間で暗号化された通信を行う能力を持っています。
しかし、本当の意味で安全な接続を確立するためにはSSLサーバ証明書が必要です。
SSLサーバ証明書は、公開鍵と秘密鍵と呼ばれる鍵のペアで構成されています。
この二つの鍵が連動することで、暗号化された通信が確立できます。
証明書には「subject」という要素があり、そこには証明書所有者の情報が含まれています。
証明書を取得する場合、まず証明書を利用するサーバー上で CSR(Certificate Signing Request)を作成します。
この過程で、サーバー上には公開鍵を含んだ「CSR」ファイルと「秘密鍵」ファイルが作成されます。
DigiCertをはじめとする認証局は、このCSRファイルに含まれる「公開鍵」と「subject」という要素を元に、SSLサーバ証明書を作成します。
認証局から発行されたSSLサーバ証明書を受け取ったら、サーバーにインストールします。
証明書と認証局のルート証明書を関係づける「中間証明書」もインストールする必要があります。
証明書をインストールし、テストするための手順は、サーバーによって異なります。
下の画像は、証明書チェーンを示しています。
例はDigiCertのケースですが、構造はどの認証局の場合も同じです(認証局によっては中間証明書が複数になる場合もあります)。
一番上が認証局のルート証明書、2番目が中間証明書、一番下がSSL証明書です。
DigiCert をはじめとする主流な認証局のルート証明書は、ブラウザを使用しているマシンに既にインストールされています。
SSLサーバ証明書そのものは、誰でも発行することができます。
しかし、SSLサーバ証明書を利用する際、証明書がDigiCertのような信頼できる認証局によって署名されていることがとても重要になります。
証明書には、証明書を発行した認証局の署名が必ず含まれており、ブラウザはその署名が信頼できるかどうかを確認しています。
自分自身で作成した自己署名証明書(いわゆるオレオレ証明書)を使用した場合、ブラウザが自己署名証明書のルート証明書を認識できないため、信頼されていない証明書のエラーを出します。
信頼できる認証局であるためには、厳しい監査にパスする必要があります。
DigiCertのSSLサーバ証明書のような企業認証証明書の場合、証明書の発行先ドメインがその企業のドメインであることと、その企業が実在することを証明します。
ブラウザは認証局のルート証明書を通して認証局を信頼していますので、証明書を利用している企業も信頼します。
そしてユーザーは安全な接続を保証され、機密情報の送信ができるようになります。
ブラウザがSSLで保護されたWebサイトにアクセスしようとすると、ブラウザとWebサーバーが、下の図で示されている「SSLハンドシェイク」と呼ばれるプロセスを使用してSSL接続を確立します。
SSLハンドシェークはプロトコル内部で瞬時に行われ、ブラウザの利用者にその過程は表示されません。
SSLプロトコルでは、公開鍵、秘密鍵、セッション鍵の三つの鍵が利用されます。
公開鍵で暗号化されたデータは対になる秘密鍵でのみ複合化でき、秘密鍵で暗号化されたデータは対になる公開鍵でのみ複合化できます。
秘密鍵と公開鍵の間での暗号化・復号化は高負荷を発生しますので、秘密鍵と公開鍵の間での暗号化・復号化処理は最初の「SSLハンドシェイク」だけで利用されます。
「SSLハンドシェイク」の過程でセッション鍵が作成され、以降の通信はこのセッション鍵を使って行われます。
オンラインビジネスの最も重要な要素の一つは、潜在的な顧客が信頼できる購入先だと判断できるかどうかです。
SSLを使うとアドレスバーに鍵マークが表示され、安全な接続が確保されたサイトであることが分かり、安心感を与える一助となります。
webサイトでカード情報を収集する場合は、PCI(クレジットカード業界のセキュリティ基準)で SSL証明書を持っていることが求められます。
また、ログインの仕組みを持っているサイトや個人情報を取り扱うサイトもSSLサーバ証明書を使って安全を確保すべきです。
お客様の安全性確保に対して投資をしているサイトがお客様の信頼を獲得でき、それが最終的にはサイトの売り上げに貢献します。