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:

  1. 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)”
  2. 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
  3. 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

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):

Piros pajzs (támadás veszélye):

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:

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.

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:

Ha sok munkameneted van, akkor

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