SSL(Secure Sockets Layer)はインターネット上でデータを暗号化し、安全に伝送するためのプロトコルです。SSLは、クライアントとサーバー間の通信を保護することで、データの盗聴や改ざん、なりすましを防ぎます。
1990年代初めにネットスケープによって開発された後、TLS(Transport Layer Security)として標準化され、現在ではTLSがSSLの後継として広く使用されています。
SSLの主な機能
- 暗号化: データを暗号化することで、第三者によるデータの盗聴を防ぎます。
- 認証: サーバー(そして場合によってはクライアントも)はデジタル証明書を用いて認証されます。これにより、ユーザーは自分が接続しようとしているサーバーが正しいことを確認できます。
- データ完全性: データ転送中の改ざんを検出するメカニズムを提供します。
SSLのプロセス
- ハンドシェイク: SSL接続は、クライアントとサーバー間で「ハンドシェイク」と呼ばれるプロセスを通じて確立されます。このプロセスで、通信に使用する暗号化方式の合意、サーバーの認証、セッションキーの交換が行われます。
- キー交換: セキュリティの高い通信を実現するために、一時的に使用されるセッションキーが交換されます。
- データ転送: ハンドシェイクが完了すると、暗号化されたセッションを通じてデータが安全に転送されます。
SSLからTLSへ
TLSは、SSLの後継としてIETFによって開発されました。TLSは、SSLの設計を基にしながらも、さらにセキュリティを強化したものです。一般的に、SSLとTLSの名前は互換的に使われることが多いですが、現在インターネット上で使用されているのはTLSプロトコルです。通常、ウェブブラウザやサーバーは自動的にTLSを使用していますが、一般的な会話では今でも「SSL接続」や「SSL証明書」という言葉が使われています。