Wstęp

Wstęp

OpenSSL to potężny zestaw narzędzi do kryptografii. Wielu z nas użyło już OpenSSL do tworzenia klawiszy prywatnych RSA lub CSR (żądanie podpisywania certyfikatu). Czy jednak wiesz, że możesz użyć OpenSSL, aby porównać prędkość komputera lub że możesz również szyfrować pliki lub wiadomości? W tym artykule zapewni Ci proste wskazówki dotyczące szyfrowania wiadomości i plików za pomocą OpenSSL.

Zaszyfrowane i odszyfrowania wiadomości

Najpierw możemy zacząć od szyfrowania prostych wiadomości. Poniższe polecenie Linux zaszyfrowuje wiadomość „Witamy w LinuxCareer.com ”za pomocą kodowania Base64:

$ echo "Witamy w Linuxcareer.com "| OpenSsl enc -base64
V2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K

Dane wyjściowe powyższego polecenia jest zaszyfrowany ciąg zawierający zakodowany komunikat „Witamy w Linuxcareer.com ”. Aby odszyfrować kodowany ciąg z powrotem do jego oryginalnej wiadomości, musimy odwrócić zamówienie i dołączyć opcję odszyfrowania:

$ echo "v2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K" | OpenSsl enc -base64 -d
Witamy w Linuxcareer.com

Powyższe szyfrowanie jest proste w użyciu, jednak brakuje mu ważnej funkcji hasła, którego należy użyć do szyfrowania. Na przykład spróbuj odszyfrować następujący ciąg za pomocą hasła ”przechodzić„:

U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRDUC0CBSLPZQXQ2DB7IPD7KEXJ

Aby to zrobić, użyj ponownie OpenSSL z opcją -D i metodą kodowania AES-256-CBC:

echo "u2fsdgvkx181xscmhkpia6j0qd76n/nsjjtc9nrduc0cbslpzqxq2db7ipd7kexj" | OpenSsl enc -aes -256 -cbc -d -a

Jak prawdopodobnie już się domyślacie, aby utworzyć zaszyfrowaną wiadomość z hasłem jako powyższym, możesz użyć następującego polecenia Linux:

 $ echo „openssl” | OpenSsl enc -AE-256-CBC -a Wprowadź hasło do szyfrowania AES-256-CBC:
Weryfikacja-Wprowadź hasło do szyfrowania AES-256-CBC:
U2FSDGVKX185E3H2ME2D+QMCFKESXDTN8NCN/4SBLR8 =


Jeśli chcesz przechowywać wyjście OpenSSL do pliku zamiast stdout, po prostu użyj przekierowania stdout „>”. Podczas przechowywania zaszyfrowanych wyjściowych do pliku możesz również pominąć -A Opcja, ponieważ nie potrzebujesz już wyjścia, aby być tekstem ASCII:

$ echo „openssl” | OpenSsl enc -AE-256-CBC> OpenSSL.Dat
Wprowadź hasło do szyfrowania AES-256-CBC:
Weryfikacja-Wprowadź hasło do szyfrowania AES-256-CBC:
$ plik openssl.Dat
Openssl.DAT: dane

Odszyfrować OpenSSL.Plik DAT z powrotem do oryginalnej wiadomości Użyj:

$ openssl enc -aes -256 -cbc -d -in openssl.Dat
Wprowadź hasło do deszyfrowania AES-256-CBC:
Openssl

Szyfruj i odszyfrowaj plik

Szyfrowanie plików za pomocą OpenSSL jest tak proste, jak szyfrowanie wiadomości. Jedyną różnicą jest to, że zamiast Echo polecenie używamy -W opcja z rzeczywistym plikiem, który chcielibyśmy szyfrować i -na zewnątrz Opcja, która poinstruuje OpenSSL do przechowywania zaszyfrowanego pliku pod daną nazwą:

OSTRZEŻENIE: Upewnij się, że zaszyfrowany plik wyjściowy otrzymuje inną nazwę pliku niż oryginalny zwykły plik wejściowy. Zaleca się również wykonanie niewielu testów szyfrowania/odszyfrowania na manekinach przed szyfrowaniem ważnej treści.

$ openSsl enc -aes -256 -cbc -in /etc /usługi -usługi.Dat

Aby odszyfrować nasze usługi, użycie pliku:

