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.

Podobne dokumenty
Wprowadzenie do OpenSSL

# 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.

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

Zastosowania informatyki w gospodarce Wykład 5

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

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

SSL (Secure Socket Layer)

Podstawy Secure Sockets Layer

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

Authenticated Encryption

ZiMSK. Konsola, TELNET, SSH 1

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

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

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

WSIZ Copernicus we Wrocławiu

Protokół SSL/TLS. Algorytmy wymiany klucza motywacja

Zdalne logowanie do serwerów

Laboratorium nr 6 VPN i PKI

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

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

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

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

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

Wstęp do systemów wielozadaniowych laboratorium 21 Szyfrowanie

Bezpieczna poczta i PGP

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

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

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

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

Przewodnik użytkownika

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

Konfiguracja OpenVPN w AS30GSM200P. Informator Techniczny Strona 1 z 11

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

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.

Protokół SSH. Patryk Czarnik

Technologie informacyjne - wykład 5 -

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

Bezpieczeństwo korespondencji elektronicznej

Stos TCP/IP. Warstwa aplikacji cz.2

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

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

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Laboratorium nr 4 Sieci VPN

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

Instrukcja generowania żądania CSR SOW WERSJA 1.6

Bezpieczeństwo systemów informatycznych

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

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

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

Bezpieczeństwo systemów informatycznych

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

Protokoły internetowe

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

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

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

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

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

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

Zastosowania PKI dla wirtualnych sieci prywatnych

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

Laboratorium nr 5 Sieci VPN

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

1 Przykłady algorytmów kryptograficznych

Bezpieczeństwo systemów informatycznych

SET (Secure Electronic Transaction)

Organizacja systemu plików

Bezpieczeństwo systemów komputerowych.

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

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

Problemy z bezpieczeństwem w sieci lokalnej

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

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

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

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

Technologie cyfrowe semestr letni 2018/2019

Sieci komputerowe i bazy danych

Laboratorium Programowania Kart Elektronicznych

Win Admin Monitor Instrukcja Obsługi

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

Bezpieczeństwo systemów komputerowych

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

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

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

2 Kryptografia: algorytmy symetryczne

Protokoły zdalnego logowania Telnet i SSH

Nowości w kryptografii

OpenVPN na dd-wrt

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

Infrastruktura klucza publicznego w sieci PIONIER

Warsztaty z Sieci komputerowych Lista 7

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 s a szyfrowane kluczem odbiorcy przed wys laniem ich. Dzi eki temu s a zabezpieczone przed możliwości a ich odczytania przez nieuprawnion a stron e trzeci a, jak również sa odporne na manipulacj e. Jednocześnie system dystrybucji kluczy rozwi azuje problem ich autentyczności. Bezpieczne po l aczenia oparte na SSL mog a być stosowane do każdego rodzaju sieciowego protoko lu komunikacyjnego, np. HTTP, POP3, FTP, telnet, itd. SSL nie jest now a technologi a. Bież aca wersja protoko lu 3.0 istnieje od 1996. Planowane jest zast apienie 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śn a, wieloplatformow a implementacj a 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 interesuj acy. Praca z OpenSSL wprowadzenie 4

Funkcje programu openssl Program openssl umożliwia nast epuj ace operacje: Tworzenie i zarz adzanie 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 definiuj acym 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 pomocnicz a funkcj a 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 lni a 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żniejsz a 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 podstawow a kwesti a (oprócz typu i d lugości kluczy), jest czy maj a 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 zawieraj acy ż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 obowi azkó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 wystarczaj ace 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