Wprowadzenie do OpenSSL

Podobne dokumenty
OpenSSL. Praca z OpenSSL wprowadzenie 3. (99.8% serwerów wspiera wersj e 3.0 SSL, 99.4% wspiera wersj e 1.0 TLS) Stan z kwietnia 2013.

# katalog, w który zapisywane są certyfikaty crl_dir=$dir/crl

Szyfrowanie. Tradycyjnie szyfrowanie, stosowane od starożytności, wykorzystywa lo technologie

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

OpenSSL - CA. Kamil Bartocha November 28, Tworzenie CA przy użyciu OpenSSL

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Zastosowania informatyki w gospodarce Wykład 5

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

SSL (Secure Socket Layer)

SSL VPN Virtual Private Network with Secure Socket Layer. Wirtualne sieci prywatne z bezpieczną warstwą gniazd

Authenticated Encryption

Podstawy Secure Sockets Layer

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

WSIZ Copernicus we Wrocławiu

Zdalne logowanie do serwerów

ZiMSK. Konsola, TELNET, SSH 1

Laboratorium nr 6 VPN i PKI

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

Gerard Frankowski, Błażej Miga Zespół Bezpieczeństwa PCSS. Konferencja SECURE 2008 Warszawa,

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Bezpieczna poczta i PGP

Zastosowania informatyki w gospodarce Wykład 8

Protokół SSL/TLS. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Protokół SSL/TLS. Algorytmy wymiany klucza motywacja

WHEEL LYNX SSL/TLS DECRYPTOR. najszybszy deszyfrator ruchu SSL/TLS

POSTFIX (SMTP) + POP3 + SSL. Użycie certyfikatów niekwalifikowanych w oprogramowaniu POSTFIX. wersja 1.4

Wstęp do systemów wielozadaniowych laboratorium 21 Szyfrowanie

Technologie informacyjne - wykład 5 -

Przewodnik użytkownika

SENDMAIL (SMTP) + POP3 + SSL Użycie certyfikatów niekwalifikowanych w oprogramowaniu Sendmail. wersja 1.2 UNIZETO TECHNOLOGIES SA

Protokół SSH. Patryk Czarnik

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

VSFTPd Użycie certyfikatów niekwalifikowanych w oprogramowaniuvsftpd. wersja 1.3 UNIZETO TECHNOLOGIES SA

Wykład 3 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

SENDMAIL (SMTP) + POP3 + SSL Użycie certyfikatów niekwalifikowanych w oprogramowaniu Sendmail wersja 1.3

Konfiguracja OpenVPN w AS30GSM200P. Informator Techniczny Strona 1 z 11

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Wykorzystanie protokołu T=CL w systemach kontroli dostępu

Sieci komputerowe Wykład 7. Bezpieczeństwo w sieci. Paweł Niewiadomski Katedra Informatyki Stosowanej Wydział Matematyki UŁ niewiap@math.uni.lodz.

Stos TCP/IP. Warstwa aplikacji cz.2

Bezpieczeństwo korespondencji elektronicznej

Sieci komputerowe. Wykład 11: Podstawy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1

Instrukcja generowania żądania CSR SOW WERSJA 1.6

Laboratorium nr 4 Sieci VPN

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

Bezpieczeństwo systemów informatycznych

5. Metody uwierzytelniania i bezpiecznej komunikacji Certyfikat klucza publicznego oparty o standard X.509

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP

Instrukcja pobrania i instalacji. certyfikatu Microsoft Code Signing. wersja 1.4

PureFTPd Użycie certyfikatów niekwalifikowanych w oprogramowaniupureftpd. wersja 1.3

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

DZIENNIK USTAW RZECZYPOSPOLITEJ POLSKIEJ. Warszawa, dnia 20 wrzeênia 2006 r. Nr 168

Protokoły internetowe

Bezpieczeństwo aplikacji typu software token. Mariusz Burdach, Prevenity. Agenda

1 Przykłady algorytmów kryptograficznych

Organizacja systemu plików

Ćwiczenie 8 Implementacja podpisu cyfrowego opartego na standardzie X.509

5. Metody uwierzytelniania i bezpiecznej komunikacji Certyfikat klucza publicznego oparty o standard X.509

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Bezpieczeństwo systemów informatycznych

Protokół IPsec. Patryk Czarnik

Laboratorium nr 5 Sieci VPN

Bezpieczeństwo Usług Sieciowych OpenSSL. dr inż. Tomasz Surmacz. 26 listopada 2014

Bezpieczeństwo systemów informatycznych

SET (Secure Electronic Transaction)

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

WorkshopIT Komputer narzędziem w rękach prawnika

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Zastosowania PKI dla wirtualnych sieci prywatnych

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Protokół SSH. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Problemy z bezpieczeństwem w sieci lokalnej

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Opis efektów kształcenia dla modułu zajęć

Sieci komputerowe i bazy danych

Technologie cyfrowe semestr letni 2018/2019

Laboratorium Programowania Kart Elektronicznych

Win Admin Monitor Instrukcja Obsługi

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

Bezpieczeństwo systemów komputerowych

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

MALKOM VPN Client. Instrukcja użytkownika. Wersja dokumentu: 1.4 Data aktualizacji: Wersja Polska wersja językowa

Nowości w kryptografii

Protokoły zdalnego logowania Telnet i SSH

OpenVPN na dd-wrt

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

Infrastruktura klucza publicznego w sieci PIONIER

Laboratorium nr 2 Szyfrowanie, podpis elektroniczny i certyfikaty

Transkrypt:

Wprowadzenie do OpenSSL Witold Paluszyński Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2013 Ten utwór jest dost epny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udost epniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela si e zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać si e tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich).

SSL i TLS SSL (Secure Sockets Layer) jest standardem bezpiecznej komunikacji w Internecie. Polega na wbudowaniu technologii szyfrowania danych opartej na infrastrukturze klucza publicznego (Public Key Infrastructure, PKI) w protokó l komunikacyjny. Dane sa szyfrowane kluczem odbiorcy przed wys laniem ich. Dzi eki temu sa zabezpieczone przed możliwościa ich odczytania przez nieuprawniona stron e trzecia, jak również sa odporne na manipulacj e. Jednocześnie system dystrybucji kluczy rozwiazuje problem ich autentyczności. Bezpieczne po laczenia oparte na SSL moga być stosowane do każdego rodzaju sieciowego protoko lu komunikacyjnego, np. HTTP, POP3, FTP, telnet, itd. SSL nie jest nowa technologia. Bieżaca wersja protoko lu 3.0 istnieje od 1996. Planowane jest zastapienie go przez nowszy protokó l TLS (Transport Layer Security), który jest podobny ale niekompatybilny. SSL i TLS sa najpowszechniej wspieranymi przez serwery WWW szyfrowanymi protoko lami (99.8% serwerów wspiera wersj e 3.0 SSL, 99.4% wspiera wersj e 1.0 TLS). 1 1 Stan z kwietnia 2013. Praca z OpenSSL wprowadzenie 3 OpenSSL OpenSSL jest przenośna, wieloplatformowa implementacja protoko lów SSL i TLS, dost epn a na zasadach open source. Zasadniczo OpenSSL ma postać biblioteki ANSI C, która implementuje podstawowe operacje kryptograficzne. Poza funkcjami niezb ednymi do szyfrowania sieciowej warstwy transportu, zawiera również funkcje szyfrowania symetrycznego (dla plików), podpisy cyfrowe, kryptograficzne funkcje skrótu, generatory liczb losowych itp. OpenSSL jest wi ecej niż tylko API, to także program użytkownika z interfejsem wiersza polecenia. Program pozwala na to samo, co API, i dodatkowo, pozwala sprawdzać serwery i klientów SSL. W tym wyk ladzie przedstawione sa podstawowe możliwości OpenSSL dost epne z narz edzia terminalowego. Istnieje inna implementacja typu open-source protoko lów SSL/TLS GnuTLS. Zasadnicza różnica mi edzy tymi pakietami jest w typie licencji darmowej. Jednak GnuTLS nie posiada narz edzia terminalowego, i z punktu widzenia użytkownika systemów uniksowych jest ma lo interesujacy. Praca z OpenSSL wprowadzenie 4

