Hoe bewijs je dat een ontsleuteld bestand echt is?

pgp-bericht-encryptie-versleutelingEen lezer vroeg me:

Als er bij een strafzaak versleutelde bestanden worden aangetroffen, kunnen deze in ontsleutelde vorm dan als bewijs dienen? Immers je kunt niet 100% vaststellen dat de gebruikte sleutel echt is, en in theorie is het dan mogelijk dat de deskundige die de ontsleuteling uitvoert, iets anders eruit haalt dan er in ging.

Er zijn geen specifieke regels over hoe om te gaan met versleutelde digitale bestanden in het strafrecht. We moeten dus terugvallen op de algemene regels: er moet wettig en overtuigend bewijs zijn van de schuld van de verdachte.

Wettig wil zeggen dat het op de juiste, wettelijk vastgelegde wijze is verkregen en dus bekeken mag worden als bewijs. Overtuigend betekent dat er geen redelijke twijfel meer is aan wat het bewijs inhoudelijk laat zien.

Heel formeel zijn er maar vijf categorieën van bewijs in het strafrecht (art. 339) en digitale bestanden staan daar niet bij. Wel de verklaring van de verdachte of van getuigen, de eigen waarneming van de rechter, schriftelijke stukken en verklaringen van deskundigen. Digitale bewijsstukken worden eigenlijk altijd via die laatste categorie ingevoerd: een deskundige legt dan uit wat er uit de digitale informatie te halen is (en hoe dat is gebeurd), en die verklaring is dan formeel het bewijsstuk.

Een deskundige zal dus in zo’n geval uitleggen wat encryptie is en hoe je van plaintext naar ciphertext en weer terug gaat, en hoe dat dan werkt met een sleutel. Hij zal vervolgens laten zien wat er gebeurt als je de (bijvoorbeeld gevonden of door de verdachte gegeven) sleutel loslaat op de aangetroffen ciphertext. De uitkomst (de ontsleutelde tekst) is dan deel van zijn verklaring en daarmee wettig bewijs.

Of het overtuigend is, is lastiger. De eerste vraag is of iemand daar een punt van maakt. Als de verdachte bijvoorbeeld bekent en de sleutel vrijwillig afgeeft, dan is de deskundige snel klaar en is er geen reden om te twijfelen aan het feit dat die plaintext de echte is.

Is de sleutel ergens aangetroffen, dan zal een belangrijke factor worden hoe en door wie. Is er een geel briefje naast de monitor gevonden, of heeft een politieagent drie weken lang handmatig bruteforceaanvallen ondernomen met voor de hand liggende wachtwoorden? Twijfel hierbij kan bijdragen aan de overtuiging van het bewijs (we geloven niet dat dit echt de juiste plaintext is) of zelfs aan de wettige status (de verdachte is onder druk gezet om zijn wachtwoord te geven bijvoorbeeld, wat in strijd is met de wet).

In theorie is het inderdaad denkbaar dat de gevonden ciphertext ooit met sleutel A versleuteld is, maar dat je met sleutel B die ciphertext in een andere plaintext terugdraait. Daarmee zou dus nepbewijs worden vervaardigd: de tekst vertelt iets dat niet echt in het versleutelde bestand stond.

Het zal dan neerkomen op wie het meest wordt geloofd: de deskundige die uitlegt dat dit de echte decryptie is van de aangetroffen ciphertext, of de deskundige die daar twijfel kan zaaien. Je krijgt dan een afweging van alle omstandigheden: hoe werd de sleutel in kwestie gevonden, waaruit blijkt dat die aan de verdachte te koppelen is, wie heeft er baat bij het vervalsen van de decryptie, welke mogelijkheden waren daarvoor, is er in de beweerdelijk valse plaintext iets te vinden dat duidt op een vervalsing en ga zo maar door.

