はじめに
「SSLデコードでは、暗号化されたHTTPS通信をどうやって復号しているの?」
「復号した通信を検査したあと、相手のサーバーへはどのように送られるの?」と疑問に感じていませんか。
ファイアウォールなどの設定画面でSSLデコードやSSLインスペクションという項目を見ても、クライアントとWebサーバーの間で証明書や暗号化通信がどう扱われるのか分からず、仕組みをイメージしにくいことがありますよね。
この記事では、HTTPS通信がSSLデコード装置を通るときの接続から復号、検査、再暗号化までの流れを紹介します。
通常のSSL/TLS通信とSSLデコードの違いは?

通常のSSL/TLS通信とSSLデコードでは、暗号化された通信を途中で確認するかどうかが異なります。
ここでは、通常のSSL/TLS通信とSSLデコードで通信の流れがどのように変わるのかを説明します。
通常のSSL/TLS通信ではクライアントとWebサーバーが直接通信する
通常のSSL/TLS通信では、クライアントとWebサーバーの間でTLSハンドシェイクを行い、暗号化に必要な鍵を確立します。
その後のデータは暗号化されたまま送受信されるため、途中のルーターやファイアウォールを通過しても、基本的に通信内容が復号されることはありません。
SSLデコードでは通信の途中で暗号化を解除して内容を確認する
SSLデコードでは、暗号化された通信をファイアウォールなどで一度復号し、通信内容を確認します。
確認後は再び暗号化してWebサーバーへ送るため、クライアントから機器までと、機器からWebサーバーまでの2つの区間に分けてSSL/TLS通信を行います。
SSLデコードの仕組みと通信の流れ
SSLデコードでは、クライアントとWebサーバーの間にSSLデコード装置が入り、2つのTLS通信を個別に確立します。
ここでは、TLS通信の確立から復号・検査・再暗号化までの流れを順番に説明します。
クライアントとSSLデコード装置の間でTLS通信を確立する
クライアントがHTTPSでWebサイトへ接続すると、まずSSLデコード装置との間でTLSハンドシェイクを行います。
装置から提示された証明書をクライアントが検証すると、暗号化に必要な鍵が確立され、TLS通信が始まります。
SSLデコード装置がWebサーバーと別のTLS通信を確立する
SSLデコード装置は、クライアント側とは別にWebサーバーともTLSハンドシェイクを行います。
Webサーバーの証明書を確認して暗号化に必要な鍵を確立し、装置とWebサーバーの間にも独立したTLS通信を作ります。
装置内で通信を復号して内容を検査する
SSLデコード装置は、受信した暗号化通信を装置内で復号し、HTTPのリクエストやレスポンスなどを確認できる状態にします。
そのうえで通信内容を検査し、設定された条件に問題がないかを確認します。
検査後の通信を再暗号化して相手へ送る
検査を通過した通信は、送信先とのTLSセッションを使って再び暗号化されます。
Webサーバーへ送る通信とクライアントへ返す通信は、それぞれのTLSセッションで再暗号化され、安全な状態で送信されます。
SSLデコードで証明書が必要になる仕組み
SSLデコードでは、装置がクライアントとのTLS通信を確立するため、アクセス先のWebサイトに対応した証明書を用意する必要があります。
ここでは、証明書の生成からCAによる署名、クライアント側での信頼までの流れを説明します。
SSLデコード装置がアクセス先に対応した証明書を生成する
クライアントがWebサイトへ接続すると、SSLデコード装置はアクセス先のホスト名を確認し、それに対応するサーバー証明書を動的に生成します。
これにより、Webサーバーに代わってクライアントとのTLS通信を確立できるようになります。
組織側のCAで証明書に署名する
SSLデコード装置は、生成したサーバー証明書を組織側で用意したCAの秘密鍵で署名します。
クライアントは提示された証明書を受け取ると、署名元のCAやアクセス先のホスト名などを確認し、信頼できる証明書かを検証します。
クライアントにCA証明書を信頼させて通信を成立させる
SSLデコードで使用するCA証明書は、あらかじめクライアントの信頼された証明書ストアへ登録しておきます。
署名元のCAやホスト名などの検証を通過すれば、証明書の警告を表示せずにSSLデコード装置とのTLS通信を確立できます。
CA証明書を登録しても警告が出る場合は、証明書が正しく検証されているか確認してみましょう。
▶SSL証明書の確認方法は?ブラウザで有効期限や発行元を調べる手順
SSLデコードが使われる理由
SSL/TLSで暗号化された通信は、セキュリティ機器が通信内容を確認できないまま通過する場合があります。
ここでは、SSLデコードがセキュリティ対策に使われる主な理由を説明します。
暗号化された通信に含まれる脅威を検査する
SSL/TLSで暗号化された通信は、そのままではセキュリティ機器が内容を詳しく確認できません。
SSLデコードで通信を復号することで、送受信されるデータを検査し、マルウェアなどの脅威を検出した場合は通信を遮断できます。
URLフィルタリングや情報漏えい対策に利用する
SSLデコードでHTTPS通信を復号すると、アクセス先のURLや送信されるデータを確認できます。
設定した条件と照合することで、不適切なサイトへのアクセスを制限したり、機密情報を含むデータの外部送信を防いだりできます。
SSLデコードを行う際の注意点
SSLデコードを導入する際は、通信内容を復号できるようにするだけでなく、証明書や運用面への影響も確認する必要があります。
ここでは、SSLデコードを行う前に確認しておきたい3つの注意点を説明します。
証明書の設定に問題があると警告や通信エラーが発生する
SSLデコードでは、装置が生成する証明書をクライアント側で正しく信頼できる状態にしておく必要があります。
CA証明書が端末に登録されていなかったり、有効期限やホスト名の検証に失敗したりすると、証明書の警告が表示され、Webサイトへ接続できないことがあります。
証明書エラーで接続できない場合は、原因を切り分けてから設定を見直すと安心です。
▶SSL証明書エラーの原因は?警告が表示されたときの確認方法と対処法
復号する通信ではプライバシーへの配慮が必要になる
SSLデコードでは、本来暗号化されている通信内容を装置内で確認できるようになります。
そのため、業務上の検査が必要な通信だけを対象にし、復号する通信と除外する通信をあらかじめ分けておくことが大切です。
復号と再暗号化によって装置の負荷が増える場合がある
SSLデコードでは、通信の復号や検査、再暗号化に加えて、クライアント側とWebサーバー側のTLS通信をそれぞれ処理します。
そのため、導入時は同時接続数や通信量を確認し、SSLデコードを有効にした状態でも十分な処理性能があるか確認しておきましょう。
まとめ
SSLデコードは、暗号化されたSSL/TLS通信を装置で一度復号し、内容を検査してから再び暗号化して送信する仕組みです。
クライアント側では装置が生成した証明書を利用するため、事前にCA証明書を信頼できる状態にしておく必要があります。
導入すると、HTTPS通信に含まれる脅威の検査だけでなく、URLフィルタリングや情報漏えい対策にも活用できます。
ただし、証明書の設定によっては通信エラーが発生するほか、プライバシーや装置への負荷にも配慮が必要です。
仕組みと注意点を理解したうえで、必要な通信を適切に検査できるよう設定しましょう。











