web-dev-qa-db-ja.com

接続が暗号化されているかどうかを確認するにはどうすればよいですか?

ICEP(ZeroC ICE Protocol)を使用する接続と、BZ2(GNU BZip 2)アルゴリズムを使用して圧縮されたそのパケット本体をスニッフィングしています。

パケットが暗号化されているかどうかを知りたい。 ICEPはOpenSSLを使用してトラフィックを暗号化できます。

追加情報

これはローカルネットワークであり、WireSharkを使用してトラフィックを分析します。クライアントはWindows上の.Netアプリケーションであり、サーバーはPythonアプリケーションです。暗号化を使用している場合、それはおそらくADH(匿名Diffie-Hellman暗号)です。暗号。

また、コマンド_# openssl s_client_を使用しようとしましたが、次のように記載されています。

CONNECTED(00000003) 3894:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:583:

3
Aidin

ストリームを監視し、定義された暗号化プロトコルを使用してネゴシエーションを探します。データがbzip2で圧縮されていることがわかっている場合は、文字列0x314159265359および0x177245385090を探します。ヘッダーが完全に削除されない限り、ヘッダーはブロックごとに1回表示されます。ストリームをたどり、エントロピーをチェックすることで、データが暗号化されているかどうかを推測できます。ビットあたりのエントロピーが大きいほど、暗号化が発生する可能性が高くなります。残念ながら、これは圧縮にも当てはまります。

既知の暗号化されたもの、または暗号化されていないものを識別できると思います。暗号化または圧縮を区別するにはしばらく時間がかかり、マジックストリング(上記のような)のヘッダー情報を含まない、より複雑なコードが含まれます。

2
Jeff Ferland