Domanda:
Scopri se vengono utilizzate chiavi aggiuntive durante la crittografia dei dati
0xC0000022L
2013-08-27 17:45:01 UTC
view on stackexchange narkive permalink

Supponiamo che io utilizzi un software per crittografare i dati. Come faccio a scoprire con IDA o altri strumenti RCE se è presente più di una chiave utilizzata durante la crittografia?

Sto parlando di crittografia asimmetrica qui, ed è possibile che il software in la domanda nasconde una o più chiavi principali (o ne fa uso di alcune già altrove nel sistema) e voglio scoprirlo. Come posso affrontare questo compito?

NB: puoi presumere che io abbia determinato i vari algoritmi in uso.

Due risposte:
Jason Geffner
2013-08-27 20:12:14 UTC
view on stackexchange narkive permalink

Staticamente, usa IDA per trovare tutti i riferimenti incrociati ai "vari algoritmi in uso" per determinare come trovano le chiavi che usano.

Dinamicamente, usa un debugger per impostare i punti di interruzione sui "vari algoritmi in uso ", consentendo così di esaminare gli stack di chiamate e determinare come trovano le chiavi che usano.

Beh, dinamicamente probabilmente non è una buona idea, perché potrei trascurare un meccanismo in base al quale il programma si comporta in modo diverso nel debugger da quando viene eseguito normalmente (come fanno alcuni malware).
Alcuni codici potrebbero calcolare dinamicamente gli indirizzi delle funzioni dell'algoritmo, quindi IDA potrebbe perdere i riferimenti incrociati. A meno che tu non abbia il tempo di fare un'analisi statica completa dell'intero programma, di solito è meglio fare la tua analisi sia staticamente che dinamicamente per cercare di coprire le tue basi.
perror
2013-08-27 20:13:48 UTC
view on stackexchange narkive permalink

Supponendo che tu stia parlando di crittografia avanzata, la maggior parte degli algoritmi dovrebbero essere indistinguibili anche se hai fornito la chiave o il testo in chiaro. Quindi, non dovrebbe essere possibile sapere che una determinata chiave viene utilizzata solo guardando il risultato.

Un esempio di questo è il campo della Kleptografia dove:

[...] gli output del criptosistema infetto sono computazionalmente indistinguibili da gli output del corrispondente crittosistema non infetto. Quindi, nelle implementazioni a scatola nera (ad esempio, smartcard) è probabile che l'attacco passi del tutto inosservato.

Come avrai notato, la Kleptografia è sicura solo su implementazioni a scatola nera, quindi c'è davvero spazio per il rilevamento negli attacchi white box.

Ma non ho abbastanza esperienza in questo argomento per darti consigli generali al riguardo. Tranne il fatto che dovresti iniziare a guardare all'implementazione nel mondo reale delle backdoor crittografiche prima di provare a rilevarle. Potresti esplorare alcuni di questi link:

E così via ...

Mi rendo conto del problema dei testi cifrati, ma sto parlando di scoprire nel programma se lo crittografa su qualcosa di più della chiave che gli sto dando;)
Se ho capito bene (dimmi se sbaglio), vuoi controllare che non ci sia un processo di backdooring all'interno del programma in modo da creare una chiave principale per accedere al testo in chiaro oltre alla tua chiave privata.
è corretto.
Ma sono sicuro che potresti ottenere una risposta migliore nel sito Web Crypto Stack-Exchange! Prova solo a usare il vocabolario corretto e proveranno a rispondere. :)


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...