Base64: kodowanie i dekodowanie:
Base64 służy do kodowania ciągu bajtów przy pomocy ciągu znaków. Kodowanie to przypisuje 64 wybranym znakom wartości od 0 do 63. Kodowanie to jest bardzo proste do rozszyfrowania, istnieją nawet szyfratory/deszyfratory działające online.
Przykład: Tajna wiadomość zakodowana w Base64.
Zaszyfrowana wiadomość: VGFqbmEgd2lhZG9tbyYjMzQ3OyYjMjYzOyB6YWtvZG93YW5hIHcgQmFzZTY0Lg==
openssl enc -base64 -in foto.jpg -out zaszyfrowane_foto.b64
openssl enc -d -base64 -in zaszyfrowane_foto.b64 -out rozszyfrowane_foto.jpg
Symetryczne szyfrowanie i deszyfrowanie:
Jest to taki rodzaj szyfrowania, w którym dane ulegają zaszyfrowaniu za pomocą pewnego klucza. Do rozszyfrowania danych potrzebna jest znajomość tego samego klucza.
CAST5:
Algorytm ten jest szeroko stosowany w niektórych wersjach PGP i GPG.
openssl enc -e -a -salt -cast5-cbc -in foto.jpg -out zaszyfrowane_foto.cast5
openssl enc -d -a -cast5-cbc -in zaszyfrowane_foto.cast5 -out rozszyfrowane_foto.jpg
Blowfish:
Algorytm ten operuje na 64-bitowych blokach i używa kluczy od 32 do 448 bitów. Atak brute-force na 64 bitowy Blowfish zajmuje mniej więcej tyle samo czasu co na 73 bitowy bardziej tradycyjny szyfr.
openssl enc -e -a -salt -bf -in foto.jpg -out zaszyfrowane_foto.blowfish
penssl enc -d -a -bf -in zaszyfrowanye_foto.blowfish -out rozszyfrowane_foto.jpg
DES:
Data Encryption Standard, jest to szeroko używany algorytm kryptograficzny. Został stworzony przez IBM na podstawie szyfru Lucifer, został zmodyfikowany przez NSA. Algorytm ten został zaakceptowany jako amerykański standard w roku 1977. Szacunkowy średni czas łamania wiadomości zaszyfrowanej za pomocą DES, przy wykorzystaniu sprzętu o wartości 1 miliona USD, wynosił ok. 35 minut w 2004 roku.
openssl enc -e -a -salt -des3 -in foto.jpg -out zaszyfrowane_foto.des3
openssl enc -d -a -des3 -in zaszyfrowane_foto.des3 -out rozszyfrowane_foto.jpg
Funkcje haszujące:
Funkcje haszujące pozwalają na ustalenie krótkich i łatwych do sprawdzenia sum kontrolnych dla dowolnie dużych zbiorów danych. Sumy kontrolne chronią przez przypadkowymi lub celowo dokonanymi modyfikacjami danych. Właśnie te sumy (MD5) należy sprawdzić i porównać z wzorcem, po pobraniu obrazu ISO naszej ulubionej dystrybucji.
SHA-1:
Secure Hash Algorithm, powoli zapominany, został złamany w 2004 roku. National Institute of Standards and Technology ogłosił, że do 2010 roku zaprzestanie stosowanie tego algorytmu.
openssl dgst -sha1 -c plik_do_sprawdzenia.jpg
RIPE-MD160
RACE Integrity Primitives Evaluation, ze względu na mniejszą popularność tego algorytmu w porównaniu z np. MD5, algorytm ten jest mniej zbadany.
openssl dgst -ripemd160 -c plik_do_sprawdzenia.jpg
MD5:
Message-Digest algorithm, czyli algorytm skrótów wiadomości. Chociaż znane są już metody generowania kolizji, co obniża bezpieczeństwo MD5, jest to powszechnie stosowana metoda podpisywania plików.
openssl dgst -md5 -c plik_do_sprawdzenia.jpg
Klucze:
Generujemy silny klucz prywatny CSR:
openssl req -new -nodes -newkey rsa:2048 -out kluczyk.crt -keyout kluczyk.key
Wyświetlamy informację o kluczu:
openssl asn1parse -in kluczyk.crt
Sprawdzamy klucz:
openssl rsa -in kluczyk.key -modulus -noout | openssl md5
openssl x509 -in kluczyk.crt -modulus -noout | openssl md5
Konwersja klucza PEM do DER:
openssl rsa -inform PEM -in kluczyk.pem -outform DER -out kluczyk.der
Konwersja klucza DER do PEM:
openssl rsa -inform DER -in kluczyk.der -outform PEM -out kluczyk.pem
Sprawdzamy certyfikat zdalnego serwera:
openssl s_client -connect help.ubuntu.com:443
22 lutego, 2009 at 23:38
Małe sprostowanie. Base64 to nie jest szyfrowanie, a kodowanie pozwalające wysłać dane binarne przez protokoły tekstowe. np. załączniki w emailach. Całkiem popularne :)