Professional Documents
Culture Documents
Zdalna praca
i bezpieczestwo danych
Autor: Marek Serafin
ISBN: 978-83-246-1521-6
Format: B5, stron: 160
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treci
Przedmowa ...................................................................................... 7
Rozdzia 1. Wstp .............................................................................................. 9
Rozdzia 2. Sabo protokow sieciowych i zwizane z tym problemy .............. 11
Rozdzia 3. SSL jako standard bezpiecznego przesyania danych ........................ 13
3.1. Historia i znaczenie protokou SSL ......................................................................... 13
3.1.1. Przebieg nawizania poczenia SSL .......................................................... 14
3.1.2. Znaczenie zaufanego certyfikatu ................................................................ 15
3.2. Generowanie certyfikatw przy uyciu programu OpenSSL .................................. 16
3.2.1. Tworzenie wasnego CA ............................................................................. 16
3.2.2. Tworzenie klucza prywatnego dla serwera ................................................. 18
3.2.3. Generowanie wniosku o wystawienie certyfikatu ....................................... 18
3.2.4. Wystawianie certyfikatu dla serwera .......................................................... 19
3.2.5. ciganie hasa z klucza prywatnego serwera ............................................ 20
3.2.6. Uniewanianie certyfikatw ....................................................................... 20
3.2.7. Generowanie listy CRL (uniewanionych certyfikatw) ............................ 21
3.2.8. Rne formaty certyfikatw ....................................................................... 21
3.3. Kompilacja biblioteki openssl ze rde .................................................................. 22
Rozdzia 3.
certyfikatw,
poufno i integralno przesyu tzn. ochron przed podsuchaniem
i modyfikacj.
Proces uwierzytelniania przebiega przy uyciu asymetrycznych algorytmw kryptograficznych. W zwizku z powyszym kada ze stron musi posiada swj wasny
klucz prywatny (tajny) oraz klucz publiczny (certyfikat).
14
wygenerowane w punkcie 1.) serwer i klient generuj tzw. master key (znany
tylko im).
15
Na podstawie master-key generowanych jest sze kluczy trzy w kierunku serwer-klient i trzy
w drug stron. Klucze te su do szyfrowania i sprawdzania integralnoci danych. Zainteresowanych
Czytelnikw odsyam do dokumentacji dostpnej na stronie korporacji Netscape: http://wp.netscape.com/
eng/ssl3/draft302.txt.
16
17
W pliku tym odnajdujemy sekcj [ CA_default ]. Zmie wpisy u siebie tak, aby wyglday jak te z listingu 3.2.1.1.
Listing 3.2.1.1. Wycinek pliku openssl.cnf
[ CA_default ]
dir = /etc/ssl
certs = /etc/ssl/certs
crl_dir = $dir/crl
private_key = $dir/private/cakey.pem
database = $dir/index.txt
certificate = $dir/cacert.pem
serial = $dir/serial
crl = $dir/crl.pem
#
#
#
#
#
#
#
#
#
Upewniamy si, czy istnieje katalog podany w zmiennej dir, czyli /etc/ssl, oraz wszystkie
jego podkatalogi. Jeeli nie, musimy je zaoy. Dla katalogu ssl/private ustaw uprawnienia tak, aby tylko uytkownik root mg do niego wej.
Stwrz pliki /etc/ssl/index.txt oraz /etc/ssl/serial, uywajc komend podanych poniej.
root@ca:~# touch /etc/ssl/index.txt
root@ca:~# echo 00 > /etc/ssl/serial
#(ma by pusty)
#(ma zawiera wpis 00)
18
Znaczenie powyszych pl jest raczej jasne, zwracam jedynie uwag na pole Common
Name, ktre powinno zawiera nazw podmiotu np. nazw uytkownika lub jednostki. W tym przypadku, gdy generujesz certyfikat dla CA, wpisz tutaj nazw swojej
organizacji sownie (np. Firma SA) albo podaj np. nazw domeny.
Po podaniu hasa do klucza prywatnego certyfikat zostanie zapisany w pliku cacert.pem.
W powyszym przykadzie czas wanoci certyfikatu wynosi bdzie 1 rok. Mona
go oczywicie wyduy.
Na tym zakoczylimy tworzenie wasnego urzdu CA. Majc pliki cakey.pem i cacert.
pem, czyli klucz prywatny i publiczny CA, moemy ju wystawia certyfikaty innym
podmiotom.
Program OpenSSL zapyta o haso bdzie to haso klucza prywatnego serwera. Klucz
prywatny zapisany zostanie w pliku private/serverkey.pem.
Nastpn czynnoci jest wygenerowanie wniosku o wystawienie certyfikatu.
Bdziesz musia poda haso klucza prywatnego serwera (to, ktre podawae przed
chwil). Jeeli haso bdzie poprawne, zostaniesz zapytany o dane do wniosku, zgodnie z listingiem poniej.
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:Slask
Locality Name (eg, city) []:Gliwice
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Moja Firma Sp. z o.o.
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []: server.firma.pl
Email Address []:
Zwracam tutaj uwag na pole Common Name. W przypadku certyfikatw dla serwerw
pole to powinno zawiera pen nazw domenow, pod jak serwer dziaa w internecie
19
(tzw. FQDN). Jest to wane, poniewa jeli pole Common Name nie pokrywa si z naw
domenow, niektre programy zgaszaj niezgodno certyfikatu z adresem serwera
(zwaszcza przegldarki i klienty poczty).
Wniosek zostanie zapisany w pliku serverreq.pem. Kolejnym krokiem bdzie podpisanie go przez nasze CA, czyli wystawienie mu certyfikatu.
20
Moesz teraz podejrze zawarto plikw index.txt oraz serial, ktre zostay zaktualizowane po podpisaniu wniosku. Uwaaj na plik index.txt, jest on potrzebny przy odwoywaniu certyfikatu (generowaniu CRL).
Mamy ju par kluczy dla serwera. Przy zestawianiu sieci VPN bd potrzebne te
klucze i certyfikaty dla uytkownikw. Generujemy je w sposb analogiczny jak dla
serwera, zgodnie z punktami 3.2.2 3.2.4. Zwr uwag, aby w polu Common Name
podawa dane jednoznacznie identyfikujce uytkownika np. jego login korporacyjny. Niektre programy po Common Name identyfikuj uytkownikw.
Jeszcze jeden szczeg dotyczcy hasa zabezpieczajcego klucz prywatny. W momencie uruchamiania aplikacji korzystajcej z tego klucza bdziemy zmuszeni wpisywa haso z klawiatury. W praktyce na serwerach aplikacja czsto dziaa jako usuga
uruchamiana w trakcie startu systemu i oczekiwanie na wpisanie hasa jest niezadowalajcym rozwizaniem. W takich sytuacjach moemy cign haso z klucza prywatnego. Naley jednak pamita, aby dostp do klucza mia jedynie administrator
serwera (root). Komenda przedstawiona w punkcie 3.2.5 umoliwia cignicie hasa
z klucza prywatnego.
Musimy jeszcze wygenerowa list CRL, w ktrej zapisane s uniewanione certyfikaty. Robimy to zgodnie z punktem 3.2.7.
21
Plik crl.pem naley przegra pniej na waciwy serwer i wskaza w aplikacji korzystajcej z certyfikatw (szczegy w dalszej czci ksiki).
Format wyjciowy
Skadnia OpenSSL
PEM
DER
DER
PEM
DER key
PEM key
PEM
PKCS#12
PKCS#12
PEM CERT
PKCS#12
PEM KEY
out
22
Jeli dodasz parametr -issuer, OpenSSL zwrci take informacj o wystawcy (CA):
ca:/etc/ssl# openssl x509 -in servercert.pem -issuer -subject noout
subject= /C=PL/ST=Slask/O=Helion/CN=server1
issuer= /C=PL/ST=Slask/L=Gliwice/O=Helion/CN=CA
Jeeli certyfikat jest w formie binarnej (DER), do powyszej skadni naley doda parametr -inform DER.
zlib
6. Jeli skrypt ./config nie zgosi bdu, moemy przej do waciwej kompilacji
programu. W tym celu wpisz polecenie make.
23