Matrix (protokoll)

Matrix logo

Matrix (mõnikord stiliseeritud kui [ matrix ]) on avatud standard ja sideprotokoll reaalajas suhtlemiseks[1].

Protokolli eesmärk on muuta reaalajas suhtlus erinevate teenusepakkujate vahel sujuvaks, toimides sarnaselt tavapärasele e-posti edastusprotokollile, võimaldades kasutajatel, kellel on ühe sideteenuse pakkuja kontod, suhelda kasutajatega teiselt teenusepakkujalt.

Matrix defineerib komplekti avatud API-sid detsentraliseeritud suhtluse jaoks, mis sobivad andmete turvaliseks avaldamiseks, säilitamiseks ja tellimiseks üle globaalsete avatud serverite föderatsiooni, millel puudub keskne juhtimispunkt. Kasutusalad hõlmavad kiirsõnumite (IM), internetitelefoni (VoIP), asjade interneti (IoT) suhtlust ja olemasolevate suhtlussüsteemide ühendamist - luues aluse uuele avatud reaalajas suhtluse ökosüsteemile[2].

Algne projekt loodi Amdocsi sees, kui Matthew Hodgson ja Amandine Le Pape töötasid vestlustööriista "Amdocs Unified Communications"[3] kallal.

Matrix on avatud lähtekoodiga projekt, mille arendamist veab Matrix.org sihtasutus. Eesmärk on luua avatud standard detsentraliseeritud suhtluseks. Selle arendust juhib peamiselt Element, Ühendkuningriigis asuv ettevõte, mis oli varem tuntud kui New Vector Limited.

Matrix on föderaalne süsteem, mis koosneb peamiselt koduserveritest, tubadest (ingl rooms) ja kasutajatest. Kogu suhtlus Matrixi kasutajate vahel toimub toas. Kui kasutaja (Alice) soovib toas teistega suhelda, peab ta esmalt saatma sõnumid oma koduserverisse (matrix.alice.com) kasutades Kliendi-Server API-t[2]. Koduserver kasutab seejärel Server-Server API-t[2], et sünkroniseerida sõnumeid teiste tubas osalevate koduserveritega. Lõpuks saavad sihtkasutajate kliendid (Bob ja Charlie) oma koduserverilt sünkroniseeritud sõnumid[4].

Krüpteerimine

[muuda | muuda lähteteksti]

Olm teek pakub end-to-end krüpteerimist ruumipõhiselt, kasutades Double Ratchet algoritmi implementatsiooni [5]. See tagab, et ruumis talletatud vestlusandmed on loetavad ainult ruumi osalejatele. Kui krüpteerimine on aktiveeritud, edastatakse Matrixis andmed vaid šifreeritult, nii et Matrixi serverid näevad neid ainult šifritekstina, ning neid saavad dešifreerida vaid ruumi volitatud osalejad.

Olm-i Double Ratchet algoritmi rakendus, on väga sarnane Signal-protokolli kasutatavale algoritmile. See võimaldab luua üks-ühele privaatse sidekanali, millel on täiuslik edasisalajasus ja isetervenevad omadused.[6]

Megolm on AES-põhine ühekordne ratšett grupivestlusteks suure hulga osalejatega, kus Olmi kasutamine oleks kulukas, sest see tähendaks iga osaleja jaoks iga sõnumi eraldi krüpteerimist. Megolm jätab selle kõrvale, krüpteerides sõnumid sümmeetrilise ratšetiga, jagades ühe korra iga osalejaga ja seejärel taaskasutades sõnumite jada jaoks enne pöörlemist.[6]

On kaks peamisi rakendusi:

  • vodozemac on libolm Rust-reimplementatsioon. Põhimõtteliselt on see Olmi ja Megolmi krüptograafiliste põrkmehhanismide rakendamine koos kõrgetasemelise API-ga, et hõlpsasti luua krüptograafilisi sidekanaleid, mis kasutavad neid põrkmehhanisme teiste osapooltega.[6] Seda on auditeerinud Least Authority, kelle tulemused on avalikult kättesaadavad[7] ja Matrixi meeskond on nendega tegelenud[8].
  • libolm oli Matrixi esimene Double Ratchet algoritmi teostus, nüüd aegunud. On läbinud krüptograafilise ülevaate NCC Group poolt, mille tulemused on avalikult kättesaadavad[9] ja Matrixi meeskond on nendega tegelenud.[10]