Mijn onderbuikgevoel is dat dit geen sterk verhaal zou zijn zonder zeer specifieke aanwijzingen. In theorie kan het, maar de wet eist geen 100% zekerheid van schuld – er mag geen redelijke twijfel zijn. 99% zekerheid kan best voldoen aan dat criterium.

Arnoud

34 reacties

  1. Wat als de deskundige een versie laat zien af wijkt van de versie die de verdachte laat zien. Als men sleutel A gebruikt dan heb je de tekst zoals hij bedoelt is door de verdachte, sleutel B is een versie die is aangepast. Sleutel B heeft meerdere ingangen dus misschien wel 100 sleutels terwijl de echte er één heeft. Misschien nog wel een sleutel C die weer wat anders laat zien maar een variatie op B is. Encryptie is nooit recht toe recht aan er zijn te veel mogelijkheden om een dwaalspoor op te zetten of zo iets te maken dat het net echt lijkt maar in het echt iets anders voorschotelt, afhankelijk wat de verdachte nodig heb.

  2. Ik meen me te herinneren dat paketten als Truecrypt (die overigens niet meer veilig is) content met twee verschillende keys kunnen beveiligen, afhankelijk van de ingevoerde key komt er andere content uit. Dit soort dingen maakt het er niet makkelijkers op, want je kunt dan een key afgeven die toegang geeft tot gevoelige maar niet illegale zaken, terwijl de illegale zaken verstopt blijven.

    1. Truecrypt kan dat doen zolang beide versleutelde bestandssystemen voldoende vrije ruimte bevatten om gegevens van de andere view op te slaan. Het is vrijwel onmogelijk om versleutelde blokken te produceren die met twee verschillende sleutels twee relevante (maar verschillende) ontsleutelde teksten produceren.

      1. Toen ik Truecrypt nog gebruikte gooide ik er standaard 1 gig aan ruimte in, terwijl er meestal maar enkele MB’s aan documenten in stonden. Zolang je hier enigzins rekening mee houd zou dit gene probleem moeten vormen.

    2. Offtopic… Truecrypt als onveilig aanmerken is FUD. Er zijn security audits gedaan (zie http://istruecryptauditedyet.com/) op Truecrypt en daaruit bleek dat Truecrypt gewoon wel veilig is. Dat de ontwikkelaar er van de ene dag op de andere mee gestopt is, en op de website aanraadt om over te stappen naar bitlocker, wordt door sommigen gezien als een ‘warrant canary’. De laatste officiële versie 7.2 is een gemankeerde versie waarmee alleen nog encrypted volumes kunnen worden ingezien, maar geen nieuwe kunnen worden aangemaakt. Alternatief is om de voorlaatste versie te gebruiken (v7.1a) of over te stappen naar Veracrypt. Veracrypt kan 100% omgaan met Truecrypt volumes.

      1. Voor @MathFox. Mij zijn 2 zogenaamde zwakheden van TrueCrypt bekend. Je kan de sleutel opvragen als je toegang hebt tot een geheugendump op het moment dat een container geopend wordt (of open is?). Een windows swap of hibernate file kan zo’n dump zijn. En er is een melding dat je via Truecrypt admin rechten zou kunnen verwerven in windows, dat heeft weinig met TC te maken. Verder geheel eens met @robb

  3. Een crypt tekst die met twee sleutels toevallig een verschillende geldige output geeft is zo ongelofelijk onwaarschijnlijk dat die kans als onbestaand kan worden beschouwd. Dit is praktisch alleen maar mogelijk wanneer de encryptie bewust op een dergelijke manier is opgezet. De enige reden waarom een verdachte zijn systeem zo zal opzetten is wanneer de ‘neppe sleutel’ juist geen toegang geeft tot interessant bewijsmateriaal.

    Zoals Michel hierboven aangeeft bevat Truecrypt deze mogelijkheid. Je kunt bij het versleutelen van een archief (een volledige schijf of een speciaal bestand) twee sleutels opgeven. De normale sleutel geeft toegang tot een deel van het archief, de tweede sleutel geeft toegang tot een verborgen deel van het archief. Dit wordt ‘plausible deniability’ genoemt.

    Als je bijvoorbeeld je criminele dagboek wil verbergen dan maak je een archief aan waarin je in het ‘normale’ deel bijvoorbeeld pikante foto’s van je vrouw plaatst. Niet interessant voor een rechter, wel een waarschijnlijke reden voor het gebruik van encryptie. In het tweede verborgen deel plaats je je criminele dagboek.

    Het voordeel van deze techniek is dat wanneer je onder druk wordt gezet, je de betreffende partij een geldige sleutel kunt overhandigen.

    Nu komt de echte vraag die naar mijn idee in deze blog beantwoord moet worden; wat gebeurt er als je geen gebruik maakt van deze dubbele laag en je bent daadwerkelijk onschuldig? Hoe bewijs je dat je geen enorm belangrijke informatie aan het verbergen bent op je niet-bestaande dubbele opslag? Een verdachte die zonder veel dwang zijn versleutelde data prijsgeeft is hierdoor juist ineens extra verdacht.

    Bedenk hierbij dat het geheime deel zo goed verborgen is, dat wanneer je zonder tweede sleutel data op het ‘normale’ deel van je archief wil plaatsen, je de kans loopt dat je data van je verborgen deel gaat overschrijven. Dit omdat je systeem niet weet van het bestaan van dit tweede stuk.

    1. Hoeft niet. Stel ik heb inderdaad in “Container A” mijn criminele boekhouding en in “Container B” pikante foto’s van mijn vrouw, dan kan ik heel goed direct het wachtwoord van “Container B” geven aan de politie/rechter/justitie onder het mom: “Ik wil niet dat dieven of mijn zoontje die foto’s kunnen vinden, maar justitie mag hier best inzage in hebben.”

      Als in “Container B” echter alleen maar foto’s van modeltreintjes staan wordt het lastiger om uit te leggen waarom je daar versleuteling op los laat.

      1. Waarom zou het lastig zijn om de versleuteling te verklaren als er alleen maar modeltreintjes in staan? Mijn harddisks zijn standaard volledig versleuteld en daat staat echt niets bijzonders op. Mijn belasting aangiften van de laatste jaren is nog het meest gevoelige.

    2. Als je sleutel even lang is als de versleutelde tekst kun je alle mogelijke ontsleutelde teksten genereren door alle sleutels te proberen. Je moet een versleutelde tekst hebben die een stukje langer is dan de sleutel om aan de hand van de redundantie in het bericht aan te kunnen tonen dat de gevonden sleutel (hoogst waarschijinlijk) de correcte is.

    3. Nu komt de echte vraag die naar mijn idee in deze blog beantwoord moet worden; wat gebeurt er als je geen gebruik maakt van deze dubbele laag en je bent daadwerkelijk onschuldig? Hoe bewijs je dat je geen enorm belangrijke informatie aan het verbergen bent op je niet-bestaande dubbele opslag?

      Niet relevant. Het is aan de eisende of dagende partij om te bewijzen dat er een dubbele laag in gebruik is. Dat kunnen ze niet, dus zal de rechter niet aan mogen nemen dat je meer en bezwarender informatie achterhoudt in die niet bestaande laag.

  4. Volgens mij heeft Peter het hier goed, de kans dat er met een andere sleutel toch een leesbaar bericht uitkomt dat ook nog eens past in de context van de zaak is bij benadering nul. Daarnaast wordt de verdachte uitgenodigd om mij het juiste wachtwoord te geven op basis van vrijwilligheid. Hoeft niet, mag wel.

    Wat Jean-Paul stelt is ook waar, je kan verschillende wachtwoorden hebben op dezelfde container, maar dat is niet erg. Dat maakt slechts dat bepaald materiaal NIET gevonden wordt. Immers, dat wat wel wordt gevonden is nog steeds prima als bewijs (belastend of ontlastend) dienen.

    Ik zal in mijn proces-verbaal ook niet benoemen dat iets een de enige sleutel is, slechts mijn redenen van wetenschap, dus:

    Ik, verbalisant, zag in het voornoemde image, een bestand dat ik (al dan niet middels software) herkende als een cryptocontainer. Ik zag dit aan .., .. en … Toen ik TrueCrypt opende, het bestand selecteerde, als schijfletter Y: selecteerde en het wachtwoord “XYZ” invoerde, zag ik dat TrueCrypt het bestand koppelde aan Y:. Ik zag hierna de volgende bestanden op Y:, die ik als bijlage toevoegde aan dit proces-verbaal: -a -b -c

    Uiteraard voeg ik, dossierbreed, nog wat uitleg toe over TrueCrypt, cryptocontainers, etc.

    Als er tijdens het compareren een andere deskundige komt die bewijst dat hij hem met een andere sleutel kan decrypten dan is dat mooi, maar het doet niet af aan de juistheid van mijn proces-verbaal. Het bewijs dat ik heb gevonden is nog steeds bruikbaar.

    1. Juridisch: je bewijs is inderdaad wettig, maar de overtuigingskracht neemt af wanneer er zulk tegenbewijs is.

      Verder heb ik moeite met vrijwillig vragen van dingen die je niet mag vorderen, zeker nu dit expliciet in Sv verboden is om te vorderen. Hoe voorkom je dat een verdachte denkt dat dit een beleefd geformuleerd bevel is?

      1. Als er zo’n fout verzoek komt, kan je dan als verdachte dingen expres dingen gaan afgeven die men later toch wel zou vinden en dan gaan claimen dat er fouten zijn gemaakt en daarop strafvermindering / vrijspraak krijgen?

      2. Dat ben ik niet helemaal met je eens, want het doet niets af aan het bewijs dat er wel is gevonden. Vind ik daar een excelsheet met 100 containers coke dan staat die data daar. Dat er meer data staat, bewijst niet dat dit er niet staat. Toevalstreffer?

        Dat soort zaken doe je met de advocaat erbij tegenwoordig (verhoorbijstand) en het liefst een schriftelijk verzoek, vind ik het mooist. Ondubbelzinnig. “Je bent niet verplicht om ons je wachtwoord te geven en we kunnen je hiertoe ook niet dwingen, maar je mag ons je wachtwoord wel geven.”

          1. Ik kan niet zeggen wat andere collega’s in. Het is bijvoorbeeld wel zo dat we goederen langer in beslag moeten nemen (vaak) als we een wachtwoord niet hebben. Heeft meer onderzoekstijd nodig in dat geval. Soms vraagt een beslagene om snelle teruggave. Dan leg ik wel uit dat het sneller gaat als we een wachtwoord hebben, maar dat zij niet verplicht zijn het wachtwoord af te geven.

            Anderzijds zou je ook kunnen betogen dat het niet vragen (onder duidelijke vrijwilligheid) hen ook zou kunnen schaden. Wellicht staat daar ontlastend bewijs of creëert het ten onrechte een sentiment waar de beslagene of verdachte niet blij mee is.

    1. Daar is echt wel aan gedacht. Zo’n container neemt de volledige ruimte in die hem is toegewezen. Ongebruikte ruimte wordt gevuld met data die (in theorie) niet te onderscheiden is van gebruikte ruimte. Er is dus altijd meer ruimte met ‘data’ dan je geencrypte bestanden gebruiken.

      Dat gezegd hebbend, er wordt voortdurend gewerkt aan tests voor randomness. Het is denkbaar dat er een test ontwikkeld wordt die hidden containers herkent als aanwezig.

          1. Je hebt gelijk in het algemene geval. Maar kan je voor de specifieke vraag ‘is er nog iets extra verborgen in email of file encryptie?’ , er toch iets uithalen?

            1) bij (her)encryptie veranderd de geëncrypte lengte niet, dus kan je controleren of er iets meer in zit door een (her)encryptie. (Heb ik gecontroleerd met 7ZIP met wachtwoord.)

            2) de initialisatie vector is volgens mij in leesbare vorm (niet geëncrypt). Die kan je voor deze toepassing gebruiken om de zaak te (her)encrypten en te vergelijken

  5. Ik vraag mij af wanneer iemand komt met een encryptie-methode die twee sleutels vereist voor decryptie. Met de twee sleutels encryp je dan twee bestanden tesamen naar een nieuw bestand. De ene een onschuldig document en de ander de gevoelige data. Wie dan alleen sleutel A of alleen sleutel B gebruikt krijgt dan het onschuldige document terug. Pas als je beide sleutels gebruikt krijg je de geheime informatie.

    Geen idee of hier al aan wordt gewerkt maar aangezien er wereldwijd al enkele landen zijn waar je verplicht wordt om je sleutel op te geven bij een crimineel onderzoek zou dit een interessante manier zijn om de wetgevers te misleiden. Je geeft dan namelijk maar 1 sleutel en het bewijs wordt dan niet gevonden. En dan moeten ze maar aantonen dat er sprake is van een dubbele sleutel.

    1. Bij bijv. Truecrypt werkt de software ook prima met maar één sleutel en één container die versleuteld is. Er is in principe niet aan te zien dat er een twee sleutels mogelijk zijn of dat er twee sleutels in gebruik zijn. Hoe gaan ze ooit bewijzen dat dit het geval is?

  6. Er is een heel eenvoudig ‘versleutelings’-algoritme, genaamd XOR; dwz, je codeerd de bitjes in het bericht als volgt aan: 1 + 1 = 0; 1 + 0 = 1; 0 + 1 = 1; en 0 + 0 = 0. De sleutel is noodzakelijkerwijs net zo groot als het te versleutelen bericht; ontsleutelen is eenvoudig de operatie herhalen met dezelfde sleutel. Gebruik nu een gewenst bericht als ‘sleutel’, neem het resultaat, en vertel de rechter dat dat de ‘gekraakte sleutel’ is. Pas hem toe, en voila, het gewenste bericht verschijnt. Bij XOR triviaal, maar bij meer complexere systemen zou je dit heel goed kunnen wegmoffelen in complexe handelingen; dus het is van belang dat je sleutel dusdanig veel kleiner is dan het bericht dat het niet redelijkerwijs mogelijk is een gewenst bericht in de sleutel te verstoppen (of de expert moet bij het proces stap voor stap uitleggen waarom dit niet kan, bijvoorbeeld omdat een excessief lange sleutel eerst toch gereduceerd wordt tot een beperkt aantal bits). Bij een normaal encryptiesysteem is vinden van een sleutel voor een andere geloofwaardige uitkomst een zeer moeilijk proces (vergelijkbaar met het vinden van hash-collisions, maar dan niet doelbewust verzwakt)

  7. Het lijkt me niet waarschijnlijk dat iemand die als als afleiding een extra bestand mee encrypt daarbij een bestand mee encrypt dat een ernstige verdachtmating oplevert jegens hemzelf. Dat zou absurd zijn. Hoogstens zou je een bestand mee encrypten dat een veel minder ernstig delict suggereert dan de werkelijke inhoud. Dus als je een bestand encrypt en dat levert een sterke verdenking op dan kun je dat gewoon als bewijs gebruiken.

    Een advocaat kan dan nog altijd andere argumenten aanvoeren zoals dat het bestand door een andere persoon op zijn computer is gwezet. Ook best onwaarschijnlijk maar mogelijk wel iets realistischer dan dat iemand zijn bestanden encrypt met decoy bestanden die een ernstige verdenking naar hemzelf opleveren

  8. Volgens mij bedoelt de vraagsteller iets anders. Stel, je hebt als politie het vermoeden dat ik Arnoud wil vermoorden (fictief voorbeeld ;)). Ik heb een aantal keer rondgehangen bij z’n kantoor en je weet dat ik met een bekende crimineel heb zitten praten waarvan je weet dat-ie wel voor zo’n klusje in is, maar het is allemaal nog geen bewijs.

    Nou onderschep je een versleutelde e-mail van mij aan die crimineel. Hey, DAAR zou weleens iets interessants in kunnen staan! Je kan het niet lezen, maar houdt de crimineel in de gaten die inderdaad richting Ius Mentis lijkt te rijden en pakt ‘m tijdig op. Ook mij licht je als vermoedelijke opdrachtgever van m’n bed.

    Alleen, in de rechtszaak moet er BEWIJS komen, en ik blijf ontkennen. Het enige wat je hebt wat het concreet zou kunnen maken is die e-mail, maar hoe je cybercrime team ook z’n best doet, je krijgt het niet ontsleuteld.

    Dan heb je een idee. Je weet nog wel een computerexpert die bij je in het krijt staat en haalt hem over te verklaren dat hij het bericht ontsleuteld heeft via mumbo jumbo technisch verhaal (snapt een rechter toch de ballen van) en dat erin stond “leg die arnoud vandaag maar om, de prijs is akkoord”. Hebbes!

    Alleen, hoe kan ik dan bewijzen dat dat er niet instond? Ja, het ter plekke alsnog ontsleutelen, maar als er iets belastends instaat (b.v. “kun je die engelfriet ff een pak rammel geven? dan bedenkt-ie zich misschien en lossen we het netjes op”) wil ik dat natuurlijk niet.

    De plaintext tijdens de zitting versleutelen (ik weet immers hoe ik dat gedaan heb) en aantonen dat er een ander bestand uitkomt? “Dat is niet de manier van versleuteling die wij hebben gevonden” zegt de overijverige rechercheur met droge ogen.

    Tijdens de zitting een programma draaien dat de ontsleuteling aantoont? Makkelijk te faken. “DAAR wil ik de broncode van zien!” roept mijn advocaat. Prima, andere broncode aanleveren. Andere bytecode? Kan makkelijk, ze hebben het nl. net toevallig op een megaobscuur custom platform gecompileerd (“custom Linux machine speciaal voor decryptie”, nog plausibel ook).

    Dus, hoe toon je aan dat wat iemand BEWEERT dat de ontsleutelde versie is, ook ECHT de ontsleutelde versie is (of juist niet)?

    (Vergezochte complottheorie? Ik kom oorspronkelijk uit Engeland, daar werd in de strijd tegen de IRA wel vaker bewijs vervalst destijds…)

    1. Er zijn gedocumenteerde forensische procedures om een disk-image van een computer te maken. In de procedure wordt een hash (checksum) van het image gemaakt, zodat het redelijkerwijs niet mogelijk is om dat image achteraf te wijzigen. Het is veel makkelijker om (een dag voor inbeslagname) een voorbereid bericht (plus sleutels) op de computer te plaatsen.

      Wat ik ook bedenk, het planten van een dergelijk bericht laat sporen na, die door een goed forensisch specialist gevonden kunnen worden. Als GPG versie 2.4 op de computer van de verdachte geïnstalleerd staat, maar het bericht en de sleutels zijn met GPG versie 2.5.1 gemaakt, dan zou ik op zoek gaan naar nog meer ontlastend bedrog.

    2. Dan is het toch veel makkelijker om even een briefje in de zak van die crimineel te stoppen met die tekst, of claimen dat het bericht helemaal niet versleuteld was, of een agent laten verklaren dat hij het gesprek heeft gehoord.

      Als ze bewijs willen vervalsen dan zijn er echt wel makkelijkere manieren dan een versleuteld bericht vals ontsleutelen….

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.