Funkcje programu openssl Program openssl umożliwia nast epuj ace operacje: Tworzenie i zarzadzanie kluczami prywatnymi, publicznymi i ich parametrami Operacje kryptograficzne z kluczem publicznym Tworzenie certyfikatów X.509, CSR oraz CRL Obliczanie skrótów wiadomości Szyfrowanie i deszyfrowania różnymi szyframi Testowanie klientów i serwerów SSL/TLS Przetwarzanie poczty podpisanej lub zaszyfrowanej S/MIME Żadania znaczników czasowych, generowanie i weryfikacja Praca z OpenSSL wprowadzenie 5 Podstawowe wywo lania openssl Program openssl wywo luje si e z wektorem argumentów definiujacym funkcj e: # sprawdzenie zainstalowanej wersji openssl openssl version # z obszernymi informacjami openssl version -a # lista polecen openssl: jakiekolwiek nieznane polecenie, np. openssl help # podobny trik dziala dla indywidualnych polecen openssl, np. openssl dgst -h # kompleksowe testy wydajnosci operacji szyfrowania systemu openssl speed # testy wydajnosci ograniczone do konkretnego algorytmu openssl speed rsa # testy wydajnosci z uwzglednieniem wieloprocesorowosci openssl speed rsa -multi 2 Można również wejść w tryb dialogowy openssl i pisać jego polecenia. Jednak brak wtedy możliwości readline edycji poleceniami Emacsa, historii, itp. Praca z OpenSSL wprowadzenie 6

Dost epne algorytmy szyfrowania openssl openssl list-cipher-commands # lista dostepnych algorytmow z pelna informacja openssl ciphers -v # lista tylko szyfrow wersji TLSv1 openssl ciphers -v -tls1 # lista szyfrow "mocnych" (klucze powyzej 128 bitow) openssl ciphers -v HIGH # lista szyfrow "mocnych" z algorytmeme AES openssl ciphers -v AES+HIGH Praca z OpenSSL wprowadzenie 7 Testowanie zdalnego serwera WWW Openssl pozwala wykonywać wiele różnych testów zdalnych serwerów HTTPS: # testowanie nawiazywania polaczen ze zdalnym serwerem WWW przez 30s openssl s_time -connect remote.host:443 # test.polaczen i sciagania strony przez 10 sekund, tworz.nowej sesji openssl s_time -connect remote.host:443 -www /index.html -time 10 -new Jeśli nie mamy do dyspozycji zdalnego serwera HTTPS, który możnaby wykorzystać do testów, openssl pozwala postawić minimalny serwer na wybranym porcie. Serwer serwuje pliki z lokalnego katalogu, w którym zosta l uruchomiony: # uruchomienie serwera HTTPS na porcie 10443 z certyfikatem mycert.pem openssl s_server -accept 10443 -cert mycert.pem -WWW # wygenerowanie certyfikatu serwera, zadaje duzo szczegolowych pytan openssl req \ -x509 -nodes -days 365 \ -newkey rsa:1024 -keyout mycert.pem -out mycert.pem Praca z OpenSSL wprowadzenie 8

Symetryczne szyfrowanie plików Szyfrowanie symetryczne jest pomocnicza funkcja openssl. W tej roli openssl jest mniej wygodny w użyciu niż np. GnuPG. Przy deszyfrowaniu wymaga znajomości, oprócz has la, algorytmu użytego do szyfrowania. # szyfruj file.txt do file.enc algorytmem AES-256-CBC, openssl enc -aes-256-cbc -salt -in file.txt -out file.enc # alternatywna forma tego samego, z kodowaniem tekstowym base64 openssl aes-256-cbc -a -salt -in file.txt -out file.ascii # deszyfruj plik binarny na stdout openssl enc -d -aes-256-cbc -in file.enc # deszyfruj plik zakodowany tekstowo base64 na stdout openssl enc -d -aes-256-cbc -a -in file.ascii # haslo szyfrowania mozna podac w wierszu polecenia openssl enc -aes-256-cbc -salt -in file.txt -out file.enc \ -pass pass:kathy123 # mozna rowniez haslo zapisac na pliku openssl enc -aes-256-cbc -salt -in file.txt -out file.enc \ -pass file:~/passwords/mypassword.txt Praca z OpenSSL symetryczne szyfrowanie plików 9 # koduj tresc pliku base64 (bez szyfrowania), zapisz na drugim pliku openssl enc -base64 -in file.txt -out file.ascii # koduj base64 "w locie", wyslij wynik na wyjscie, uwaga na NEWLINE printf "jakis napis" openssl enc -base64 # dekodowanie BASE64, ponownie uwaga na NEWLINE printf "amfraxmgbmfwaxm=\n" openssl enc -base64 -d Praca z OpenSSL symetryczne szyfrowanie plików 10

