Che cosa è esattamente pericoloso nell'uso di openssl AES con una password? [duplicare]

-1

Una risposta sulla crittografia AES inizia con una dichiarazione di non responsabilità:

Please note: You can use this to hide birthday-gift-ideas.txt from your roommate, but don't expect it to be secure against a determined attacker!

Che cosa rende pericolosa usare per impedire a persone non autorizzate di leggere il file?

Suppongo che questo commento la risposta è pertinente, ma non sono sicuro di avere le competenze richieste per capirlo, né so che altro dovrei fare per rendere sicura la crittografia:

-1 For recommending low-level OpenSSL use. It does not provide any HMAC functionality and as @Lekensteyn points out, it lacks proper KDF.

In altre parole:

  • Se ho una password complessa generata eseguendo cat /dev/urandom | tr -dc a-fA-Z0-9 | head -c 45 ,

  • E si presume che la password sia protetta,

come faccio a crittografare un file pur essendo sicuro che un determinato utente malintenzionato non sarà in grado di decrittografarlo?

Ecco un esempio concreto. Sto facendo backup off-site su un server cloud. Prima di essere caricati, i file di backup vengono crittografati localmente utilizzando una password generata da /dev/urandom e la password non viene mai memorizzata sul server cloud. openssl aes-256-cbc -in ... -out ... -pass file:1.key è inappropriato per impedire a qualcuno della società che ospita il cloud server di dare un'occhiata ai contenuti del backup?

    
posta Arseni Mourzenko 20.09.2018 - 13:28
fonte

1 risposta

1

Uno dei problemi con l'utilizzo di CBC OpenSSL AES-256 è che non rileva se il testo cifrato è stato alterato. Quindi se si cripta un file e lo si inserisce nel server cloud, il provider di hosting non può leggere il file originale, ma può comunque alterare il testo cifrato. Questo può essere fatto in modo prevedibile in modo che quando recuperi il file crittografato e lo decifri, contenga qualcos'altro.

La proprietà di cui ci si può fidare che i contenuti siano uguali si chiama integrità del messaggio. L'utilizzo di un HMAC è un modo per garantire l'integrità: si hash il messaggio crittografato prima di inviarlo al server cloud. Quando lo recuperi, controlli di nuovo questo hash e verifica se il testo cifrato è stato modificato.

Inoltre, gli schemi di crittografia sono fatti per funzionare con le chiavi e non con le password. Si differenziano per il fatto che le chiavi sono una stringa di 16 caratteri piuttosto casuale, mentre le password sono parole scelte dall'utente. Una funzione di derivazione chiave (KDF) può convertire una password in un tasto.

    
risposta data 20.09.2018 - 15:45
fonte

Leggi altre domande sui tag