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