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

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

Nikt spoza rozmowy nie może przeczytać wiadomości.

Uwierzytelnianie edytuj

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

  • 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

  • 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

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

Natywnie edytuj

Te klienty mają wbudowane wsparcie komunikacji Off-the-Record.

Poprzez plug-in edytuj

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.).

Proxy edytuj

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:

Przypisy edytuj

  1. Nikita Borisov, Ian Goldberg, Eric Brewer: Off-the-Record Communication, or, Why Not To Use PGP.
  2. Protocol - WhisperSystems/TextSecure Wiki
  3. Notka o Wydaniu Kadu 1.0
  4. Plugin OTR dla Pidgina
  5. Plugin OTR dla Kopete. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2007-05-02)].
  6. kopete-otr in KDE for 4.1. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2008-03-28)].
  7. kopete-otr review request
  8. Plugin OTR dla Mirandy. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2007-05-13)].
  9. Trillian OTR. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2007-04-29)].
  10. irssi-otr. [dostęp 2008-10-12]. [zarchiwizowane z tego adresu (2008-12-26)].
  11. Plugin OTR dla Gajima. [dostęp 2012-03-07]. [zarchiwizowane z tego adresu (2013-08-01)].
  12. Komunikat na stronie projektu
  13. wtwOTRmessaging
  14. Psi+ w serwisie GitHub

Linki zewnętrzne edytuj