TLS(旧SSL)とサーバ証明書、クライアント証明書の関係

スポンサーリンク
スポンサーリンク

TLSとは

TLSとは、様々なアプリケーションレイヤ通信(代表的なものはhttp)の認証および暗号化を行うプロトコルです。 OSI参照モデルでは第5層のセッション層に当たりますが、IPセットモデルではTCPと同じくトランスポート層になります。 (TCPの上位で動作しますが、PPPoEのように同レイヤプロトコルの組み合わせとなります)

TLSはもともとネットスケープ社の開発したSSLがベースになっており、1999年、IETFによりTLSバージョン1.0がRFC2246で 標準化されました。

ネットスケープ社のSSLの最終バージョンも2015年、プロトコル自体に脆弱性が見つかりました。 しかしその頃にはTLS1.0~1.2はたいていの機器で標準実装されていたため、インターネット上の多くのサーバが 一斉にSSL3.0を無効化しはじめました。なので事実上SSLはその役目を終え、TLSがその役目を引き継いでいます

しかしながら、「SSL証明書」や「SSLアクセラレータ」などの言葉は生き残っており、実際にはTLSを 使っている場合でも、慣例的にSSLと呼ぶことがあります(2017年現在ではむしろ多いです)。

スポンサーリンク

TLSの使われ方

TLSで一番有名な実装は『https』でしょう。これ以外の実装例として以下のものがあります。

POP3s

POP3をTLSで暗号化します。

IMAP4s

IMAP4をTLSで暗号化します。

SMTPs

SMTPを丸ごとTLSで暗号化します。

SMTPのSTARTTLS

SMTPのメール中身のみを暗号化します。(EHLO等の制御コマンド通信は暗号化しません)

LDAPs

LDAPをTLSで暗号化します。

FTPs

FTPをTLSで暗号化します。なお、sFTPというものもありますが、これはFTPをsshで暗号化したものになります。

IEEE802.1x

クライアントとRADIUSサーバ間の認証・認可通信を暗号化します。なお、間に認証スイッチ(Authenticator)が入りますが、このスイッチはEAPメッセージをEAPoLからRadiusに乗せ替えるだけで、EAPメッセージ自体はノータッチです。

よくある誤解として、『PEAPを使う場合はデジタル証明書は不要だ』と言う人もいますが、クライアント証明書としてのデジタル証明書は不要ですが、Radiusサーバにはサーバ証明書としてのデジタル証明書が必要です。

スポンサーリンク

TLSの認証の仕組み

TLSの認証は基本はITU-T勧告のX.509デジタル証明書バージョン3が使われます。

単に認証といっても、1つのTLS通信の中に以下の2つの認証が行われます。

  1. クライアントがサーバを認証(サーバが偽者ではないかどうかを確認)する
  2. サーバがクライアントを認証(クライアントが偽者ではないかどうかを確認)する

1の認証についてはサーバにデジタル証明書(サーバ証明書。このことをよく”SSL証明書”と呼びます)をインストール、 2の認証についてはクライアントにデジタル証明書(クライアント証明書)をインストールする必要があります。

デジタル証明書の詳細についてはこちらをご参照下さい

ただし、この認証はどちらも必須ではなく、実装として多いhttpsにおいては、TLSでのクライアント認証は (セキュリティを堅牢にする必要がある場合を除き)ほとんど行われません。例えばhttps://www.google.co.jp もクライアント証明書は不要でアクセスできます。

たいていはサーバ証明書だけをインストールし、サーバが正しいことを保証し、もしクライアント側が 正規なユーザかどうかを確認する場合はWeb画面の最初にログイン画面を設け、そこでクライアント認証(ユーザ認証)を行うことが多いです

サーバ証明書の例として https://www.google.co.jp の証明書を見てみます。

スポンサーリンク

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク