Szyfrowanie
Transkrypt
Szyfrowanie
Ćwiczenia GPG Zadania domowe Wstęp do systemów wielozadaniowych laboratorium 21 — Szyfrowanie Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-01-23 J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Cel Cel Cel zajęć szyfrowanie danych wymiana zaszyfrowanych wiadomości uwierzytelnienie (czy wiadomość faktycznie pochodzi od danego użytkownika) J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Cel Cel Narzędzia Linux / UNIX: GnuPG http://www.gnupg.org/ Windows: gpg4win http://gpg4win.org/ Manual: http://www.gnupg.org/gph/en/manual.html J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Tworzenie kluczy Klucze są przechowywane na katalogu $HOME/.gnupg Na czas ćwiczeń proszę wykonać jego kopię (jeżeli istnieje)! l s − l a ˜/ .gnupg gpg − −list −keys J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Tworzenie kluczy Generowanie pary kluczy $HOME/.gnupg gpg −−gen−key Listujemy ponownie: gpg − −list −keys J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Klucze publiczne Klucz prywatny (sec) służy do odszyfrowywania wiadomości i nikt poza właścicielem nie powinien mieć do niego dostępu Klucz publiczny (pub) służy do szyfrowania wiadomości, które może odszyfrować właściciel klucza prywatnego Jeżeli chcemy wysłać wiadomość zaszyfrowaną do innego użytkownika X, to najpierw musimy od X otrzymać jego klucz publiczny J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Eksportowanie klucza publicznego Eksportowanie klucza publicznego gpg −−armor −−output n a z w a p l i k u . a s c \ −−export I d e n t y f i k a t o r K l u c z a plik nazwa pliku.asc należy przekazać osobie X która chce wysłać do nas wiadomość można udostępnić na stronie www lub dopisać do .plan (w trakcie zajęć również wysłać pocztą) J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Importowanie klucza X uzyskał plik z kluczem publicznym osoby Y: plik z kluczem Y.asc X importuje klucz: gpg −−armor −−import p l i k z k l u c z e m Y . a s c X sprawdza listę kluczy gpg − −list −keys J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Podpisanie klucza X po upewnieniu się, że klucz faktycznie pochodzi od Y, X podpisuje zaimportowany klucz gpg −−edit−key i d e n t y f i k a t o r Y gpg −−edit−key y @ a d r e s . y X podpisuje klucz poleceniem sign UWAGA! X podpisuje klucz, tylko gdy ma absolutną pewność, że należy on do Y. UWAGA! Stwierdzenie czy “klucz od Y” faktycznie pochodzi od Y jest najsłabszym punktem systemu J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Scenariusz A: Szyfrowanie na własne potrzeby X chce zaszyfrować własne dane, aby chronić je przed niepowołanym dostępem X szyfruje plik i usuwa oryginał gpg −−output z a s z y f r o w a n y P l i k \ −−symmetric o r y g i n a l n y P l i k gdy plik jest potrzebny, X go odszyfrowuje: gpg −−output o r y g i n a l n y P l i k \ −−decrypt z a s z y f r o w a n y P l i k J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Scenariusz B: Szyfrowanie korespondencji X chce wysłać zaszyfrowaną wiadomość do Y X redaguje wiadomość w postaci pliku wiadomoscDoY.txt X szyfruje plik kluczem publicznym Y-a gpg −−output zaszyfrowanaWiadomoscDoY −−encrypt \ − −recipient Y wiadomoscDoY.txt X wysyła zaszyfrowany plik jako załącznik J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Scenariusz B: Szyfrowanie korespondencji c.d. Y otrzymał plik zaszyfrowanaWiadomoscOdX Y odszyfrowuje wiadomość własnym kluczem prywatnym gpg −−output wiadomoscOdX \ − −decript zaszyfrowanaWiadomoscOdX Y czyta wiadomość J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Uwierzytelnienie / autentyzacja X chce potwierdzić, że to właśnie on jest nadawcą i wiadomość nie została po drodze zmodyfikowana X redaguje wiadomoscDoY i podpisuje ją własnym kluczem prywatnym gpg −−output podpisanaWiadomoscDoY \ −−sign wiadomoscDoY lub gpg −−output podpisanaWiadomoscDoY \ − −clearsign wiadomoscDoY X wysyła wiadomość J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Uwierzytelnienie / autentyzacja Y otrzymał podpisaną wiadomość wiadomoscOdX Y sprawdza podpis kluczem publicznym X gpg − −verify podpisanaWiadomoscDoY Y czyta wiadomość J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Tworzenie kluczy Wymiana kluczy publicznych Szyfrowanie Uwierzytelnienie Uwierzytelnienie / autentyzacja uży-szkodnik Z przechwycił podpisaną wiadomość wiadomoscOdX i zmodyfikował jej treść i / lub sygnaturę Z-owi wydaje się, że bez ciężkiej aparatury jest w stanie sfałszować wiadomość tak aby Y nie zauważył Y sprawdza podpis zmodyfikowanej wiadomości gpg − −verify podpisanaWiadomoscDoY otrzymuje: gpg : S i g n a t u r e made pon , 21 s t y 2 0 1 3 , 1 2 : 5 6 : 0 2 CET u s i n g RSA k e y ID A16C0C47 gpg : BAD s i g n a t u r e from ” I k s I k s i n s k i (X , X) <x@x . domena . p l>” Y usuwa wiadomość bez czytania i podejmuje środki zwiększające bezpieczeństwo (zmiana haseł, generowanie nowych kluczy) J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Zadanie Dla zainteresowanych Zadanie domowe Wygeneruj parę kluczy, eksportuj klucz publiczny i umieść na własnej stronie www / pliku .plan lub na forum na moodle Z moodle pobierz i zaimportuj klucz publiczny prowadzącego Wyślij do prowadzącego zaszyfrowaną wiadomość / z zaszyfrowanym załącznikiem Wyślij do prowadzącego podpisaną wiadomość / z podpisanym załącznikiem treścią wiadomości może być na plik z rozwiązaniem któregoś z wcześniejszych zadań domowych Punktacja: 0.5p. za zaszyfrowanie + 0.5p za podpisanie + 1p za wiadomość (załącznik) zaszyfrowaną i podpisaną jednocześnie. J. Piersa WSWZ 2013/2014 Laboratorium 21 Ćwiczenia GPG Zadania domowe Zadanie Dla zainteresowanych Dalsze stosowanie: Projekt implementujący bezpieczeństwo w warstwie sieci (ssl) na licencji gnu http://www.openssl.org/ Dokumentacja do interfejsu tworzenia certyfikatów http://www.openssl.org/docs/apps/CA.pl.html Plugin szyfrujący/autoryzujący do Thunderbirda https://addons.mozilla.org/pl/thunderbird/addon/enigmail/ J. Piersa WSWZ 2013/2014 Laboratorium 21