Ökosüsteem

[muuda | muuda lähteteksti]

Matrixi abil vestlemiseks on vaja klienti. Kõige kasutatavad on järgmised klientid:

  • Element - täisfunktsionaalne platvormideülene klient, mida arendab ja hooldab Element.
  • Element X - uue põlvkonna klient mobiilplatvormidele, mis kasutab Matrix-protokolli järgmise (2.0) versiooni.[11]
  • FluffyChat on avatud lähtekoodiga Matrix klient, mis on kirjutatud Flutteris. Rakenduse eesmärk on luua hõlpsasti kasutatav kiirsuhtlus, mis on avatud lähtekoodiga ja kõigile juurdepääsetav.[12]

Koduserverid

[muuda | muuda lähteteksti]

Koduserver vastutab andmete salvestamise, sõnumite saatmise ja vastuvõtmise jms funktsioonide eest. Koduserverit saab ise juhitavale infrastruktuurile rakendada igaüks. Kõige sagedamini kasutatakse järgmist serveritarkvara:

  • Synapse on avatud lähtekoodiga Matrixi koduserveri rakendus, mis on kirjutatud Python/Twisted kasutades. Seda arendab ja hooldab Element.[13]
  • Dendrite on Go kasutades kirjutatud teise põlvkonna Matrixi koduserver. Selle eesmärk on pakkuda Synapse'ile tõhusat, usaldusväärset ja skaleeritavat alternatiivi. Seda arendab ja hooldab Element.[14]
  • Conduit Matrixi koduserveri Rust implementatsioon.[15]
  • conduwuit on Conduit-i kõvakahvel.[16]

Suurim Matrixi koduserver on matrix.org, mida juhivad Matrix protokolli arendajad.

Prantsuse valitsuse ministeeriumidevaheline digiteenus lõi Tchapi, Matrix-põhiset krüpteeritud sõnumsideteenuse avalike teenistujate jaoks ainult konfidentsiaalse teabe vahetamiseks. Projekti peamisteks eesmärkideks on sidevõrgu turvalisuse tagamine ja teenuse koostalitlusvõime parandamine erinevate haldusasutuste vahel[17].

TI-Messenger

[muuda | muuda lähteteksti]

Telematics Infrastructure Messenger (lühendatult TI-Messenger, TI-M) on turvaline sõnumivahetussüsteem, mis on välja töötatud Saksamaa tervishoiusektori jaoks. TI-Messenger on osa telemaatika infrastruktuurist ja täidab kõik Saksamaa andmekaitse ja andmeturbe juriidilised nõuded. TI-Messenger põhineb Matrixi protokollil.[18]

BundesMessenger

[muuda | muuda lähteteksti]

Saksa relvajõudude IT-teenuse pakkuja BWI on välja töötanud avatud lähtekoodiga tehnoloogial põhineva turvalise sõnumiplatvormi BundesMessenger. Seda platvormi, mida Bundeswehr on 2021. aastast BwMessengeri nime all kasutanud, laiendatakse nüüd avalikus halduses kasutamiseks.[19]

BundesMessenger on Element klienti muudetud versioon ja toimib Saksamaa avaliku halduse vajadustele kohandatud kaasaegse suhtlusplatvormi esiotsa. Põhineb Matrixi protokollil.[19]

Haavatavused

[muuda | muuda lähteteksti]

