Beveiligingsmodel
Precies wat Aevumex versleutelt, hoe de sleutels werken, welke gegevens onze server wél ziet, wat wij niet kunnen en waar de grenzen van de zero-knowledge-belofte liggen. Geschreven om na te rekenen, niet om te overtuigen.
Laatst bijgewerkt: 19 september 2026 · geldt voor app-versie 0.1.4 en hoger
Dit document beschrijft eerlijk wat de app doet met je gegevens. Het is bedoeld voor mensen die "zero-knowledge" niet op ons woord willen geloven. Waar iets een grens of een open punt is, staat dat erbij.
In één alinea
Je kluis (elke munt, baar, aankoopprijs, bon en notitie) wordt op je toestel versleuteld met een sleutel die alleen op je toestel bestaat en die uit je herstelzin is afgeleid. Onze server bewaart daarvan uitsluitend versleutelde blokken en kan ze niet lezen. Wat de server wél in klare tekst ziet: je e-mailadres, het aantal kluisitems, je prijsalerts, en alles wat je op de marktplaats plaatst of in een chat schrijft. Er is geen tracking, geen advertentienetwerk en geen crashrapportage. Er is óók nog geen onafhankelijke audit.
Wat versleuteld is
- Elk kluisitem als één blok: metaal, gewicht en gehalte, aantal, aankoopprijs, -datum en -tijd, notities, serienummers, opslaglocatie, verkoopgegevens en de lijst van bonnen. De server ziet van een item alleen het versleutelde blok, een versienummer en tijdstippen.
- Aankoopbonnen (foto's) worden als apart versleuteld bestand opgeslagen, lokaal en, als je ingelogd bent, in een privé-opslag op de server. Nooit als leesbare foto.
- De lokale cache op je toestel (koersen, voorkeuren, de laatst geladen kluis) staat in een versleutelde database waarvan de sleutel in de sleutelhanger van het besturingssysteem ligt.
Hoe de sleutels werken
- Bij het aanmaken van je kluis genereert de app een herstelzin van 12 woorden (BIP39, 128 bit willekeur). Die zin wordt nergens opgeslagen; alleen jij hebt hem.
- Uit de zin wordt volgens de BIP39-standaard (PBKDF2) een seed berekend, en daaruit met HKDF-SHA256 de hoofdsleutel van 256 bit. Dezelfde zin geeft altijd dezelfde sleutel, dus met de zin alleen kun je op een nieuw toestel alles terughalen.
- De hoofdsleutel staat op je toestel in de iOS Keychain of Android Keystore, gemarkeerd als "alleen dit toestel" (hij gaat niet mee in een back-up) en, als je biometrie aanzet, alleen vrij te geven na Face ID, Touch ID of een vingerafdruk. Op Android telt alleen biometrie van de hoogste klasse; gezichtsherkenning van lagere klasse wordt geweigerd in plaats van stilzwijgend afgezwakt.
- Je pincode (6 tot 8 cijfers) ontgrendelt alleen de app. Hij wordt gehasht met Argon2id en is geen onderdeel van de encryptie: wie de server hackt, heeft aan de pincode niets, en wie de pincode raadt, heeft de sleutel nog niet.
- Elk item wordt versleuteld met AES-256-GCM, met een unieke nonce en met het item-id en je account-id als extra geauthenticeerde gegevens. Een blok van het ene account kan dus niet onder een ander account of ander item worden gezet zonder dat de ontsleuteling faalt.
- De sleutel verlaat je toestel nooit. De app heeft geen functie om hem naar ons te sturen, en de server heeft geen tabel om hem in te bewaren.
Wat de server wél ziet
Zero-knowledge geldt voor de kluis. Andere functies werken alleen als de server iets weet. Dit is de volledige lijst.
| Gegeven | Zichtbaar voor ons | Waarom |
|---|---|---|
| E-mailadres, inlogmomenten, of je via Apple of Google inlogt | Ja | Account en aanmelding |
| Aantal kluisitems, wanneer ze zijn aangemaakt of gewijzigd, grootte van elk versleuteld blok | Ja (alleen metadata) | Synchronisatie en de limiet van vijf items in de gratis versie |
| Inhoud van kluisitems en bonnen | Nee | Versleuteld op het toestel |
| Prijsalerts: metaal, drempelkoers, richting | Ja, in klare tekst | De server controleert elke minuut of een drempel is geraakt en stuurt de push. Een portefeuille-alert (bijvoorbeeld "waarschuw bij € 10.000") wordt op je toestel omgerekend naar één drempelkoers; de server ziet die koers en het metaal, niet je bezit |
| Marktplaats: advertenties, biedingen, chatberichten, beoordelingen, meldingen, blokkades, opgeslagen zoekopdrachten | Ja, in klare tekst | Bewust: melden en blokkeren, moderatie en verplichtingen richting de app stores werken niet op versleutelde inhoud. Zet nooit iets in een advertentie of chat dat je niet aan ons zou willen vertellen |
| Pushtoken van je toestel en de taal van de app | Ja | Meldingen versturen in jouw taal |
| Abonnementsstatus (Pro of niet), transactie-id van Apple of Google | Ja, via RevenueCat | Pro-functies vrijgeven. Wij zien geen betaalgegevens |
| Titel van een advertentie waarvoor je een AI-illustratie laat maken | Ja, doorgestuurd naar Google Gemini | Alleen op de marktplaats; kluisitems krijgen nooit een serverbeeld |
| Gebruiksstatistieken, apparaat-identifiers, crashrapporten, advertentie-id's | Nee | De app bevat geen analytics-, advertentie- of crashrapportage-SDK |
Koersen, historie en nieuws haalt de app op uit dezelfde publieke tabellen die deze website gebruikt; die verzoeken bevatten geen gegevens over je bezit.
Wat wij niet kunnen
- Je kluis lezen, ook niet op verzoek van jou, een erfgenaam of een autoriteit. We kunnen alleen versleutelde blokken overhandigen.
- Je herstelzin terughalen of je pincode resetten. Zin kwijt én toestel kwijt betekent: kluis kwijt. Daarom vraagt de app je de zin op te schrijven vóór er iets in de kluis staat.
- Een item herstellen dat je hebt verwijderd nadat de synchronisatie is doorgevoerd.
Waar de belofte ophoudt
Dit zijn de grenzen die je moet kennen om de belofte op waarde te schatten.
- Je vertrouwt de app-code. De app ontsleutelt je kluis op je toestel, dus code die wij verspreiden zou dat ook kunnen misbruiken. Dat geldt voor elke app met encryptie op het toestel. Wat wij daaraan doen: de kluis wordt uitsluitend op je eigen toestel ontsleuteld en de sleutel verlaat het toestel nooit, dus ook een kwaadaardige update kan niets ophalen wat op onze servers ligt. Wat ontbreekt: ondertekende over-the-air-updates, en reproduceerbare builds waarmee je zelf kunt nagaan dat de binaire app overeenkomt met de broncode. Dat laatste is op iOS praktisch niet haalbaar. Dat is op iOS praktisch niet haalbaar.
- Metadata verraadt iets. Uit het aantal items en de drempels van prijsalerts kan iemand met toegang tot de database afleiden dat je edelmetaal bezit en ongeveer welk metaal het zwaarst weegt. Niet hoeveel, niet welke munten.
- Je toestel is de grens. Een ontgrendeld toestel in verkeerde handen, een schermopname, malware op een gejailbreakt of geroot toestel, of iemand die over je schouder de herstelzin leest: daar beschermt encryptie niet tegen. De app vergrendelt automatisch na de door jou gekozen tijd en verbergt bedragen op verzoek.
- Geen onafhankelijke audit. De sleutellogica is geïsoleerd en volledig getest, maar nog niet door een externe partij beoordeeld. We noemen de app daarom nergens "geaudit" of "geverifieerd". Zodra dat wel gebeurt, staat het rapport op deze pagina.
- Standaardbouwstenen, geen eigen crypto. AES-GCM, HKDF, Argon2 en BIP39 komen uit de bibliotheken van noble en scure, die zelf geaudit zijn. Wij hebben geen eigen algoritmen bedacht.
Server en infrastructuur
De backend draait op Supabase (PostgreSQL, regio EU-West, Ierland) met rijniveau-beveiliging: elke tabel heeft regels die afdwingen dat een account alleen zijn eigen rijen kan lezen en schrijven, en limieten zoals "vijf items gratis" worden in de database afgedwongen, niet alleen in de app. Koersen komen van metals.dev; de API-sleutel daarvoor staat alleen op de server. Deze website leest koersen met een publieke, alleen-lezen sleutel en zet geen cookies.
Een kwetsbaarheid melden
Gevonden wat hierboven niet klopt, of een lek? Mail support@aevumex.com (ook vermeld in security.txt). We bevestigen binnen vijf werkdagen, houden je op de hoogte en ondernemen geen juridische stappen tegen wie te goeder trouw meldt, geen gegevens van anderen inziet en ons tijd geeft om te herstellen. Een beloningsprogramma is er nog niet.
Wijzigingen aan dit document
- 19 september 2026: eerste versie. security.txt gepubliceerd.
- 21 september 2026: de claim over ondertekende over-the-air-updates is ingetrokken. De maatregel was wel ingericht maar is nooit actief geworden in een uitgeleverde app: geen enkele update is ondertekend en geen enkele geïnstalleerde versie controleert handtekeningen. Wat er stond klopte dus niet en is hier verwijderd.