Skróty kryptograficzne i podpisy cyfrowe Skróty kryptograficzne (file hash lub message digest) pe lnia rol e sygnatur dużych plików danych. Na przyk lad, zamiast porównywać pliki każdy z każdym, można obliczyć ich skróty i szybko je porównać. Jeszcze ważniejsza rol e skróty pe lni a przy cyfrowym podpisywaniu przesy lanych danych. Zamiast podpisywać ca ly plik, co jest równoważne z jego zaszyfrowaniem, można podpisać jego skrót. Zadaniem skrótu kryptograficznego jest być prawie unikalnym. To znaczy, znalezienie innego pliku z tym samym skrótem co dany plik musi być bardzo trudne. W praktyce, podpisanie skrótu jest mniej bezpieczne niż ca lego pliku. # skrot MD5 openssl dgst -md5 filename # skrot SHA1 openssl dgst -sha1 filename # wygenerowanie podpisu skrotu sha1 kluczem prywatnym openssl dgst -sha1 -sign mykey.pem -out foo.tar.gz.sha1 foo.tar.gz # weryfikacja sygnatury z kluczem publicznym nadawcy openssl dgst -sha1 -verify pubkey.pem -signature foo.tar.gz.sha1 \ foo.tar.gz Praca z OpenSSL skróty kryptograficzne 11 Praca z OpenSSL skróty kryptograficzne 12

Infrastruktura klucza publicznego PKCS#1 RSA PKCS#7 S/MIME PKCS#8 klucz prywatny PKCS#10 żadanie certyfikatu PKCS#11 API sprz etu kryptograficznego PKCS#12 klucz prywatny z certyfikatami PKCS#15 tokeny kryptograficzne Praca z OpenSSL infrastruktura klucza publicznego 13 Praca z kluczami PKI Praca z OpenSSL infrastruktura klucza publicznego 14

