OpenSSL gebruiken om berichten en bestanden op Linux te versleutelen

  • Cornelius Paul
  • 0
  • 3055
  • 2
>

Invoering

OpenSSL is een krachtige toolkit voor cryptografie. Velen van ons hebben OpenSSL al gebruikt voor het maken van RSA Private Keys of CSR (Certificate Signing Request). Wist u echter dat u OpenSSL kunt gebruiken om uw computersnelheid te benchmarken of dat u ook bestanden of berichten kunt versleutelen? In dit artikel vindt u enkele eenvoudig te volgen tips voor het versleutelen van berichten en bestanden met OpenSSL.

Versleutel en ontcijfer berichten

Allereerst kunnen we beginnen met het versleutelen van eenvoudige berichten. Het volgende linux-commando zal een bericht "Welkom bij LinuxCareer.com" versleutelen met Base64-codering:

$ echo "Welkom bij LinuxCareer.com" | openssl enc -base64
V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K

De uitvoer van het bovenstaande commando is een gecodeerde tekenreeks met het gecodeerde bericht "Welkom bij LinuxCareer.com". Om de gecodeerde tekenreeks terug te decoderen naar het oorspronkelijke bericht, moeten we de volgorde omkeren en de optie -d toevoegen voor decodering:

$ echo "V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K" | openssl enc -base64 -d
Welkom bij LinuxCareer.com

De bovenstaande codering is eenvoudig te gebruiken, maar er ontbreekt een belangrijk kenmerk van een wachtwoord dat voor codering moet worden gebruikt. Probeer bijvoorbeeld de volgende tekenreeks te decoderen met een wachtwoord "voorbij gaan aan":

U2FsdGVkX181xscMhkpIA6J0qd76N / nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj

Gebruik hiervoor OpenSSL opnieuw met de optie -d en coderingsmethode aes-256-cbc:

echo "U2FsdGVkX181xscMhkpIA6J0qd76N / nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj" | openssl enc -aes-256-cbc -d -a

Zoals je waarschijnlijk al geraden hebt, kun je het volgende linux-commando gebruiken om een ​​versleuteld bericht te maken met een wachtwoord zoals hierboven:

 $ echo "OpenSSL" | openssl enc -aes-256-cbc -a voer aes-256-cbc coderingswachtwoord in:
Verifiëren - voer het aes-256-cbc-coderingswachtwoord in:
U2FsdGVkX185E3H2me2D + qmCfkEsXDTn8nCn / 4sblr8 =

Als u de uitvoer van OpenSSL in een bestand wilt opslaan in plaats van STDOUT, gebruikt u gewoon STDOUT-omleiding ">". Bij het opslaan van versleutelde uitvoer naar een bestand kunt u ook weglaten -een optie aangezien u de uitvoer niet langer op ASCII-tekst gebaseerd hoeft te zijn:

$ echo "OpenSSL" | openssl enc -aes-256-cbc> openssl.dat
voer aes-256-cbc coderingswachtwoord in:
Verifiëren - voer het aes-256-cbc-coderingswachtwoord in:
$ bestand openssl.dat
openssl.dat: gegevens

Gebruik om het bestand openssl.dat terug te decoderen naar het oorspronkelijke bericht:

$ openssl enc -aes-256-cbc -d -in openssl.dat
voer aes-256-cbc decoderingswachtwoord in:
OpenSSL

Versleutel en decodeer bestand

Bestanden versleutelen met OpenSSL is net zo eenvoudig als het versleutelen van berichten. Het enige verschil is dat in plaats van de echo commando gebruiken we de -in optie met het daadwerkelijke bestand dat we willen versleutelen en -uit optie, die OpenSSL instrueert om het gecodeerde bestand onder een bepaalde naam op te slaan:

Waarschuwing: Zorg ervoor dat het gecodeerde uitvoerbestand een andere bestandsnaam krijgt dan het originele gewone invoerbestand. Het wordt ook aanbevolen om enkele testruns voor versleutelen / ontsleutelen van dummy-gegevens uit te voeren voordat u belangrijke inhoud versleutelt.
$ openssl enc -aes-256-cbc -in / etc / services -out services.dat

