Come scoprire se una connessione è criptata?

3

Sto sniffando una connessione che utilizza ICEP (ZeroC ICE Protocol) e i suoi corpi dei pacchetti compressi usando l'algoritmo BZ2 (GNU BZip 2).

Voglio scoprire se i pacchetti sono crittografati o meno. ICEP può utilizzare OpenSSL per crittografare il traffico.

Informazioni aggiuntive

È una rete locale e utilizzo WireShark per analizzare il traffico. Il client è un'applicazione .Net su Windows e Server è un'applicazione Python su una macchina Gnu / Linux. Se usano una qualsiasi crittografia, è probabilmente il cifrario ADH (Anonimo Diffie-Hellman).

Ho anche provato a usare il comando # openssl s_client , ma dice:

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

    
posta Aidin 19.03.2011 - 09:35
fonte

1 risposta

2

Guarda lo stream e cerca la negoziazione utilizzando protocolli di crittografia definiti. Se sai che i dati sono compressi con bzip2, cerca le stringhe 0x314159265359 e 0x177245385090. A meno che le intestazioni non siano completamente tolte, appariranno una volta per ogni blocco. Puoi indovinare se i dati sono crittografati seguendo lo stream e controllando l'entropia. Maggiore è l'entropia per bit, maggiore è la probabilità che tu veda la crittografia. Questo purtroppo vale anche per la compressione.

Direi che puoi discernere il noto criptato, o conosciuto non criptato. Differire la crittografia o la compressione richiederebbe un po 'di tempo e coinvolgerebbe codice più complesso senza informazioni di intestazione per le stringhe magiche (come sopra) per dargli via.

    
risposta data 19.03.2011 - 15:02
fonte

Leggi altre domande sui tag