web-dev-qa-db-ja.com

これはSSLsplitで可能ですか?

SSLsplitは、IPv4とIPv6の両方でプレーンTCP、プレーンSSL、HTTP、HTTPS接続をサポートします。 SSLおよびHTTPS接続の場合、SSLsplitは、元のサーバー証明書のサブジェクトDNおよびsubjectAltName拡張に基づいて、偽造X509v3証明書をオンザフライで生成して署名します。 SSLsplitはサーバー名表示(SNI)を完全にサポートしており、RSA、DSA、およびECDSA鍵とDHEおよびECDHE暗号スイートを処理できます。 OpenSSLのバージョンに応じて、SSLsplitはSSL 3.0、TLS 1.0、TLS 1.1およびTLS 1.2、さらにオプションでSSL 2.0もサポートします。 SSLsplitは、偽造された証明書を生成する代わりに、秘密鍵が利用可能な既存の証明書を使用することもできます。 SSLsplitは、NULLプレフィックスのCN証明書をサポートし、一般的な方法でOCSP要求を拒否できます。 HTTPおよびHTTPS接続の場合、SSLsplitはHPKPの応答ヘッダーを削除して公開鍵のピン留めを防止し、HSTSはユーザーが信頼できない証明書を受け入れるようにし、代替プロトコルはQUIC/SPDYへの切り替えを防止します。実験的な機能として、SSLsplitは一般的な方法でSTARTTLSメカニズムをサポートしています。

これは、クライアント(Firefoxの組み込みストア、Androidなど)から証明書をコピーし、コピーした証明書を使用してSSLsplitを実行できることを意味しますか?次に、カスタム証明書を使用するデバイスやプログラムからのトラフィックを検査できますが、自分の証明書をアップロードすることはできませんか?

3
user6769219

あなたの質問

これは、クライアント(Firefoxの組み込みストア、Androidなど)から証明書をコピーできることを意味しますか?

回答者:

SSLsplitは、偽造された証明書を生成する代わりに、既存の証明書秘密鍵が利用可能を使用することもできます。

組み込みストアにCA証明書の秘密鍵がないため、これらを使用することはできません。

4
Steffen Ullrich

いいえ、違います。太字の文章「SSLsplitは、偽造された証明書を生成する代わりに、秘密鍵が利用可能な既存の証明書を使用することもできます。」は、ユーザーが制御するサーバー証明書の使用について説明しています。 SSL/TLSをインターセプトして制御下のサーバーに記録する場合は、サーバーの証明書とキーにアクセスできます。SSLsplitに、オンザフライで証明書を偽造する代わりに、それらを直接使用するように指示できます。 sslsplit(1)マニュアルページから:

   -t certdir
      Use  private  key,  certificate  and  certificate chain from PEM
      files in certdir  for  connections  to  hostnames  matching  the
      respective  certificates,  instead  of using certificates forged
      on-the-fly.  A single PEM file must  contain  a  single  private
      key,  a  single certificate and optionally intermediate and root
      CA certificates to use as certificate  chain.   When  using  -t,
      SSLsplit will first attempt to use a matching certificate loaded
      from certdir.  If -c and -k are also given, certificates will be
      forged on-the-fly for sites matching none of the common names in
      the certificates loaded from  certdir.   Otherwise,  connections
      matching  no  certificate  will  be  dropped, or if -P is given,
      passed through without splitting SSL/TLS.