Aannemelijke Ontkenning in Apps: Wat het Is en Waarom het Ertoe Doet
Aannemelijke ontkenning betekent dat het bestaan van verborgen data niet bewezen kan worden.
Plausibele ontkenning bij versleuteling is een eigenschap van de opslag: een gebruiker kan één dataset prijsgeven zonder een structureel spoor achter te laten dat bewijst dat er nog een dataset bestaat. De claim moet het dreigingsmodel noemen: een statische kopie van goed opgevulde versleutelde opslag is iets anders dan een actief gecompromitteerd apparaat, metadata van clouddiensten of kopieën die elders staan. Dit is meer dan een verbergfunctie. Het hangt af van hoe versleuteling, indeling, opvulling en het ontwerp van de werking samenwerken.
Deze handleiding legt uit hoe aannemelijke ontkenning werkt in apps, het verschil tussen echte cryptografische ontkenning en cosmetische lokmodussen, praktijkscenario's waarbij het ertoe doet, en hoe je ontkenbaarheidsbeweringen kunt evalueren.
Wat Aannemelijke Ontkenning Betekent in Versleuteling
In alledaagse taal betekent plausibele ontkenning dat je op geloofwaardige wijze iets kunt ontkennen. Bij opslagcryptografie is het haalbare doel beperkter: iemand die de versleutelde opslag onderzoekt, mag binnen het genoemde dreigingsmodel geen verschil kunnen zien tussen verborgen inhoud en ongebruikte opgevulde ruimte. Geen enkele app kan die belofte doortrekken naar een al geopende kluis, opgenomen invoer, externe kopieën of elke vorm van gecompromitteerd apparaat.
Het concept is ontstaan in schijfversleuteling. TrueCrypt (en zijn opvolger VeraCrypt) pionierden het verborgen volume: een versleuteld volume binnen een ander versleuteld volume. Eén wachtwoord onthult het buitenste volume met onschuldige bestanden. Een ander wachtwoord onthult het binnenste verborgen volume met gevoelige bestanden. Een forensisch onderzoeker kan niet bepalen of een verborgen volume bestaat, omdat de ongebruikte ruimte in het buitenste volume gevuld is met willekeurige data die niet te onderscheiden is van versleutelde data.
Voor apps betekent aannemelijke ontkenning dat verschillende referenties (wachtwoorden, PIN-codes, patronen) verschillende datasets openen, en er is geen metadata, register, configuratieflag of structureel artefact dat het bestaan van extra datasets onthult.
Echte Ontkenning vs. Cosmetische Lokmodussen
Dit is het cruciale onderscheid dat de meeste apps fout maken.
Cosmetische Lokmodus (Geen Echte Ontkenning)
Veel kluis-apps bieden een "lokmodus" of "nep-PIN"-functie. Je stelt een secundaire PIN in die een aparte ruimte opent met andere foto's. Het probleem: deze apps slaan typisch een booleaanse vlag, een database-invoer, of een configuratiebestand op dat aangeeft dat een lokmodus bestaat en geconfigureerd is.
Een forensisch onderzoeker die de app begrijpt kan deze vlag vinden. Het vinden van een geconfigureerde lokmodus bewijst dat verborgen data bestaat. De ontkenning is cosmetisch -- het werkt tegen terloops besnuffelen maar faalt onder forensisch onderzoek.
Tekenen van cosmetische ontkenning:
- De app heeft een "lokmodus"-schakelaar in instellingen
- Een configuratiebestand slaat op of lokmodus is ingeschakeld
- Een databasetabel somt kluis-ID's op met type-indicatoren (primair/lokmodus)
- De opslagstructuur van de app verandert wanneer lokmodus is ingeschakeld
- De app verwijderen en opnieuw installeren onthult ander gedrag wanneer lokmodus was geconfigureerd
Echte Cryptografische Ontkenning
Echte ontkenning is een architecturale eigenschap, geen functieschakelaar. De versleutelde opslag moet zo ontworpen zijn dat:
Elk alternatief patroon of wachtwoord opent alleen zijn eigen dataset. Het systeem bewaart geen aparte lokmarkering die één ervan als dekmantel aanwijst. Een ongeldig patroon kan mislukken, maar dat mislukken mag niet verraden of er een niet-prijsgegeven dataset bestaat.
Er bestaat geen kluisregister. De app kan niet opsommen hoeveel kluizen er bestaan. Er is geen teller, geen index, geen lijst van kluis-ID's. Een forensisch onderzoeker die de opslag van de app onderzoekt vindt een ongedifferentieerde pool van versleutelde data.
Geen configuratieflags onthullen verborgen kluizen. Er is geen booleaan, geen database-invoer, geen voorkeurenbestand dat aangeeft of extra kluizen bestaan.
Opslag is geopvuld. De totale verbruikte opslag verandert niet op basis van het aantal kluizen of bestanden. Zonder opvulling kan een onderzoeker het aantal kluizen schatten uit de totale versleutelde dataomvang versus de zichtbare inhoud.
Versleutelde data is niet te onderscheiden van willekeurige ruis. Er zijn geen bestandsgrenzen, geen headers, geen structurele markers die onthullen waar de data van één kluis eindigt en die van een andere begint.
| Eigenschap | Cosmetische Lokmodus | Echte Ontkenning |
|---|---|---|
| Aparte data per referentie | Ja | Ja |
| Geen kluisregister | Nee (database bijhoudt kluizen) | Ja |
| Geen configuratieflags | Nee (lokmodus-schakelaar opgeslagen) | Ja |
| Opslagopvulling | Zelden | Ja |
| Verbergt alternatieve opslag in een statisch beeld | Nee | Ja, binnen het genoemde dreigingsmodel voor opslag |
| Architecturaal vs. functie | Functieschakelaar | Architecturale eigenschap |
Praktijkscenario's Waarbij Dit Ertoe Doet
Aannemelijke ontkenning is geen theoretische zorg. Het adresseert gedocumenteerde, terugkerende praktijksituaties.
Grensovergangen
Bij een grensovergang kan een controleur een apparaat inspecteren en om een wachtwoord of patroon vragen. Biedt een ontwerp echte ontkenbaarheid in de opslag, dan kan één patroon een onschuldige dataset openen, terwijl een statische kopie geen structureel kenmerk heeft dat verborgen inhoud van opvulling onderscheidt. De huidige indeling van Vaultaire, met één opslagmap per kluis, biedt die garantie niet tegenover een controleur met toegang tot de app-container.
Huiselijk Geweld en Dwingende Relaties
Iemand in een mishandelende relatie moet misschien bewijs opslaan (foto's van verwondingen, bedreigende berichten, juridische documenten) op een apparaat dat de mishandelaar controleert. Als de mishandelaar eist de kluis te zien, kan de gebruiker een kluis openen met niet-gevoelige inhoud. Zonder echte ontkenning zou een "lokmodus"-vlag in de app-configuratie het bestaan van verborgen inhoud onthullen.
Apparaatdiefstal
Een dief met technische vaardigheden kan proberen gegevens uit een gestolen telefoon te halen. Goed opgevulde ontkenbare opslag probeert te verbergen hoeveel datasets de pool gebruiken, al horen de totale opslagruimte, de toestand van het apparaat, back-ups en gebruikssporen nog steeds in het dreigingsmodel. Vaultaire versleutelt nu de inhoud, maar laat één telbare opslagmap per ingestelde kluis zien.
Juridische en Journalistieke Bescherming
Journalisten die bronnen beschermen, advocaten die cliëntbestanden beschermen, en activisten in autoritaire regimes staan voor scenario's waarbij apparaatinhoud afgedwongen kan worden. Echte ontkenning biedt een geloofwaardige verdediging tegen gegevensbeslag.
Wat Vaultaire nu doet
Vaultaire scheidt kluizen per patroon en toont in de normale interface geen lijst met kluizen. Dat helpt bij gewoon gebruik van de app, maar voldoet niet aan alle eisen in de checklist hierboven voor echte ontkenbaarheid.
Elk ingesteld patroon opent een eigen versleutelde kluis. PBKDF2 leidt een kluissleutel af van het patroon en een salt per apparaat. Een geldige sleutel verifieert de versleutelde index en pakt een willekeurige hoofdsleutel uit. Een niet-ingesteld patroon toont een lege kluis in plaats van de melding 'onjuist patroon'.
Het lokale formaat is telbaar. De hoofdbestanden vault_index_<locator>.bin liggen in een pool van 64 samen met lokbestanden, maar elke kluis heeft een eigen opslagmap. De namen verraden het patroon of de kluisnaam niet, maar iemand met toegang tot de app-container kan de opslagmappen tellen. De AES-GCM-authenticatie biedt ook een offline test voor kandidaat-kluissleutels.
Lokale opslag heeft geen vaste vorm. Bestandsinhoud en metadata worden versleuteld, en back-upblokken in de cloud gebruiken opvulling tot een vaste grootte en lokrecords. De hoofdbestanden liggen in een pool met lokbestanden, maar elke echte kluis heeft ook een eigen opslagmap, dus het aantal mappen en de totale opslag kunnen het aantal kluizen verraden.
Er bestaan herstelgegevens en een dwangtoestand. Vaultaire bewaart herstelgegevens in een met AES-GCM versleutelde database in de sleutelhanger. Dwangmodus verwijdert lokale indexen en herstelkoppelingen van de andere kluizen en koppelt dat apparaat los van synchronisatie. Cloudback-ups, kopieën bij andere deelnemers en elke gedeelde versleutelde blob worden niet gewist, en hoe lang het duurt hangt af van het lokale werk dat moet gebeuren.
Vaultaire biedt dus gescheiden kluizen in de interface en versleutelde opslag, maar geen informatietheoretisch bewijs dat er geen extra kluis bestaat. Om het aantal lokale kluizen te verbergen voor een offline kopie van de app-container, is een toekomstige catalogus met vaste capaciteit nodig, met echte en nepvakken die niet van elkaar te onderscheiden zijn.
Hoe Ontkenbaarheidsbeweringen te Evalueren
Wanneer een app aannemelijke ontkenning beweert, vraag dan:
- Is er een "lokmodus"-schakelaar? Als ja, is het cosmetisch. Een forensisch onderzoeker kan de schakelaar vinden.
- Heeft de app een kluislijst of database? Als ja, is kluisbestaan bewijsbaar.
- Kunnen gokken offline worden gecontroleerd? Geauthenticeerde versleutelde gegevens kunnen een kandidaatsleutel bevestigen zonder aparte wachtwoordhash. Vraag wat elke gok duur maakt en of de opslagindeling een goedkopere sleutelvingerafdruk prijsgeeft.
- Verandert opslagverbruik met het aantal kluizen? Als ja, kan schijfanalyse het aantal kluizen schatten.
- Kan de app kluizen opsommen? Als de app je een lijst van je kluizen kan tonen, bestaat die lijst op het apparaat en is deze vindbaar.
Veelgestelde vragen
Is aannemelijke ontkenning legaal?
Het gebruik van versleuteling met aannemelijke ontkenning is legaal in de meeste democratieën. Er is geen wet tegen het hebben van versleutelde data op je apparaat waarvan het bestaan niet bewezen kan worden. In sommige jurisdicties (VK onder RIPA, Australië onder de Assistance and Access Act) kunnen autoriteiten onthulling van versleutelingssleutels afdwingen. De juridische vraag is of het afdwingen van onthulling van een sleutel voor data waarvan het bestaan niet bewezen kan worden afdwingbaar is. Dit blijft een zich ontwikkelend rechtsgebied.
Kunnen forensische tools aannemelijke ontkenning detecteren?
Een onderzoeker die de app-container van Vaultaire in handen krijgt, kan versleutelde opslag vinden en de opslagmappen per kluis tellen. De hoofdbestanden vault_index_*.bin liggen in een pool van 64 samen met lokbestanden, maar de mappen laten zien welke echt zijn. Ze verraden geen kluisnamen of leesbare inhoud, maar hun aantal verraadt het aantal lokale kluizen. Het huidige ontwerp verbergt daarom kluizen voor normale navigatie, en niet voor elke forensische opslaginspectie.
Werkt aannemelijke ontkenning tegen een vastberaden natiestaat?
AES-256-GCM is een sterke grens voor de inhoud als sleutels, nonces en implementatie in orde zijn. Dat maakt de huidige opslagindeling van Vaultaire niet ontkenbaar tegenover een onderzoeker van een staat: het aantal kluizen blijft zichtbaar, en een actieve aanval kan patronen, sleutels, voorbeelden of exports onderscheppen terwijl een kluis open is. De huidige functie scheidt wat verschillende patronen in de interface openen; ze belooft niet dat een vastberaden onderzoeker niet kan bewijzen dat er meer lokale kluizen bestaan.
Wat is het verschil tussen aannemelijke ontkenning en verborgen kluizen?
Verborgen kluizen zijn kluizen die niet zichtbaar zijn in de normale interface van de app. Sterke cryptografische ontkenning is de aparte eigenschap dat verborgen gegevens niet kunnen worden onderscheiden van ongebruikte opgevulde opslag. Vaultaire biedt nu de eerste eigenschap. Het formaat met één opslagmap per kluis biedt de tweede niet tegenover een controleur met toegang tot de app-container.
Kan ik aannemelijke ontkenning gebruiken met cloud-back-ups?
Vaultaire schrijft versleutelde back-upmanifesten en opgevulde versleutelde bestandsblokken naar de privé-CloudKit-database van de gebruiker. Willekeurige recordnamen, uniforme recordtypen, opvulling tot blokken van 10 MB en lokrecords beperken wat er direct over de inhoud uitlekt. Het aantal records, het totale volume, de timing en het updatepatroon blijven zichtbare metadata van de dienst, dus de cloudback-up levert geen opslag met vaste vorm op die in theorie ontkenbaar is.
Conclusie
Sterke ontkenbaarheid in opslag moet voorkomen dat een onderzoeker verborgen gegevens kan onderscheiden van opgevulde vrije ruimte in een statische kopie van versleutelde opslag. De meeste apps die deze functie claimen, bieden een cosmetische lokmodus met herkenbare instellingen. De strengere definitie vraagt een precies dreigingsmodel, geen telbaar kluisregister, geen verraderlijke instellingen, stabiele opvulling en versleutelde records die niet verraden welke vakken echt zijn.
Vaultaire scheidt versleutelde kluizen per ingesteld patroon en houdt kluisnamen en inhoud uit het vergrendelde scherm. De huidige opslagindeling laat het aantal kluizen nog steeds zien bij inspectie van de app-container. Zie dit als verbergen in de interface, ondersteund door geauthenticeerde versleuteling, en niet als bewijs dat er geen extra kluis bestaat.