8075a119e49eb46dca16560b11e21412.ppt
- Количество слайдов: 34
Infrastruktura klucza publicznego (PKI) Openssl, Certyfikaty i GPG
Openssl - dostępny również dla MS Windows n Instalacja pod MS Windows n n Pobierz plik http: //gnuwin 32. sourceforge. net/downlinks/opens sl-bin-zip. php Można pobrać również dokumentację: http: //gnuwin 32. sourceforge. net/downlinks/opens sl-doc-zip. php Wypakuj zawartość plików w dowolnym miejscu Uruchom konsole i przejdź do wypakowanego katalogu – ściślej podkatalogu bin
Openssl – podstawowe komendy Wyświetlanie komend i pomocy do komend: openssl –h openssl genrsa –h openssl rsautl –h Openssl rsa -h 1)Generacja klucza prywatnego openssl genrsa -out private. key 1024 2)Generacja klucza publicznego (uzupełnij na podstawie dokumentacji) opessl rsa -in private. key –pubout … public. key
3)Szyfrowanie przy użyciu klucza publicznego a) Utworzenie wiadomosci tekstowej echo "wiadomosc do zaszyfrowania">msg. txt b) Szyfrowanie openssl rsautl -encrypt -in msg. txt -inkey public. key -pubin -out enc. txt 4)Deszyfrowanie przy użyciu klucza prywatnego openssl rsautl -decrypt -in enc. txt -inkey private. key -out dec. txt
5)Szyfrowanie przy użyciu klucza prywatnego a) Utworzenie wiadomosci tekstowej echo "wiadomosc do zaszyfrowania">msg. txt b) Szyfrowanie openssl rsautl -raw -decrypt -in msg. txt inkey private. key -out enc 1. txt 6)Deszyfrowanie przy użyciu klucza publicznego openssl rsautl -… -encrypt –in enc 1. txt inkey public. key -pubin -out dec 1. txt n Pytanie: Jaki padding trzeba użyć w 6)? Jaka powinna być długość wiadomości msg. txt, by wiadomość dec 1. txt była identyczna z msg. txt?
Openssl a podpis 7) Podpisywanie wiadomości openssl dgst -sign private. key msg. txt >sign. msg 8) Weryfikacja podpisu openssl dgst -verify public. key -signature sign. msg. txt
Openssl szyfrowanie symetryczne 9) openssl enc -des 3 -e -salt -a -in msg. txt -out msgsym. base 64 10) openssl enc -des 3 -d -salt -a -out msg 1. txt -in msgsym. base 64
Certyfikaty kwalifikowane i niekwalifikowane n n n Certyfikat kwalifikowany wykorzystuje się do podpisywania oficjalnych dokumentów http: //www. certum. pl/certum/cert, wiedza_przewodni k. xml#pyt 1 Niekwalifikowane m. in. do zabezpieczania komunikacji SSL i szyfrowania e-maili Lista podmiotów uprawnionych do wystawiania certyfikatów kwalifikowanych w Polsce znajduje się na stronie Narodowego Centrum Certyfikacji: http: //www. nccert. pl/ncc/rejestr_index. aspx
Certyfikaty Tworzenie centrum certyfikacji (CA) na własne potrzeby n 1) Generacja kluczy CA 2) Generacja certyfikatu CA openssl genrsa -des 3 -out CA. key <key_size> openssl req -new -key CA. key -x 509 -days 1095 -out CA. crt -config. txt Plik config. txt można przekopiować np. z: http: //www. faqs. org/docs/securing/chap 24 sec 194. html 3) Generacja odcisku certyfikatu CA openssl x 509 -fingerprint -noout -in CA. crt n Żądanie wydania certyfikatu openssl genrsa -out <new. key> openssl req -new -key <new. key> -out <new. csr> -config. txt n Generacja certyfikatu podpisanego przez CA na podstawie żądania openssl x 509 -req -days 365 -in <new. csr> -CA CA. crt -CAkey CAcreateserial -out <new. crt>
Certyfikaty n n Konwersja do formatu PKCS#12 (opcjonalnie): openssl pkcs 12 -export -in pem-certificate-and-keyfile -out pkcs-12 -certificate-and-key-file openssl pkcs 12 -export -in pem-certificate-file -inkey pem-key-file -out pkcs-12 -certificate-and-key-file openssl pkcs 12 -export -in pem-certificate-file nokeys -nodes -out pkcs-12 -certificate-file Wyświetlanie zawartości certyfikatu: openssl. exe x 509 -in new. crt -text
Zaufane centra certyfikacji n Internet Explorer: n n Narzędzia->Opcje interentowe->Zawartość ->Certyfikaty->Zaufane główne urzędy Firefox: n Edycja->Preferencje->Zaawansowane>Szyfrowanie->Wyświetl certyfikaty>Organy certyfikacji
Przykładowe centra n n Veri. Sign jak uzyskać certyfikat SSL? : http: //www. verisign. com/ jak się generuje żądanie wydania certyfikatu, które trzeba wkleić w formę on-line? : https: //knowledge. verisign. com/support/ssl-certificatessupport/index? page=content&id=AR 198 Unizeto http: //www. unizeto. pl n Thawte http: //thawte. com n UWAGA: w przypadku certyfikatów SSL jako CN (common name) podajemy nazwę domenową serwera (np. www. cs. put. poznan. pl), na którym będzie ten certyfikat używany.
Wyświetlanie zawartości certyfikatu dla witryny WWW n n Klikamy na symbol kłódki po nawiązaniu połączenia poprzez https W przypadku Internet Explorera od wersji 7. 0 począwszy wprowadzono bardziej rygorystyczne sprawdzanie certyfikatów oraz wprowadzono tzw. „Extended Validation (EV) Certificates”. Pole adresu wówczas przybiera zielony kolor.
Inne elementy PKI n n Listy CRL Urządzenia sprzętowe n czytniki/karty
Testowanie połączeń SSL Inicjujemy polaczenie z serwerem openssl s_client -connect 150. 254. 30: 443 -state -debug n Wysylamu komendy HTTP GET / /HTTP/1. 0 Host: www. cs. put. poznan. pl <ENTER> n
GPG n Instalacja n Pobierz i uruchom instalator ftp: //ftp. gnupg. org/gcrypt/binary/gnupg-w 32 cli 1. 4. 8. exe n Zignoruj komunikat o prawach administratora i wybierz katalog instalacyjny, do którego posiadasz uprawnienia
Generacja kluczy n gpg –gen-key Please select what kind of key you want: (1) DSA and Elgamal (default) (2) DSA (sign only) (5) RSA (sign only) Your selection? 1 DSA keypair will have 1024 bits. ELG-E keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)
Generacja kluczy Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y
Generacja kluczy You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf. de>" Real name: Maciej Miłostan Email address: mm@cs. put. poznan. pl Comment: Mój klucz You are using the `CP 852' character set. You selected this USER-ID: "Maciej Miłostan (Mój klucz) <mm@cs. put. poznan. pl>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
gpg --list-keys C: /Documents and Settings/szarak/Dane aplikacji/gnupgpubring. gpg --------------------------------pub 1024 D/6 E 17500 D 2008 -03 -12 uid Maciej Miłostan (Mój klucz) <mm@cs. put. poznan. pl> sub 2048 g/46 E 8314 D 2008 -03 -12
Import klucza n 1) 2) Ćwiczenie: Wygeneruj drugi klucz (np. dla Alice) Dokonaj eksportu klucza publicznego i prywatnego gpg -a --export Alice >alice. pub gpg -a --export-secret-key Alice >alice. prv 3) 4) 5) 6) Usuń klucze Alice gpg --delete-keys Alice gpg --delete-secret-keys Alice Wylistuj klucze gpg --list-keys Dokonaj importu klucza publicznego Alice gpg --import alice. pub wylistuj klucze Dokonaj importu klucza prywatnego Alice gpg --import alice. prv wylistuj klucze
Poziom zaufania (Trust level) 1) Ustaw poziom zaufania dla klucza Alice gpg --edit-key Alice list trust 4 list
Podpisywanie wiadomości Wiadomość i podpis w jednym pliku (*. gpg) gpg -u Alice -s msg. txt n Weryfiakacja wiadomości gpg --verify msg. txt. gpg n Zapisanie oryginalnej wiadomości gpg msg. txt. gpg n Podpis w osobnym pliku (*. sig) n gpg --detach-sign msg. txt Weryfikacja: gpg --verify msg. txt. sig msg. txt Podpis w formacie tekstowym (*. asc) gpg --clearsign msg. txt Dokonaj modyfikacji wiadomości w pliku msg. txt. asc i sprobuj dokonac weryfikacji podpisu n
Szyfrowanie podpisanych wiadomości n n Podpis swoim kluczem i zaszyfrowanie wiadomości dla Alice gpg -se –r Alice msg. txt Odszyfrowanie i weryfikacja podpisu gpg –d msg. txt. gpg
Serwery kluczy Przykład pobieranie klucza: gpg --keyserver pgp. mit. edu --recv-keys F 9 B 1 BDED n
GPG/PGP a poczta elektroniczna Thunderbird + Enigmail n Outlook/Outlook Express + komercyjne implementacje PGP (Outlook + Plugin do GPG) n
Thunderbird+GPG+Enigmail Thunderbird http: //www. thuderbird. pl n Enigmail http: //enigmail. mozdev. org/home/index. php n
http: //enigmail. mozdev. org/documentation/screenshots. php
Zarządzanie kluczami
Podsumowanie n Openssl n n n GPG n n n Duża funkcjonalność Szeroko stosowany zestaw narzędzi i bibliotek Pretty Good Privacy na licencji GNU Łatwe zarządzanie kluczami Łatwe podpisywanie i weryfikacja podpisów Możliwość łączenia z serwerami kluczy Enigmail n n n Nakładka na GPG w postaci wtyczki do Thunderbird-a Wywołanie funkcji GPG z poziomu okienek graficznych Automatyzacja procesu szyfrowania i podpisywania E-maili
8075a119e49eb46dca16560b11e21412.ppt