2021. aasta Septembris avaldas Royal Holloway Ülikoolist uurijate meeskond uuringu, mis teatab mitmest haavatavusest, mis õõnestavad Matrixi autentimise ja konfidentsiaalsuse garantiisid. Kõik uurijate kirjeldatud rünnakud vajavad pahatahtliku või kompromiteeritud koduserveri abi, mis sihib sellega ühenduvaid kasutajaid. Mõnel juhul on kogenud kasutajatel võimalusi tuvastada, et rünnak on käimas.[20][21] Haavatavused oli parandatud[21].

  1. King, Bertel (27. oktoober 2021). "What Is the Matrix Protocol and How Does It Work?". MUO (inglise). Vaadatud 8. detsembril 2024.
  2. 2,0 2,1 2,2 "Matrix Specification". spec.matrix.org (inglise). Vaadatud 8. detsembril 2024.
  3. "Amdocs | Products | Unified Communications". web.archive.org. 3. oktoober 2014. Originaali arhiivikoopia seisuga 3. oktoober 2014. Vaadatud 8. detsembril 2024.
  4. H. Li, Y. Wu, R. Huang, X. Mi, C. Hu and S. Guo, "Demystifying Decentralized Matrix Communication Network: Ecosystem and Security," 2023 IEEE 29th International Conference on Parallel and Distributed Systems (ICPADS), Ocean Flower Island, China, 2023, lk. 260-267, doi: 10.1109/ICPADS60453.2023.00047.
  5. Ermoshina, K., Musiani, F., Halpin, H. (2016). End-to-End Encrypted Messaging Protocols: An Overview. In: Bagnoli, F., et al. Internet Science. INSCI 2016. Lecture Notes in Computer Science(), vol 9934. Springer, Cham. https://doi.org/10.1007/978-3-319-45982-0_22
  6. 6,0 6,1 6,2 "vodozemac - Rust". docs.rs. Vaadatud 8. jaanuaril 2025.
  7. Least Authority TFA GmbH (30. märts 2022). "Security Audit Report | vodozemac | Matrix" (PDF).
  8. "Independent public audit of Vodozemac, a native Rust reference implementation of Matrix end-to-end encryption". matrix.org (inglise). Vaadatud 8. jaanuaril 2025.
  9. "Matrix Olm Cryptographic Review". web.archive.org. 20. oktoober 2018. Originaali arhiivikoopia seisuga 20. oktoober 2018. Vaadatud 8. jaanuaril 2025.{{netiviide}}: CS1 hooldus: robot: algse URL-i olek teadmata (link)
  10. "Matrix's 'Olm' End-to-end Encryption security assessment released - and implemented cross-platform on Riot at last!". matrix.org (inglise). Vaadatud 8. jaanuaril 2025.
  11. "Deep dive into Element X!". Element Blog. 29. oktoober 2024. Vaadatud 8. jaanuaril 2025.
  12. Krille-chan (8. jaanuar 2025), krille-chan/fluffychat, vaadatud 8. jaanuaril 2025
  13. element-hq/synapse, Element, 8. jaanuar 2025, vaadatud 8. jaanuaril 2025
  14. element-hq/dendrite, Element, 8. jaanuar 2025, vaadatud 8. jaanuaril 2025
  15. "Famedly / Conduit · GitLab". GitLab (inglise). Vaadatud 8. jaanuaril 2025.
  16. Strawberry 🍓🦴, June Clementine (8. jaanuar 2025), girlbossceo/conduwuit, vaadatud 8. jaanuaril 2025
  17. Anonymous (18. oktoober 2019). "Tchap messaging service | Interoperable Europe Portal". interoperable-europe.ec.europa.eu (inglise). Vaadatud 8. detsembril 2024.
  18. "TI-Messenger". Vaadatud 8. detsembril 2024.
  19. 19,0 19,1 Thévenet, Axel (16. juuni 2023). "BundesMessenger: shared, reused and interoperable. | Interoperable Europe Portal". interoperable-europe.ec.europa.eu (inglise). Vaadatud 8. jaanuaril 2025.
  20. Martin R. Albrecht, Sofía Celi, Benjamin Dowling and Daniel Jones. Practically-exploitable Cryptographic Vulnerabilities in Matrix. 2022
  21. 21,0 21,1 Goodin, Dan (28. september 2022). "Serious vulnerabilities in Matrix's end-to-end encryption have been patched". Ars Technica (Ameerika inglise). Vaadatud 8. detsembril 2024.