セキュリティ

TLSとは

2020年3月24日

TLS(Transport Layer Security)

TLSとは

TLS(Transport Layer Security)とは、インターネット上での通信で通信内容を暗号化してやり取りするためのプロトコルです。

個人情報やクレジットカード情報などの重要なデータを暗号化して、通信を安全に行なうことができます。

通信を暗号化するプロトコルは、TLS より SSL (Secure Sockets Layer) の方が未だに広く普及しているが、実際はSSL は TLSの元となったプロトコルであり、現在では、主にTLS を利用して暗号化しています。

TLS は未だに SSL と呼ばれることの方が多いため「TLS/SSL」と表記しているサイトも多いです。

スポンサーリンク

TLSは、HTTPなどの アプリケーション層 のプロトコルと組み合わせることで使用されています。

元プロトコルポート番号TLSと組み合わせたプロトコルポート番号
HTTP80HTTPS443
SMTP25SMTPS465
FTP20、21FTPS989、990
IMAP143IMAPS993
POP3110POP3S995
LDAP389LDAPS636

TLS/SSLの仕組み

サーバ証明書(SSLサーバ証明書)

TLSを利用するには、サーバが認証局(CA:Certification Authority)と呼ばれる第三者の機関からサーバ証明書(SSLサーバ証明書とも呼ばれている)を発行してもらう必要があります。

サーバ証明書には、サーバ所有者の情報や暗号化通信に必要な鍵、発行者の署名データなどが含まれます。

サーバ証明書

上記図は、Webサイトが認証局からサーバ証明書を発行してもらうイメージ図です。

認証局はサイト所有者の実在性を確認し「サーバ証明書」と「公開鍵」を発行します。

証明書の確認

認証局に証明してもらったWebサイトは、URLの左側に鍵マークが付与され、さらに鍵マークをクリックすると証明書の内容が確認できます。

利用者は証明書を確認することで、認証局がサーバ証明書を発行した安全なWebサイトであると判断できます。

しかし、なかには身元の不確かな機関(自分含む)が発行した証明書(オレオレ証明書)を使っているWebサイトも存在するため、証明書の内容を確認することが大切です。

TLS/SSL 暗号化通信の仕組み

TLS/SSL 暗号化通信は、認証局から発行されたサーバ証明書、そして公開鍵を使い公開鍵暗号方式(RSA)共通鍵暗号方式(AES)の仕組みを用いて行われます。

1. TLSの接続要求

TLSの接続要求

まずはじめに、クライアント(利用者のコンピュータ)から対象のサーバへとTLSの接続要求を送信します。

2. 公開鍵付きサーバ証明書の送付

公開鍵付きサーバ証明書の送付

サーバは認証局から発行してもらった「サーバ証明書」と「公開鍵」をクライアントに送付します。

クライアント側では、ブラウザに事前に搭載されているルート証明書(認証局が発行したサーバ証明書であることを確認するための証明書)でサーバ証明書を検証します。

そして、クライアント側で「共通の鍵」を生成します。

スポンサーリンク

3. 公開鍵暗号方式で「共通の鍵」をサーバに送る

共通の鍵を送る

クライアント側で生成した「共通の鍵」は、Webサーバから送られてきた「公開鍵」で暗号化し、Webサーバに送信します。

Webサーバに送信された「共通の鍵」は、Webサーバ側で保持しているサーバの「秘密鍵」で復号されます。

このように、"暗号化" と "復号" に違う鍵を使う暗号方式を「公開鍵暗号方式」といいます。公開鍵暗号方式のイメージ図は次の通りです。

公開鍵暗号方式

4. 共通鍵暗号方式で暗号化通信を行う

共通鍵暗号方式で暗号化通信を行う

クライアントが生成した「共通の鍵」をWebサーバに渡すことができたので事前準備は終了です。後は共通鍵暗号方式で暗号化通信を行い、データの送受信を行います。

 

共通鍵暗号方式とは、"暗号化" と "復号" に同じ鍵を使う暗号方式のことをいいます。共通鍵暗号方式のイメージ図は次の通りです。

共通鍵暗号方式

TLSのバージョン

TLSには次のバージョンが存在します。

バージョン説明
TLS 1.01999年に「SSL 3.0」を元とし新しい規格として登場。機能は「SSL 3.0」とほとんど変わらない。
TLS 1.12006年に「TLS 1.0」のセキュリティ面を強化したバージョンとして登場。共通鍵暗号アルゴリズムとしてAESが選択肢に加わった。
TLS 1.22008年に登場したバージョン。ハッシュのアルゴリズムにSHA-256が追加された他、様々な機能が強化されている。
TLS 1.32018年に登場した最新バージョン。

helpful