Beveiliging
Beveiliging
Hoe VaultWell beschermt wat je erin bewaart, in gewone woorden. Inclusief wat het niet kan beschermen en wat we nog niet hebben gedaan.
Tegen wie en wat we beschermen
VaultWell is gemaakt voor alledaagse privacyrisico’s, het soort waar de meeste mensen echt mee te maken krijgen.
- Iemand pakt je telefoon. Een partner, een familielid, een collega of een vreemde die hem vindt. Zonder het pad blijft de kluis dicht, ook als ze de toegangscode van je telefoon kennen.
- Iemand zet je onder druk om te ontgrendelen. Je kunt een gewone kluis of de lokkluis openen. Niets op het scherm laat zien dat er andere kluizen zijn.
- Iemand kopieert de bestanden van de app. De sleutels zijn gekoppeld aan de beveiligingshardware van je telefoon, dus raadpogingen kunnen niet op een snelle computer worden uitgevoerd.
- Iemand knoeit met opgeslagen bestanden. Elk versleuteld stuk wordt geverifieerd, dus wijzigingen worden opgemerkt in plaats van getoond.
Het is niet gemaakt om stand te houden tegen een aanvaller die al malware op je telefoon heeft gezet, die meekijkt terwijl je je pad trekt, of die je kan dwingen al je paden prijs te geven. Geen enkele app kan dat beloven.
Hoe de versleuteling werkt
- Pad. De volgorde van de cellen die je op de raat trekt (minstens acht, zonder herhaling) vormt de invoer.
- Argon2id. Die invoer wordt versterkt met Argon2id met 64 MiB geheugen en twee rondes, zodat elke raadpoging echt tijd en geheugen kost.
- Hardwarekoppeling. Het resultaat wordt gecombineerd met een geheim in de Secure Enclave op iPhone, of in de Android Keystore (StrongBox waar beschikbaar). Dit geheim kan niet worden geëxporteerd, dus de sleutel kan alleen op je telefoon worden berekend.
- Hoofdsleutel. Elke kluis heeft een willekeurige hoofdsleutel van 256 bits, die alleen versleuteld wordt opgeslagen onder de sleutel uit je pad.
- AES-GCM in blokken. Onderdelen worden versleuteld met AES-256-GCM in blokken van 1 MiB. Elk blok is gebonden aan zijn onderdeel en positie, dus blokken kunnen niet worden verwisseld, omgewisseld van volgorde of afgekapt zonder dat het misgaat. Miniaturen, de lijst met onderdelen en de instellingen worden ook versleuteld.
Er is geen account en geen server. Je sleutels verlaten je telefoon nooit, en niets in je kluizen wordt naar ons gestuurd.
Verborgen kluizen, en wat een onderzoeker nog kan zien
Op het scherm verraadt VaultWell niets. Het vergrendelscherm is alleen de raat. Een fout pad en een pad dat nooit is gebruikt zien er hetzelfde uit. Er is geen lijst of telling van kluizen. Het instellingenbestand van elke kluis wordt aangevuld tot dezelfde grootte, zodat de opties van een kluis, ook of het de lokkluis is, van buitenaf niet te zien zijn.
Over wat er op de opslag staat willen we precies zijn. Elke kluis wordt bewaard als een eigen versleutelde map. Iemand met volledige toegang tot de ruwe bestanden van de app, bijvoorbeeld via een forensische extractie van een ontgrendelde telefoon, zou die mappen kunnen tellen, en ook hoeveel kluizen een herstelzin hebben. Openen of inzien kan diegene ze niet, maar wel afleiden dat er meer dan één kluis is. We willen dit verminderen, bijvoorbeeld met lokitems, en we publiceren de details zodra dat verandert.
Op het scherm
Verraadt niets
- Alleen de raat is te zien
- Geen lijst of aantal kluizen
- Een verkeerd pad lijkt op een nooit gebruikt pad
In de ruwe bestanden, met volledige toegang
Zou te tellen zijn
- Hoeveel versleutelde kluismappen er zijn
- Hoeveel kluizen een herstelzin hebben
Blijft onleesbaar
- Wat een kluis bevat
- Welke kluis de lokkluis is
De lokkluis
Als de lokkluis met zijn pad wordt geopend, verwijdert VaultWell eerst het sleutelbestand van elke andere kluis en hun herstelbestanden, en daarna de mappen van die kluizen. Zonder de sleutelbestanden kunnen de gegevens niet worden ontsleuteld. Daarna opent de lokkluis zoals elke andere, zonder melding op het scherm.
- Het wissen is permanent op de telefoon. Ongedaan maken kan niet.
- De lokkluis openen met zijn herstelzin wist niets.
- Reservekopieën en deelkopieën die ergens anders staan, worden niet geraakt.
Reservekopieën en deelkopieën
Reservekopieën (.vwbackup) moeten op een nieuwe telefoon opengaan, dus ze kunnen de hardware van je oude telefoon niet gebruiken. In plaats daarvan vergrendelt elke reservekopie de hoofdsleutel van de kluis met Argon2id op basis van je pad (en zin, als die is ingesteld) met een nieuwe willekeurige salt. Onderdelen blijven versleuteld zoals ze zijn opgeslagen. De veiligheid van een reservekopie hangt af van de sterkte van je pad of zin, dus houd reservekopiebestanden privé.
Deelkopieën (.vwshare) gebruiken een nieuwe willekeurige sleutel, vergrendeld met een aparte deelzin. Onderdelen worden daarin opnieuw versleuteld, zodat de ontvanger de sleutel van je kluis nooit te weten komt. Limieten op het aantal keer openen, de vervaldatum en het opslaan buiten de kopie worden door de app afgedwongen, niet door cryptografie, omdat er geen server is. Iemand met de zin die vastberaden is, kan nog steeds kopiëren wat hij ziet.
Wat we niet beweren
- Nog geen afgeronde audit. Een onafhankelijke beveiligingsaudit staat gepland vóór de lancering. We publiceren de uitkomst.
- Niet onzichtbaar. De app is zichtbaar op je telefoon, ook met een vermommingssymbool, en forensisch onderzoek kan laten zien dat er meerdere kluizen zijn.
- Niet bestand tegen schermafbeeldingen op iPhone. VaultWell beschermt tegen schermopnames, maar iOS laat apps geen schermafbeeldingen blokkeren; VaultWell laat je weten wanneer er een wordt gemaakt. Geen enkele app kan een foto van het scherm tegenhouden.
- Geen herstel door ons. Als je je pad en zin kwijtraakt, kunnen we je niet helpen. Wij hebben ze nooit.
Een probleem melden
Vind je een beveiligingsprobleem, dan horen we het graag eerst privé, en we noemen je naam als je dat wilt. Contactgegevens volgen vóór de lancering.