Een vrij gebruikelijke praktijk bij het censureren van wachtwoorden of andere gevoelige informatie in afbeeldingen is het toepassen van de klassieke pixelatie. Er is ook de mogelijkheid om directionele vervorming of ruis te gebruiken, maar over het algemeen zijn pixels populairder. Stel je nu een mechanisme voor om het wachtwoord uit gepixelde afbeeldingen te herstellen. Het Depix gaat die kant op, en hoewel het nog iets meer dan twee maanden in ontwikkeling is, is het potentieel enorm.
Pixels en 'verloren informatie'
Midden vorig jaar spraken we over Face Depixelizer, een kunstmatige intelligentie-platform dat perceptueel realistische beelden kan maken van gepixelde gezichten. Het probleem is dat veel mensen op het web dachten dat deze technologie gecensureerde gezichten zou kunnen identificeren, maar in de praktijk is dat niet zo. In feite is alles wat het algoritme presenteert 'verzonnen', en te oordelen naar de oorspronkelijke resultaten heeft het een zeer brede verbeeldingskracht.
Het concept van gedeeltelijk herstel wordt echter haalbaar afhankelijk van het te verwerken materiaal. Denk bijvoorbeeld aan een gepixeld wachtwoord. De oorspronkelijke informatie wordt vernietigd, maar in deze gevallen is geen perfect resultaat nodig: het is meer dan voldoende om de algemene structuur van het wachtwoord te kennen (bijvoorbeeld hoeveel tekens het in totaal heeft) of enkele letters om een meer uitgewerkte en precieze aanval te ontwikkelen.
Hoe herstel je een wachtwoord uit gepixelde afbeeldingen met Depix
Dat brengt ons bij het Depix-project van Sipke Mellema, die in december 2020 een artikel publiceerde met de titel 'Recovering passwords from pixelized screenshots'. Daarin legt hij het basisproces van pixelatie uit, en de geschiedenis van enkele algoritmen die werden gebruikt om te 'onthullen', die zelfs teruggaan tot medio jaren '90.
Hoe werkt dit precies? De zogenaamde 'lineaire boxfilter' (formele naam voor pixelatie) gebruikt een deterministisch algoritme. Met andere woorden, als we dezelfde waarde keer op keer pixelen, krijgen we altijd hetzelfde resultaat. En tekst is hier niet immuun voor. Hieronder een voorbeeld van de letter J, herhaald onder hetzelfde filter.
Wat Depix doet is deze patronen analyseren en vergelijken, in een poging om specifieke letters, cijfers en symbolen te identificeren. Het is echter geen eenvoudig werk: het algoritme vereist dezelfde tekstgrootte en achtergrondkleur. Depix compenseert dit door als basis een afbeelding te gebruiken die een De Bruijn-reeks van alle mogelijke tekens bevat.
Technische details en conclusie
Technisch gezien is Depix een Python-script, en elke omgeving die is voorbereid om deze te ontvangen, zou het moeten kunnen uitvoeren. Persoonlijk raad ik aan om een Linux-variant te gebruiken en aandacht te besteden aan de sectie over afhankelijkheden, omdat niet alle distro's de juiste elementen hebben. Een ander aspect om te benadrukken is dat Depix de tijd neemt. Het hangt allemaal af van hoe lang de te verwerken pixelatie is, maar ik zag het script altijd maar één kern gebruiken.
Wat de resultaten betreft, onze eerste ervaring was vrij slecht. Misschien is het nodig om de voorwaarden van de gepixelde afbeelding wat meer aan te passen, maar we twijfelen er niet aan dat de prestaties na verloop van tijd zullen verbeteren. Bezoek het Depix-profiel op GitHub en probeer het.
Officiële site: Klik hier