ID.nl logo
Zo hack je de software in je hardware
© Reshift Digital
Huis

Zo hack je de software in je hardware

Bij hacken denken we vaak aan software die op een computer draait, maar er draait ook heel wat software in allerlei andere elektronische apparaten, zoals ESP8266- of ESP32-microcontrollerbordjes, een bluetooth-beacon of een Apple AirTag. Hoe haal je daar gevoelige informatie uit of pas je de werking van het apparaat aan?

Hardware-hacken is een heel breed domein en in deze ene masterclass kunnen we daar helemaal geen recht aan doen. Maar we tonen je enkele voorbeelden van wat er zoal mogelijk is. We hopen dat je daardoor geïnspireerd raakt om zelf op onderzoek uit te gaan.

Laten we beginnen met iets eenvoudigs. In PCM hebben we al vaak gewerkt met ESP8266- en ESP32-microcontrollerbordjes. Je schreef je code daarvoor, compileerde die en schreef die dan naar het ontwikkelbordje. Dat deed je bijvoorbeeld met:

- Arduino IDE;

- Arduino IoT Cloud;

- PlatformIO;

- ESPHome;

- esptool.

Wifi-wachtwoorden ontfutselen

Met een ESP8266 of ESP32 wil je bijna altijd met een wifi-netwerk verbinden. In je code geef je dus de SSID en het bijbehorende wachtwoord op van het gewenste wifi-netwerk. Dat wordt door esptool naar het flashgeheugen van je microcontroller geschreven. Vaak is dit gewoon onversleuteld, zodat iedereen met toegang tot de microcontroller je wifi-wachtwoord kan uitlezen. De ESP32 ondersteunt wel flash-encryptie met een sleutel die zich in de registers van de microcontroller bevindt. Maar dit wordt nog niet al te vaak gebruikt.

Je mag er dus van uitgaan dat heel wat ESP8266- en ESP32-bordjes, ook degene die jij in je huis hebt ingezet, je wifi-wachtwoord onversleuteld hebben opgeslagen. Iemand die een van je ontwikkelbordjes steelt, kan hier dus je wifi-wachtwoord uit ontfutselen en zo in je netwerk inbreken. Dit is ook iets om mee rekening te houden als je een defect ontwikkelbordje weggooit: hier kunnen nog allerlei gevoelige gegevens uitgehaald worden. Als je het flashgeheugen niet kunt overschrijven of vernietigen, dan zit er niet anders op dan het bordje bij je te houden tot je je wifi-wachtwoord hebt veranderd.

Flashgeheugen uitlezen

Het flashgeheugen van een ESP8266 of ESP32 uitlezen is even eenvoudig als er firmware naar schrijven. Dat doe je met het programma esptool. Als je de programmeertaal Python hebt geïnstalleerd en de bijbehorende pakketbeheerder pip, dan installeer je esptool eenvoudig met de opdracht:

pip3 install esptool

Sluit nu je ESP8266- of ESP32-ontwikkelbordje via een usb-kabel op je computer aan en identificeer de chip met:

esptool.py flash_id

Je krijgt dan iets te zien als:

esptool.py v3.1

Found 1 serial ports

Serial port /dev/ttyUSB0

Connecting....

Detecting chip type... ESP8266

Chip is ESP8266EX

Features: WiFi

Crystal is 26MHz

MAC: 2c:3a:e8:10:db:a3

Uploading stub...

Running stub...

Stub running...

Manufacturer: ef

Device: 4016

Detected flash size: 4MB

Hard resetting via RTS pin...

Je ziet dat het hier om een ESP8266EX gaat en dat die 4 MB flashgeheugen heeft. Dat laatste is belangrijk als je het hele flashgeheugen wilt uitlezen. Dat doe je nu met de volgende opdracht:

esptool.py read_flash 0x0 0x400000 esp8266.bin

Deze opdracht leest het flashgeheugen van adres 0 tot 0x400000 (hexadecimaal voor 4 MB) uit en slaat dit op in het bestand esp8266.bin.

©PXimport

Firmware analyseren

Je hebt nu een kopie van de firmware die op je ESP8266 draait en deze kun je verder op je computer analyseren. Als je op een Linux-computer werkt, is de tool strings meestal standaard geïnstalleerd (onderdeel van het pakket binutils): die toont je alle leesbare tekenreeksen in een binair bestand. In Windows maakt een gelijknamig en bijna identiek programmaonderdeel uit van Windows Sysinternals.

Je past het als volgt toe in een opdrachtvenster:

strings esp8266.bin

Toen we dit toepasten op ESPHome-firmware in onze ESP8266, vonden we onmiddellijk de SSID en wachtwoord van ons wifi-netwerk. Die kwamen zelfs bij herhaling voor in het bestand.

De opdracht strings is ook handig om te weten te komen met wat voor soort firmware je te maken hebt. Je ziet er snel functieaanroepen, versienummers en zelfs volledige html-code van een ingebouwde webinterface.

Via een entropiegrafiek krijg je een idee in welk deel van de firmware iets versleuteld is

-

Binwalk

Als je wat meer informatie te weten wilt komen over de structuur van het firmwarebestand, is het programma binwalk handig. Dit scant de inhoud van een firmwarebestand op bepaalde signatures, en zo kan het bestandssystemen of bestanden in de firmware detecteren en zelfs uitpakken.

Stel dat je binwalk uitvoert op een firmwarebestand en je krijgt het volgende te zien:

