フリーキーズ | 独学プログラミング

SSLとは

最終更新日

SSLとは、Secure Sockets Layerの略です。ユーザーのWebブラウザーとWebサーバーの間で暗号化された安全な接続を確立するために使用されるセキュリティプロトコルです。SSLは、ログイン情報、個人情報、財務情報など、両者間で送信されるあらゆるデータの機密性を確保し、権限のない第三者による傍受や改ざんができないようにします。

SSLの仕組み

SSLは、公開鍵暗号と共通鍵暗号の組み合わせで機能します。ユーザーがSSLを有効にしたWebサイトにアクセスすると、ブラウザはサーバーの公開鍵を要求し、それを使って安全な接続を確立します。接続が確立されると、ブラウザとサーバーは対称暗号を使用して、両者間で交換されるデータを暗号化および復号化します。

SSLの例

  1. 花子はECサイト https://www.examplestore.com に行って、プレゼントを購入しようと思っています。花子はプレゼントを買うためにECサイト訪れたいと考えています。彼女がブラウザにURLを入力すると、ブラウザはECサイトホストするサーバーにリクエストを送信します。
  2. サーバーはSSL証明書で応答します。この証明書には、サーバーの公開鍵や身元を確認するためのその他の情報が含まれています。
  3. 花子のブラウザはSSL証明書の有効性をチェックします。もしそれが有効で、信頼できる認証局(CA)から発行されていれば、ブラウザはユニークなセッションキーを生成し、サーバーの公開鍵を使ってそれを暗号化します。暗号化されたセッションキーは、サーバーに送り返されます。
  4. サーバーは、サーバーだけが知っている秘密鍵を使ってセッションキーを復号化します。これで、花子のブラウザとサーバーの両方が同じセッションキーを持つことになり、対称暗号化に使われることになります。
  5. これ以降、花子のブラウザとサーバーの間でやりとりされるすべてのデータは、セッションキーを使って暗号化されます。これにより、クレジットカードの詳細のような機密性の高い情報は、安全で機密性の高いままであることが保証されます。

まとめ

SSLはTLS(Transport Layer Security)と呼ばれるより現代的なセキュリティプロトコルの前身です。今日、SSLという言葉はTLSと同じ意味で使われることが多いですが、実際にはTLSはSSLの更新版でより安全なバージョンです。ブラウザのアドレスバーに南京錠のアイコンが表示されていたり、URLに https:// が表示されている場合は、SSL/TLS暗号化通信で保護されていることを意味します。