Bezpieczny protokół transportu w czasie rzeczywistym

Bezpieczny protokół transportu w czasie rzeczywistym ( SRTP ) to profil protokołu transportu w czasie rzeczywistym (RTP) przeznaczony do szyfrowania, uwierzytelniania i integralności wiadomości oraz ochrony przed atakami powtórkowymi do danych RTP zarówno w aplikacjach emisji pojedynczej , jak i multiemisji . Został opracowany przez niewielki zespół ekspertów ds. protokołu internetowego i kryptografii z firm Cisco i Ericsson . Po raz pierwszy została opublikowana przez   IETF w marcu 2004 r. jako RFC 3711 .

Ponieważ RTP towarzyszy protokół RTP Control Protocol (RTCP), który jest używany do kontrolowania sesji RTP, SRTP ma siostrzany protokół o nazwie Bezpieczny RTCP ( SRTCP ); bezpiecznie zapewnia te same funkcje SRTP, które są dostarczane przez RTCP do RTP.

Wykorzystanie SRTP lub SRTCP jest opcjonalne w aplikacjach RTP lub RTCP; ale nawet jeśli używane są SRTP lub SRTCP, wszystkie dostępne funkcje (takie jak szyfrowanie i uwierzytelnianie) są opcjonalne i można je oddzielnie włączać lub wyłączać. Jedynym wyjątkiem jest funkcja uwierzytelniania wiadomości, która jest niezbędna i wymagana przy korzystaniu z SRTCP.

Szyfrowanie przepływu danych

SRTP i SRTCP używają Advanced Encryption Standard (AES) jako domyślnego szyfru . Zdefiniowano dwa tryby szyfrowania , które umożliwiają użycie szyfru blokowego AES jako szyfru strumieniowego :

Segmented Integer Counter Mode
Typowy tryb licznika , który pozwala na losowy dostęp do dowolnych bloków, co jest niezbędne dla ruchu RTP przebiegającego przez zawodną sieć z możliwą utratą pakietów. W ogólnym przypadku w roli licznika można użyć prawie dowolnej funkcji , zakładając, że funkcja ta nie powtarza się przez dużą liczbę iteracji. Ale standardem szyfrowania danych RTP jest zwykły licznik przyrostowy liczb całkowitych. AES działający w tym trybie jest domyślnym algorytmem szyfrowania, z domyślnym rozmiarem klucza 128 bitów i domyślnym kluczem sesyjnym długość 112 bitów.
f8-mode
Odmiana trybu sprzężenia zwrotnego wyjścia , ulepszona tak, aby można ją było wyszukiwać i ze zmienioną funkcją inicjalizacji. Domyślne wartości klucza szyfrowania i klucza soli są takie same jak dla AES w trybie licznika. (AES działający w tym trybie został wybrany do użytku w komórkowych 3G .)

Oprócz szyfru AES, SRTP umożliwia całkowite wyłączenie szyfrowania, używając tak zwanego szyfru NULL , który można przyjąć jako alternatywny obsługiwany szyfr. W rzeczywistości szyfr NULL nie wykonuje żadnego szyfrowania; Algorytm szyfrowania działa jako funkcja tożsamości i kopiuje strumień wejściowy do strumienia wyjściowego bez żadnych zmian. Implementacja tego trybu szyfrowania jest obowiązkowa w każdym systemie zgodnym z SRTP. Jako taki, może być używany, gdy nie są wymagane gwarancje poufności zapewniane przez SRTP, podczas gdy inne funkcje SRTP, takie jak uwierzytelnianie i integralność wiadomości, mogą być używane.

Dzięki SRTP można łatwo dostosować nowe algorytmy szyfrowania, standard SRTP stanowi, że nowe algorytmy szyfrowania mogą być wprowadzane jedynie poprzez publikację nowej towarzyszącej standardowej ścieżki RFC , która musi jasno definiować nowy algorytm.

Uwierzytelnianie, integralność i ochrona przed odtwarzaniem

Wymienione powyżej algorytmy szyfrowania same w sobie nie zapewniają integralności wiadomości, osoba atakująca nie będzie w stanie odszyfrować danych, ale może sfałszować lub odtworzyć wcześniej przesłane dane. Dlatego standard SRTP zapewnia również środki do zabezpieczenia integralności danych i bezpieczeństwa przed odtwarzaniem.

