SSL/TLSとその仕組み

SSL/TLS

 それぞれ、Secure Socket LayerとTransport Layer Securityの頭文字をとったものです。これらを利用することで自分の使っているPCなどとサーバー間の通信を暗号化し、第三者から通信内容やユーザーのパスワードなどを盗聴されることを防ぐことができます。SSLとTLSは別物ですが、仕組みや働きは変わらないと考えて良さそうです。

暗号の仕方

 暗号化通信では第三者に通信内容を盗聴されないようにある規則にしたがって暗号化と復号化しています。暗号化には「鍵」と呼ばれる変換方式が利用されます。以下の2通りの方法があります。

公開鍵暗号方式

 公開鍵暗号方式では、暗号化と復号化に異なる鍵を使います。「公開鍵」と「秘密鍵」があり、公開鍵は誰でも取得できます。秘密鍵は受信者のみが保持しているので復号化できるのは正当な受信者のみです。送信者は公開鍵で送信データを暗号化し、受信者は受け取ったデータを秘密鍵で復号化します。 メリットとしては、2つの鍵は一対でなくては意味がないので、片方が万が一流出しても第三者に復号される危険性がないことです。一方でデメリットとしては暗号化と復号化の処理に時間がかかることです。

共通鍵暗号方式

 共通鍵暗号方式は、暗号化と復号化に同一の鍵を使用します。送信者も受信者も同じ鍵で暗号化、復号化をするのです。メリットは共通鍵暗号方式に比べ処理速度が早いことです。デメリットは万が一鍵が流出するとデータを盗聴される危険性があることです。

 SSLサーバーでは証明書を使った暗号化通信は公開鍵暗号方式で通信を確立し、共通鍵暗号方式で実際のデータをやりとりします。

SSLによる暗号化通信

 上記の方式を利用してSSLは通信を行なっています。SSLを利用しない場合には、httpという通信プロトコルが使われます。しかしこのプロトコルは暗号化を施していないため、第三者に盗聴される危険性があります。そこでSSLを利用することで、https通信による暗号化通信が実現します。https通信ではSSLサーバー証明書を使用し、サーバーの認証も行います。

サーバー認証

 サーバー認証を行うことにより、認証局(CA)が発行しているサーバ証明書を用いて、クライアントが通信しようとしているサーバーが信頼できるものかを確かめることができ、第三者によるなりすましを防止することができます。

 以上の理由からSSLで通信を行うことは非常に重要であることがわかります。