Come gestire il problema dei file crittografati modificati [chiuso]

0

Ho una semplice applicazione di crittografia / decrittografia che sto testando per saperne di più sulla sicurezza. Ho scoperto che se l'utente modifica il file crittografato, la decifrazione fallisce perché l'algoritmo di hash non genera di nuovo il contenuto originale. Quali sono le pratiche comuni che trattano il problema dei file crittografati modificati dagli utenti intenzionalmente o involontariamente? L'unica cosa che mi viene in mente è il controllo del timestamp, ma non sono sicuro di quanto sia utile.

Riguardo la mia ultima affermazione, credo di non essere sicuro che ci sia un modo per ingannare il sistema operativo in modo che il nuovo timestamp sia impostato sul vecchio time stamp esatto anche se il contenuto è stato modificato.

    
posta user13817 21.05.2011 - 07:25
fonte

5 risposte

6

Bene, qualsiasi file alterato dopo la crittografia sta per generare risultati divertenti. L'unico modo per sapere se rilevare tali cambiamenti sarebbe quello di memorizzare un hash del file crittografato quando si esegue la crittografia e quindi confrontare tale hash con l'hash del file crittografato prima della decrittografia. Se ci sono delle modifiche, gli hash non corrisponderanno e saprai che il file crittografato non restituirà i risultati originali.

Non fare affidamento sui timbri di file, però; i timestamp e altri metadati possono cambiare semplicemente spostando un file (sia dall'utente che da altri processi). (Inoltre, timestamp e metadati possono sempre essere cambiati, quindi ingannare il controllo.)

    
risposta data 21.05.2011 - 10:39
fonte
6

Firmare crittograficamente il contenuto del file, ad esempio utilizzando MD5 .

The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit (16-byte) hash value. Specified in RFC 1321, MD5 has been utilized in a wide variety of security applications, and is also commonly used to check data integrity... An MD5 hash is typically expressed as a hexadecimal number, 32 digits long...

    
risposta data 21.05.2011 - 07:33
fonte
4
  • Rimuovi ridondanza applicando la compressione sulla crittografia prima in chiaro
  • Encrypt
  • Aggiungi blocchi di correzione degli errori al flusso di dati crittografato.

Queste tre cose devono essere fatte in questo ordine. Non possono essere scambiati.

    
risposta data 21.05.2011 - 11:35
fonte
1

Consiglio vivamente di ottenere il libro "Crittografia applicata: protocolli, algoritmi e codice sorgente in C" di Bruce Schneier .

Questo è un grosso libro (e costoso) che copre tutto, dai semplici concetti introduttivi fino al complesso e brutto.

Anche se leggi solo le prime 100 pagine, apprezzerai molto meglio i problemi che colpirai.

Come regola approssimativa: se pensi di conoscere la crittografia, verifica con un esperto:)

    
risposta data 21.05.2011 - 10:49
fonte
0

... if the user modifies the encrypted file, then decryption fails ... What are the common practices that deal with the problem of encrypted files modified by users

Colpisci l'utente.

In senso figurato? Fisicamente? Dipende da [quanto bene tu conosci] l'utente. E quanto spesso ti causano questo problema.

Puoi fare esattamente lo stesso genere di cose con gli eseguibili che non sono installati nelle directory "protette"; aprili, diciamo, sul Blocco note, salvali di nuovo e, sorpresa sorpresa, non funzionano più.

Forse la domanda dovrebbe essere - perché gli utenti sono anche consapevoli questo file esiste? Non è che possano fare qualcosa [utile] con esso. Se lo salvi in "I miei documenti", lo faranno dappertutto. Rilascialo in "% USERPROFILE% \ AppData \ Roaming \ CompanyName \ NomeApp \" e non potranno mai andare a meno di un miglio.

    
risposta data 19.06.2015 - 14:36
fonte

Leggi altre domande sui tag