Kuori-protokolla
Kuori on Sullen salauksen ydin: Puida Oy:n oma toteutus, joka rakentuu julkisesti tarkastetuille suunnitelmille. Tämä sivu on niille, jotka haluavat tietää tarkemmin.
Mikä Kuori on
Kuori on Rust-kielellä kirjoitettu kirjasto, joka hoitaa Sullen viestien salauksen, avainten hallinnan, viestien tallennuksen ja yhteyden palvelimeen. Sama koodi toimii iPhonessa ja Androidissa, joten molemmat sovellukset käyttäytyvät samalla tavalla ja salaus on toteutettu vain kerran.
Kuori rakentuu kahdelle julkisesti tarkastetulle suunnitelmalle: X3DH-avaintenvaihdolle, jolla kaksi laitetta sopivat ensimmäisestä yhteisestä salaisuudesta, ja Double Ratchet -algoritmille, joka johtaa jokaiselle viestille uuden avaimen. Nämä suunnitelmat ovat samat, joihin useat tunnetut viestisovellukset perustuvat. Kuori ei kuitenkaan sisällä koodia niistä: se on Puida Oy:n oma toteutus samoista suunnitelmista.
Mitä ominaisuuksia salauksella on
- Päästä päähän. Viesti salataan lähettäjän laitteella ja puretaan vasta vastaanottajan laitteella. Palvelin välittää vain salattua dataa.
- Eteenpäin suojaus. Jokaiselle viestille johdetaan uusi avain, ja vanhat avaimet hävitetään. Yhden avaimen paljastuminen ei avaa aiempia viestejä.
- Toipuminen murrosta. Ratchet-mekanismi vaihtaa avaimia jatkuvasti, joten vaikka laitteen avaimet paljastuisivat hetkeksi, myöhemmät viestit ovat taas suojassa.
- Laitekohtaiset istunnot. Jokaisella laitteellasi on oma avainparinsa ja oma istuntonsa jokaisen keskustelukumppanin jokaisen laitteen kanssa. Viesti salataan erikseen jokaiselle vastaanottavalle laitteelle.
- Ryhmät ilman yhteistä avainta. Ryhmäviesti salataan erikseen jokaiselle jäsenen laitteelle samoilla laitekohtaisilla istunnoilla. Valitsimme tämän tietoisesti jaettujen ryhmäavainten sijaan: se säilyttää eteenpäin suojauksen ja murrosta toipumisen myös ryhmissä.
- Mediatiedostot. Kuvat, videot, tiedostot ja ääniviestit salataan AES-GCM-algoritmilla laitteella. Tiedoston avain kulkee vastaanottajalle salatun viestin sisällä.
- Salattu tallennus. Viestihistoria on laitteella salatussa SQLCipher-tietokannassa. Salausavaimen tila päivittyy vain, kun viesti on ensin tallennettu onnistuneesti, joten keskeytynyt tallennus ei koskaan riko istuntoa.
Avaimet ja identiteetti
Kun otat Sullen käyttöön, laite luo itselleen identiteettiavaimen sekä joukon esiavaimia, joista julkiset osat julkaistaan palvelimelle. Kun joku kirjoittaa sinulle ensimmäistä kertaa, hänen laitteensa hakee esiavaimesi ja muodostaa istunnon ilman, että sinun tarvitsee olla linjoilla. Allekirjoitetut esiavaimet vaihdetaan säännöllisesti, ja kertakäyttöiset esiavaimet täydennetään, kun ne alkavat loppua.
Jokaisesta laitteen lisäämisestä tiliin ja poistamisesta tililtä jää merkintä tilin identiteettiketjuun. Ketju on lisäysjärjestyksessä, eikä siitä voi poistaa merkintöjä. Sen avulla muut laitteesi huomaavat, jos joku yrittää ottaa numerosi haltuunsa, ja voivat estää siirron.
Mitä Kuori ei vielä tee
- Kuori ei käytä kvanttitietokoneita kestäviä algoritmeja. Seuraamme alan kehitystä.
- Kuoria ei ole vielä auditoinut ulkopuolinen taho. Kerromme täällä, kun se on tehty.
- Kuoren lähdekoodi ei ole julkinen. Suunnitelmat, joihin se perustuu, ovat.
Lue myös
- Miten Sulle suojaa viestisi: sama asia ilman teknisiä termejä
- Tietosuojaseloste: mitä palvelin säilyttää ja kuinka kauan