Technologie informacyjne Laboratorium, lista 2 Część 1 W tej części będziemy pracować w systemie Linux (dowolna spośród 2 dystrybucji). 1. Wygeneruj klucz prywatny i publiczny. 2. Wyeksportuj swój klucz publiczny. 3. Wymień się kluczami publicznymi z wybraną osobą siedzącą w innym miejscu sali (nie bezpośrednio obok). 4. Zaimportuj klucz publiczny koleżanki lub kolegi do swojego pęka kluczy. 5. Podpisz klucz publiczny koleżanki lub kolegi. 6. Przygotuj wiadomość w pliku tekstowym. Podpisz ją a potem zaszyfruj podpisaną wiadomość. 7. Wymień się wiadomościami z koleżanką lub kolegą. 8. Spróbuj odkodować wiadomość i sprawdzić podpis. Jeśli Ci się udało, zapytaj, czy prawidłowo odczytałeś wiadomość. 9. Przekaż wiadomość przeznaczoną dla Ciebie komuś innemu, odbierz cudzą wiadomość. 10. Spróbuj odkodować wiadomość i sprawdzić podpis. Jeśli Ci się udało, zapytaj, czy prawidłowo odczytałeś wiadomość. 11. Wyeksportuj klucz prywatny i zapisz go w bezpiecznym miejscu (jeśli nie masz przy sobie pamięci przenośnej, pomiń ten krok i wygeneruj klucz nowy klucz innym razem). 12. Skasuj pęk kluczy. Część 2 W tej części możemy pracować na dowolnym spośród dostępnych systemów. Wejdź na dowolną stronę wyposażoną w certyfikat SSL, czyli korzystającą z protokołu HTTPS. 1. Kto jest wystawcą certyfikatu? (Urzędem certyfikacji podpisującym klucz) 2. Jaka jest data ważności certyfikatu? 3. Z kim skontaktować się w sytuacji, gdyby certyfikat nie działał? 4. Jaki jest numer IP Twojego komputera w sieci lokalnej? 5. Jaki jest numer IP Twojego komputera w sieci globalnej? 6. Jaki jest numer IP komputera, na którym działa ta strona? 7. Jaką trasę pokonują pakiety w drodze do celu? 1
Ściągawka z GPG Uwaga, klucze domyślnie trafiają do tak zwanego pęku kluczy. Domyślnie, jest to ~/.gnupg. Ponieważ katalog domowy jest współdzielony przez wielu użytkowników, do każdego wywołania programu GPG dodajemy opcję --homedir ~/123456/gpg, gdzie 123456 jest numerem indeksu. Dodatkowo, warto podczas generowania kluczy wyłączyć lokalizację, czyli tłumaczenie komunikatów na język polski. Robimy to dopisując LANG=en przed komendą. W przykładach pisząc (nieistniejącą) nazwę komendy GPG mamy na myśli właśnie LANG=en gpg --homedir ~/123456/gpg Jeśli wykonujemy te same komendy na komputerze prywatnym, możemy skorzystać z innego języka oraz domyślnego pęku kluczy wtedy nie ma potrzeby dopisywania dodatkowych opcji. Pęk kluczy można od razu umieścić na pamięci przenośnej, wtedy też nie ma potrzeby go kasować. Utworzenie katalogu na pęk kluczy: mkdir ~/123456/gpg Generowanie klucza: Aby wygenerować klucz, wpisujemy komendę GPG --full-gen-key Następnie wypełniamy formularz. Jeśli komenda nie jest dostępna (stara wersja GPG), zadziała GPG --gen-key Po pojawieniu się formularza, wybieramy generowanie klucza RSA i RSA (opcja 1, zatem wpisujemy jedynkę i naciskamy enter). Zostaniemy potem zapytani o rozmiar klucza, możemy zostawić wartość domyślną lub zwiększyć. Wybraną wartość znów zatwierdzamy enterem. Potem ustalamy okres ważności klucza. Domyślna wartość, czyli 0, oznacza, że klucz nie wygasa. Po wprowadzeniu tej informacji, musimy ją zatwierdzić wpisując y oraz enter. Następny etap to wypełnienie informacji osobowych. Podajemy imię oraz nazwisko, oddzielone spacją (stosując wielkie litery oraz polskie znaki). Następnie podajemy adres e-mail. Potem zostaniemy zapytani o identyfikator. Może to być numer indeksu, może to być pseudonim, możemy to pole zostawić puste. Cokolwiek tam wpiszemy, będzie widoczną częścią podpisu! Po wyświetleniu potwierdzenia, mamy możliwość edycji poszczególnych pól lub zatwierdzenia (klawisz O i enter). Potem musimy podać hasło (dwukrotnie, zgodne). Jeśli będzie zbyt słabe, zostaniemy o tym poinformowani. Po wpisaniu odpowiedniego hasła (musimy je zapamiętać!) komputer musi wygenerować odpowiednią ilość entropii, czyli źródła losowości dla generatora liczb pseudolosowych. Aby 2
to zrobić, możemy poodwiedzać różne strony internetowe, pobawić się okienkami, etc. Pełna informacja co generuje entropię pojawi się na ekranie. Gdy procedura się zakończy, program wróci do konsoli. Odnalezienie ID klucza: Podczas generowania na ekranie pojawiło się ID klucza publicznego. Jest to wartość pojawiająca się po znaku ukośnika w tekście takim, jak poniżej: gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub rsa2048/8ca5d241 2015-10-12 W tym przypadku to 8CA5D241. W dalszych przykładach należy zastąpić to ID odpowiednią wartością, podobnie jak 123456 numerem indeksu. Zamiast ID możemy też posłużyć się e-mailem, imieniem i nazwiskiem lub komentarzem (pseudonimem, numerem indeksu, itp). Eksport klucza publicznego: Piszemy GPG --armor --export 8CA5D241 > ~/123456/klucz.pub Plik klucz.pub możesz otworzyć w notatniku lub przekazać innej osobie. Import klucza publicznego: Piszemy GPG --import plik.pub gdzie plik.pub to ścieżka do pliku klucza, który chcemy zaimportować. Po imporcie zobaczymy ID klucza publicznego. Lista kluczy: Piszemy GPG --list-keys Pozwana nam to sprawdzić ID kluczy oraz ich dane i statystyki (w tym poprawność). Załóżmy, że dopiero co zaimportowany klucz ma ID 145AF041. Podpisanie klucza publicznego: Piszemy GPG --sign-key 145AF041 Podpisywanie odbywa się za pomocą klucza prywatnego, więc konieczne może być podanie hasła. Innym sposobem na podpisanie klucza, jest jego edycja. GPG --edit-key 145AF041 Podczas edycji możemy wpisać komendę sign, co spowoduje podpisanie klucza. W edycji klucza mamy więcej możliwości, np. komendę trust, która pozwala ustawić poziom zaufania oraz quit, która opuszcza tryb edycji. Kodowanie wiadomości: Piszemy GPG --encrypt -r 145AF041 plik 3
gdzie -r jest skrótem od --receiver, czyli odbiorca. W obecnym katalogu zostanie utworzony plik plik.gpg, który będzie zaszyfrowany. Podpisywanie wiadomości: Piszemy GPG --sign plik co spowoduje podpisanie pliku i zapisanie podpisanej wersji w pliku plik.gpg. Niestety, nie będzie on czytelny (zostanie skompresowany). Jeśli chcemy, aby wiadomość wciąż była czytelna i dysponujemy plikiem tekstowym, to możemy napisać GPG --clearsign plik Tym razem plik zostanie zapisany w plik.asc. Istnieje też możliwość utworzenia osobego podpisu wtedy musimy pamiętać, aby wysłać dwa pliki (plik oraz podpis). Przykładowo dzięki temu plik.doc będzie wciąż czytelny. GPG --detach-sig plik Podpis zostanie zapisany w plik.sig. Sprawdzanie podpisu: Piszemy GPG --verify plik.sig plik lub GPG --verify plik.asc lub GPG --verify plik.gpg zależnie od rodzaju podpisu. Odkodowanie wiadomości: Piszemy GPG --decrypt plik.gpg > plik Co spowoduje, że powstanie odkodowany plik o nazwie plik. Eksport klucza prywatnego: Piszemy GPG --armor --export-secret-keys 8CA5D241 > ~/123456/klucz.priv Więcej informacji i przykładów na stronie: https://www.gnupg.org/gph/en/manual.html. 4
Ściągawka z diagnostyki sieci Dane o certyfikacie: Dane o certyfikacie możemy sprawdzić wprost w przeglądarce, zwykle klikając na znak kłódki w pasku adresu lub nazwę firmy w pasku adresu (ale nie na sam adres). Dane o domenie: Na systemie Linux możemy posłużyć się komendą whois whois domena Na systemie Windows w standardowej instalacji systemu nie ma odpowiednika tego narzędzia. Można go zainstalować lub skorzystać z usług w sieci, jak whois.icann.org. Sprawdzenie numeru IP w sieci lokalnej: Na systemie Linux możemy użyć komendy ifconfig Na systemie Windows ipconfig /all Komendy te wyświetlają też adres MAC karty sieciowej (na systemie Linux jest to ether lub HWaddr, na systemie Windows, Physical address). Sprawdzenie numeru IP w sieci globalnej: Najłatwiej w przeglądarce wpisać adres ipecho.net. Sprawdzenie numeru IP innego komputera: Najłatwiej użyć programu Ping. Na systemie Linux: ping -c 5 domena Na systemie Windows: ping domena Sprawdzenie trasy do komputera: Najłatwiej użyć programu Traceroute. Na systemie Linux: traceroute domena Na systemie Windows: tracert domena 5