Matrix titkosítás
A Matrix által alkalmazott titkosítás használatáról, technikai részleteiről, és néhány hasznos tippről van ebben a cikkben szó.
Ez a doksi nagyon is fejlesztés alatt áll még.
Arra való, hogy ne kelljen minden új felhasználónak elmagyarázni, mi hogyan működik.
Kérdéseket, észrevételeket a #matrix-utmutatok:grin.hu
Matrix szobába várjuk. A kérdésedbe írd bele a #question
taget!
Nyugodtan kérdezhetsz chatben, és kiegészítem ezt a cikket a válasszal. Tehát ez amolyan GYIK.
De mielőtt kérdezel, olvasd végig az egész cikket, mert lehet, hogy már benne van a válasz.
Mi az az E2E (vagy E2EE)?
End to End Encryption rövidítése (magyarul végpontok közötti titkosítás). Azt jelenti, hogy csak az üzenet küldője, és címzettje tudják elolvasni a titkosított üzenetet, mert csak nekik vannak meg a titkosítási kulcsok. Az üzenet továbbítása során senki más nem tudja elolvasni. Akinek nincs meg egy üzenet kulcsa, az egyáltalán nem tudja elolvasni. Ha neked sincs meg (pl. elveszted), akkor te sem tudod. A Matrix titkosított beszélgetések E2EE-t használnak. Ez azzal a nehézséggel jár, hogy vigyázni kell a titkosítási kulcsokra, mert, ha elveszted őket (törlődnek például), akkor egyáltalán nem fogod tudni elolvasni a régebbi üzeneteket. Ebben a cikkben szó van arról, hogy hogyan lehet kezelni ezeket a kulcsokat.
Mi a különbség az ellenőrzés és a hitelesítés között?
Semmi. Mindkét kifejezés használható, ugyan azt jelentik.
Kulcsok tárolása
A titkosított üzenetek kulcsai az eszközeiden vannak tárolva. Csak ott. A szerver nem ismeri a kulcsokat, ezért az üzemeltetője nem tudja elolvasni az üzeneteket. Ha kilépsz az adott eszközről, vagy törlöd az ott tárolt adatokat, akkor az azon lévő kulcsok is törlődnek, mivel azok is helyileg vannak tárolva. Így nem fogod tudni elolvasni azokat a titkosított üzeneteket, amiket ezekkel a kulcsokkal titkosítottak. Ennek megelőzésére van néhány lehetőség:
- belépve maradsz egy másik eszközön, így ott megmaradnak a kulcsok ottani másolatai, és ha legközelebb belépsz, ellenőrzés után (QR kód, emoji összehasonlítás) az újonnan belépett eszköz elkéri a régebbi eszköztől a kulcsokat, amikor ezt írja ki egy üzenet mellett: “Titkosítási kulcsok újrakérése (a többi eszközödtől)”
- exportálod a kulcsokat egy (jelszóval védett) fájlba, amit elmenthetsz a számítógépedre/telefonodra, és amikor legközelebb belépsz, betöltheted ezt a fájlt. Beállítások –> Biztonság és adatvédelem –> Titkosítás –> E2E szoba kulcsok mentése/E2E szoba kulcsok betöltése
- elmentheted a kulcsaidat titkosított formában a szerverre, az Element által felkínált Biztonsági mentés használatával, de ez gyengíti a biztonságot! (majd valamikor leírom, hogy miért)
Munkamenetek
Egy eszközön csak azokat az üzeneteket tudod elolvasni, amiket azután küldenek, hogy beléptél arra az eszközre. A régebbi üzeneteid kulcsait ellenőrzés után átkéri az új eszköz a régi eszközeidről. De csak ellenőrzés után.
Mit jelent a pajzsok színe?
Pajzsok megjelenhetnek
- eszközök mellett,
- felhasználók mellett, és
- szobák mellett.
A felhasználók neve melletti pajzs az összes eszközük állapotának összegzése. A szobák neve melletti pajzs az összes szoba tag állapotának összegzése.
Fekete pajzs:
Még nem volt ellenőrizve az adott felhasználó/beszélgetés. Minden felhasználót ellenőrizni kell ahhoz, hogy más színű legyen a beszélgetés melletti pajzs.
Zöld pajzs (a beszélgetés biztonságos):
- ha egy eszköz ellenőrizve van, zöld pajzsot mutat
- ha egy felhasználó összes eszköze zöld, akkor a neve mellett is zöld pajzs lesz
- ha egy szobában (beszélgetésben) minden felhasználó neve mellett zöld pajzs van, a beszélgetéshez is zöld pajzsot fog mutatni.
Piros pajzs (támadás veszélye):
- ha egy eszköz nincs ellenőrizve, piros pajzsot jelez mellette
- ha egy felhasználónak van legalább egy ellenőrizetlen eszköze, piros pajzsot mutat a felhasználó mellett
- ha egy szobában legalább egy felhasználónak a neve mellett piros pajzs van, az egész szoba piros lesz
Tehát, ha egy szobában akár egyetlen egy piros eszköz található, az bepirosítja a tulajdonosa jelzését, ami pedig bepirosítja az egész szoba jelzését.
Ha egy szobában piros jelzés van: Ha figyelmesen elolvastad a fenti részt, kitalálhatod magadtól: meg kell szabadulni a piros jelzésű eszközöktől. Ha figyelmesen olvastad, akkor azt is ki tudod találni, hogyan. Ha esetleg mégsem tudnád kitalálni, itt egy útmutató: Meg kell nézni, kinek a neve mellett van piros pajzs (ő pirosítja be a szobát). Több felhasználó is okozhatja. Ezek a felhasználók:
- Ellenőrizzék az összes eszközüket, amit tudnak.
- Ha egy piros eszközödhöz nincs hozzáférésed (pl. újratelepítetted az alkalmazást, és újra be kellett jelentkezned, vagy inkognitó módból léptél be a böngészős verzióba), akkor azt az eszközödet töröld a Beállítások –> Biztonság és adatvédelem –> “Ahol be vagy jelentkezve” résznél!
Tehát röviden: vagy ellenőrizd a piros eszközeidet, vagy töröld őket!
Mikor kell hitelesíteni?
Minden felhasználónak hitelesíteni kell a saját eszközeit, a többi eszközéről, és a beszélgetésben lévő felhasználókat.
- Amikor belépsz egy új eszközre, akkor egy másik eszközödről hitelesítsd! Olyanról, ami már hitelesítve van. Ha két hitelesítetlen (piros) eszközzel végzed el a hitelesítést, akkor egyik sem lesz zöld. Ha nincs egy zöld eszközöd sem, vagy nem férsz hozzá, akkor vissza kell állítani a hitelesítési kulcsaidat (Beállítások –> Biztonság és adatvédelem –> Eszköz-közti hitelesítés –> Visszaállítás). Ezután újra kell mindent (eszközöket és felhasználókat is) ellenőrizni. Ennek elkerüléséről ebben a cikkben még lesz szó.
- Minden felhasználót ellenőrizni kell, aki a beszélgetésben van. Egy felhasználót csak egyszer kell hitelesíteni, akkor is, ha neki több eszköze van. Az ő saját eszközeinek a hitelesítése már az ő dolga.
Mire való a hitelesítés?
Ha a hitelesítés sikeres, megbízhatónak lesz jelölve az eszköz (zöld pajzs). A megbízható eszközeid ezután már elkérhetik a régi üzeneteid titkosítási kulcsait a többi eszközödtől (persze, ha a kulcsok megvannak azon az eszközödön). A szerver kezelője akárkinek a fiókjába be tud lépni, hamisított eszközökről. Igaz, a régebbi üzeneteket így még nem tudja elolvasni, de azokat el tudja, amiket az ő belépése után küldtek. Ezért kell vigyázni akkor, ha egy szobában olyan eszköz van, ami még nincs hitelesítve (piros pajzs). Ez ellen lehet védekezni a hitelesítéssel, ami által meg lehet győződni arról, hogy egyik eszköz sincs meghamisítva.
Privát böngésző ablak
Amikor bejelentkezel a Matrix fiókodba, egy kulcsot generál az adott munkamenethez, és ezt a kulcsot beregisztrálja a szerveren. Így bekerül az eszközlistádba az a munkamenet. Amikor kijelentkezel, akkor a helyi kulcsot is törli, és a szerverrel is közli, hogy törölve lett a kulcs. Így az adott munkamenet törlődik az eszközlistádból. Ha privát ablakot használsz, minden helyileg tárolt adat törlődik az ablak bezárásakor, így a kulcsok is, és a hozzáférési token is. De a szerver ezt nem tudja. Ezért még mindig ott lesz az eszközlistádban az adott munkamenet. Megoldás:
- mielőtt bezárod a privát ablakot, jelentkezz ki!
- vagy telepítheted az Element asztali változatát, amiben könnyen belépve tudsz maradni!
Ha sok munkameneted van, akkor
- lassabban fog betölteni az Element
- lassabb lesz az üzenetek küldése titkosított szobákban, mert minden egyes kulcssal titkosítani kell az adott üzenetet, és minnél több felesleges kulcs van, annál több idő
Ezért ajánlott törölni a régi munkameneteket (Beállítások –> Biztonság és adatvédelem –> “Ahol be vagy jelentkezve”)
Titkosítás technikai részletei
Az Element automatikusan bekapcsolja a titkosítást az 1:1 beszélgetések, és a privát csoportok létrehozásakor, ha minden felhasználónak van legalább egy, titkosításra képes eszköze. Az Matrix az üzenetek titkosítására Megolm algoritmust használ. Itt olvashatsz róla: A look at Matrix.org’s OLM | MEGOLM encryption protocol A MITM támadások kivédésére a Matrix eszköz-közti hitelesítést (cross-device signing) használ. Ha egy megbízható eszközödről ellenőrizted egy másik eszközöd, akkor a régébbi, megbízható eszköz az eszköz-közti hitelesítő mesterkulcssal kriptográfiailag aláírja az új eszköz nyilvános kulcsát. Ezután átküldi a mesterkulcsot az új eszközre is, így most már arról is tudsz hitelesíteni. Minden eszközöd hitelesíteni kell. Amikor egy felhasználót ellenőrzöl, akkor a hitelesítési mesterkulcsát ellenőrzöd. Ha az ellenőrzés sikeres, akkor a felhasználó összes eszköze megbízhatónak lesz jelölve (mármint amelyiket hitelesítette, azaz aláírta a mesterkulcssal). Az ellenőrzési protokollról (QR, emoji) a Matrix specifikációban olvashatsz. Arról, hogy melyik aláírási kulcs mire való, itt olvashatsz: Matrix X-signing