2837765 0x2B4D05 JPEG image data, EXIF standard

Dan weet je dat op adres 0x2B4D05 een jpeg-bestand start. Hoe haal je dit nu uit de firmware? Je kunt eenvoudig alle herkende bestandstypes extraheren met de opdracht:

binwalk -e firmware.bin

Je kunt het extraheren ook beperken tot een specifiek type data waarin je geïnteresseerd bent:

binwalk -D jpeg firmware.bin

Een andere nuttige functie van binwalk is de berekening van entropie (wanorde):

binwalk -E firmware.bin

Dit toont een grafiek met op de horizontale as de geheugenadressen en op de verticale as de entropie van 0 tot 1.

Entropie is een maat voor wanorde of willekeur. De geheugengebieden waar de entropie 0 is, zijn gebieden waar dezelfde byte (bijvoorbeeld 0x00 of 0xFF) herhaald wordt. Gebieden waar de entropie 1 is, bevatten volledig willekeurige bytes. Meestal is dat een teken dat deze gebieden versleuteld zijn. Licht de entropie dicht tegen 1 en schommelt die wat, dan is het gebied waarschijnlijk gecomprimeerd. En zie je dat een specifiek gebied een merkelijk lagere entropie heeft dan andere gebieden, dan weet je dat hierin veel herhaling voorkomt. De entropiegrafiek is dus een handige manier om te onderzoeken welke geheugengebieden in de firmware extra aandacht verdienen.

©PXimport

ImHex

Een grafisch programma om firmware te analyseren is ImHex, het is een hexeditor voor reverse-engineering. Het programma is te downloaden voor Windows, Linux en macOS. Open je firmwarebestand in ImHex en vink in het menu View de weergaven aan die je wilt zien.

Met Hex editor krijg je de data in het bestand te zien, met links de hexadecimale waardes van de bytes en rechts de overeenkomstige leesbare tekens die deze bytes als hun ASCII-code hebben. Met Strings kun je ImHex laten zoeken naar leesbare tekenreeksen van een opgegeven minimumlengte.

©PXimport

Chips identificeren

Niet alle elektronica heeft een eenvoudige seriële aansluiting via usb. Vaak moet je specifieke pinnen of testpunten op een printplaatje verbinden om het geheugen van de microcontroller uit te lezen. Als je geen technische documentatie over het product vindt, dien je eerst de chip te identificeren. Een vergrootglas of een digitale microscoop kan hierbij helpen. Zelf proberen we dit uit met een bluetooth-beacon dat we op AliExpress hadden gekocht.

Wanneer we de chip onder de microscoop leggen, zien we duidelijk dat het om een nRF51822 van Nordic Semiconductor gaat, een populaire ARM-chip met bluetooth-ondersteuning. Er lopen ook duidelijke sporen van de pinnetjes aan de zijkant van de chip naar een rij met testpunten. We willen vervolgens te weten komen waarvoor die testpunten dienen, en of ze ons kunnen helpen om het geheugen van de processor uit te lezen.

©PXimport

Testpunten identificeren

Om de pinnetjes van een microprocessor te identificeren, moeten we in de datasheet van de processor duiken. We zoeken in het InfoCenter van Nordic Semiconductor naar de product specification van de nRF51822. Op pagina 11 vinden we de pinnen van de QFN48-uitvoering van de nRF51822. De labels op de chip begint met QF, net zoals bij ons exemplaar.

Let op het zwarte bolletje in de linkerbovenhoek op de afbeelding met de pintoewijzing (zie boven/onder/plaatsaanduiding). Dit komt overeen met het bolletje op de chipbehuizing op je printplaatje. Oriënteer de chip hetzelfde. Je ziet dan in de afbeelding dat de pin rechtsonder in de onderste rij SWDCLK is en links ernaast SWDIO. Helemaal links zie je VSS, wat de negatieve spanning is (GND). In het rijtje pinnen links zie je twee keer VDD, de positieve spanning. Met deze vier pinnen weten we genoeg om verder te gaan. We hoeven alleen de sporen van die pinnen naar de overeenkomende testpunten te volgen. Voor SWDCLK en SWDIO is dat eenvoudig te zien: dat zijn de twee testpunten aan de rechterkant van de rij.

©PXimport

Serial Wire Debug (SWD)

De nRF51822 is een ARM Cortex-M0 32bit-processor, uitgerust met Serial Wire Debug (SWD). Dit is een debugpoort waarover kleinere ARM-processoren wel vaker beschikken. Ze bestaat uit twee pinnen (SWDIO en SWDCLK of ook wel SWCLK), en dan uiteraard nog een voedingspin en GND. Via SWDIO worden de data uitgewisseld, terwijl SWDCLK het kloksignaal vervoert.

Er is geen algemeen geldende standaardlay-out voor de SWD-pinnen, dus die zul je moeten uitzoeken. Op de meeste printplaatjes in commerciële producten zullen er geen labels bij de pinnen afgedrukt zijn. Zo ook bij het bluetooth-beacon dat we onderzochten. Maar als je de testpunten eenmaal geïdentificeerd hebt, is het een kwestie van een SWD-debugger op de correcte testpunten aan te sluiten.

Positieve en negatieve spanning identificeren

