Vraag Hoe codeer ik snel een bestand met AES?


Ik wil een bestand coderen met AES-256. Hoe kan ik dat snel en gemakkelijk doen, en hoe kan ik - of iemand anders - het opnieuw versleutelen?


70
2017-09-09 15:46


oorsprong




antwoorden:


Helaas is er geen eenvoudige oplossing om je spullen te beveiligen. Denk aan uw use-case, misschien is iets anders dan gewone AES beter geschikt.


Als u heel eenvoudige platformonafhankelijke codering wilt, kunt u gebruiken openssl.

Let op: je kunt dit gebruiken om birthday-gift-ideas.txt te verbergen van je kamergenoot, maar verwacht niet dat het veilig is tegen een vastberaden aanvaller!

  1. Zoals in de opmerkingen werd opgemerkt, maakt deze methode gebruik van een naieve sleutelafleidingsfunctie, dus je wachtwoord moet superlatief zijn zodat je een veilige kans hebt.
  2. Bovendien authenticeert deze methode de cijfertekst niet, wat betekent dat een aanvaller de inhoud kan wijzigen of corrumperen zonder dat u het merkt.
  3. Voor veel soorten beveiliging is codering gewoon niet genoeg (u kunt bijvoorbeeld niet alleen codering gebruiken om veilig te communiceren)

Als u nog steeds openssl wilt gebruiken:

  • encryptie:

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

  • decryptie:

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

U kunt openssl naar krijgen base64-code het bericht met behulp van de -a schakel zowel codering als decodering in. Op deze manier kunt u de cijfertekst bijvoorbeeld in een e-mailbericht plakken. Het ziet er als volgt uit:

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=

Merk op dat u een keuze hebt tussen cijfers en werkingsmodi. Voor normaal gebruik, adviseer ik aes 256 in CBC-modus. Dit zijn de coderingsmodi die u beschikbaar hebt (alleen AES tellen):

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

Zie ook:

Houd er rekening mee dat:

OpenSSL zal u om een ​​wachtwoord vragen. Dit is geen coderingssleutel, het is niet beperkt tot 32 bytes! Als je bestanden met iemand anders gaat overdragen, moet je gedeelde geheim erg sterk zijn. U kunt deze site gebruiken om een ​​idee te krijgen van hoe goed uw wachtwoord is:

Waarschuwing: ik heb gecontroleerd dat deze sites uw wachtwoord niet naar de server sturen, maar dat kan op elk moment veranderen. Gebruik deze sites met dev-tools / inspector en controleer of ze iets verzenden voordat je je sterke wachtwoord typt.


78
2017-09-09 15:49



openssl aes-256-cbc is korter dan openssl enc -aes-256-cbc en werkt ook. De handleidingpagina hiervoor is beschikbaar door te lopen man enc. Nooit gebruiken ecb voor gegevens die niet mogen worden getemperd met, altijd gebruiken cbc. -salt is overbodig omdat het standaard is. Als je weglaat -out filename de uitvoer wordt geschreven naar standaarduitvoer wat handig is als u alleen gegevens hoeft te analyseren, maar niet naar schijf wilt schrijven. Het volgende commando toont de regelcound voor de leesbare tekst: openssl aes-256-cbc -d -in filename | wc -l. (een ander gebruik, het lezen van een bestand: openssl aes-256-cbc -d -in filename | less) - Lekensteyn
Ik gebruik bijna precies dit in een script: /usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc  met het omgekeerde zoals je zou verwachten. - belacqua
Er is geen reden om AES 256 te verkiezen boven AES 128. @Lekensteyn Gebruik de ECB nooit voor vertrouwelijke gegevens - in principe mag ECB nooit worden gebruikt (alleen voor deskundigen: ECB mag nooit worden gebruikt, behalve in enkele zeer specifieke gevallen). Meer in het algemeen, de opensslcommand line tool is meestal een proof-of-concept voor het testen van de OpenSSL-bibliotheek. Het juiste antwoord op deze vraag is ook GPG of een archiver zoals 7z. - Gilles
Ik zou dat willen toevoegen openssl enc is eigenlijk niet zo veilig als je een zwak wachtwoord hebt. Ik heb eerder bepaald gebruik van aanbevolen openssl enc, maar stel nu voor om te gebruiken gpg in plaats daarvan omdat het op een betere manier een KDF gebruikt. Zien dit antwoord. - Lekensteyn
-1 Voor het aanbevelen van laag niveau OpenSSL gebruik. Het biedt geen HMAC-functionaliteit en zoals @Lekensteyn opmerkt, ontbreekt het aan de juiste KDF. - gertvdijk