$ openSsl enc -aes -256 -cbc -d -in.DAT> Usługi.tekst
Wprowadź hasło do deszyfrowania AES-256-CBC:

Zaszyfruj i deszyfrowanie katalogu

W przypadku użycia OpenSSL do zaszyfrowania całego katalogu, FIRS, T nie musisz utworzyć gniball, a następnie zaszyfrować Tarball powyższą metodą lub możesz zrobić oba jednocześnie za pomocą rur:

# TAR CZ /itp. | OpenSsl enc -AE -256 -CBC -Out itp.smoła.GZ.Dat
TAR: Usuwanie wiodących „/” z nazw członków
Wprowadź hasło do szyfrowania AES-256-CBC:
Weryfikacja-Wprowadź hasło do szyfrowania AES-256-CBC:

Aby odszyfrować i wyodrębnić cały katalog ETC/ do obecnego katalogu roboczego:

# OpenSsl enc -aes -256 -cbc -d -in itp.smoła.GZ.DAT | Tar xz
Wprowadź hasło do deszyfrowania AES-256-CBC:

Powyższa metoda może być bardzo przydatna w przypadku automatycznych szyfrowanych kopii zapasowych.



Korzystanie z kluczy publicznych i prywatnych

W tej sekcji pokażemy, jak szyfrować i odszyfrować pliki za pomocą kluczy publicznych i prywatnych. Najpierw musimy generować klucze prywatne i publiczne. Można to po prostu zrobić:

$ openssl genrsa -out private_key.PEM 1024
Generowanie klucza prywatnego RSA, 1024 -bitowy moduł
… ++++++
… ++++++
e to 65537 (0x10001)

Z klucza prywatnego możemy następnie wygenerować klucz publiczny:

$ openssl rsa -in private_key.Pem -out public_key.PEM -OUTFORM PEM -PUBOUT
Pisanie klucza RSA

W tym momencie powinieneś mieć kluczowy, jak i publiczny klucz dostępny w obecnym katalogu roboczym.

$ ls
prywatny klucz.PEM public_key.pem

Następnie tworzymy przykładowy plik o nazwie Encrypt.TXT z dowolnym dowolnym tekstem:

$ echo "Witamy w Linuxcareer.com "> szyfruj.tekst
$ CAT Szyfrowanie.tekst
Witamy w Linuxcareer.com

Teraz jesteśmy gotowi zaszyfrować ten plik za pomocą klucza publicznego:

$ openssl rsautl -eCrrypt -inkey public_key.PEM -pubin -in szyfruj.txt -out szyfruj.Dat
$ ls
szyfrować.data szyfrowana.txt private_key.PEM public_key.pem
$ Plik szyfrowania.Dat
szyfrować.DAT: dane

Jak widać nasz nowy szyfr.Plik danych nie jest już plikami tekstowymi. Aby odszyfrować ten plik, musimy użyć klucza prywatnego:

$ openssl rsautl -decrypt -inkey private_key.PEM -in Szyfrowanie.DAT -OUT NEW_ECRYRPT.tekst
$ cat new_Encrypt.tekst
Witamy w Linuxcareer.com

Powyższa składnia jest dość intuicyjna. Jak widać, odszyfrowaliśmy szyfrowanie plików.DAT do oryginalnego formularza i zapisz go jako new_Encrypt.tekst. Możesz na przykład połączyć tę składnię z szyfrowanymi katalogami powyżej, aby utworzyć zautomatyzowany skrypt szyfrowania kopii zapasowej.

Wniosek

To, co właśnie przeczytałeś, było podstawowym wprowadzeniem do szyfrowania OpenSsl. Jeśli chodzi o OpenSSL jako zestaw narzędzi szyfrowania, dosłownie nie ma ograniczeń co do tego, co możesz zrobić. Aby zobaczyć, jak używać różnych metod kodowania, zobacz stronę Manual Openssl: Człowiek Openssl

Powiązane samouczki Linux:

  • Jak skonfigurować serwer OpenVPN na Ubuntu 20.04
  • Jak wygenerować samowystarczalny certyfikat SSL na Linux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Test testu porównawczego napędu USB na Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak porównywać wydajność dysku na Linux
  • Testowanie klientów HTTPS za pomocą OpenSSL do symulacji serwera
  • Mastering Bash Script Loops
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…