chiave master CryptoLocker

6

Sto facendo fatica a capire come è possibile decifrare i file crittografati dal ransomware TeslaCrypt usando chiave principale fornita dai creatori .

Per quanto ne so, ransomware crittografa i file utilizzando un crittosistema simmetrico e quindi crittografa la chiave utilizzando uno schema di crittografia asimmetrico. Come si decodifica i file interessati avendo la chiave master?

    
posta Vlad Calin 29.07.2016 - 12:35
fonte

1 risposta

6

A un livello molto astratto: il malware sul computer di ogni vittima, oltre alle chiavi AES crittografate utilizzate per crittografare i file, memorizza una copia crittografata della chiave privata richiesta per decrittografarli. Questa copia è crittografata con la chiave pubblica dell'aggressore e può essere decifrata con la chiave privata dell'attaccante (chiamata "chiave principale" nell'articolo).

Proverò a riformulare l'articolo di Kaspersky TeslaCrypt 2.0 mascherato da CryptoWall in un modo più dettagliato.

Per semplicità, salterò il fatto che ogni file può essere codificato con una chiave AES diversa. Anche l'implementazione effettiva potrebbe essere diversa (in particolare più dati possono essere inviati all'attaccante e alcuni passaggi vengono eseguiti dal lato dell'attaccante). In ogni caso la risposta mira a spiegare come funziona lo schema di password principale:

Alla prima vittima ha solo attacker-public-key (incorporato nel malware).
L'attaccante ha attacker-private-key .

    Il malware
  1. crea un nuovo indirizzo BTC con victim1-BTC-public-key (per inviare BTC) e un BTC-private-key (per ritirare BTC)
  2. il malware utilizza attacker-public-key e e victim1-BTC-private-key come input per ECDH che genera encryption-key-1
  3. malware XORs victim1-BTC-private-key con encryption-key-1 , memorizza il risultato come encrypted-victim1-BTC-private-key , dimentica encryption-key-1
  4. Il malware
  5. invia il victim1-BTC-private-key all'autore dell'attacco e lo elimina

Vittima proprietaria: attacker-public-key , victim1-BTC-public-key , encrypted-victim1-BTC-private-key .
L'attaccante possiede: attacker-private-key , victim1-BTC-private-key .

Il malware successivo inizia a crittografare i file:

    Il malware
  1. genera una coppia di chiavi e utilizza la chiave privata come chiave di crittografia AES, quindi la coppia è composta da victim1-AES-key ( victim1-keypair-private-key ) e victim1-keypair-public-key
  2. il malware utilizza victim1-BTC-public-key e victim1-AES-key come input per ECDH che genera encryption-key-2
  3. malware XORs AES-key con encryption-key-2 , memorizza il risultato come chiave crittografata AES, dimentica la chiave di crittografia-2

Vittima proprietaria: attacker-public-key , victim1-BTC-public-key , encrypted-victim1-BTC-private-key , victim1-keypair-public-key , encrypted-victim1-AES-key .
L'attaccante possiede: attacker-private-key , BTC-victim1-private-key .

Ora la vittima ha pagato il riscatto e l'utente malintenzionato rilascia una chiave per decrittografare i file:

  1. l'attaccante rivela BTC-victim1-private-key
  2. malware utilizza BTC-victim1-private-key e victim1-keypair-public-key come input per ECDH che calcola encryption-key-2 (come sopra)
  3. malware XOR% encrypted-victim1-AES-key con encryption-key-2 che dà victim1-AES-key
  4. il malware decrittografa il file con victim1-AES-key

Nessun'altra vittima può fare nulla usando BTC-victim1-private-key .

L'attaccante decide di rilasciare la chiave principale:

  1. attacker rivela attacker-private-key
  2. malware usa attacker-private-key e victim1-BTC-public-key come input per ECDH che genera un encryption-key-1 (come sopra)
  3. malware XOR% encrypted-victim1-BTC-private-key con encryption-key-1 , memorizza il risultato come victim1-BTC-private-key
  4. malware utilizza BTC-victim1-private-key e victim1-keypair-public-key come input per ECDH che calcola encryption-key-2
  5. malware XOR% encrypted-victim1-AES-key con encryption-key-2 che dà victim1-AES-key
  6. il malware decrittografa il file con victim1-AES-key

In quest'ultimo scenario, qualsiasi vittima può utilizzare prima attacker-private-key per ricavare il victim*-BTC-private-key e victim*-AES-key .

    
risposta data 30.07.2016 - 17:53
fonte

Leggi altre domande sui tag