Krytyczne podatności, które kompromitują szyfrowanie end-to-end w wielu klientach Matrix.

Twórcy platformy zdecentralizowanej komunikacji Matrix ostrzegli o krytycznych lukach w bibliotekach matrix-js-sdk, matrix-ios-sdk oraz matrix-android-sdk2, które pozwalają administratorom serwerów podszywać się pod innych użytkowników i czytać wiadomości w czatach z szyfrowaniem end-to-end (E2EE). Luki te wynikają z błędów w poszczególnych implementacjach protokołu Matrix i nie stanowią problemu samego protokołu. Obecnie projekt wydał aktualizacje problematycznych SDK oraz części klientów opartych na nich.

Do skutecznego przeprowadzenia ataku konieczne jest połączenie z kontrolowanym przez atakującego domowym serwera (homeserver — serwer przechowujący historię i konta klientów). Zastosowanie szyfrowania end-to-end po stronie klienta nie pozwala administratorowi serwera na ingerencję w wymianę wiadomości, ale ujawnione luki dają możliwość obejścia tej ochrony. Problemy dotyczą głównego klienta Matrix Element (dawniej Riot) dla Web, systemów desktopowych, iOS oraz Androida, a także zewnętrznych aplikacji klienckich, w tym Cinny, Beeper, SchildiChat, Circuli i Synod.im. Luki nie występują w bibliotekach matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go oraz matrix-nio, a także w aplikacjach Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks i Pantalaimon.

Wyróżnia się trzy główne scenariusze przeprowadzenia ataku:

  • Administrator serwera Matrix może zakłócić weryfikację opartą na emoji (SAS, Short Authentication Strings) przy użyciu cross-signatures i podszyć się pod innego użytkownika. Problem wynika z luki (CVE-2022-39250) w kodzie matrix-js-sdk, związanej z mieszaniem przetwarzania identyfikatorów urządzeń i kluczy przypisanych do cross-signature.
  • Atakujący kontrolujący działanie serwera może podrobić zaufanego nadawcę i przesłać fałszywy klucz w celu przechwytywania wiadomości od innych użytkowników. Problem wynika z luki w matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) oraz matrix-android-sdk2 (CVE-2022-39248), przez co klient niewłaściwie akceptował wiadomości adresowane do urządzeń, szyfrowane przy użyciu protokołu Megolm zamiast Olm, przypisując wiadomości do nadawcy Megolm, a nie rzeczywistego nadawcy.
  • Korzystając z wymienionych w poprzednim punkcie luk, administrator serwera może również dodać fałszywy klucz zapasowy do konta użytkownika, aby uzyskać klucze wykorzystywane do szyfrowania wiadomości.

Badacze, którzy zidentyfikowali lukę, zademonstrowali również ataki prowadzące do dodania nieautoryzowanego użytkownika do czatu lub podłączenia obcego urządzenia do konta użytkownika. Ataki te opierają się na tym, że wiadomości robocze używane do dodawania użytkowników do czatu nie są związane z kluczami twórcy czatu i mogą być generowane przez administratora serwera. Programiści projektu Matrix sklasyfikowali te luki jako nieznaczne, ponieważ takie manipulacje nie pozostaną niezauważone — w przypadku substytucji użytkownika zostanie on wyświetlony na liście użytkowników czatu, a przy dodaniu urządzenia pojawi się ostrzeżenie, a urządzenie zostanie oznaczone jako niezweryfikowane (w tym momencie, zaraz po dodaniu fałszywego urządzenia, zostaną rozpoczęte przekazy kluczy publicznych potrzebnych do odszyfrowania wiadomości).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster