Objavljeno: 19.8.2021 14:00 | Teme: apple

Applovo vohljanje po slikah podrobneje

Ko je Apple napovedal uvedbo sistema, ki bo avtomatično pregledoval fotografije na telefonih v boju proti fotografijah zlorab otrok, so zagotavljali, da bo sistem učinkovit, varen in da ne bo posegal v zasebnost. Danes je o sistemu znanega več in rečemo lahko vsaj to, da ni učinkovit.

Algoritem se imenuje NeuralHash in je bil vključen že v iOS 14.3, ki je izšel konec julija. Na Github je sedaj uporabnik Asuhariet Ygvar poslal kodo, ki jo je sestavil z reverznim inženiringom Applovega NeuralHasha. V grobem mehanizem deluje tako: fotografijo spremeni v RGB, spremeni v velikost 360x360, normalizira vrednosti barv na [-1,1], pošlje sliko v nevronsko mrežo NeuralHash (ki ima okrog 200 slojev), izračuna skalarni produkt med matriko dimenzij 96 x 128 in 128-dimenzionalnega vektorja iz mreže in iz tega pridobi enoznačno zgoščeno vrednost (hash), ki ima 96 bitov. Vse to se zgodi lokalno, potem pa se hash primerja z vrednostmi za znane posnetke zlorab otrok, katerih vrednosti skladišči ameriški center za izgubljene in zlorabljene otroke (US National Center for Missing and Exploited Children, NCMEC). V praksi je to razumen način, kako se preverjajo fotografije, ne da bi se posegalo v zasebnost in ne da bi imel Apple zbirko problematičnih fotografij.

Hudič pa se skriva v detajlih. Podrobna analiza pokaže, da je Applova implementacija NeuralHasha zanič. Pravzaprav sploh ni jasno, zakaj so uporabili nevronske mreže z 200 sloji, saj gre za star problem, ki je bil doslej že zadovoljivo rešen. Kakorkoli, NeuralHash deluje s povečavo/zmanjšanjem fotografij in njihovo kompresijo, torej ne glede na original tudi tako predelane še vedno prepozna kot otroško pornografijo, iztirijo pa ga izrezi in vrtenje. To je problem, saj lahko zlikovci sistem preprosto pretentajo tako, da okrog svojih fotografij narišejo črn okvir.

Drugi problem pa so kolizije. Le dan pozneje je namreč Cory Cornelius pokazal dve sliki, ki imata enako zgoščeno vrednost. Vsi tovrstni algoritmi seveda imajo kolizije, saj gre za preslikavo, ki ni injektivna in niti ne more biti, saj je moč ciljne množice manjša. Toda v praksi kolizij ni, predvsem pa jih ne smemo biti zmožni namenoma ustvarjati – algoritem mora biti dovolj računsko zahteven in kaotičen, da to ne gre. S tem, ko je NeuralHashu pripraviti kolizijo namenoma, postane sistem še bolj škrbav.

Na tak način bi lahko napadli posameznika, saj bi mu poslali fotografije, ki niso otroška pornografija, a bi jih sistem lažno prepoznal kot take. Potem bi se vsebina pretočila na Applove strežnike, ki bi sicer ugotovili, da gre za lažno pozitivno ujemanje, a hkrati bi lahko policija z odredbo pridobila ostalo vsebino. Apple se namreč ne bi mogel več izgovarjati, da je ne more posredovati, ker nima dostopa do šifriranih komunikacij in skladišč – podatki bi bili namreč že tam. Apple vztraja, da je sistem kljub temu varen, saj pride do obvestila šele po 30 ujemanjih zgoščenih vrednosti. Prav tako bi morali za zlorabo poznati zgoščene vrednosti datotek v bazi NCMEC, ki seveda ni javna.

To nista edini pomanjkljivosti sistema. Izkaže se tudi, da je uporaba nevronske mreže z 200 sloji nepotrebno in škodljivo zapletanje. Zaradi numerike so namreč hashi, ki jih pridela, močno odvisno od strojne opreme – spomnimo, pri uporabniku. Razlikuje se lahko tudi za 9 bitov, kar je več od sprejemljivih dveh.

Že pred odkritjem vseh teh pomanjkljivosti so številne organizacije za varovanje zasebnosti protestirale proti novemu sistem. Applov odziv je bil tedaj, da gre za varovanje pravic otrok. Poudarili so, da gre le za fotografije, ki so jih kot nezakonite označili v več državah, da obstajajo varovalke pred lažno pozitivnimi zadetki ipd. A četudi je vse to res, ostaja dejstvo, da je tehnično Applov sistem preprosto slab.

 

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Monitor na Facebooku

Monitor TV na YouTube

HC1qqZaCLXM

  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji