Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SSL フォワード プロキシの概要

セキュア ソケット レイヤー (SSL) は、インターネットに暗号化テクノロジを提供するアプリケーション レベルのプロトコルです。SSLは Transport Layer Security (TLS)とも呼ばれ、プライバシー、認証、機密性、およびデータ整合性の組み合わせを通じて、クライアントとサーバー間のデータの安全な送信を保証します。SSL は、このレベルのセキュリティで証明書と秘密キーと公開キーの交換ペアに依存します。

サーバー認証は、Web ブラウザーで Web サーバーの ID を検証できるようにすることで、不正な送信から保護します。機密性メカニズムにより、通信はプライベートになります。SSLは、データを暗号化して機密性を強制し、権限のないユーザーが電子通信を盗聴するのを防ぎます。最後に、メッセージの整合性により、通信の内容が改ざんされていないことが保証されます。

SSL フォワードプロキシは透過プロキシです。つまり、クライアントとサーバーの間でSSL暗号化と復号化を実行しますが、サーバーもクライアントもその存在を検出できません。SSL フォワード プロキシは、ペイロードを暗号化および復号化するためのキーを確実に保持します。

  • サーバーの場合、SSL フォワードプロキシはクライアントとして機能します—SSL フォワードプロキシは共有の事前プライマリキーを生成するため、暗号化および復号化するキーを決定します。

  • クライアントの場合、SSL フォワードプロキシーはサーバーとして機能し、SSL フォワードプロキシーは最初に元のサーバーを認証し、元のサーバー証明書の公開鍵を既知の鍵に置き換えます。次に、証明書の元の発行者を独自の ID に置き換えることによって新しい証明書を生成し、この新しい証明書を独自の公開キー (プロキシ プロファイル構成の一部として提供される) で署名します。クライアントは、このような証明書を受け入れると、証明書の公開キーで暗号化された共有の事前プライマリ キーを送信します。SSL フォワードプロキシは元のキーを独自のキーに置き換えたため、共有の事前主キーを受信できます。復号化と暗号化は各方向(クライアントとサーバー)で行われ、キーは暗号化と復号化の両方で異なります。

図1 は、(既存のSRXシリーズIPSモジュール上の)SSLインスペクションを使用してサーバーを保護する方法を示しています。SSLインスペクションでは、SRXシリーズデバイスが暗号化されたトラフィックを復号化できるように、サーバーが使用する秘密鍵にアクセスする必要があります。

図1:既存のSRXシリーズファイアウォールSSL Inspection on an Existing SRX Series FirewallでのSSLインスペクション

図 2 は、SSL フォワードプロキシが暗号化されたペイロードでどのように機能するかを示しています。アプリケーションファイアウォール(AppFW)、侵入防御システム(IPS)、またはアプリケーショントラッキング(AppTrack)が設定されている場合、SSL フォワードプロキシーはクライアントからの SSL セッションを終了する SSL サーバーとして機能し、サーバーへの新しい SSL セッションが確立されます。デバイスは、すべての SSL 転送プロキシ トラフィックを復号化し、再暗号化します。SSL フォワード プロキシは、次のサービスを使用します。

  • クライアント側の SSL-T-SSL ターミネータ。

  • サーバー側の SSL-I-SSL イニシエーター。

  • 設定されたAppFW、IPS、またはAppTrackサービスは、復号化されたSSLセッションを使用します。

手記:

どのサービス(AppFW、IPS、または AppTrack)も設定されていない場合、SSL プロキシ プロファイルがファイアウォール ポリシーにアタッチされていても、SSL フォワード プロキシ サービスはバイパスされます。SSL フォワード プロキシーがセッションに対して有効になっている場合、IPS はセッションで SSL インスペクションを実行しません。つまり、SSL インスペクションと SSL フォワードプロキシの両方がセッションで有効になっている場合、SSL フォワードプロキシが常に優先されます。

図2:暗号化されたペイロードSSL Proxy on an Encrypted Payload上のSSLプロキシ

プロキシ モードでサポートされている暗号方式

SSL 暗号は、暗号化暗号、認証方法、および圧縮で構成されます。 表 1 に、サポートされている暗号のリストを示します。NULL 暗号は除外されます。

以下の SSL プロトコルがサポートされています。

  • SSLv3

  • TLS1

表 1: プロキシ モードでサポートされている暗号方式

SSL 暗号

鍵交換アルゴリズム

データ暗号化

メッセージの整合性

RSA_WITH_RC4_128_MD5

RSA 鍵交換

128 ビット RC4

メッセージ ダイジェスト 5(MD5)ハッシュ

RSA_WITH_RC4_128_SHA

RSA 鍵交換

128 ビット RC4

セキュア ハッシュ アルゴリズム(SHA)ハッシュ

RSA_WITH_DES_CBC_SHA

