(Nie)bezpieczna komunikacja
- 06.11.2013
Analiza komunikatora iMessage udowodniła, że mimo reklamowania szyfrowania treści w tranzycie między użytkownikami treść wiadomości może być deszyfrowana przez Apple.
Podczas konferencji Hack in the Box w Kuala Lumpur w Malezji badacze udowodnili, że konstrukcja komunikatora i niektóre z założeń Apple’A umożliwiają przejęcie całej komunikacji pojedynczego użytkownika. Zabezpieczenia te nie dają gwarancji bezpieczeństwa komunikacji przed przejęciem przez agencje rządowe Stanów Zjednoczonych, niezależnie od kraju, w którym się z korzysta z usługi.
Cyril Cattiaux, pracownik firmy Quarkslab, twórca oprogramowania przeznaczonego do łamania zabezpieczeń iOS, mówi: „Reklamowane przez Apple zabezpieczenia kryptograficzne są po prostu kłamstwem”.
Chociaż nie ma dowodów, że ktokolwiek z Apple lub agencji rządowych czyta te wiadomości, sam fakt, że są tylne drzwi, powinien zwrócić uwagę szefów bezpieczeństwa w firmach, które korzystają z komunikatora firmy Apple. Chociaż przepływ informacji jest dostatecznie zabezpieczony przed przechwyceniem przez osoby postronne, nie zapewnia bezpieczeństwa klasy Enterprise, szczególnie firmom spoza USA.
Jak naprawdę działa iMessage
Przy przekazywaniu wiadomości Apple używa kryptografii klucza publicznego, ale nie ujawnia oficjalnie ani szczegółów, ani stosowanego do tego celu protokołu. Informacje należy uzyskać metodą inżynierii wstecznej. Gdy użytkownik tego komunikatora wysyła wiadomość, urządzenie z systemem iOS pobiera klucz publiczny z niepublicznego repozytorium kluczy (jest to serwer kontrolowany przez Apple), a następnie przekazuje wiadomość do odbiorcy.
Badacze uważają, że nie da się stwierdzić, że wiadomość została doręczona wyłącznie do jednego odbiorcy, a nie np. także do NSA. Podstawową podatnością według Cyrila Cattiaux jest „pełna kontrola firmy Apple nad katalogiem publicznych kluczy”.
Użytkownik systemu iOS nie ma możliwości weryfikacji kluczy, a zatem nie można wykryć ataku pośrednictwa jedynie za pomocą analizy terminala. System iOS nie przechowuje kluczy publicznych przeznaczonych do wykorzystania w oprogramowaniu iMessage, dlatego też nie da się wykryć podmiany klucza, czyli stwierdzenia (lub nie) przekierowania wiadomości do innego odbiorcy.
Komunikacja za pomocą komunikatora iMessage nie jest bezpieczniejsza, niż w przypadku innych komunikatorów, które szyfrują połączenia, np. Google Talk czy Jabber. Oto fakty związane z zabezpieczeniem iMessage:
- Komunikacja w tranzycie z serwerem Apple'a jest realizowana za pomocą SSL/TLS, a zatem przechwycenie treści przez sniffer jest mało prawdopodobne. Dla porównania, komunikacja za pomocą popularnego GG (dawniej: Gadu-Gadu) na porcie 8074 nadal może odbywać się w otwartym połączeniu, bez szyfrowania treści.
- Nie ma opcji wskazania zaufanego certyfikatu (certificate pinning). Oznacza to, że można przejąć kontrolę nad komunikacją po wprowadzeniu obcego root CA do łańcucha zaufania. Inaczej działa system weryfikacji poprawek wydawanych przez Microsoft, gdyż „wierzy” tylko paczkom podpisanym przez tę firmę.
- Przy podpisywaniu wiadomości stosuje się klucz ECDSA o długości 256 bitów, do szyfrowania – klucz RSA 1280 bitów. To dostateczne zabezpieczenie.
- Wymiana kluczy jest przeprowadzana przez serwer ESS pod pełną kontrolą firmy Apple. W przypadku BlackBerry szyfrowanie odbywa się nieco inaczej, ale wiadomości przesyłane za pomocą komunikatora BlackBerry Messenger również mogą być przechwycone przez agencje rządowe. Informacje na ten temat publikowano przy okazji zamieszek w Londynie w 2011 r.
- Istnieje techniczna możliwość dodania przez Apple dodatkowego klucza odbiorcy, dzięki czemu iMessage wyśle dodatkową kopię tam, gdzie Apple uzna za stosowne.
Wnioski:
Komunikator iMessage jest zadziwiająco dobrze zabezpieczony przed przypadkowym hakerom i podsłuchem komunikacji za pomocą sniffera. Nie jest to jednak zabezpieczenie klasy Enterprise, gdyż Apple ma pełną kontrolę nie tylko nad wymianą kluczy, ale także nad ich repozytorium oraz mechanizmem zaufania. To oznacza, że może takie wiadomości przesłać do dowolnego odbiorcy.