Gebruik het volgende om ons servicebestand te decoderen:

$ openssl enc -aes-256-cbc -d -in services.dat> services.txt
voer aes-256-cbc decoderingswachtwoord in:

Versleutel en decodeer Directory

In het geval dat je OpenSSL moest gebruiken om een ​​hele map te versleutelen, zou je, firs, t niet nodig hebben om een ​​gzip-tarball te maken en vervolgens de tarball te versleutelen met de bovenstaande methode of je kunt beide tegelijkertijd doen door pipe te gebruiken:

# tar cz / enz | openssl enc -aes-256-cbc -out etc.tar.gz.dat
tar: Voorlopende '/' verwijderen uit ledennamen
voer aes-256-cbc coderingswachtwoord in:
Verifiëren - voer het aes-256-cbc-coderingswachtwoord in:

Gebruik om de volledige map etc / te decoderen en uit te pakken naar uw huidige werkmap:

# openssl enc -aes-256-cbc -d -in etc.tar.gz.dat | tar xz
voer aes-256-cbc decoderingswachtwoord in:

De bovenstaande methode kan erg handig zijn voor geautomatiseerde gecodeerde back-ups.



Openbare en privésleutels gebruiken

In deze sectie laten we zien hoe u bestanden versleutelt en ontsleutelt met openbare en privésleutels. Eerst moeten we privé- en openbare sleutels genereren. Dit kan eenvoudig worden gedaan door:

$ openssl genrsa -out private_key.pem 1024
RSA-privésleutel genereren, 1024 bit lange modulus
... ++++++
... ++++++
e is 65537 (0x10001)

Vanuit de privésleutel kunnen we vervolgens een openbare sleutel genereren:

$ openssl rsa -in private_key.pem -out public_key.pem -outform PEM -pubout
RSA-sleutel schrijven

Op dit punt zou je zowel de private als de publieke sleutel in je huidige werkdirectory moeten hebben.

$ ls
private_key.pem public_key.pem

Vervolgens maken we een voorbeeldbestand genaamd encrypt.txt met willekeurige tekst:

$ echo "Welkom bij LinuxCareer.com"> encrypt.txt
$ cat encrypt.txt
Welkom bij LinuxCareer.com

Nu zijn we klaar om dit bestand te versleutelen met een openbare sleutel:

$ openssl rsautl -encrypt -inkey public_key.pem -pubin -in encrypt.txt -out encrypt.dat
$ ls
encrypt.dat encrypt.txt private_key.pem public_key.pem
$ bestand encrypt.dat
encrypt.dat: gegevens

Zoals u kunt zien, is ons nieuwe bestand encrypt.dat geen tekstbestanden meer. Om dit bestand te decoderen, hebben we een privésleutel nodig:

$ openssl rsautl -decrypt -inkey private_key.pem -in encrypt.dat -out new_encrypt.txt
$ cat nieuwe_encrypt.txt
Welkom bij LinuxCareer.com

De bovenstaande syntaxis is vrij intuïtief. Zoals je kunt zien, hebben we een bestand encrypt.dat gedecodeerd naar zijn oorspronkelijke vorm en opgeslagen als new_encrypt.txt. U kunt deze syntaxis bijvoorbeeld combineren met het bovenstaande voorbeeld van het coderen van mappen om een ​​geautomatiseerd gecodeerd back-upscript te maken.

Gevolgtrekking

Wat u zojuist hebt gelezen, was een basisinleiding tot OpenSSL-codering. Als het gaat om OpenSSL als een coderingstoolkit, heeft het letterlijk geen limiet op wat u kunt doen. Zie OpenSSL manual page om te zien hoe u verschillende coderingsmethoden kunt gebruiken: man openssl




Niemand heeft nog op dit artikel gereageerd.

Een verzameling nuttige informatie over het Linux-besturingssysteem en nieuwe technologieën
Nieuwe artikelen, praktische tips, gedetailleerde recensies en handleidingen. Voel je thuis in de wereld van het Linux-besturingssysteem