Off-the-record messaging
Off-the-Record Messaging (OTR) – protokół kryptograficzny, zapewniający silne szyfrowanie dla konwersacji błyskawicznych (tzw. instant messaging). OTR używa kombinacji algorytmu klucza symetrycznego AES, protokołu Diffiego-Hellmana i funkcji skrótu SHA-1. Poza uwierzytelnianiem i szyfrowaniem, OTR zapewnia doskonałą poufność przesyłania i szyfrowanie z możliwością zaprzeczania.
Podstawową inspiracją dla protokołu było zapewnienie możliwości kontroli dostępu do uczestników rozmowy, przy zachowaniu jej poufności, tak jak w przypadku prywatnej rozmowy w prawdziwym życiu, czy w dziennikarstwie przy rozmowie poza nagraniem. Ta metoda szyfrowania różni się od większości narzędzi szyfrujących, które bardziej przypominają pisanie i podpisywanie tekstu na papierze, który może być później użyty do zademonstrowania faktu, że nastąpiła komunikacja, zidentyfikowania jej uczestników i tematu rozmowy. Niestety, w większości przypadków, osoby używające zwyczajnego oprogramowania szyfrującego nie są tego świadome i nie zdają sobie sprawy, że do celów prywatnej rozmowy bardziej nadają się narzędzia OTR. Dlatego też pierwszy dokument stanowiący wprowadzenie został nazwany "Off-the-Record Communication, or, Why Not To Use PGP"[1]. (Komunikacja Off-the-Record, albo czemu nie używać PGP).
Protokół OTR został zaprojektowany przez kryptografów Iana Goldberga i Nikitę Borisova. Udostępnili otwartą bibliotekę dla komunikatorów internetowych wspierającą programistów aplikacji klienckich Instant Messaging, którzy chcą zaimplementować protokół OTR oraz specjalne proxy OTR dla klientów AIM, ICQ, and .Mac, które obsługują proxy.
Implementacja
[edytuj | edytuj kod]Poza szyfrowaniem i uwierzytelnianiem, które obecne są także w typowych aplikacjach kryptograficznych, jak PGP, GnuPG i X.509 (S/MIME), OTR oferuje także dwie dodatkowe funkcjonalności: zaprzeczalność i idealną poufność przekazu.
Szyfrowanie
[edytuj | edytuj kod]Nikt spoza rozmowy nie może przeczytać wiadomości.
Uwierzytelnianie
[edytuj | edytuj kod]Można być pewnym, że odbiorca jest tym, za kogo go uważamy.
Od wersji OTR 3.1 protokół obsługuje obopólne uwierzytelnienie użytkowników przy użyciu wspólnego sekretu poprzez protokół socialist millionaire. Ta funkcjonalność umożliwia użytkownikom weryfikację tożsamości drugiej strony i uniknięcie ataku typu man in the middle bez niewygody ręcznego porównywania odcisku klucza publicznego przez zewnętrzny kanał.
Zaprzeczalność (Deniability)
[edytuj | edytuj kod]- Deniable authentication: uwierzytelnianie zaprzeczalne – wiadomości w rozmowie nie posiadają podpisów cyfrowych (kluczy elektronicznych), zatem po zakończeniu rozmowy, każdy może sfałszować wiadomość tak, aby wyglądała na pochodzącą od jednego z uczestników rozmowy, co zapewnia, że niemożliwym jest udowodnić, że konkretna wiadomość pochodzi od konkretnej osoby. Jednak podczas rozmowy jest pewność, że przesyłane wiadomości są autentyczne i niezmienione.
Poufność
[edytuj | edytuj kod]- Perfect forward secrecy: Doskonała poufność przekazu – Wiadomości są szyfrowane jedynie tymczasowymi kluczami jednorazowymi AES, negocjowanymi przy użyciu protokołu Diffiego-Hellmana. Przechwycenie jakiegokolwiek długotrwałego klucza nie skutkuje przechwyceniem żadnej z poprzednich rozmów nawet, jeśli atakujący jest w posiadaniu szyfrogramu.
Ograniczenia
[edytuj | edytuj kod]Protokół nie obsługuje obecnie czatu wieloosobowego ani szyfrowanego transferu plików, ale może to zostać zaimplementowane w przyszłości. Wsparcie dla szyfrowanego audio ani video nie jest planowane.
Klienty obsługujące OTR
[edytuj | edytuj kod]Natywnie
[edytuj | edytuj kod]Te klienty mają wbudowane wsparcie komunikacji Off-the-Record.
- Adium (Mac OS X).
- climm (uniksopodobny), od (mICQ) 0.5.4.
- MCabber (uniksopodobny), od 0.9.4
- centerim (uniksopodobny), od 4.22.2
- Gibberbot (Android)
- Xabber (Android)
- TextSecure dla SMS (Android)[2]
- Kadu (wieloplatformowy), od wersji 1.0[3]
Poprzez plug-in
[edytuj | edytuj kod]Te klienty wymagają plug-inu do funkcjonowania Off-the-Record Messaging. Użycie pluginu pozwala na komunikację OTR przy użyciu wszystkich protokołów danego klienta (np. OSCAR, Jabber, MSN, YIM/YMSG itd.).
- Pidgin (wieloplatformowy), z oficjalną wtyczką dostępną ze strony OTR[4]
- Kopete (wieloplatformowy) z wtyczką innej firmy[5] jednak od 12 marca 2008 Kopete-OTR jest częścią oficjalnej gałęzi KDE SVN i jest dystrybuowane z wersją Kopete w KDE 4.1.0.[6][7]
- Miranda IM (Microsoft Windows), z wtyczką innej firmy[8]
- Trillian (Microsoft Windows), z wtyczką innej firmy[9]
- irssi, z wtyczką innej firmy[10]
- Gajim (wieloplatformowy), z wtyczką innej firmy[11] (obecnie nierozwijany i niezalecany[12])
- WTW (Microsoft Windows), z wtyczką innej firmy[13]
- Psi+ (wieloplatformowy) z wtyczką zewnętrzną[14]
Proxy
[edytuj | edytuj kod]Dla klientów, którzy nie mają natywnego wsparcia OTR dostępne jest proxy GUI. Oznacza to, że wiadomości są wysyłane do proxy niezaszyfrowane i zostają zaszyfrowane podczas przechodzenia przez lokalnie zainstalowany i uruchomiony program pośredniczący. Obecnie proxy rozwijane przez projekt OTR obsługuje tylko protokół OSCAR, zatem może być używane z .Mac, ICQ, i AIM. Proxy OTR używa protokołów SOCKS5, HTTPS i HTTP.
Niektóre klienty .Mac, ICQ i AIM, które obsługują proxy, ale nie obsługują OTR natywnie:
- AOL Instant Messenger (Mac OS X, Microsoft Windows)
- iChat (Mac OS X)
- Proteus (Mac OS X)
Przypisy
[edytuj | edytuj kod]- ↑ Nikita Borisov, Ian Goldberg, Eric Brewer: Off-the-Record Communication, or, Why Not To Use PGP.
- ↑ Protocol - WhisperSystems/TextSecure Wiki
- ↑ Notka o Wydaniu Kadu 1.0
- ↑ Plugin OTR dla Pidgina
- ↑ Plugin OTR dla Kopete. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2007-05-02)].
- ↑ kopete-otr in KDE for 4.1. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2008-03-28)].
- ↑ kopete-otr review request
- ↑ Plugin OTR dla Mirandy. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2007-05-13)].
- ↑ Trillian OTR. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2007-04-29)].
- ↑ irssi-otr. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2008-12-26)].
- ↑ Plugin OTR dla Gajima. [dostęp 2012-03-07]. [zarchiwizowane z tego adresu (2013-08-01)].
- ↑ Komunikat na stronie projektu
- ↑ wtwOTRmessaging
- ↑ Psi+ w serwisie GitHub
- Joseph Bonneau , Andrew Morrison , Finite-State Security Analysis of OTR Version 2 [PDF] [online], 21 marca 2006 [dostęp 2006-10-24] [zarchiwizowane z adresu 2009-10-24] .
Linki zewnętrzne
[edytuj | edytuj kod]- Strona projektu OTR (ang.)
- Opis protokołu (ang.)
- Off-the-Record Messaging: Użyteczne bezpieczeństwo i prywatność dla komunikatorów. csclub.uwaterloo.ca. [zarchiwizowane z tego adresu (2008-10-17)]., mowa Iana Goldberga na University of Waterloo (video).
- Raport: Vista, Word i Google Desktop eliminują funkcję TrueCrypt. heise-online.pl. [zarchiwizowane z tego adresu (2009-02-04)]. (szyfrowanie z możliwym zaprzeczaniem)
- Defeating Encrypted and Deniable File Systems: TrueCrypt v5.1a and the Case of the Tattling OS and Applications – publikacja analityczna, A. Czeskis, D.J.St. Hilaire, K. Koscher, S.D. Gribble, T. Kohn i B. Schneier.