Determina se compresso o crittografato [chiuso]

2

Ho un sacco di dati di rete e vorrei determinare se è 1) crittografato o 2) compresso. Dubito che sia entrambi, ma il potenziale esiste. Se suppongo che le tradizionali intestazioni di compressione siano state rimosse (impedendomi semplicemente di eseguire file sui dati), come stabiliresti se i dati che sto guardando sono compressi o crittografati, se dovesse esserlo?

Il motivo per cui penserei che le intestazioni di compressione siano state eliminate è perché sarebbe un'informazione non necessaria considerando che sia il client che il server conoscono il metodo esatto per comprimere e decomprimere i dati.

Esempi di dati a livello di applicazione sono pubblicati su link e link

    
posta zz3star90 10.02.2015 - 01:02
fonte

2 risposte

2

In teoria, questo può essere difficile perché sia la crittografia che la compressione cercano di produrre dati ad alta entropia. I risultati pratici dipendono dall'algoritmo di compressione specifico utilizzato; per esempio, una recensione su / dev / ttys0 rivendica il successo in utilizzando determinate tecniche statistiche (approssimazione Chi-Square o Monte Carlo) per differenziare determinate tecniche di compressione / crittografia.

    
risposta data 10.02.2015 - 04:17
fonte
1

Se riesci a ottenere un batch sufficientemente ampio dei dati "soggetto", puoi analizzarlo statisticamente. Una buona crittografia, su un set di dati abbastanza grande, dovrebbe mostrare un'alta entropia e distribuzione. In particolare, ogni valore possibile per i byte (ad esempio, nell'intervallo da 00h a FFh) dovrebbe mostrare circa lo 0,39216% del tempo. HxDen ti permetterà di incollare i valori esadecimali in e salvarli come file binario e fornirti un conteggio statistico generale. Le utilità di DieHard ti consentiranno di valutare la distribuzione, compresa la distribuzione delle ripetizioni e altre qualità di casualità. (Nessuna delle tue dimensioni campione collegate nella tua domanda è abbastanza grande da fare una buona analisi).

Se il flusso di dati incorpora blocchi di dati (crittografati o meno) che sono cosparsi di HMAC o altri blocchi di verifica / autenticazione, questo non verrà mantenuto anche se i dati sono crittografati.

I dati compressi nella maggior parte dei casi mostreranno una distribuzione dei byte leggermente più varia, spesso con l'aspetto di una forma a dente di sega se la mia memoria serve.

È piuttosto difficile fornire un aiuto migliore in assenza di ulteriori dettagli.

    
risposta data 10.02.2015 - 02:29
fonte

Leggi altre domande sui tag