Do uwierzytelnienia wiadomości i ochrony jej integralności wykorzystywany jest algorytm HMAC-SHA1 . Daje to 160-bitowy wynik, który jest następnie obcinany do 80 lub 32 bitów, aby stać się tagiem uwierzytelniającym dołączanym do każdego pakietu. HMAC jest obliczany na podstawie ładunku pakietu i materiału z nagłówka pakietu, w tym numeru sekwencyjnego pakietu. Aby chronić przed atakami powtórek , odbiorca przechowuje numery sekwencyjne poprzednio odebranych komunikatów, porównuje je z numerem sekwencyjnym w każdym nowym odebranym komunikacie i przyjmuje nowy komunikat tylko wtedy, gdy nie został on wcześniej odebrany. Podejście to opiera się na ochronie integralności, aby uniemożliwić modyfikację numeru sekwencyjnego bez wykrycia.

Wyprowadzenie klucza

Funkcja wyprowadzania klucza służy do uzyskiwania różnych kluczy używanych w kontekście kryptograficznym (klucze i sole szyfrujące SRTP i SRTCP, klucze uwierzytelniające SRTP i SRTCP) z jednego klucza głównego w bezpieczny kryptograficznie sposób. Zatem protokół zarządzania kluczami musi wymieniać tylko jeden klucz główny, wszystkie niezbędne klucze sesyjne są generowane przez zastosowanie funkcji wyprowadzania klucza.

Okresowe stosowanie funkcji wyprowadzania klucza uniemożliwia atakującemu zebranie dużej ilości tekstu zaszyfrowanego zaszyfrowanego jednym kluczem sesyjnym. Zapewnia to ochronę przed niektórymi atakami, które są łatwiejsze do przeprowadzenia, gdy dostępna jest duża ilość tekstu zaszyfrowanego. Ponadto wielokrotne zastosowanie funkcji wyprowadzania klucza zapewnia bezpieczeństwo wsteczne i przyszłe w tym sensie, że złamany klucz sesyjny nie zagraża innym kluczom sesyjnym uzyskanym z tego samego klucza głównego. Oznacza to, że nawet jeśli atakującemu udało się odzyskać klucz sesyjny, nie jest on w stanie odszyfrować wiadomości zabezpieczonych poprzednimi i późniejszymi kluczami sesyjnymi pochodzącymi z tego samego klucza głównego. (Zauważ, że klucz główny, który wyciekł, ujawnia oczywiście wszystkie pochodzące z niego klucze sesyjne).

SRTP opiera się na zewnętrznym protokole zarządzania kluczami w celu skonfigurowania początkowego klucza głównego. Dwa protokoły zaprojektowane specjalnie do użytku z SRTP to ZRTP i MIKEY . Istnieją również inne metody negocjowania kluczy SRTP. Istnieje kilku dostawców oferujących produkty korzystające z SDES .

Interoperacyjność i aplikacje

Zobacz Porównanie oprogramowania VoIP § Bezpieczne oprogramowanie VoIP dla telefonów, serwerów i aplikacji obsługujących SRTP.

Telefonia (VoIP)

Obsługa przeglądarki internetowej

Znane przeglądarki obsługujące jakiś rodzaj SRTP

Rodziny przeglądarek internetowych z pewnym poziomem SRTP w głównych gałęziach aktualizacji z głównego systemu renderowania

Jak dotąd nie istnieje żadna znana obsługa SRTP dla tekstowych przeglądarek internetowych. Chociaż SRTP może być używany do działania w sieci VPN , w połączeniu z przeglądarkami internetowymi, nie są znane żadne sieci VPN, które go używają.

Dokumenty norm

  • RFC 3711 , proponowany standard, protokół bezpiecznego transportu w czasie rzeczywistym (SRTP)
  • RFC 4771 , Proponowany standard, Integrity Transform Carrying Roll-Over Counter dla bezpiecznego protokołu transportu w czasie rzeczywistym (SRTP)
  • RFC 3551 , Standard 65, profil RTP dla konferencji audio i wideo z minimalną kontrolą
  • RFC 3550 , Standard 64, RTP: protokół transportowy dla aplikacji czasu rzeczywistego
  • RFC 2104 , informacyjny, HMAC: Haszowanie z kluczem do uwierzytelniania wiadomości
  • RFC 7714 , proponowany standard, uwierzytelnione szyfrowanie AES-GCM w protokole bezpiecznego transportu w czasie rzeczywistym (SRTP)