RSA 鍵交換

DES CBC

SHA ハッシュ

RSA_WITH_3DES_EDE_CBC_SHA

RSA 鍵交換

3DES EDE/CBC

SHA ハッシュ

RSA_WITH_AES_128_CBC_SHA

RSA 鍵交換

128 ビット AES/CBC

SHA ハッシュ

RSA_WITH_AES_256_CBC_SHA

RSA 鍵交換

256ビットAES/CBC

SHA ハッシュ

RSA_EXPORT_WITH_RC4_40_MD5

RSAエクスポート

40 ビット RC4

MD5 ハッシュ

RSA_EXPORT_WITH_DES40_CBC_SHA

RSAエクスポート

40 ビット DES/CBC

SHA ハッシュ

RSA_EXPORT1024_WITH_DES_CBC_SHA

RSA 1024 ビット エクスポート

DES/CBC

SHA ハッシュ

RSA_EXPORT1024_WITH_RC4_56_MD5

RSA 1024 ビット エクスポート

56 ビット RC4

MD5 ハッシュ

RSA_EXPORT1024_WITH_RC4_56_SHA

RSA 1024 ビット エクスポート

56 ビット RC4

SHA ハッシュ

RSA-WITH-AES-256-GCM-SHA384

RSA 鍵交換

256 ビット AES/GCM

SHA384 ハッシュ

RSA-WITH-AES-256-CBC-SHA256

RSA 鍵交換

256ビットAES/CBC

SHA256 ハッシュ

RSA-WITH-AES-128-GCM-SHA256

RSA 鍵交換

128 ビット AES/GCM

SHA256 ハッシュ

RSA-WITH-AES-128-CBC-SHA256

RSA 鍵交換

128 ビット AES/CBC

SHA256 ハッシュ

サーバー認証

クライアントとデバイス間の暗黙的な信頼(クライアントがデバイスによって生成された証明書を受け入れるため)は、SSLプロキシの重要な側面です。サーバー認証が侵害されないことが非常に重要です。ただし、実際には、自己署名証明書と異常のある証明書が豊富にあります。異常には、期限切れの証明書、ドメイン名と一致しない共通名のインスタンスなどが含まれます。

サーバー認証は、SSL 転送プロキシー・プロファイルで「サーバー認証を無視」オプションを選択することによって管理されます。

[サーバー認証を無視する] オプションが選択されていない場合、次のシナリオが発生します。

  • 認証が成功した場合は、キーを置き換え、発行者名をプロキシ プロファイルのルート CA 証明書で構成されている発行者名に変更することで、新しい証明書が生成されます。

  • 認証に失敗すると、接続は切断されます。

「サーバー認証を無視する」オプションが SSL 転送プロキシー・プロファイルのアクションとして定義されている場合、以下のシナリオが発生します。

  • 証明書が自己署名の場合は、キーのみを置き換えることによって新しい証明書が生成されます。発行者名は変更されません。これにより、証明書が無効であるという警告がクライアント ブラウザーに表示されます。

  • 証明書の有効期限が切れている場合、または共通名がドメイン名と一致しない場合は、キーを置き換え、発行者名を SSL-PROXY に変更することで、新しい証明書が生成されます。 DUMMY_CERT:SRVR 認証エラーのために生成されます。これにより、証明書が無効であるという警告がクライアント ブラウザーに表示されます。

信頼済み CA リスト

SSL フォワードプロキシーは、クライアントとサーバー間のデータの安全な伝送を保証します。セキュア接続を確立する前に、SSL フォワード・プロキシーは 認証局 (CA) 証明書を調べて、サーバー証明書の署名を検証します。このため、サーバーを効果的に認証するには、信頼できる CA 証明書の妥当なリストが必要です。

サーバー認証を無視する

[サーバー認証を無視する] オプションを使用して、サーバー認証を完全に無視できます。この場合、SSL フォワード プロキシは、サーバー証明書の検証プロセス中に発生したエラー (CA 署名の検証の失敗、自己署名証明書、証明書の有効期限など) を無視します。

このオプションを設定すると、Web サイトがまったく認証されないため、認証にはお勧めしません。ただし、このオプションを使用すると、SSL セッションがドロップされる根本原因を効果的に特定できます。

ルート CA

公開キー基盤 (PKI) 階層では、ルート CA は信頼パスの最上位にあります。ルート CA は、サーバー証明書を信頼できる証明書として識別します。

セッションの再開

