Cosa deve impedire a qualcuno di eseguire semplicemente il checksum con MITMing?

9

Molti siti offrono somme MD5 o SHA per verificare la validità del download, ma perché alcune cose si basano quasi interamente su questo?

Esiste qualcosa per impedire alle persone di sostituire semplicemente il checksum con il checksum del codice binario dannoso?

    
posta Jaydn Cunningham 28.02.2015 - 09:49
fonte

4 risposte

7

Il tuo problema è un problema comune in sicurezza noto come autenticazione.

Checksum risolve il problema dell'integrità, sai che ciò che hai appena scaricato è corretto, ma non sai da chi proviene.

Se qualcuno sta operando un attacco MitM, ovviamente cercheranno di sostituire il checksum di qualsiasi download richiesto con il checksum del file binario che vogliono invece avere.

Se vuoi valutare l'autenticità (prova che il file binario è stato rilasciato da qualcuno di cui ti fidi), allora devi usare il metodo di autenticazione come la firma digitale.

Il processo tipico va in questo modo:

  • il proprietario originale emette una chiave pubblica che condividerà per lo scopo di autenticazione (vedi cryptosystems asimmetrici)
  • il proprietario originale calcola l'hash del documento che desidera firmare
  • proprietario firma l'hash con la sua chiave privata, in modo che chiunque possa verificarlo
  • Il client
  • ottiene il documento
  • Il client
  • ottiene la chiave pubblica del proprietario originale e lo convalida tramite la catena di protocolli di trust (consultare la documentazione ad hoc)
  • Il client
  • verifica che la firma dell'hash sia corretta
  • Il client
  • verifica che il checksum del programma sia lo stesso

Se segui questo processo, non puoi essere soggetto all'attacco MitM. Il punto chiave del protocollo qui è ovviamente la verifica della chiave pubblica. Se non si riesce a valutare che la chiave pubblica appartiene al proprietario, si può essere ingannati.

    
risposta data 28.02.2015 - 10:04
fonte
5

Nel caso più semplice e insicuro, sia il file che il checksum sono serviti tramite un protocollo in chiaro come HTTP o FTP. In questo caso, no, non c'è nulla che impedisca la modifica Man-in-the-Middle sia del file che del checksum.

La prima domanda, tuttavia, è stata: "Perché alcuni processi si basano sui checksum pubblicati?" La risposta è che, se correttamente autenticato, i checksum forniscono protezione dell'integrità. Vale a dire, se posso garantire l'integrità e l'autenticità del checksum, posso verificare l'integrità del file scaricato.

Questo può sembrare ridondante, dal momento che se ho qualche metodo per verificare l'autenticità e l'integrità di un checksum, perché lo stesso metodo non protegge il file stesso? La risposta è che il checksum non è principalmente inteso a contrastare la manomissione dannosa , ma è inteso a scoprire il danneggiamento dei dati. Se si dispone di una connessione di rete o un'unità disco o un modulo RAM che introduce errori ad una velocità di 1 bit ogni 10 MB, allora le probabilità sono molto buone che si avrà un errore in un download da 50 MB. Ma le probabilità sono piuttosto basse che il checksum a 20 byte avrà un piccolo errore.

Questo è tutto a posto, ma come proteggere da manomissioni dannose? Ecco alcune soluzioni:

  1. Fornisci il checksum su un canale autenticato e protetto dall'integrità. La soluzione più comune qui è HTTPS, in cui TLS fornisce autenticazione, integrità e crittografia. Il fornitore di dati può (e dovrebbe) raddoppiare e fornire il file anche su questo canale.

  2. Fornisci una firma crittografica del file. Invece di fornire solo la protezione dell'integrità, questo metodo fornisce anche l'autenticità, ma richiede un po 'più di lavoro da parte del downloader, che deve avere o ottenere in modo sicuro la chiave pubblica del provider per verificare la firma. Lo stesso principio di base viene utilizzato per fornire la protezione dell'integrità all'interno di TLS, ma una firma separata per il file si basa su un canale di distribuzione delle chiavi diverso che può essere o non essere più difficile da corrompere per l'autore dell'attacco.

Questi metodi possono e devono essere combinati, poiché ci saranno alcuni utenti che diffidano delle protezioni di TLS, e altri che non possono essere disturbati a verificare una firma crittografica, ma per vari motivi possono solo supportare il checksum di base.

Naturalmente tutto ciò pone la domanda se il file può essere corrotto in modo tale che il checksum sia ancora valido. Questo è chiamato un attacco preimage , e MD5 ha dimostrato di essere teoricamente vulnerabile. Dovresti sempre usare la funzione di hash più sicura disponibile: SHA-2 e SHA-3 sono buone scelte; MD5 e SHA-1 sono più rischiosi.

    
risposta data 28.02.2015 - 14:12
fonte
1

I file possono essere scaricati e passati in giro. Ad un certo punto, possono essere modificati maliziosamente.

Pubblicando il checksum su un sito, fornisce un secondo vettore di verifica. Affinché un cattivo attore abbia successo, dovrà anche essere in grado di hackerare il sito Web del venditore e modificare l'hash (checksum).

    
risposta data 28.02.2015 - 09:59
fonte
1

No.

I checksum sono lì solo per verificare il download, al fine di prevenire errori di trasferimento.

Ovviamente, un uomo nel mezzo potrebbe presentare una directory fasulla, con file binari infetti e elenchi di checksum ricreati corretti.

Il modo per evitare ciò è firmare i tuoi checksum con PGP o S / Mime.

Altrimenti è possibile eseguire il checksum della lista di checksum e inviare il risultato tramite un metodo protetto (posta cartacea, telefono o altro modo criptato e / o non Internet).

    
risposta data 28.02.2015 - 11:01
fonte

Leggi altre domande sui tag