Kryptowaluty i kryptografia #3 – Szyfrowanie OTR wiadomości
Szyfrowanie OTR to protokół który zdecydowanie przypadnie wam do gustu. W poprzednim artykule każdy mógł dowiedzieć się jak szyfrować tekst przy użyciu GPG. Jednak jest to użyteczne podczas wymieniania się dużymi wiadomościami albo kiedy trzeba wysłać ich jedynie parę. Co zrobić w momencie gdy chcemy z kimś coś poustalać? Wtedy ciągłe szyfrowanie i odszyfrowywanie będzie bardzo czasochłonne. W tym artykule znajdziecie rozwiązanie.
Szyfrowanie OTR (ang. Off the record) protokół kryptograficzny, zapewniający silne
szyfrowanie dla konwersacji błyskawicznych (tzw. instant messaging).
wikipedia.org
Szyfrowanie OTR, z czym to się je?
Największa moim zdaniem różnica między GPG a OTR pojawia się gdy założymy, że NSA trzyma zaszyfrowaną korespondencję do czasu kiedy kryptoanaliza osiągnie wystarczający poziom. Jeśli mówimy o wiadomościach GPG to łatwo zweryfikować kto był nadawcą, w końcu mamy wspominane podpisy cyfrowe. Co się dzieje jednak w drugim przypadku?
W przeciwieństwie do tego GPG, OTR cechuje się uwierzytelnianiem zaprzeczalnym. Wiadomości nie posiadają podpisów cyfrowych więc po zakończeniu rozmowy nie można powiązać konkretnej wiadomości z konkretną osobą. Jednak w ciągu rozmowy, można być pewnym, że wiadomości są autentyczne i niezmienione.
Mało tego, podczas używania OTR możemy cieszyć się doskonałą poufnością przekazu. Oznacza to, że przechwycenie klucza nie skutkuje przechwyceniem żadnej z poprzednich rozmów, nawet jeśli atakujący jest w posiadaniu szyfrogramu. Dzieje się tak ponieważ szyfrowanie używa tymczasowych kluczy jednorazowych AES.
Niestety nie ma możliwości tworzenia konferencji OTR, ani audio ani video, ani przesyłania plików. Chociaż rozmowy wieloosobowe jak i przesyłanie plików może będzie zaimplementowane w przyszłości.
Co będzie potrzebne?
OTR można używać za pomocą różnych programów. Ja postanowiłem przedstawić wam jak zainstalować go w postaci wtyczki w popularnym komunikatorze Pidgin.
Najpierw ściągamy niezbędne oprogramowanie. Będzie to wspomniany już komunikator z tej strony oraz wtyczka, która pozwoli na używanie OTR dostępna tutaj. Za pomocą poznanej wcześniej obsługi GPG można sprawdzić podpis cyfrowy pliku klikając na “sig”.
Po zainstalowaniu najpierw Pidgina a następnie łatki OTR uruchamiamy komunikator. Z racji tego, że obsługuje on różne platformy to od nas zależy jakiego protokołu będziemy używać. Może być to Gadu-Gadu, AIM, ICQ i wiele innych, kiedyś obsługiwał również protokół Facebooka. Było to ciekawe rozwiązanie bo mogliśmy pisać w komunikatorze a w wiadomościach na FB było widać wyłącznie szyfr. Teraz można to zmienić dodatkowymi wtyczkami do których link jest na ich fanpage. Ale trochę to psuje planowaną prywatność.
Na potrzeby artykułu wybierzemy najłatwiejszą metodę – protokół IRC.
Ustawienie konta i wtyczki OTR
Wybieramy Accounts -> Manage Accounts -> Add
Jako protokół wybieramy IRC.
Następnie tworzymy konto z nazwą, która nie będzie z nami nijak powiązana i będzie na tyle losowa aby nikt inny nie zajął nam nicku na serwerze IRC bo wtedy się zacznie to trochę sypać.
Nie trzeba wpisywać żadnego hasła.
Następny krok to uruchomienie wtyczki OTR. Wybieramy Tools -> Plugins -> Tak jak na obrazku zaznaczamy kwadracik przy “Off-the-Record messaging”
Po kliknięciu dwa razy na tekst “Off-the-Record messaging” w “Plugins” otworzy nam się okno z istotnymi informacjami. Jak widać nie mamy wygenerowanego jeszcze swojego klucza, niezwłocznie klikamy “Generate”.
Po chwili pojawi się “Fingerprint”. Jest to krótka sekwencja bitów służąca do rozpoznania dłuższego klucza publicznego.
Weryfikacja i możemy zaczynać
Do rozpoczęcia szyfrowanej rozmowy z drugą osobą, musimy wiedzieć pod jakim pseudonimem jej szukać na IRCu (albo jaki ma numer Gadu-Gadu i tak dalej). Po otwarciu okna rozmowy rzuca się w oczy czerwony napis “Not private”. Oznacza on, że rozmowa nie jest szyfrowana.
Jeśli rozmówca również ma wszystko ustawione to powinniśmy zobaczyć:
Aby zweryfikować rozmówcę oprogramowanie daje nam 3 możliwości.
- Zadanie pytania na które tylko rozmówca będzie znał odpowiedź. Istotne aby wielkość liter oraz polskie znaki się zgadzały. Co do samego pytania to ograniczeniem jest tylko wyobraźnia i to jak dobrze zna się rozmówcę. “Jaki jest najtrudniejszy boss w grze X”, “Jaką pizze wczoraj zamówiliśmy” itd.
- Potwierdzenie przez podanie wcześniej ustalonego hasła.
- Weryfikacja przez sprawdzenie Fingerprintu – można chociażby zadzwonić do kogoś aby przedyktował. Potem na dole zaznaczamy, że dokonaliśmy weryfikacji tak jak widać na obrazku poniżej i klikamy „Authenticate”
Po zweryfikowaniu napis zmieni się na zielone “Private” i możemy bezpiecznie pisać. Pamiętajcie, że domyślnie wiadomości nie zapisują się w historii.
Jak rozmówca zakończy rozmowę i wyłaczy czat to ikona zmieni się na poniższą.
Mam nadzieję, że po tym poradniku:
- wiecie kiedy lepiej stosować GPG a kiedy OTR,
- umiecie zainstalować wszystko co potrzebne do rozmowy OTR,
- wiecie gdzie sprawdzić swój fingerprint,
- umiecie zweryfikować rozmówcę
Zajęcia praktyczne dla czytelników Bithub.pl
Stworzyłem konto na protokole IRC o nazwie: bithubJZ
Zweryfikowanie przez:
- Fingerprint: 3C61E2A6 E68351E6 A6EBA016 6008CA12 92DF2173
- Hasło: bithub.pl
Po umówieniu się przez maila [email protected] na godzinę pojawię się online. Istotny jest tutaj fingerprint na wypadek jakby ktoś postanowił zrobić również takie konto i się podszywać.
To samo co wyżej ale z podpisem GPG znajdziecie tutaj.
Pozostałe artykuły z serii Kryptowaluty i Kryptografia:
Kryptowaluty i kryptografia #1
Kryptowaluty i kryptografia #2 – Szyfrowanie wiadomości
Kryptowaluty i kryptografia #4 – Bitmessage