Gli hash sono un metodo affidabile per garantire che un file non sia stato manomesso?

0

Supponiamo di avere un file e che voglio confermare che questo file è uguale all'originale (IE: non è stato alterato in alcun modo) usando l'hashing.

Se dovessi usare una funzione di hash che non ha collisioni note (come SHA-256 o SHA-512, secondo questo post: link ) e ho confermato che il checksum pubblicato dall'autore era legittimo, sarebbe è ragionevole presumere che il file sia autentico se ha il checksum corrispondente a quello rilasciato dall'autore? O ci sarebbe forse un modo per eludere questa protezione?

    
posta beepboop 18.11.2018 - 00:44
fonte

3 risposte

3

Sì! Questo è assolutamente un metodo valido per garantire che i file non siano stati manomessi.

Per alcuni background, la crittografia come campo fornisce una manciata di servizi utili quando applicati. I dettagli di basso livello di ciò che sono cambia a seconda di chi chiedi, ma sono tutti centrati attorno a 4 cose fondamentali:

  • Riservatezza (quindi solo le parti corrette possono visualizzare i dati)
  • Autenticazione (quindi sappiamo chi sono le parti corrette)
  • Non ripudio (quindi le parti corrette non possono dire di non averlo fatto)
  • Integrità (quindi le parti corrette ottengono i dati corretti)

A volte è inclusa anche la disponibilità (che consente di accedere ai dati ogni volta che è necessario). ( Ecco un riferimento Microsoft sui servizi di crittografia per i curiosi.)

Diversi tipi di crittografia forniscono diversi livelli di servizio. La crittografia a chiave asimmetrica fornisce tutti questi elementi: utilizzando la crittografia a chiave asimmetrica (sicura), solo le parti corrette conosciute possono ottenere i dati corretti e non possono dire di non aver creato i dati. Se non hai la chiave, non puoi ottenere i dati e non puoi fare la chiave a meno che tu non sia la persona giusta.

L'hashing è un caso interessante, in cui è estremamente prezioso come concetto e pratica, ma è molto limitato in ciò che può fare. Dei 4 servizi di crittografia, hashing fornisce solo l'integrità. Non fornisce nulla per riservatezza, autenticazione o non ripudio, ma l'hashing crittograficamente sicuro è un modo fantastico per garantire che tutto ciò che riguarda 2 contenuti sia esattamente identico. In effetti, in qualche modo è la sola cosa che l'hashing di solo può fare.

    
risposta data 19.11.2018 - 04:44
fonte
2

Sì, questo è un uso di hash. Ancora meglio se verifichi più hash diversi: una collisione in uno di essi non porterà automaticamente ad una collisione in altri.

Considder il seguente esempio:

curl https://www.mscs.dal.ca/~selinger/md5collision/erase | md5sum
curl https://www.mscs.dal.ca/~selinger/md5collision/hello | md5sum
curl https://www.mscs.dal.ca/~selinger/md5collision/erase | sha256sum
curl https://www.mscs.dal.ca/~selinger/md5collision/hello | sha256sum

Questo mostrerà md5sum identici, ma separati da sha256-sum.

Se l'algoritmo di hashing è ritenuto sicuro, puoi fare più o meno affidamento su di esso. Nota che devi anche verificare il canale su cui ottieni il numero di hash. Un utente malintenzionato in grado di sostituire il file sul server web da cui lo stai recuperando può probabilmente alterare il checksum visualizzato accanto al link di download ...

Se il download del checksum viene eseguito su testo semplice http, un utente malintenzionato può sostituire la somma di controllo in transito.

    
risposta data 18.11.2018 - 01:12
fonte
-1

risposta breve: sì, puoi usare tranquillamente una buona funzione di hash (sha256, sha512) per questo. È quasi impossibile realizzare 2 file con lo stesso hash.

risposta lunga: prima di tutto fai la tua ricerca e scegli saggiamente. sha256 sembra andare bene per ora, ma sha-1 è stato violato. Guarda le pubblicazioni. Non fidarti di un ragazzo a caso da StackOverflow. Inoltre darei un'occhiata alla firma digitale (gpg e così via), come attaccante vorrei iniziare con il tentativo di simulare l'hash in questo scenario. e solo dopo aver inviato il file sbagliato.

    
risposta data 18.11.2018 - 09:31
fonte

Leggi altre domande sui tag