De SWDIO- en SWDCLK-testpunten hebben we al geïdentificeerd, terwijl VDD en GND moeilijker te identificeren zijn. Daarvoor heb je een multimeter nodig. Maar eerst moet je het printplaatje goed fixeren, zodat je er eenvoudig met meetpennen spanningen op kunt meten. Wij zijn zelf fan van de PCBite Kit van Sensepeek. Je plaatst twee of meer standaarden magnetisch op een metalen onderplaat, en bovenaan de standaarden klem je het printplaatje vast.

Plaats de batterij nu in het bluetooth-beacon. Het apparaatje start op en begint bluetooth-signalen uit te zenden. De SWD-testpunten hebben we al geïdentificeerd, dus nu is het enkel belangrijk om VDD en GND te vinden. Stel je multimeter in op een gelijkspanningsbereik rond 3 V, leg de zwarte meetpen van de multimeter op één testpunt en de rode op een ander testpunt. Zodra je een continue spanning van 3,3 V tussen beide punten meet, weet je dat het testpunt met de zwarte meetpen GND is en het testpunt met de rode meetpen VDD. Je hebt nu alle vier de benodigde testpunten geïdentificeerd.

©PXimport

SWD-debugger aansluiten

Om met deze testpunten te verbinden, heb je een SWD-debugger nodig. Wij gebruiken de Black Magic Probe, een JTAG- en SWD-debugger voor ARM Cortex-microcontrollers (Cortex-M en Cortex-A). In tegenstelling tot vele andere SWD-debuggers heb je hiervoor geen speciale software nodig, alleen gdb uit de GNU Arm Embedded Toolchain. Deze kun je op de website van ARM downloaden voor Windows, Linux en macOS.

Voor dit soort bewerkingen op printplaatjes met testpunten is de combinatie van de Black Magic Probe met de testnaalden van de PCBite Kit ideaal. Deze testprobes hebben een heel dunne naald die je op het kleinste testpunt laat rusten en die dan door het gewicht op de juiste plaats blijft liggen. De arm blijft magnetisch op de metalen onderplaat bevestigd. Aan de kop met de testnaald zijn twee pinnen te vinden waarop je jumperwires kunt aansluiten. De andere kant van de jumperwires sluit je aan op de overeenkomstige pinnen van het 7-pins JTAG-adapterbordje waarmee de Black Magic Probe wordt geleverd. Sluit SWDIO aan op TMS/SWDIO, SWDCLK op TCK/SWCLK, VSS op GND en VDD op VCC/tVref.

©PXimport

Continuïteit testen

Soms zijn er meerdere testpunten voor VDD of GND. Je kunt die eventueel nog identificeren door je multimeter in de continuïteitsstand te zetten en één meetpen op een bekend testpunt te zetten en met de andere meetpen onbekende testpunten aan te raken. Laat de multimeter een bliepje horen, dan weet je dat beide testpunten op dezelfde spanning staan omdat ze intern verbonden zijn. Wie weet vind je zo nog een handiger testpunt voor VDD of GND.

De Black Magic Probe en de PCBite Kit vormen de ideale combinatie

-

SWD in GDB

Sluit nu de usb-poort van de Black Magic Probe aan op je computer en kijk welke COM-poort (in Windows) of welk TTY-apparaat (in Linux of macOS) eraan wordt toegekend. De Black Magic Probe geeft zich uit voor twee seriële apparaten: een voor SWD en een voor UART. Start nu de ARM-versie van gdb en verbind met de gdb-server op de Black Magic Probe met de opdracht:

arm-none-eabi-gdb -ex "target extended-remote /dev/ttyACM0"

Gebruik het juiste apparaatbestand voor jouw situatie. Scan daarna in de debugger naar een SWD-apparaat:

monitor swdp_scan

Als je het volgende ziet in het opdrachtvenster, dan heb je geen correcte verbinding met een of meer van de testpunten:

Target voltage: 0.0V

SW-DP scan failed!

Kijk alles dan nog eens na. Mogelijk ligt een van de testnaalden net naast een testpunt.

Je zou iets moeten zien als:

Target voltage: 3.1V

Available Targets:

No. Att Driver

1 Nordic nRF51 M0

Verbind dan met doel 1:

attach 1

De waarschuwing die je dan krijgt, mag je negeren.

Firmware uitlezen via SWD

Je wilt nu de firmware uit het geheugen uitlezen en naar een bestand schrijven. In de productspecificatie van de nRF51822 vinden we dat het flashgeheugen van de microcontroller 256 of 128 KB groot is. Voor de nRF51822-QFAA is dat 256 KB. Dan lezen we de eerste 256 KB van het geheugen uit, omdat de code zich volgens de memory-map in de productspecificatie aan het begin bevindt:

dump binary memory nrf51822-beacon.bin 0x000000 0x040000

Als je een foutmelding krijgt dat je het geheugen niet kunt uitlezen, dan heeft de fabrikant de leesbeveiliging van de nRF51822 ingeschakeld. Er zijn manieren om dit te omzeilen en er bestaan tools die je daarmee helpen, maar dat zou te ver gaan in dit artikel. Zoek maar eens op nRF51822 Read Back Protection Configuration of RBPCONF.

Verlaat nu gdb met quit en bevestig dat je het doel wilt afkoppelen.

Firmware disassembleren met ImHex

Nu kun je het opgeslagen firmwarebestand weer openen met ImHex. In plaats van tekenreeksen te zoeken, gaan we nu de machinecode disassembleren. Kies daarvoor in het menu View de Disassembler View. Vul bij Code region het adresbereik in van 0 tot 3FFFF. Kies bij Settings als architectuur ARM32, Little Endian, Thumb mode en Cortex-M mode.

