SSL(Secure Sockes Layer)/TLS(Transport Layer Security)は、ネットワーク上に存在する様々な脅威からアプリケーションデータを守るプロトコルです。情報化社会の現在において、ネットワーク上には名前、住所、電話番号といった個人情報、IDやパスワード、クレジットカード番号や企業秘密など、ありとあらゆる情報が流れています。まさにネットワーク上は情報の宝庫と言えます。そんな場所を悪人はいつもどこかでこっそり狙っています。
そんな悪人から情報を守るためにSSL/TLSがあります。
SSL/TLSとは何か
SSL(Secure Sockes Layer)/TLS(Transport Layer Security)は、暗号化・改ざん検知・認証機能を提供するトランスポート層の上位層に位置するプロトコルです。
1990年代中頃に開発され、SSL 1.0、SSL 2.0、SSL 3.0、TLS 1.0(SSL 3.1)、TLS 1.1(SSL 3.2)、TLS 1.2(SSL 3.3)のバージョンが存在します。TLS 1.3は2021年現在、仕様策定中です。
SSL 1.0、2.0はそれぞれ重大な脆弱性が発見されており、現在は使用禁止されています。さらに、2015年6月にはIETF(インターネット技術タスクフォース)によってSSL 3.0の使用も禁止されました。
SSLとTLSの違い
TLSはSSLの次世代規格です。現在一般的に「SSL」と呼んでいるものは実質「TLS」を指していることがほとんどです。
SSLとTLSの違いはバージョンの違いと考えれば良いです。もともとは「SSL」と呼んでいたものが途中で「TLS」と名前が変わったわけですが、「SSL」という呼び方が既に一般的となっていたため、今でのそのまま「SSL」と呼んでいる人も多くいます。場合によってはその両方を踏まえて「SSL/TLS」と表記されることもあります。
SSLはHTTP専用の暗号化プロトコルと勘違いされがちですが、そうではありません。ただ単にHTTPSが世の中に最も出回っているから、そう感じられるだけです。SSLはトランスポート層で動作し、アプリケーションプロトコルとは独立して動作します。TCPを利用するので、TCPの上、アプリケーションの下、位置的には4.5層で動作します。
SSL/TLSを使用するアプリケーション
上述のとおり、SSLはトランスポート層で動作し、TCPアプリケーションプロトコルを暗号化対象としています。従って、例えば、ファイル転送で使用するFTPや、メールで使用するSMTPもSSLで暗号化することができます。その場合、「FTP over SSL」(FTPS)や「SMTP over SSL」(SMTPS)といった具合に「○○ over SSL」と呼ばれます。(注意点として、SSHを利用してリモートマシン間でファイルコピーするSCPやSFTPはSSLとは関係ありません。)
それらの中で、SSLの利用形態として最も一般的なのはHTTPSと言えるでしょう。
SSL/TLSの代表格であるHTTPS
HTTPSは、Webサイトの閲覧等に使われるHTTPをSSLプロトコル上で利用するプロトコルで、例えばID/パスワードを入力したり、オンラインショッピング等でクレジットカード情報を入力したりするWebサイトではほとんどの場合、HTTPSが使われています。
最近では、プライバシー保護に対する意識の高まりから、上記のような決済ページなどの個人情報を入力するページに限らず、あらゆるサイトをSSL化する「常時SSL化」が進んでいます。Google Chromeの新しいバージョンでは、「常時SSL化」に対応していないサイトでは、ブラウザ側で警告が表示されるようになっています。
Webページ(HTML)の取得にHTTPSを使用しているかどうかは、ブラウザのアドレスバーを確認することで判断できます。ネットサーフィンをしていて、Webブラウザ上のURLが「https://~」となって、錠前マークが表示されることはありませんか。
錠前マークはSSLで通信が暗号化されていて、データが守られていることを表しています。