Laatst bijgewerkt:

Integriteit

Maanden later moet je kunnen aantonen dat de dataset die je terugziet, dezelfde is als die je afgaf. Dat doe je met een hash, niet met versleuteling.

Versleuteling bewijst niets over wijzigingen

BitLocker beschermt tegen meelezen, niet tegen wijzigen. Wie de sleutel heeft, kan de inhoud aanpassen en de drager opnieuw afsluiten. Schrijf dus niet in een verslag dat een drager “beveiligd is tegen manipulatie” omdat hij versleuteld is. Daarvoor dient een hash.

Wat een hash doet

Een SHA-256-hash is een waarde van 64 tekens die volgt uit de inhoud van een bestand. Wordt er in een mailbox één bericht gewijzigd, toegevoegd of verwijderd, dan verandert de hash. Iedereen die het bestand en de oorspronkelijke waarde heeft, kan dat narekenen, zonder jou op je woord te moeten geloven.

Een hash zegt niets over bestanden die er niet meer zijn: wat verdwijnt, laat geen afwijkende hash na. Daarom hoort er ook een inventaris bij.

Zet de hashes in het ondertekende verslag

Een lijst met hashes op de drager zelf bewijst niets. Wie de bestanden kan wijzigen, kan die lijst mee aanpassen. Zet de hashes daarom ook in het verslag dat je digitaal ondertekent. Dan hangen ze aan je handtekening en aan het moment van ondertekenen.

Klopt de hash bij de ontvanger nog met die in het verslag, dan kan de ontvanger zeker zijn dat er onderweg niet aan gemorreld is door een derde.

Wat een kloppende hash bewijst De deskundige berekent de hash bij afgifte en zet hem in het ondertekende verslag. Het bestand gaat onderweg via post, link of drager. De ontvanger berekent de hash opnieuw. Zijn beide gelijk, dan is er onderweg niet aan gemorreld. Verschillen ze, dan is het bestand na afgifte gewijzigd. Deskundige berekent de hash bij afgifte Onderweg post, link of drager hier kan een derde morrelen Ontvanger berekent de hash opnieuw 7F3A…C91E in het ondertekende verslag 7F3A…C91E ? Gelijk: onderweg is er niet aan gemorreld. Verschillend: het bestand is na afgifte gewijzigd.

Wat op elke drager staat

  • de databestanden;
  • MANIFEST.txt: wat er in de dataset zit, wat bewust niet, en waarom;
  • CHECKSUMS_SHA256.txt: één hash per bestand.

Zet ook de hash van MANIFEST.txt in het verslag. Anders kan net de beschrijving van wat erin zit achteraf ongemerkt veranderen.

Hashes berekenen en nakijken

PowerShell staat op elke Windows-computer en rekent SHA-256 uit, voor één bestand of voor een hele map. Je hebt dus geen extra software nodig, en een partij evenmin: met dezelfde opdracht kijkt die één bestand na.

Geef ook mee hoe een partij de hele lijst nakijkt. Zo’n controle meldt gewijzigde en ontbrekende bestanden, maar geen bestand dat erbij gekomen is. Daarvoor heb je MANIFEST.txt nodig, en een vergelijking van het aantal regels in de lijst met het aantal bestanden op de drager.

De scripts om te kopiëren, en de valkuilen die erbij horen, staan op Hashes in PowerShell.

Bereken de hash bij ontvangst

Bereken de hash bij ontvangst, niet pas bij aflevering. Dan ligt de begintoestand vast, en is elke latere bewerking een bewuste stap in plaats van een onverklaard verschil.

Het hashen zelf gaat snel: 2 GB uit het geheugen duurt enkele seconden. Van een externe schijf of een netwerkmap duurt het ongeveer even lang als het uitlezen van die schijf.