Klik op Disassemble, waarna je de firmware te zien krijgt als assembler, een min of meer leesbare vorm van machinecode. Je kunt hetzelfde overigens ook op de opdrachtregel doen met de opdracht arm-none-eabi-objdump uit de GNU Arm Embedded Toolchain:

arm-none-eabi-objdump -D -bbinary -marm nrf51822-beacon.bin -Mforce-thumb > nrf51822-beacon.s

Het resultaat vind je in het bestand nrf51822-beacon.s.

Een complete analyse van de code gaat te ver in dit artikel, maar in principe kun je hier nu ook code gaan aanpassen, het firmwarebestand opslaan en daarna de aangepaste firmware met de Black Magic Probe via SWD weer naar het flashgeheugen van de chip schrijven.

©PXimport

Een kleine puls schakelt de leesbeveiliging van de nRF52832 uit

-

Apple AirTags reverse-engineeren

Een groot deel van hardware-hacken bestaat uit het reverse-engineeren van de hardware en de firmware/software die erop draait. Een goed voorbeeld hiervan vind je op de webpagina Apple AirTag Reverse Engineering van Adam Catley. Hierop heeft de beveiligingsonderzoeker alle informatie verzameld die hij over de AirTag heeft gevonden, ook van andere onderzoekers.

Interessant aan de AirTag is dat Apple gebruikmaakt van de functie Access Port Protection (APPROTECT) van de nRF52832-chip, een geavanceerdere bescherming tegen het uitlezen van het interne flashgeheugen via de SWD-poort dan RBPCONF bij de nRF51822. Maar net zoals RBPCONF is ook APPROTECT niet onfeilbaar. Hacker LimitedResults vond in 2020 een manier om APPROTECT te omzeilen.

De truc zit erin om het hardware-initialisatieproces dat de bescherming van het flashgeheugen instelt, tijdens het opstarten uit te schakelen. Dat gebeurt door enkele condensatoren van het printplaatje te verwijderen en op het juiste moment een kleine puls aan te brengen op de juiste pin. Op die manier slaagde hacker Ghidra Ninja erin om het flashgeheugen van de AirTag volledig uit te lezen.

AirTag inbouwen

Adam Catley is nog verder gegaan en hij heeft een AirTag volledig gedemonteerd en in een afstandsbediening ingebouwd. Door de demontage van de behuizing krimpt de diameter van 32 mm tot 26 mm en de hoogte van 8 mm tot 3,3 mm, waardoor het in heel wat apparaten in te bouwen is.

In zijn afstandsbediening krijgt de AirTag stroom via de batterij van de afstandsbediening. De volledige functionaliteit van de AirTag blijft behouden en de ingebouwde microfoon werkt zelfs nog beter omdat de behuizing van de afstandsbediening als diafragma werkt.

©PXimport

BitLocker-decryptiesleutel uit TPM-chip halen

Onderzoekers van de Dolos Group slaagden er onlangs in om de BitLocker-decryptiesleutel uit een TPM-chip te halen van een versleutelde laptop. De onderzoekers merkten dat er geen pincode werd gevraagd, dus de communicatie met de TPM-chip afluisteren zou voldoende moeten zijn om de decryptiesleutel te onderscheppen. In de datasheet zagen de onderzoekers dat de TPM-chip via Serial Peripheral Interface (SPI) communiceerde.  Omdat de pinnetjes van de TPM-chip zelf te klein waren voor een stabiele verbinding, gingen ze op zoek naar andere SPI-chips in de buurt, omdat er vaak meerdere chips op dezelfde SPI-bus aangesloten zijn. Zo vonden ze een CMOS-chip in SOIC-8-formaat en op die grote pinnen konden ze eenvoudig hun logic analyzer aansluiten. Ze registreerden nu alle data die over de SPI-bus gingen tijdens het opstarten van de laptop en haalden de sleutel eruit met het script bitlocker-spi-toolkit.

©PXimport

▼ Volgende artikel
Waar voor je geld: 5 fonduesets voor een gezellige avond
© M.studio - stock.adobe.com
Huis

Waar voor je geld: 5 fonduesets voor een gezellige avond

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Daarom gaan we een paar keer per week voor je op zoek naar zulke aanbiedingen. Met Kerst en Oud en Nieuw voor de deur is het weer tijd om te bedenken wat je wil gaan eten. Wat dacht je van fondueen? Met deze vijf fonduesets maak je indruk op je vrienden en familie.

Met een fondueset smelt je de lekkerste kazen en dep je je broodje of vlees in bouillon of kaas. Fonduesets zijn de ultieme sfeermakers voor de feestdagen, of het nu met vrienden is of familie en of je kiest voor romige kaas, bouillon of chocolade; het is op en top genieten. Een absolute must-have voor elke levensgenieter en perfect voor de feestdagen. Wij vonden vijf betaalbare fonduesets voor je.

Boska Elektrische Fondueset Pro - 8 personen

De Boska Elektrische Fondueset Pro is ontworpen voor liefhebbers van kaas‑ en vleesfondue. De set bestaat uit een geëmailleerde gietijzeren pot met een inhoud van circa 2,15 liter, waardoor je genoeg ruimte hebt voor een volledige kaasfondue of bouillon. Het verwarmingselement is elektrisch en beschikt over een instelbare thermostaat; hierdoor kun je de temperatuur naar wens aanpassen voor verschillende soorten fondue. Een handig indicatielampje laat zien wanneer het element aan staat. De pot staat op een stevige basis en heeft een extra lang snoer van twee meter, zodat je hem makkelijk midden op tafel plaatst. Bij de set worden acht fonduevorken geleverd die zijn voorzien van gekleurde markeringen. De combinatie van gietijzer en emaille zorgt voor een gelijkmatige warmteverdeling en eenvoudige reiniging.

Swissmar Lausanne 11‑delige fondueset - 6 personen

De Zwitserse fabrikant Swissmar levert met de Lausanne een 11‑delige fondueset die is gericht op traditioneel fonduen. De set bestaat uit een koperen pan met een geëmailleerde binnenkant en een zware RVS‑branderschaal. Doordat koper de warmte snel opneemt en verdeelt, is de fondue snel op temperatuur. De pan staat op een robuuste stalen houder waarin een brander met regelaar zit; hiermee pas je de vlamsterkte aan voor kaas‑, bouillon‑ of chocoladefondue. In de doos zitten verschillende accessoires, waaronder zes vorkjes en een branderschaal. Deze set is niet elektrisch, waardoor je hem zelfs buiten of op de camping kunt gebruiken.

Mäser Fondueset - 4 personen

De fondueset van Mäser bestaat uit een roestvrijstalen pan met bijbehorende brander. Roestvrij staal is slijtvast en eenvoudig te reinigen; je kunt de pan na gebruik in de vaatwasser zetten. De set heeft een inhoud van rond één liter, voldoende voor een kaas‑ of chocoladefondue voor een klein gezelschap. Er worden meerdere fonduevorkjes meegeleverd met gekleurde puntjes om ze te onderscheiden. Dankzij de stevige basis staat de pan stabiel op tafel, terwijl de gelijkmatige warmteverdeling voorkomt dat de inhoud aanbrandt. Omdat het geen elektrisch toestel is, gebruik je de brander met brandgel of spiritus.

Baumalu 385050 fondueset - 6 personen

Deze fondueset van Baumalu bestaat uit een zware gietijzeren pan die op een decoratieve houten plaat staat. Gietijzer houdt de warmte goed vast en is geschikt voor zowel kaas‑ als chocoladefondue. De bijgeleverde brander plaats je onder de pan; je regelt de vlamsterkte met een draaiknop. Omdat de pot stevig op de houten plaat staat, blijft hij stabiel en kras je niet op de tafel. In de set zitten fonduevorkjes met houten handvatten.

Tristar FO‑1107 Fonduepan - 8 personen

De Tristar FO‑1107 is een elektrische fondueset met een inhoud van ongeveer 1,5 liter. Je gebruikt deze pan voor verschillende soorten fondue, zoals kaas, bouillon of chocolade. Het verwarmingselement levert circa 1000 watt en heeft een instelbare thermostaat, zodat je de temperatuur kunt aanpassen aan het type fondue. Een indicatielampje geeft aan wanneer het apparaat actief is. De pan heeft een antiaanbaklaag, een cool‑touch handgreep en staat op een antislipvoet voor extra stabiliteit. Er worden acht fonduevorkjes meegeleverd en door de ring bovenop blijven de vorkjes op hun plek tijdens het fonduen.

▼ Volgende artikel
Van papier tot pixels: altijd je administratie op orde
© px.palette
Huis

Van papier tot pixels: altijd je administratie op orde

Papieren facturen, garantiebonnetjes, contracten en andere documenten slingeren al snel overal rond. Waarom niet alles digitaal bewaren, zodat je het in enkele klikken terugvindt? In dit artikel vind je gratis tools en praktische tips om je administratie te scannen, te taggen, doorzoekbaar te maken en veilig op te slaan zonder veel gedoe.

Wat gaan we doen?

We geven diverse tips en tools om administratieve en andere papieren documenten efficiënt en ordelijk te digitaliseren. Dat gaat van scannen en OCR’en tot organiseren, automatiseren, back-uppen en meer.

Tip 1: Scanner

Stel, je wilt een hele reeks documenten digitaliseren, zoals garantiebewijzen of facturen. We gaan ervan uit dat je een scanner in huis hebt, eventueel als onderdeel van een all-in-one-printer. Zo’n toestel is goed geschikt voor stabiele, rechte scans, en een (soms optionele) documentinvoer maakt het extra handig bij grotere aantallen. Je scant het best op zo’n 300 dpi, in grijswaarden of kleur, en bewaart het resultaat bij voorkeur als pdf. Helaas genereert de meegeleverde scansoftware vaak alleen pdf’s met een afbeelding van de tekst, waardoor je die later niet kunt doorzoeken of kopiëren.

©OttoPles

Er bestaan ook heel wat printers met een ingebouwde scanner.

Tip 2: NAPS2

Gebruik in dit geval beter scansoftware met geïntegreerde OCR, zoals het gratis en opensource NAPS2 (www.naps2.com, Windows, macOS en Linux). Start de app, klik op Nieuw profiel en op Apparaat kiezen om je scanner te selecteren. Je kunt kiezen uit drie drivertypes: WIA (ingebouwd in Windows, beperkt), TWAIN (krachtiger) en ESCL (voor moderne netwerk- of wifi-scanners, vergelijkbaar met Apple AirScan). Doorgaans kies je voor TWAIN. Stel de scanopties in en open Geavanceerd voor extra instellingen. Typ een profielnaam en bevestig met OK.

