De auteur beschrijft de ontwikkeling van een 'Proof of Capture'-camera, gebouwd met een Raspberry Pi Zero, een ATECC608 crypto-chip en een 3D-geprinte behuizing. In plaats van te vertrouwen op AI-detectie achteraf, bewijst deze camera de authenticiteit op het moment van opname.
De technische kern is het gebruik van steganografie: een ondertekende perceptuele hash (pHash) wordt als onzichtbaar watermerk in de pixels van de afbeelding verwerkt via DWT + DCT. Hierdoor overleeft de handtekening compressie (zoals bij WhatsApp) en het verwijderen van EXIF-data, wat normaal gesproken bij metadata-oplossingen een probleem is.
Het artikel vergelijkt deze aanpak met Apple Reference Image. De auteur bekritiseert Apple omdat zij geen gebruikmaken van de open C2PA-standaard en de root of trust binnen hun eigen Private Cloud Compute houden. Hoewel de auteur erkent dat geen enkele methode volledig waterdicht is (bijvoorbeeld tegen 'screen attacks'), is het project open source en te bouwen voor minder dan $100.
Apple Reference Image, maar dan open source en met steganografie
Apple introduceerde gisteren Apple Reference Image: een manier om cryptografisch te bewijzen dat een foto daadwerkelijk met een camera is genomen, in plaats van dat deze door AI is gegenereerd.
Tijdens mijn tijd bij het Recurse Center deze zomer hebben Alex Hornstein en ik (beiden camera-liefhebbers) een camera gebouwd met een 'proof of capture'. De camera bestaat uit:
- een Raspberry Pi Zero;
- een displayboard;
- een ATECC608 crypto-chip;
- een ontspanknop;
- een 3D-geprinte behuizing.
Bewijzen wat echt is op het moment van opname
Toen ik in 2019 ML-tools voor factchecking implementeerde, was het — zelfs in het tijdperk van 'Will Smith die spaghetti eet' — duidelijk dat generatoren sneller gaan dan detectoren. Detectie is een race die je niet kunt winnen: elke verbetering in de detector dient als trainingssignaal voor de volgende generator.
Onze aanpak draait het probleem om: in plaats van achteraf te proberen te detecteren wat nep is, bewijzen we wat echt is op het moment van vastlegging.
De complexiteit hiervan ligt niet op technisch niveau, maar in de omgang met fotobewerkingen (moet een bijgesneden foto zijn handtekening behouden?) en metadata. Op het moment dat je een afbeelding deelt, worden de EXIF-gegevens om privacyredenen verwijderd, waardoor elke handtekening die daar is opgeslagen, verdwijnt.
Steganografie en perceptuele hashes
Voor onze camera hebben we gebruikgemaakt van steganografie: een onzichtbaar watermerk dat verborgen zit in de pixels van de afbeelding zelf. Dit watermerk bevat een ondertekende perceptuele hash (een hash van hoe de foto eruitziet, niet van de exacte bytes).
Omdat er niets in de metadata wordt opgeslagen, overleeft de handtekening compressie en het wijzigen van de afmetingen. Onze eerste versie verborg een exacte SHA-256 hash in het laatste bit van elke pixel, maar elke JPEG-hercompressie vernietigde dit. De huidige versie tekent een pHash en verspreidt deze over de hele afbeelding als een watermerk in het frequentiedomein (DWT + DCT). Dit overleeft compressie van WhatsApp-niveau en detecteert nog steeds bewerkingen in de inhoud.
Bijschrift: Vereenvoudigde illustratie: LSB-vervanging wordt getoond ter verduidelijking; de eigenlijke inbedding verspreidt de handtekening via een DWT + DCT watermerk.
De ATECC608-chip
De ondertekening wordt afgehandeld door een ATECC608 cryptografische chip (zelf gesoldeerd!) die een publieke sleutel voor verificatie en een private sleutel voor ondertekening bevat.
Zodra de private sleutel is aangemaakt, verlaat deze de chip nooit; zelfs de eigenaar kan deze niet lezen. Bovendien blokkeert de chip zichzelf als er geprobeerd wordt om hem te manipuleren.
Bijschrift: Het ATECC608 secure element.
Wat Apple doet
Apple doet iets soortgelijks: de sensor tekent elke pixel op het moment van opname. Maar in plaats van de handtekening in de afbeelding te imbedden, ontwikkelt Private Cloud Compute dit tot een "digitaal negatief" dat naast je foto bestaat. Hun verificatieproces is nog niet openbaar of duidelijk.
Bijschrift: Apple Reference Image: vergelijk de geauthentiseerde opname met de foto om te zien of deze is gewijzigd. [bron]
Wat ik minder prettig vind, is dat ze geen gebruikmaken van de bestaande open standaard C2PA, die al wordt gebruikt door Nikon, Sony, Leica en Adobe. En hoewel ze API's openstellen zodat platforms native verificatie kunnen uitvoeren, blijft de root of trust binnen Apple's Private Cloud Compute. Apple... (zucht).
Om eerlijk te zijn...
Geen van beide — noch Proof of Capture, Apple Reference Image, noch C2PA — lost het probleem volledig op. Een 'screen attack' werkt bijvoorbeeld nog steeds: fotografeer een scherm waarop een AI-afbeelding wordt getoond, en je hebt een ondertekende foto van iets dat nep is. Maar het is altijd goed om te zien dat grote spelers geïnteresseerd zijn in het aanpakken van dit probleem.
Het project is open source. Je kunt je eigen camera bouwen voor minder dan $100.
Afsluitend met een geprinte foto van onze Proof of Capture-camera. Bezoek het Recurse Center om dit kunstwerk te zien. Als je goed genoeg kijkt, zie je wellicht de verborgen handtekening.
"Geloof me, deze foto is 100% authentiek. Ondertekend."
Apple Reference Image, maar dan open source en met steganografie
Apple introduceerde gisteren Apple Reference Image: een manier om cryptografisch te bewijzen dat een foto daadwerkelijk met een camera is genomen, in plaats van dat deze door AI is gegenereerd.
Tijdens mijn tijd bij het Recurse Center deze zomer hebben Alex Hornstein en ik (beiden camera-liefhebbers) een camera gebouwd met een 'proof of capture'. De camera bestaat uit:
- een Raspberry Pi Zero;
- een displayboard;
- een ATECC608 crypto-chip;
- een ontspanknop;
- een 3D-geprinte behuizing.
Bewijzen wat echt is op het moment van opname
Toen ik in 2019 ML-tools voor factchecking implementeerde, was het — zelfs in het tijdperk van 'Will Smith die spaghetti eet' — duidelijk dat generatoren sneller gaan dan detectoren. Detectie is een race die je niet kunt winnen: elke verbetering in de detector dient als trainingssignaal voor de volgende generator.
Onze aanpak draait het probleem om: in plaats van achteraf te proberen te detecteren wat nep is, bewijzen we wat echt is op het moment van vastlegging.
De complexiteit hiervan ligt niet op technisch niveau, maar in de omgang met fotobewerkingen (moet een bijgesneden foto zijn handtekening behouden?) en metadata. Op het moment dat je een afbeelding deelt, worden de EXIF-gegevens om privacyredenen verwijderd, waardoor elke handtekening die daar is opgeslagen, verdwijnt.
Steganografie en perceptuele hashes
Voor onze camera hebben we gebruikgemaakt van steganografie: een onzichtbaar watermerk dat verborgen zit in de pixels van de afbeelding zelf. Dit watermerk bevat een ondertekende perceptuele hash (een hash van hoe de foto eruitziet, niet van de exacte bytes).
Omdat er niets in de metadata wordt opgeslagen, overleeft de handtekening compressie en het wijzigen van de afmetingen. Onze eerste versie verborg een exacte SHA-256 hash in het laatste bit van elke pixel, maar elke JPEG-hercompressie vernietigde dit. De huidige versie tekent een pHash en verspreidt deze over de hele afbeelding als een watermerk in het frequentiedomein (DWT + DCT). Dit overleeft compressie van WhatsApp-niveau en detecteert nog steeds bewerkingen in de inhoud.
Bijschrift: Vereenvoudigde illustratie: LSB-vervanging wordt getoond ter verduidelijking; de eigenlijke inbedding verspreidt de handtekening via een DWT + DCT watermerk.
De ATECC608-chip
De ondertekening wordt afgehandeld door een ATECC608 cryptografische chip (zelf gesoldeerd!) die een publieke sleutel voor verificatie en een private sleutel voor ondertekening bevat.
Zodra de private sleutel is aangemaakt, verlaat deze de chip nooit; zelfs de eigenaar kan deze niet lezen. Bovendien blokkeert de chip zichzelf als er geprobeerd wordt om hem te manipuleren.
Bijschrift: Het ATECC608 secure element.
Wat Apple doet
Apple doet iets soortgelijks: de sensor tekent elke pixel op het moment van opname. Maar in plaats van de handtekening in de afbeelding te imbedden, ontwikkelt Private Cloud Compute dit tot een "digitaal negatief" dat naast je foto bestaat. Hun verificatieproces is nog niet openbaar of duidelijk.
Bijschrift: Apple Reference Image: vergelijk de geauthentiseerde opname met de foto om te zien of deze is gewijzigd. [bron]
Wat ik minder prettig vind, is dat ze geen gebruikmaken van de bestaande open standaard C2PA, die al wordt gebruikt door Nikon, Sony, Leica en Adobe. En hoewel ze API's openstellen zodat platforms native verificatie kunnen uitvoeren, blijft de root of trust binnen Apple's Private Cloud Compute. Apple... (zucht).
Om eerlijk te zijn...
Geen van beide — noch Proof of Capture, Apple Reference Image, noch C2PA — lost het probleem volledig op. Een 'screen attack' werkt bijvoorbeeld nog steeds: fotografeer een scherm waarop een AI-afbeelding wordt getoond, en je hebt een ondertekende foto van iets dat nep is. Maar het is altijd goed om te zien dat grote spelers geïnteresseerd zijn in het aanpakken van dit probleem.
Het project is open source. Je kunt je eigen camera bouwen voor minder dan $100.
Afsluitend met een geprinte foto van onze Proof of Capture-camera. Bezoek het Recurse Center om dit kunstwerk te zien. Als je goed genoeg kijkt, zie je wellicht de verborgen handtekening.
"Geloof me, deze foto is 100% authentiek. Ondertekend."