Programiści systemu zdecentralizowanych komunikacji Matrix nowe wydania kluczowych aplikacji klienckich . Riot został napisany przy użyciu technologii webowych oraz frameworka React (wykorzystywany jest wrapper ). Wersja na desktopa oparta na platformie Electron. Kod na licencji Apache 2.0.
Kluczowym w nowych wersjach domyślnie włączono szyfrowanie end-to-end (E2EE) dla wszystkich nowych prywatnych czatów, do których dostęp uzyskuje się poprzez wysyłanie zaproszeń. Szyfrowanie end-to-end realizowane jest na podstawie własnego protokołu, który wykorzystuje algorytm (część protokołu Signal).
Dla uzgadniania kluczy w czatach z wieloma uczestnikami zastosowano rozszerzenie, optymalizowane do szyfrowania wiadomości z dużą liczbą odbiorców i umożliwiające odczytanie jednej wiadomości wielokrotnie. Szyfrogram wiadomości może być przechowywany na niespełniającym wymogów zaufania serwerze, ale nie może być odszyfrowany bez kluczy sesyjnych przechowywanych po stronie klienta (każdy klient ma swój klucz sesyjny). Przy szyfrowaniu dla każdej wiadomości na podstawie klucza sesji klienta generowany jest swój klucz, który autoryzuje wiadomość w powiązaniu z autorem. Przechwycenie klucza pozwala skompromitować tylko już wysłane wiadomości, ale nie wiadomości, które będą wysyłane w przyszłości. Realizacja metod szyfrowania przeszła audyt w organizacji NCC Group.
Drugą ważną zmianą jest aktywacja wsparcia dla potwierdzeń krzyżowych (Cross-signing), pozwalającego użytkownikowi z już potwierdzonej sesji weryfikować nową sesję. Wcześniej przy dołączaniu do czatu użytkownika z nowego urządzenia, pozostałym uczestnikom wyświetlało się ostrzeżenie, aby uniknąć podsłuchiwania w przypadku uzyskania dostępu przez osoby trzecie do konta ofiary. Potwierdzenie krzyżowe pozwala użytkownikowi weryfikować inne swoje urządzenia przy logowaniu i potwierdzać zaufanie do nowego logowania lub ustalać, że ktoś próbował się połączyć bez ich zgody.
Aby ułatwić konfigurację nowych logowania, udostępniono możliwość korzystania z kodów QR. Wnioski o weryfikację oraz wyniki są teraz zapisywane w historii w formie bezpośrednio wysyłanych wiadomości. Zamiast pojawiającego się okna modalnego, weryfikacja jest teraz przeprowadzana w pasku bocznym. Zwrócono też uwagę na dodatkową warstwę , która umożliwia łączenie się z zaszyfrowanymi czatami z klientów, które nie obsługują E2EE, a także działająca po stronie klienta wyszukiwania i indeksowania plików w pokojach czatowych z szyfrowaniem.
Przypominamy, że platforma do organizacji zdecentralizowanej komunikacji Matrix rozwija się jako projekt korzystający z otwartych standardów i kładący duży nacisk na zapewnienie bezpieczeństwa i prywatności użytkowników. Jako transport wykorzystany jest HTTPS+JSON z możliwością zastosowania WebSockets lub protokołu opartego na +. System tworzy się jako wspólnota serwerów, które mogą ze sobą współdziałać i łączą się w ogólną zdecentralizowaną sieć. Wiadomości są replikowane na wszystkich serwerach, do których podłączeni są uczestnicy wymiany wiadomości. Wiadomości rozprzestrzeniają się po serwerach analogicznie do tego, jak commity rozprzestrzeniają się między repozytoriami Git. W przypadku tymczasowego wyłączenia serwera wiadomości nie są tracone, lecz dostarczane użytkownikom po wznowieniu pracy serwera. Obsługiwane są różne warianty identyfikatorów użytkownika, w tym e-mail, numer telefonu, konto na Facebooku itp.

W sieci nie ma jednego punktu awarii ani kontroli nad wiadomościami. Wszystkie serwery, które obejmuje dyskusja, są równouprawnione.
Każdy użytkownik może uruchomić własny serwer i podłączyć go do ogólnej sieci. Możliwe jest tworzenie do interakcji Matrix z systemami opartymi na innych protokołach, na przykład, usługi do dwustronnej wysyłki wiadomości w IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp i Slack.
Oprócz natychmiastowej wymiany tekstowych wiadomości i organizowania czatów, system może być używany do przesyłania plików, wysyłania powiadomień,
organizowania telekonferencji, prowadzenia rozmów głosowych i wideo.
Matrix pozwala na korzystanie z wyszukiwania i nieograniczonego przeglądania historii rozmów. Obsługiwane są również takie zaawansowane funkcje jak powiadomienie o pisaniu, ocena obecności użytkownika w trybie online, potwierdzenie przeczytania, powiadomienia push, wyszukiwanie po stronie serwera, synchronizacja historii i stanu klientów.
Źródło: opennet.ru