Klik nu op de knop OCR en download de gewenste talen, zoals Dutch en English. Plaats een vinkje bij PDFs doorzoekbaar maken middels OCR en kies taal en modus (Snel of Beste). Vink ook de andere opties aan en druk op Scannen.

Klik daarna op het pijlknopje bij PDF opslaan en kies PDF-instellingen. Vul bij Standaard bestandspad een bestandsnaam in – gebruik eventueel ‘placeholders’ als $(YY)-$(MM)-$(DD) – en kies bij Compatibiliteit bij voorkeur PDF/A, zoals PDF/A-2b. Dit formaat slaat namelijk alle lettertypes, kleurprofielen en structuurinformatie in het bestand zelf op, wat ‘garandeert’ dat je het document ook jaren later nog in zijn oorspronkelijke vorm te zien krijgt. Vink Onthoud deze instellingen aan, klik op OK, selecteer de scans en kies PDF opslaan. Het is trouwens ook mogelijk om een (niet-doorzoekbaar) pdf-bestand in NAPS2 te importeren, dit vervolgens te OCR’en en als PDF/A te bewaren.

NAPS2 is prima opensource-scansoftware, met geïntegreerde meertalige OCR-module.

Pdf-printer

De focus van dit artikel ligt op papieren brondocumenten, maar we willen zeker ook (de gratis versie van) PDFCreator vermelden (www.pdfforge.org/pdfcreator). Je kunt deze namelijk als virtuele printer installeren om zo allerlei documenttypen om te zetten naar PDF(/A).

Start na installatie de app, open het tabblad Printer, vink PDFCreator aan en kies via de moersleutel het bestaande profiel PDF/A (archiefbestand). Bevestig met Opslaan en sluit de app. Open nu een document in een willekeurige toepassing, open het afdrukvenster en selecteer PDFCreator als printer. Een dialoogvenster opent waarin je het document meteen kunt opslaan als PDF/A-bestand (standaardversie 2b, maar dit is aanpasbaar via het uitklapmenu).

Je kunt zo’n virtuele printer ook inzetten om documenten automatisch als PDF/A op te slaan in een zelf te bepalen map. Maak hiervoor in PDFCreator op het tabblad Profielen een nieuw profiel aan (bijvoorbeeld PDF/A in map Facturen), kies bijvoorbeeld PDF/A-2b als formaat en geef tevens een specifieke opslaglocatie op. Koppel dit profiel op het tabblad Printer aan een nieuwe virtuele printer (bijvoorbeeld PDF/A-facturen). Zo maak je meerdere profielen en printers aan, waarbij elk PDF/A-bestand automatisch in een andere map terechtkomt.

Je kunt ook meerdere virtuele printers aanmaken, telkens met een aangepast profiel.

Tip 3: Mobiel

Een vlakbedscanner is zeker handig, maar niet noodzakelijk, want je kunt tegenwoordig ook prima scannen met je smartphone. Met de juiste app wordt het beeld automatisch ge-OCR’d en indien nodig rechtgetrokken. Een van de betere apps is Adobe Scan, beschikbaar via www.kwikr.nl/adobescan of in de appstore van Android en iOS.

Installeer en start de app. De gratis versie volstaat meestal, al laat de betaalde versie (circa 10 euro per maand) je onder meer tot 100 pagina’s per bestand scannen (in plaats van 25) en pdf’s exporteren naar Office 365-formaten.

