SSLインスペクションを噛み砕いて説明する
SSLインスペクションとは簡単に言うとHTTPSを複合化して中身をチェックして暗号化して送る機能です。
UTMやファイアウォールの機能として備わっていることが多いです。また、一部のプロキシサーバにも備わっていたりします。
普通のHTTPS通信
普通のHTTPS通信と表現すると語弊があるかも知れませんが、SSLインスペクションが行われないHTTPS通信では、クライアントとサーバの間で暗号化が行われます。
簡単に言うと、パソコンからウェブサイトの間のすべての区間で暗号化がされます。
そのため、ファイアウォールやプロキシサーバが間にあったとしても、これらは単にパケットを受け渡すだけで、HTTP通信の中身が分かりません。
HTTPによってどんな内容、データがやり取りされているかは分からないのです。
パソコンからウェブサイトまで暗号化されると言うのは、途中でパケットを盗み取られても中身がわからないと言うメリットはありますが、一方で暗号化されている良くない通信を検知できないと言うデメリットがあります。
昨今はHTTPSの通信は非常に一般的になっていますし、悪意のあるウェブサイトはHTTPS通信ができないなんてことはありません。
悪意のあるウェブサイトに不適切な情報を律儀に暗号化して送ってしまうというリスクがあるのです。
SSLインスペクションの通信
一方でSSLインスペクションの場合は、UTMなどの然るべき機器で一度複合化し、中身をチェックして、再度暗号化してウェブサイトへ送ります。
そのためHTTPSで暗号化されていめも、一度複合化するので、中身を確認することができます。
そして、その内容によっては通信を遮断するなどといった対処ができ、セキュリティを強化することができます。
ただし、デメリットとは言えないかも知れませんが、手間が生じます。セキュリティと利便性はいつもトレードオフですからね。
例えば、この仕組みを使った悪い手法である中間者攻撃が存在し、通信を盗まれ、情報が流出する可能性があります。そのため、常に正しい機器がSSLインスペクションを実施できるようにする必要があります。
また、HTTPSによる暗号化はクライアントとUTM等の機器の間、およびUTM等の機器とウェブサイトの間の2カ所で行われます。そのため、然るべき箇所で然るべき証明書が使用されるようにする必要があります。
ウェブサイトやSaaSによってはクライアント証明書による認証をとっていたりしますが、SSLインスペクションを行うような環境では、ウェブサイトからみるとSSLインスペクションを行うUTM等の機器の証明書となります。そうなると、一意のユーザを特定できないなどの問題も生じ得ます。
今回は詳しい話は割愛しますが、SSLインスペクションの導入には色々と課題があるということです。
技術以外の問題・課題
FirewallでSSL Inspectionをしている場合、わざわざ人が介入して通信の中身をチェックしたりはしませんが、やろうと思えばできてしまいます。リアルタイムに確認せずとも、ログが残っていればそこからどんな通信か、人が見ることができます。そこで問題になるのが個人情報の取り扱いです。
身長体重等の身体に関する情報、クレジットカード情報、住所や性別、等々、見られる可能性を与えてしまうことになります。
最近のFirewallではこう言った特定のカテゴリに分類されるURLに対する通信についてはSSL Inspection対象外(Exempt)とする機能もあったりしますが、100%ではありません。認知されていないマイナーな通販サイトでクレジットカード情報を入れる等しても、おそらくSSL Inspectionが効いてしまいます。
とは言え、家庭や公衆WiFiでSSL Inspectionは(普通は)行わないので企業内の話になります。仕事のパソコンでそもそも個人的な買い物をしますか?個人的な用途で情報を送信しますか?という話になります。業務上個人情報の取り扱いが必要ならば、それはそれで別にセキュリティ対策を取るべきですので、実はこの問題・課題はそんなに大きくないのかも知れません。
SSL Inspectionの悪用
時々「SSL Inspectionは通信の中身をチェックする」と言うと、「え、それって良いんですか?」なんて言われたりします。私は良く「じゃあ包丁は良いんですか?」と聞き返します。使う人が正しい方法で使えば善、誤った方法で使えば悪です。
SSL Inspectionの仕組みを悪用するセキュリティ攻撃をMan in the Middle(中間者攻撃)と言ったりします。中間者攻撃にはもう少し種類がありますが、そのうちの一つがSSL Inspectionを悪用したものです。
仕組みはシンプルで上述の通りですが、Firewallに当たる部分が、悪い悪意の持った人のデバイスとなっており、そこから情報を盗聴されます。
まとめ
このように、すごく簡単に言うと、普通のHTTPS通信とSSLインスペクションの違いは、クライアントからサーバまで全て暗号化されるか、途中で複合化と暗号化がされるのかの違いです。
このページではかなり噛み砕いた表現をしていますので、必要に応じてご自身でお調べ頂ければと思います。