Come faccio a crittografare rapidamente un file con AES?

69

Voglio crittografare un file usando AES-256. Come posso farlo in modo rapido e semplice e come posso - o qualcun altro - decodificarlo di nuovo?

    
posta Stefano Palazzo 09.09.2011 - 17:46

5 risposte

77

Sfortunatamente, non esiste una soluzione facile per proteggere i tuoi contenuti. Pensa al tuo caso d'uso, forse qualcosa di diverso dal semplice AES è più adatto.

Se desideri una crittografia indipendente dalla piattaforma molto semplice, puoi utilizzare openssl .

Nota: puoi usarlo per nascondere birthday-gift-ideas.txt dal tuo compagno di stanza, ma non aspettarti che sia sicuro contro un determinato aggressore!

  1. Come è stato sottolineato nei commenti, questo metodo utilizza una funzione di derivazione della chiave ingenua, quindi la tua password deve essere superlativamente buona per poter avere una possibilità di sicurezza.
  2. Inoltre, questo metodo non autentica il testo cifrato, il che significa che un utente malintenzionato può modificare o corrompere il contenuto senza che tu te ne accorga.
  3. Per molti tipi di sicurezza, la crittografia non è sufficiente (ad esempio non puoi usare la crittografia per comunicare in modo sicuro)

Se vuoi ancora usare openssl:

  • Crittografia:

    openssl aes-256-cbc -in attack-plan.txt -out message.enc

  • Decodifica:

    openssl aes-256-cbc -d -in message.enc -out plain-text.txt

Puoi ottenere openssl a base64 -encode del messaggio utilizzando l'opzione -a sia per la crittografia che per la decrittografia. In questo modo, è possibile incollare il testo cifrato in un messaggio di posta elettronica, ad esempio. Sembrerà così:

stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=

Nota che hai una scelta di cifrari e modalità di funzionamento. Per l'uso normale, raccomando aes 256 in modalità CBC. Queste sono le modalità di cifratura disponibili (solo conteggio AES):

aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb

Vedi anche:

Nota:

OpenSSL ti chiederà una password. Questa non è una chiave di crittografia, non è limitata a 32 byte! Se hai intenzione di trasferire file con qualcun altro, il tuo segreto condiviso dovrebbe essere molto forte. Puoi utilizzare questo sito per avere un'idea di quanto sia buona la tua password:

  • link (questo non tiene conto di eventuali attacchi di dizionario!)
  • link (questo almeno controlla le password comuni)

Avviso: ho controllato che questi siti non inviino la password al server, ma possono cambiare in qualsiasi momento. Utilizza questi siti con strumenti di sviluppo / ispettore e verifica se inviano qualcosa prima di digitare la tua password complessa.

    
risposta data Stefano Palazzo 09.09.2011 - 17:49
17

Mi piace usare il comando gpg :

Encrypt:

gpg --cipher-algo AES256 --symmetric filename.tar.gz

Stenografia:

gpg --cipher-algo AES256 -c filename.tar.gz

Questo richiederà una passphrase.

Decrypt:

gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg

Stenografia:

gpg -o filename.tar.gz -d filename.tar.gz.gpg

Puoi anche aggiungere cipher-algo AES256 a ~/.gnupg/gpg.conf per rendere AES256 l'impostazione predefinita. (Secondo la pagina di manuale è CAST5 )

    
risposta data scrrr 18.04.2014 - 13:44
14

7z (quando viene utilizzata l'opzione password ) utilizza una crittografia AES a 256 bit (con SHA256 allungamento della chiave ).

Installalo ( p7zip-full ), fai clic con il tasto destro su un file o su una directory che vuoi crittografare e scegli Comprimi , .7z e Altre opzioni / Password .

Per la decrittografia, fai clic con il pulsante destro del mouse sul file .7z e seleziona Estrai qui .

    
risposta data arrange 09.09.2011 - 18:30
3

aescrypt

Il sito Web collegato contiene uno strumento di crittografia / decrittografia aes a 256 bit open source ed è multipiattaforma: MacOs, Windows, Linux e altri attraverso Java.

Encrypt: aescrypt -e <file>

Decrypt: aescrypt -d <file>

Puoi eseguire il backup e crittografare la tua cartella Inizio usando la sintassi:

tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes

installazione di ubuntu

Scarica ed estrai la fonte

make
sudo make install

altre piattaforme

Scarica i binari o il codice sorgente dal sito web.

    
risposta data fossfreedom 10.09.2011 - 22:21
2

Molti dei suggerimenti che avrei fatto sono già stati presentati in questo thread. Fondamentalmente, openssl è davvero il modo più semplice per eseguire la crittografia di un file o di uno script. Tuttavia, vorrei evitare di utilizzare AES-256 solo perché non è disponibile in tutte le versioni di openssl sulle piattaforme alcune . La maggior parte dei sistemi operativi più recenti ... vale a dire. Linux ce l'ha. Ma altri come AIX 5.3 non lo fanno (penso anche a HP-UX). Se intendi utilizzare il tuo file o lo script su piattaforme diverse, ti consiglio vivamente di utilizzare AES-128 perché è disponibile ovunque.

In che modo puoi "rapidamente e facilmente" crittografare un file utilizzando AES-128?

Un sito come www.ShellScrypt.com utilizza openssl AES-128 abbastanza intensamente per crittografare script di shell e quindi rende le copie crittografate degli script eseguibili. Tutto quello che devi fare è incollare lo script sul sito e un file zip verrà generato per te. Il file zip conterrà la versione crittografata (e eseguibile se si tratta di uno script) del tuo file. Ciò ti consente di " facilmente " e " convenientemente " crittografare un file / script senza dover soddisfare alcun requisito di pacchetto o modulo su tutti i sistemi su cui intendi utilizzare lo script o eseguire diversi incantesimi complessi e confusi dei comandi di openssl.

Di seguito viene mostrato un comando di base codifica / decrittografia openssl che utilizza AES-128:

[email protected]:~$ 
[email protected]:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
[email protected]:~$
[email protected]:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
[email protected]:~$ 
[email protected]:~$
    
risposta data SimplifiedWorkings 31.05.2016 - 07:17

Leggi altre domande sui tag