web-dev-qa-db-ja.com

TLS認証はユーザー名とパスワードを暗号化しますか?

OpenVPNを使用してVPNプロバイダーに接続します。サーバーは、ユーザー名/パスワードとTLS認証の組み合わせを使用します。

パブリックwifiでVPNに接続している場合、ユーザー名は暗号化されますか?

つまり、ユーザー名が盗聴される可能性がありますか?

6
slick1537

質問を正しく読んでいる場合は、TLSクライアント認証とユーザー名/パスワードの組み合わせを使用してVPNに接続しています。

この場合、MitM攻撃者はクライアント証明書の完全な内容を読み取ることができます( ハンドシェイクプロトコルの関連メッセージへのリンク )、可能性がありますユーザー名を含めることができます。ユーザー名とパスワードの組み合わせは、TLSハンドシェイクが完了して暗号化された後に送信されるため、攻撃者はユーザー名とパスワードの組み合わせを読み取ることができません。

緩和策はプロトコルレベルでは単純です。サーバーへの相互認証された接続を完全に行わず、一方的に認証された接続を確立してから、サーバーに再ネゴシエーションを開始させますクライアント認証あり。これは異なります。接続は最初の接続からの暗号スイートを使用して暗号化されるため、攻撃者はクライアント証明書を盗聴することができません。

何らかの理由でこの緩和策が不可能な場合は、2つのユーザー名を一意かつ異なるものにしてみてください。たとえば、ユーザーに証明書内の完全にランダムな共通名を割り当て、それを内部データベース/アクセス制御リストでチェックして、a)アクセスを許可し、b)読み取り可能/人間が選択したパスワードに一致させることができます。このようにして、攻撃者はユーザー名とパスワードのペアに必要なユーザー名を知ることができません。私の知る限り、OpenVPNでこのような設定が可能です。

5
SEJPM

質問を正しく読んでいただければ幸いですが、VPNを介して接続している場合、トンネルが作成された瞬間に、ポイントツーポイントVPNトンネル間のすべてのデータが暗号化されます。これには、Wifi経由でデバイスから送信されるパケットが含まれます。

VPNトンネルを作成するためにユーザー名/パスワードが必要な場合、おそらくTLS/SSLを使用するhttpsを使用して、トンネルが作成される前に暗号化されて渡されることは間違いありません。

攻撃者はデータを復号化するためのキーを持っている必要があります。通常のスニファがトラフィックを表示しようとすると、意味不明なものだけが表示されます。

攻撃者がエクスプロイトを見つけたり、キーを入手したりできない場合を除き、ユーザー名とパスワードを含む渡されたすべての情報は実際に暗号化されます。

1
Jeff Meigs