SSL セッションとは、完全なハンドシェークを実行することによって作成されたパラメーターと暗号化キーのセットを指します。接続は、セッション内で発生する会話またはアクティブなデータ転送です。完全な SSL ハンドシェークと主鍵の生成の計算オーバーヘッドはかなりのものです。短時間のセッションでは、SSL ハンドシェークにかかる時間がデータ転送の時間より長くなることがあります。スループットを向上させながら適切なレベルのセキュリティーを維持するために、SSL セッション再開はセッション・キャッシング・メカニズムを提供し、事前 1 次秘密鍵や合意された暗号などのセッション情報をクライアントとサーバーの両方でキャッシュできます。キャッシュされた情報は、セッション ID によって識別されます。その後の接続では、両方の当事者は、新しい事前プライマリ秘密鍵を作成するのではなく、セッションIDを使用して情報を取得することに同意するものとします。セッション再開により、 ハンドシェイク プロセスが短縮され、SSL トランザクションが高速化されます。

SSL プロキシ ログ

SSL プロキシー・プロファイルでロギングが使用可能になっている場合、SSL プロキシーは 表 2 に示すメッセージを生成できます。

表 2: SSL プロキシ ログ

ログの種類

形容

SSL_PROXY_SSL_SESSION_DROP

SSL プロキシによってセッションがドロップされたときに生成されるログ。

SSL_PROXY_SSL_SESSION_ALLOW

軽微なエラーが発生した後でも、SSLプロキシによってセッションが処理されたときに生成されるログ。

SSL_PROXY_SESSION_IGNORE

非 SSL セッションが最初に SSL セッションと間違えられた場合に生成されるログ。

SSL_PROXY_SESSION_ALLOWLIST

セッションが許可リストに登録されたときに生成されるログ。

SSL_PROXY_ERROR

エラーの報告に使用されるログ。

SSL_PROXY_WARNING

警告の報告に使用されるログ。

SSL_PROXY_INFO

一般情報のレポートに使用されるログ。

すべてのログには同様の情報が含まれています。メッセージ フィールドには、ログ生成の理由が含まれています。 表 3 に示されている 3 つの接頭部のうちの 1 つは、メッセージのソースを識別します。その他のフィールドには、説明的なラベルが付けられています。

表 3: SSL プロキシ ログ プレフィックス

接頭辞

形容

デバイスに関連するエラー、または SSL プロキシ プロファイルの一部として実行されたアクションによって生成されたログ。ほとんどのログはこのカテゴリに分類されます。

OpenSSL エラー

opensslライブラリによってエラーが検出された場合にハンドシェイクプロセス中に生成されるログ。

証明書エラー

証明書でエラーが検出された場合に ハンドシェイク プロセス中に生成されるログ(x509 関連のエラー)。

完全転送機密保持

完全転送機密保持は、サーバーの秘密キーが侵害された場合でもセッション キーが侵害されないことを保証する特定のキー合意プロトコルです。ユーザーが開始するセッションごとに一意のセッション キーを生成することにより、1 つのセッション キーが侵害されたとしても、その特定のキーで保護されている特定のセッションで交換されたデータ以外のデータには影響しません。

楕円曲線 DHE(ECDHE)暗号スーツをサポートしており、SSL フォワードプロキシで完全な前方秘匿性を可能にします。SSL フォワード プロキシは、引き続き認証に RSA を使用します。ただし、EC Diffie-Hellman エフェメラル鍵交換を使用して、共有秘密鍵に合意します。

ECDHE 暗号スイートは DHE 暗号スイートよりも高速であるため、SSL フォワード・プロキシーは ECDHE 暗号スイートのみをサポートします。ECDHE暗号スーツは楕円曲線暗号に基づいており、より小さな鍵でRSAと同じレベルのセキュリティを実現できます。たとえば、224 ビットの楕円曲線は、2048 ビットの RSA キーと同じくらい安全です。

表 4 に、サポートされている ECDHE 暗号スーツを示します。

表 4: サポートされている ECDHE 暗号スーツ

SSL 暗号

鍵交換アルゴリズム

データ暗号化

メッセージの整合性

ECDHE-RSA-WITH-AES-256-GCM-SHA384

ECDHE RSA

256 ビット AES/GCM

SHA 384 ハッシュ

ECDHE-RSA-WITH-AES-256-CBC-SHA384

ECDHE RSA

256ビットAES/CBC

SHA 384 ハッシュ

ECDHE-RSA-WITH-AES-256-CBC-SHA

ECDHE RSA

256ビットAES/CBC

SHA ハッシュ

ECDHE-RSA-WITH-AES-3DES-EDE-CBC-SHA

ECDHE RSA

3DES AES/EDE/CBC

SHA ハッシュ

ECDHE-RSA-WITH-AES-128-GCM-SHA256

ECDHE RSA

128 ビット AES/GCM

SHA 256 ハッシュ

ECDHE-RSA-WITH-AES-128-CBC-SHA256

ECDHE RSA

128 ビット AES/CBC

SHA 256 ハッシュ

ECDHE-RSA-WITH-AES-128-CBC-SHA

ECDHE RSA

128 ビット AES/CBC

SHA ハッシュ