Meld je aan, bijvoorbeeld via je Google-account, en tik op Scan. Je kunt het resultaat onder meer uitsnijden, roteren en de helderheid en het contrast aanpassen. Kies Blijven scannen voor extra pagina’s of tik op PDF opslaan zodra je klaar bent. De pdf belandt standaard in je Adobe-account (https://acrobat.adobe.com), maar je kunt het bestand ook delen of (via Meer) bijvoorbeeld opslaan in Google Drive. Het pdf-bestand is standaard doorzoekbaar, controleer bij Voorkeuren of Tekstherkenning uitvoeren op opgeslagen PDF wel is ingeschakeld, maar het is geen PDF/A. Wil je dat, dan kun je het bestand alsnog omzetten met reeds eerder vermelde, gratis tools als NAPS2 of PDFCreator (zie ook kader ‘Pdf-printer’).

Met (het gratis) Adobe Scan kun je ook meerdere pagina’s laten OCR’en en in één pdf bewaren.

Tip 4: Tags koppelen

Om naderhand snel het gewenste document te kunnen terugvinden, zorg je er dus allereerst voor dat je documenten doorzoekbaar zijn (bij pdf’s kan dit via OCR: zie tip 2). Je kunt gerust ook zelf extra trefwoorden, zeg maar digitale kleefbriefjes, aan je documenten koppelen.

Met een tool als TagSpaces (www.tagspaces.org, Windows, macOS en Linux) tag je in één keer meerdere bestanden en mappen met eigen trefwoorden. Bestaande tags voeg je simpelweg toe door ze naar bestanden te slepen. TagSpaces heeft ook een krachtige zoekfunctie waarmee je snel documenten met de juiste tag(s) terugvindt.

Handig zijn ook ‘smart tags’: je bepaalt dan zelf de criteria, waarna nieuwe bestanden automatisch de juiste tags krijgen. Deze tags kun je opslaan in aparte sidecar-bestanden (JSON) of je voegt ze achteraan de bestandsnaam toe: een bestand als aanpassing.pdf bijvoorbeeld wordt dan iets als aanpassing[huur indexering].pdf. De betaalde Pro-versie (42 euro per jaar) heeft enkele geavanceerde opties, zoals het toekennen van tags op basis van lokale AI-taalmodellen.

TagSpaces is een krachtige taggingtool, maar met een zekere leercurve.

Tip 5: Tags zoeken

Vind je TagSpaces toch wat overkill, dan zijn er andere manieren om documenten van (doorzoekbare) trefwoorden te voorzien. Je kunt in Verkenner (met sneltoets F2) trefwoorden toevoegen aan de bestandsnaam, maar het kan ook anders. Klik met rechts op een bestand of selectie, kies Eigenschappen en open het tabblad Details. Afhankelijk van het bestandstype kun je hier tags toevoegen bij velden als Titel, Onderwerp, Labels, Categorieën en Opmerkingen. Dit werkt goed bij bijvoorbeeld Office-bestanden en afbeeldingen, maar pdf-documenten laten zich minder makkelijk taggen. Dit kan bijvoorbeeld wel bij het aanmaken van zo’n document vanuit NAPS2 of PDFCreator. Bij deze laatste kun je bij een profiel titel, auteur, onderwerp en trefwoorden meegeven.

Vanuit de Verkenner kun je vervolgens zoeken op deze tags, ook in pdf-bestanden (ook al zijn ze niet zichtbaar op het tabblad Details). Navigeer naar de juiste map of het station en typ in de zoekbalk van de Verkenner labels:<trefwoord>.

Werkt dit niet, dan ontbreekt waarschijnlijk een geschikt zoekfilter. Je kunt zo’n Adobe-IFilter alsnog installeren via deze link. Je kunt dit controleren vanuit het Configuratiescherm: open Indexeringsopties, klik op Geavanceerd en scrol op het tabblad Bestandstypen naar pdf. Daar hoort PDF Filter (of eventueel Reader Search Handler) te staan, en Eigenschappen en inhoud van het bestand indexeren moet zijn ingeschakeld. Zorg er tevens voor dat alle gewenste mappen zijn opgenomen bij Deze locaties beheren (via de knop Wijzigen).

Met het juiste filter kun je ook vanuit de Verkenner naar tags binnen pdf-documenten zoeken.

Tip 6: Opslagstructuur

Je documenten zijn nu doorzoekbaar en mogelijk ook getagd, maar er is nog een derde belangrijk aspect: bewaar alles met logische bestandsnamen in een doordachte mappenstructuur.

Voor bestandsnamen plaats je de belangrijkste info, zoals projectnaam en/of datum, liefst vooraan. Gebruik de ISO-notatie (JJJJ-MM-DD), zodat je bestanden makkelijk chronologisch sorteert. Zoals vermeld in tips 4 en 5 kun je de naam aanvullen met trefwoorden, gescheiden door een koppelteken of onderstrepingsteken (vermijd spaties of speciale tekens). Eventueel voeg je achteraan een versienummer toe, zoals _v1. Een voorbeeld is 2025-08-31_Huurcontract_Appartement_v1.pdf.

Breng de bestanden onder in een logische structuur, bijvoorbeeld op datum, per project of klant, of per categorie (zoals Huis, Werk, Gezondheid, Financieel enzovoort). Je zult merken: dankzij consistente map- en bestandsnamen vind je documenten sneller terug.

Sneller zoeken binnen een logische mappenstructuur (en met labels).

Tip 7: Organisatietool

Je hebt een logische mappenhiërarchie opgezet, maar je moet natuurlijk ook zorgen dat documenten in de juiste map terechtkomen. Externe hulp van een organisatietool als het gratis Dropit (www.dropitproject.com, werkt nog onder Windows 11) of File Juggler (www.filejuggler.com, betaalde versie 44 euro) kan daarbij handig zijn. We bekijken kort deze laatste.

Start de geïnstalleerde tool op en klik op Add rule (of eerst op Add rule group als je de regels wilt categoriseren). Stel dat je alle pdf’s die in de map \gedeeld terechtkomen automatisch wilt verplaatsen op basis van trefwoorden. Vul dan Description in en klik op de knop met drie puntjes bij Monitor om de bronmap te kiezen. Via het tandwielpictogram kun je eventueel Examine everything regularly <frequentie> between checks instellen, wat ook goed werkt voor gedeelde netwerkmappen.

Klik daarna op de plus-knop bij If en stel het filtercriterium in, bijvoorbeeld: Any of the following / Other / PDF Properties / Keywords. Bevestig met Insert en geef het trefwoord op bij Contains / Text. Je kunt via de plus-knop extra filters instellen en kiezen tussen Any of All of the following.

Leg nu de gewenste actie vast bij Then: klik op de plusknop, kies bijvoorbeeld Move file en vul de doelmap in bij to. Bewaar je filter met Save and close. Op het tabblad Rules klik je op de pijlknop naast je filter om het te activeren. Test het resultaat.

Organiseer je bestanden automatisch op basis van eigen, gecombineerde zoekfilters.

DMS

Met de tips rond doorzoekbaar maken, taggen en ordenen uit dit artikel, en met tools als TagSpaces en File Juggler, raak je al ver. Wil je je administratie nog professioneler organiseren, dan kom je uit bij een volwaardig Document Management System, kortweg DMS. Flexibele opensource-tools zijn bijvoorbeeld Papermerge en Paperless NGX. Beide installeer je het makkelijkst op Windows via Docker (Docker Desktop for Windows, met WSL2).

Na installatie bereik je het browserdashboard van de tool standaard via http://<ip-adres>:8000. Beide tools bieden OCR aan om gescande documenten doorzoekbaar te maken. Je documenten kunnen ook automatisch worden verwerkt op basis van eigen filters, en er zijn krachtige zoekopties ingebouwd. Beide tools kun je meteen uitproberen via een online demo (log in met demo / demo).

Een krachtig DMS als Paperless-ngx maakt het bijhouden van je administratie veel efficiënter.

Tip 8: Zoektool

Zoals gezegd laat de ingebouwde zoektool in Windows je met de juiste filters en instellingen ook zoeken naar metadata, zoals trefwoorden in pdf’s. Met zoekfilters en operatoren zijn zelfs complexe opdrachten mogelijk, zoals labels:factuur auteur:Toon van Daele grootte:>300kB gewijzigdop:dit jaar. Echt gebruiksvriendelijk of handig is deze functie helaas niet. Je bent dan beter af met een tool als Agent Ransack (alias Filelocator Pro, www.mythicsoft.com/agentransack). Ook de gratis Lite-versie ondersteunt netwerkshares, Booleaanse operatoren, reguliere expressies en zoeken naar metadata via IFilter.

Start de tool, zet deze op Expert en open het tabblad Hoofd. Vul bij Bevat tekst je zoekterm in en bij Zoek in het gewenste station of de map. Eventueel kun je ook filters instellen voor Grootte en Gewijzigd Na / Voor. Op het tabblad Datum voeg je extra tijdsfilters toe en op het tabblad Opties vink je zeker Office en PDF documenten aan. Vul je bij Bevat tekst een pdf-trefwoord in, dan vindt Agent Ransack ook de bijbehorende bestanden. In het tabblad Treffers (rechtsonder) zie je bij gevonden bestanden bijvoorbeeld Keywords: <gezocht_trefwoord>. Met een dubbelklik open je meteen het bestand.

Agent Ransack laat gecombineerde en krachtige filters toe en zoekt ook in metadata.

Tip 9: Back-ups

Je administratie digitaliseren is een goed idee, maar dit is pas veilig met een degelijke back-upstrategie. Het best hanteer je hier de 3-2-1-regel: drie datakopieën (hoofdversie en twee back-ups), op twee soorten media, waarvan minstens één kopie op een andere locatie. Zo bescherm je je data tegen hardwarestoringen, ransomware, brand en diefstal.

Een uitstekende gratis en opensource back-uptool is Duplicati (www.duplicati.com, Windows en macOS), die we zelf al jaren dagelijks geautomatiseerd gebruiken voor back-ups naar zowel een netwerkschijf (NAS) als de cloud (Google Drive).

Installeer het gedownloade msi-bestand. Klik na afloop met rechts op het programma-pictogram in het Windows-systeemvak en kies Open om het browserdashboard te starten. Verschijnt First Run Setup, klik dan op Yes en stel een wachtwoord in. Je kunt Duplicati in je browser openen via http://localhost:8200. Wil je ook toegang vanaf een andere pc in je netwerk, open Instellingen in Duplicati en vink Remote toegang toestaan aan, zodat het dashboard bereikbaar is via http://<intern_ip-adres>:8200. Klik vervolgens op +Back-up toevoegen, laat Een nieuwe back-up instellen geselecteerd en vul een naam in. Schakel bij opslag buiten je netwerk versleuteling in. Geef vervolgens doel- en bronlocatie op en bepaal wanneer en hoe vaak de back-up wordt uitgevoerd. Duplicati maakt standaard incrementele back-ups, waarbij alleen nieuwe of gewijzigde data worden opgeslagen, waardoor het back-upvolume beperkt blijft.

Duplicati is een betrouwbare, gebruiksvriendelijke en flexibele back-uptool.

Tip 10: Beveiliging

Een goede back-upstrategie is cruciaal om je data veilig te bewaren, maar veiligheid draait ook om privacy. De beste manier om te voorkomen dat onbevoegden inzage krijgen in je (medische, financiële …) gegevens is versleuteling. In tip 9 vermeldden we al dat je in Duplicati back-ups automatisch kunt versleutelen met sterke AES-256-encryptie. Maar ook de data op je originele opslaglocatie wil je wellicht beveiligen.

Hiervoor kun je een gratis opensource-tool als VeraCrypt gebruiken, die naast containerbestanden ook complete partities of schijven kan versleutelen met sterke algoritmen als AES-256. We hebben niet de ruimte hier verder op in te gaan, maar hier vind je meer uitleg. Ook handig is Cryptomator om via je lokale synchronisatiemap data te versleutelen bij cloudopslagdiensten als Google Drive, OneDrive of Dropbox. Je vindt hier meer uitleg daarover.

Daarnaast kun je voor diverse documenttypes ook individuele bestanden beveiligen met een wachtwoord, al is dit vaak minder robuust dan een volledig versleutelde opslaglocatie. Dit kan bijvoorbeeld vanuit verschillende Office-applicaties, maar ook met pdf-tools zoals NAPS2 (bij PDF-instellingen vink je PDF versleutelen aan) en PDFCreator (bij Profielen, via Actie toevoegen / Versleuteling).

Ook in NAPS2 kun je pdf-documenten met een wachtwoord beveiligen.