Generowanie kluczy Prywatne klucze RSA (PKCS#8) można wygenerować poniższymi poleceniami: # wygeneruj 1024-bitowy klucz prywatny RSA, zapisz na pliku mykey.pem openssl genrsa -out mykey.pem 1024 # jak wyzej, dodatkowo zakoduj plik haslem openssl genrsa -des3 -out mykey.pem 1024 # wyswietlenie zawartosci klucza prywatnego w postaci tekstowej openssl rsa -in mykey.pem -text -noout # wygeneruj na stdout klucz publiczny do posiadanego klucza prywatnego openssl rsa -in mykey.pem -pubout Przy generowaniu kluczy podstawowa kwestia (oprócz typu i d lugości kluczy), jest czy maja być chronione has lem. Poczucie bezpieczeństwa wymaga loby, aby by ly. Oznacza to, że przy każdym dost epie do klucza prywatnego trzeba wpisywać to has lo. Dlatego czasami jest racjonalne zrezygnowanie z has la i zabezpieczenie pliku z kluczem prywatnym tylko prawami dost epu. Praca z OpenSSL infrastruktura klucza publicznego 15 Generowanie żadania certyfikatu W systemie PKI bardziej niż bezpośredni klucz publiczny potrzebny jest jednak certyfikat podpisany przez CA (Certification Authority). Należy wi ec wygenerować dodatkowy plik zawierajacy żadanie takiego certyfikatu (PKCS#10), i wys lać go do centrum certyfikacji (oraz zap lacić należność): # generowanie zadania certyfikatu, seria pytan openssl req -new -key mykey.pem -out mykey_csr.pem # mozna rowniez wygenerowac klucz razem z zadaniem certyfikatu openssl req -new -newkey rsa:1024 -nodes -keyout mykey.pem \ -out mykey_csr.pem Praca z OpenSSL infrastruktura klucza publicznego 16

Sprawdzanie żadania certyfikatu Żadanie certyfikatu (PKCS#10) i otrzymany w jego wyniku podpisany certyfikat sa elementami oficjalnej dzia lalności instytucji CA. Do obowiazków CA należy dok ladne sprawdzenie tożsamości wnioskodawcy, jako że podpisany certyfikat b edzie s luży l do późniejszego potwierdzania jego tożsamości podpisami cyfrowymi. Istotne jest wi ec, aby dane w żadaniu PKCS#10 by ly w 100% poprawne. Można je odczytać, jak również sprawdzić zgodność podpisu zawartego w żadaniu z kluczem prywatnym. # sprawdz informacje zawarte w zadaniu certyfikatu openssl req -in mykey_csr.pem -noout -text # sprawdz zgodnosc podpisu zawartego w zadaniu certyfikatu openssl req -in mykey_csr.pem -noout -verify -key mykey.pem Praca z OpenSSL infrastruktura klucza publicznego 17 Zróbmy sobie CA Teraz należa loby zaczekać na otrzymanie podpisanego certyfikatu z CA. Aby skrócić czas oczekiwania, możemy zbudować w lasne CA, i samodzielnie podpisać nasz certyfikat. Ma to sens cz esto w sytuacjach praktycznych, gdy w lasne, prywatne CA jest wystarczajace do funkcjonowania budowanego systemu. CA_DIR=./demoCA echo "Setting up the directories" mkdir -p ${CA_DIR} ${CA_DIR}/certs ${CA_DIR}/private \ ${CA_DIR}/newcerts ${CA_DIR}/crls chmod -R 700 ${CA_DIR} cd ${CA_DIR} echo 1000 > serial touch index.txt echo "Creating the CA, no password..." openssl req -nodes -new -x509 -days 3650 -keyout private/cakey.pem \ -out cacert.pem -subj "/CN=witoldp@pwr.wroc.pl/O=Wroclaw Univ. of\ Technology/OU=I6/C=PL/ST=Dolnoslaskie/L=Wroclaw" Praca z OpenSSL infrastruktura klucza publicznego 18

Podpisywanie certyfikatów Teraz przed nami najlepsze, czyli możemy podpisywać certyfikaty przys lane w żadaniach: # aby obejrzec otrzymane zadanie podpisania certyfikatu openssl req -noout -text -in mykey_csr.pem # podpisanie certyfikatu openssl ca -in mykey_csr.pem -out wpcert.pem Podpisany certyfikat zapisany w podanym pliku, jak również w podkatalogu newcerts CA. Praca z OpenSSL infrastruktura klucza publicznego 19 Pos lugiwanie si e certyfikatem Klient żada l podpisania certyfikatu, żeby móc pos lugiwać si e nim dla uwiarygodnienia swoich transakcji. Do jakich transakcji może go wykorzystywać: szyfrowanie poczty standardem S/MIME openssl smime -encrypt -in /etc/hosts -from lola@pwr.wroc.pl \ -to tyciu@stud.ict.pwr.wroc.pl -subject sub rec_cert.pem podpisy cyfrowe w poczcie standardem S/MIME openssl smime -sign -in in.txt -text -signer mycert.pem \ -from steve@openssl.org -to someone@somewhere \ -subject "Signed message" potwierdzanie wiarygodności serwera WWW: cp userkey.pem /opt/csw/apache/conf/ssl.key/ cp usercert.pem /opt/csw/apache/conf/ssl.crt/ Praca z OpenSSL infrastruktura klucza publicznego 20

Praca z OpenSSL infrastruktura klucza publicznego 21 Przydatne linki Paul Heinlein, OpenSSL Command-Line HOWTO http://www.madboa.com/geek/openssl/ J.K. Harris, Understanding SSL/TLS http://computing.ece.vt.edu/~jkh/understanding_ssl_tls.pdf Philippe Camacho, An Introduction to the OpenSSL command line tool http://users.dcc.uchile.cl/~pcamacho/tutorial/crypto/openssl/ openssl_intro.html Sun/Oracle documents, Introduction to SSL http://docs.oracle.com/cd/e19957-01/816-6156-10/ Praca z OpenSSL linki 22