Kako varujemo skrivnost

  1. Šifriranje se izvede v tvojem brskalniku z Web Crypto API (AES-256-GCM), preden karkoli zapusti tvojo napravo.
  2. Šifrirni ključ ostane samo v delu povezave za znakom # (URL fragment) — brskalniki tega dela nikoli ne pošljejo strežniku.
  3. Strežnik prejme in shrani samo šifrirano besedilo (ciphertext) in nonce. Brez ključa iz povezave je to besedilo neuporabno.
  4. Vsebina se lahko razkrije samo enkrat, z zavestnim dejanjem prejemnika — navaden ogled povezave je ne porabi.
  5. Po razkritju (ali ročnem uničenju) se šifrirano besedilo takoj trajno izbriše iz aktivne baze.
  6. Izgubljene povezave ali dela za znakom # ni mogoče obnoviti — mi nimamo kopije ključa.

Omejitve, ki jih moramo biti odkriti glede

  • Kdor pridobi celotno povezavo (vključno z delom za #), lahko odpre skrivnost. Povezavo pošiljaj po zaupanja vrednem kanalu.
  • Zero-knowledge šifriranje ne ščiti pred že okuženo napravo, zlonamerno razširitvijo brskalnika ali prestreženo celotno povezavo.
  • Po porabi izbrišemo šifrirano vsebino iz aktivne baze takoj. Standardni backupi baze lahko kratek čas vsebujejo staro kopijo šifriranega besedila — ker pa strežnik ključa nikoli ni imel, ta kopija ostaja neuporabna.

Ta stran opisuje dejansko arhitekturo aplikacije. Namenoma se izogibamo nedokazljivim izrazom kot je »military-grade«.