Ik gebruik graag de gpg opdracht:

versleutelen:

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

shorthand:

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

Dit vraagt ​​om een ​​wachtwoordzin.

decoderen:

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

shorthand:

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

Je kunt ook toevoegen cipher-algo AES256 naar ~/.gnupg/gpg.conf om AES256 standaard te maken. (Volgens de manpage is dat zo CAST5)


18
2018-04-18 11:44



Je kan ook gebruiken AES (wat AES-128 betekent). AES-128 is iets sneller en niet minder veilig. - Gilles
1. Merk ook op dat GnuPG ook berichtauthenticatie (HMAC) voor u biedt bij het gebruik van AES (waarvan OpenSSL op het moment van schrijven niet het meest toegejuichte antwoord is). Achtergrond informatie: superuser.com/a/633716/157409 - gertvdijk


7z (wanneer de wachtwoord optie wordt gebruikt) gebruikt een 256bit AES-codering (met SHA256 uitrekken van de sleutel).

Installeer het (p7zip-full), klik met de rechtermuisknop op een bestand of map die u wilt coderen en kies Samendrukken, .7z en Andere opties /Wachtwoord.

enter image description here

Klik voor ontsleuteling met de rechtermuisknop op de .7z bestand en kies Extraheer hier.


15
2017-09-09 16:30





aescrypt

De gekoppelde website bevat een opensource-256-bits aes-coderings- / decoderingshulpprogramma en is multiplatform - MacOS, Windows, Linux en andere via Java.

versleutelen: aescrypt -e <file>

decoderen: aescrypt -d <file>

U kunt een back-up maken van uw thuismap en deze coderen met behulp van de syntaxis:

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

ubuntu installatie

Download en pak de bron uit

make
sudo make install

andere platforms

Download de binaries of broncode van de website.


3
2017-09-10 20:21





Veel van de suggesties die ik zou hebben gedaan, zijn al in deze thread naar voren gebracht. Kortom, openssl is echt de gemakkelijkste manier om een ​​bestand of script te versleutelen. Ik zou echter waarschuwen tegen het gebruik ervan AES-256 alleen omdat het niet in alle versies van openssl beschikbaar is sommige platforms. De meeste nieuwere besturingssystemen ... d.w.z. Linux heeft het. Maar andere zoals AIX 5.3 doen dat niet (ik denk ook aan HP-UX). Als u van plan bent uw bestand of script op verschillende platforms te gebruiken, raad ik u ten sterkste aan dit te gebruiken AES-128 omdat dit overal beschikbaar is.

Hoe kun je "snel en gemakkelijk" een bestand versleutelen met AES-128?

Een site zoals www.ShellScrypt.com gebruikt openssl AES-128 vrij intens om shell-scripts te coderen en maakt vervolgens de versleutelde kopieën van de scripts uitvoerbaar. Het enige dat u hoeft te doen, is het script op de site plakken en er wordt een zipbestand voor u gegenereerd. Dat zipbestand bevat de gecodeerde (en uitvoerbare als het een script is) versie van uw bestand. Hiermee kunt u "gemakkelijk"en"gunstig"codeer een bestand / script zonder te hoeven voldoen aan een pakket- of module-eis op elk systeem waarop u het script wilt gebruiken of voer verschillende complexe en verwarrende bezweringen van openssl-opdrachten uit.

Hieronder wordt een basis getoond coderen / decoderen  openssl commando dat AES-128 gebruikt:

test@test-VirtualBox:~$ 
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$ 
test@test-VirtualBox:~$

2
2018-05-31 05:17



Gewoon een opmerking achterlaten om een ​​heads-up te geven dat "shellscrypt.com" down en out is (ook: de site is weg). - e-sushi