Perché Apple ha aggiunto all’iPhone un chip che danneggia Face ID

Categorie: Hardware, News
Save and Share:

Cominciamo dall’inizio: come appare il sistema Face ID e come funziona:

Tutto l’hardware necessario per il funzionamento di FaceID si trova proprio in questo notch nello schermo

A livello hardware, questo sistema è composto da una coppia di fotocamere – IR e RGB, e due tipi di emettitori IR – illuminazione normale e un proiettore di punti specializzato.

Rimuoviamo la “pelle” da un iPhone X, eliminiamo tutto il superfluo e vediamo il blocco delle fotocamere frontali allo stato puro. L’illuminazione IR esiste separatamente, ma tutti gli altri componenti sono nelle nostre mani: sono fissati saldamente in questa cornice metallica.

Qui vediamo la fotocamera IR e il proiettore di punti IR. Il funzionamento dei sistemi TrueDepth e FaceID si basa proprio su questa coppia a infrarossi. E il protagonista del racconto di oggi è proprio il proiettore di punti.

Breve principio di funzionamento di FaceID

Punti emessi da iPhone X — foto da qui.

Il proiettore di punti IR fa esattamente ciò che dice il suo nome: sputa nel mondo circostante decine di migliaia di punti infrarossi su comando. E la fotocamera IR, che dà questo comando, fotografa immediatamente questi punti.

Conoscendo le caratteristiche ottiche del proiettore, della fotocamera e la distanza tra loro, l’ISP nel processore dell’iPhone può stimare quanto è distante ogni punto. Non capisco fino in fondo la matematica del processo, e fare reverse engineering sarà difficile – ma scattare una serie di immagini con diversi pattern di punti permette di indovinare con precisione la posizione di ogni singolo punto, e creare così una mappa di profondità completa. Senza LIDAR e senza ToF.

È proprio la mappa di profondità che permette a FaceID di non farsi ingannare da fotografie stampate. Una fotografia è piatta – mentre un volto ha rilievo, e per FaceID la mappa topografica della faccia è più importante della sua colorazione.

Schema a blocchi della fotocamera di riferimento PrimeSense

Tuttavia, il sistema guarda anche alla colorazione del volto. La fotocamera IR è sincronizzata a livello hardware con la fotocamera RGB, e entrambe le fotocamere riprendono il volto contemporaneamente. E inoltre, l’iPhone può lampeggiare non solo con il proiettore IR, ma anche con l’illuminazione IR – e riprendere l’intero volto nello spettro IR.

La mappa di profondità di per sé è abbastanza grossolana, e l’analisi della texture del volto nelle immagini IR e RGB tramite rete neurale permette sia di affinare la profondità, sia di comprendere meglio i dettagli come l’espressione facciale – sia alla luce del giorno che al buio.

Se questo sistema vi sembra familiare, è probabilmente perché è stato preso direttamente dal Kinect di Xbox 360. Solo che quel Kinect era un enorme “baraccone”, mentre qui è stato ridotto alle dimensioni del notch nello schermo di uno smartphone.

Questo è stato realizzato dalla società PrimeSense, che ha sviluppato le tecnologie alla base di Kinect 1 – e poi è stata acquistata da Apple per 350 milioni di dollari. Interamente – con tutti i brevetti, gli sviluppi, i dipendenti e le altre “interiora”.

Analizziamo le interiora del proiettore

Andiamo più a fondo nel reverse engineering: rimuoviamo il proiettore di punti dal blocco fotocamere dell’iPhone X e lo smontiamo nelle sue parti costitutive. È composto da un flat cable FPC, un gruppo emettitore e un gruppo ottico.

Il flat cable è completamente passivo e quindi poco interessante. È saldato al gruppo emettitore e porta i segnali al connettore FPC, che si collega alla scheda madre dell’iPhone X. Il connettore ha un passo dei contatti di 0,35 mm, custom (Apple è “bastarda”), e sembra essere prodotto dalla società JAE.

Diamo un’occhiata ai componenti principali dell’ottica:

Proiettore in sezione trasversale: foto da qui, didascalie mie

E vediamo cosa c’è all’interno dell’emettitore:

Ed ecco che il ruolo del MOSFET e del misterioso chip ha attirato la mia attenzione. Perché? Perché non è chiaro cosa ci facciano lì.

La prima ipotesi ovvia è che il misterioso chip sia una memoria per il numero di serie e i dati di calibrazione. Il chip ha un’interfaccia I2C tipica per la memoria, e la memoria al suo interno c’è sicuramente. I proiettori hanno numeri di serie, con i quali si può anche determinare la data di produzione – e se il proiettore viene sostituito completamente, l’iPhone vedrà una mancata corrispondenza del numero di serie e si rifiuterà di funzionare con la sostituzione. Ma una normale EEPROM I2C si trova in un minuscolo package WLCSP-4 – e può anche essere bloccata dalla sovrascrittura, se lo si desidera. Quindi, il chip non può essere una semplice memoria. Fa sicuramente qualcos’altro.

Pinout del proiettore dai maestri cinesi di JCID. Le scritte sono imprecise, ma in generale corrispondono.

La seconda ipotesi ovvia è che il misterioso chip sia un driver per i laser e il MOSFET sia il suo interruttore. E sì, il MOSFET è effettivamente controllato dal chip. Solo che il chip non può essere qualcosa di critico come un driver laser.

In primo luogo, il MOSFET si trova nell’interruzione del catodo comune del gruppo laser – e 4 anodi separati escono direttamente sul flat cable e vanno oltre nelle profondità della scheda multistrato dell’iPhone. E in secondo luogo, durante la raccolta di dati per il reverse engineering, mi sono imbattuto in diverse istruzioni da parte di riparatori cinesi.

Il MOSFET viene sostituito con un filo ordinato

Non hanno chiarito direttamente l’essenza della questione, ma in molte di queste istruzioni si diceva: per riparare un proiettore “rotto”, è necessario smontarlo, rimuovere il MOSFET e sostituirlo con un ponticello tra drain e source. Il proiettore alla fine funzionerà con un ponticello all’interno e la funzionalità FaceID verrà ripristinata. Ma se il proiettore con un ponticello al posto del MOSFET funziona normalmente, allora cosa ci faceva lì quel MOSFET?

E mi è venuta un’illuminazione: l’essenza della riparazione era proprio questa. Il MOSFET è controllato dal chip – quindi, a discrezione del chip, può interrompere il circuito di alimentazione del laser e quindi danneggiare il proiettore. E questa riparazione elimina questa interruzione.

Che cosa significa il mio nome per te

Ora che è chiaro che il misterioso chip in coppia con il MOSFET impedisce il normale funzionamento del proiettore, sorge la domanda: perché lo fa? Perché nel proiettore viene inserito un chip che “uccide” il proiettore?

Per trovare le risposte, ho cercato nel firmware del blocco ISP nel processore dell’iPhone – è proprio lui che comunica via I2C con i sensori delle fotocamere e con il proiettore.

Per prima cosa ho scaricato l’immagine del firmware iOS 15 per iPhone X, l’ultima versione. Le immagini del firmware per iPhone sono essenzialmente file zip. All’interno ho trovato il firmware ISP desiderato – sotto forma di file Firmwareisp_bniadc-nike-d22.im4p. Dal file im4p compresso è stato estratto un binario, in formato Mach-O con codice AArch64 all’interno. Mach-O, a differenza della tipica “immagine del firmware per un microcontrollore sconosciuto” – è un formato di file eseguibile documentato, simile a PE o ELF. Non ci sono congetture sulla struttura del file, sull’architettura del processore o sull’indirizzo in cui caricare il codice. Basta buttare il file in Ghidra e tutto si sistema da solo. Piacevole.

Poi l’istinto ha preso il sopravvento e ho deciso di sviscerare firmware più vecchi. E nell’immagine del firmware iOS 13 ho trovato il file adc-nike-d22. Anche la dimensione era quasi la stessa. Solo che nel nuovo firmware c’era più codice – e nel vecchio firmware c’era meno codice, ma c’erano i simboli. Tutti i nomi delle funzioni al loro posto. Controlla sempre le versioni precedenti!

Nel firmware ISP ci sono molte informazioni, incluso come l’iPhone comunica via I2C con diversi chip – con i sensori delle fotocamere, con i PMU delle fotocamere, con i chip di controllo del flash e dell’autofocus. Da lì, grazie ai simboli, è stato possibile estrarre i “nomi” di diverse parti costitutive del sistema – e parte di essi sono correlati al materiale di altre parti del firmware, così come da altri reverse engineer e riparatori. Ad esempio, il sensore della fotocamera IR è STMicroelectronics VD56G0 “Savage”. L’intero sistema TrueDepth nel codice si chiama “Pearl”, e ai suoi moduli principali sono stati dati i nomi dei personaggi di “Romeo e Giulietta”. Il proiettore IR si chiama “Romeo”, la fotocamera IR – “Juliet”, e l’illuminazione IR si chiama “Rosaline”. Il driver laser, che si trova sulla scheda madre dell’iPhone e alimenta sia i laser all’interno di “Romeo”, sia il laser all’interno dell’illuminazione “Rosaline”, si chiama “Rigel”.

Il misterioso chip che ci interessa? Anche lui ha un nome. Nel codice lo chiamano “MamaBear”, in breve “MB”, e sembra che la sua funzionalità sia molto semplice. Vive sul bus I2C. Memorizza i dati OTP, inclusi il numero di serie e diverse calibrazioni. Accende e spegne il MOSFET su comando. E misura anche… la capacità? Non la temperatura, non è affatto collegato a un termistore NTC, ma proprio la capacità. Ma la capacità di cosa?

La tragica fine di Romeo

La risposta a questa domanda ci viene data ancora una volta dagli schemi cinesi. Nello schema di JCID si vede che nel modulo “Romeo” ci sono tre contatti per la comunicazione del gruppo emettitore con il gruppo ottico. Uno è la massa, e gli altri due vanno direttamente al chip “MamaBear”. Questi contatti passano attraverso uno speciale adattatore sul lato del gruppo ottico e arrivano alla sua sommità – all’elemento ottico diffrattivo.

Il divisore di raggio diffrattivo non è controllabile e non reagisce alla corrente. Ma ha una capacità. E con l’aiuto di quelle tre linee, questa capacità può essere misurata. Ma perché?

Il punto è quanto sia importante questo divisore diffrattivo. Il pattern di punti utilizzato dal proiettore è impostato dalla posizione di minuscoli laser-“fossette” sul cristallo VCSEL. E poi questo pattern viene moltiplicato da un elemento diffrattivo, che da un singolo fascio di raggi crea centinaia di fasci di raggi.

Confronto tra la posizione dei laser dell’anodo “SPARSE” e i punti proiettati

E quindi, cosa succederà se questo elemento diffrattivo viene strappato via?

I raggi non verranno divisi. Invece di centinaia di fasci laser, ci sarà un solo fascio – ma cento volte più potente. E dopotutto, questo è un laser. Un laser a infrarossi è più pericoloso di uno rosso, perché una persona non lo vede – e quindi non distoglierà istintivamente lo sguardo anche da una fonte di luce pericolosamente potente. E c’è una probabilità non nulla che il caratteristico pattern di punti possa essere bruciato nella retina dell’utente in questo caso.

Per evitare questo, è necessario un chip “killer”. Dopo l’accensione, monitora costantemente la capacità dell’elemento diffrattivo – e se l’elemento risulta essere rotto o danneggiato, la capacità esce dai limiti consentiti e il chip disconnette immediatamente il MOSFET e interrompe l’alimentazione del VCSEL. E poiché l’elemento si trova sulla sommità del gruppo ottico, è quasi impossibile danneggiare con un colpo il resto del gruppo senza romperlo e senza interrompere il contatto.

Dopo lo spegnimento di emergenza del laser, il chip “brucia” in OTP un flag che designa il proiettore come difettoso – il che significa che l’alimentazione interrotta rimarrà interrotta per sempre. Nessun comando dall’ISP avrà più potere su di esso. Il MOSFET sarà sempre chiuso e il proiettore non funzionerà mai più.

Il chip “MamaBear”, come suggerisce il nome – è un chip di protezione. È un “killswitch” per l’arresto di emergenza del laser. Uccide il proiettore per evitare che un dispositivo laser danneggiato illumini gli occhi dell’utente. E il modulo “Juliet”, rimanendo senza il suo “Romeo” gemello, perde il suo scopo di vita – e l’intero sistema TrueDepth diventa inutilizzabile.

La routine lavorativa dei tecnosacerdoti

Ma questo schema di protezione ha un difetto. Il fatto è che il proiettore di punti si trova sul bordo superiore del dispositivo e vicino all’altoparlante. Se del liquido entra nell’iPhone, uno dei punti più frequenti per questo è proprio lì. E i sensori capacitivi sono sensibili ai liquidi conduttori di elettricità. Pertanto, accade spesso che FaceID si rompa dopo che il dispositivo è caduto in acqua – anche se l’ingresso di acqua è minimo e non ci sono altri danni. Semplicemente “Romeo” ha frainteso la situazione e ha fatto “censura” inutilmente.

Tali dispositivi vengono portati in riparazione. Spesso in riparazioni non ufficiali. E poiché l’iPhone verifica i numeri di serie dei ricambi (ciao, Apple), non è possibile semplicemente sostituire l’intero blocco fotocamere con un blocco funzionante da un donatore. Il telefono rifiuterà il nuovo blocco e FaceID non funzionerà comunque. Quindi, è necessario riparare in qualche modo quello vecchio. Ma come si può “resuscitare” un proiettore che si è intenzionalmente messo fuori uso?

I produttori di strumenti di riparazione non ufficiali hanno inventato per questo tutta una serie di rituali diversi. E i riparatori “maniaci” li seguono fedelmente e eseguono la microchirurgia di questo sistema ottico complesso e calibrato. La precisione delle mani deve essere incredibile – i componenti all’interno sono grandi pochi millimetri e l’ottica è estremamente sensibile. Se la calibrazione va troppo fuori posto a causa di interventi chirurgici, il sistema non funzionerà. Non esistono strumenti per la ricalibrazione software (ciao, Apple) – o trovi un modo per rientrare nei parametri originali, o rimani senza FaceID.

Programmatore “ad alta tensione”

Come funziona? Beh, prima di tutto è necessario leggere i dati OTP dal chip originale “MamaBear”.

I dati sono leggibili anche se il proiettore si considera difettoso. Per la lettura dei dati, i cinesi producono speciali programmatori “di riparazione” – che vengono forniti con set di connettori-adattatori e funzionano con tutta una serie di componenti diversi di diversi modelli di iPhone, compresi i proiettori.

E poi è necessario fare due cose: risolvere il problema del MOSFET che interrompe l’alimentazione e sostituire il chip di protezione originale. E qui ci sono molti metodi diversi.

Flat cable con chip “ingannatore”

Si può, ad esempio, mettere un ponticello al posto del MOSFET, come nella foto sopra nell’articolo, e sostituire il chip “MamaBear”, dissaldando il flat cable FPC originale e sostituendolo con uno speciale flat cable con un chip “ingannatore” cinese.

Il chip originale “MamaBear” può rimanere all’interno e urlare impotente che il proiettore non deve assolutamente funzionare. Ma non ha più il MOSFET per spegnere forzatamente il proiettore, e l’iPhone da parte sua vede solo il chip cinese – che restituisce una copia dei dati originali caricata dal programmatore e segnala che il proiettore è assolutamente integro.

Raschiamo via le vecchie interiora e mettiamo le nuove

Oppure si può estrarre completamente il chip “MamaBear” e mettere al suo posto una sostituzione cinese due-in-uno – che chiude anche i contatti del MOSFET e restituisce al telefono una copia dei dati OTP.

Scheda adattatore con chip “ingannatore”

E c’è un’opzione con il minimo di saldature. Un “adattatore” con un chip “ingannatore”, che viene inserito tra il flat cable originale e la scheda madre dell’iPhone.

Non risolve il problema del MOSFET, ma anche per questo i cinesi hanno trovato un approccio originale, realizzando programmatori “ad alta tensione”.

Sapete come è possibile “ripristinare” e riscrivere vari ATtiny con l’aiuto di uno speciale programmatore ad alta tensione? Qui la situazione è completamente diversa. Il programmatore cinese ad alta tensione “programma” in modo brutale e irreversibile il MOSFET all’interno del proiettore in un cortocircuito tra drain e source.

Nella fase finale della riparazione, colleghiamo nuovamente il proiettore al programmatore e carichiamo il dump salvato nella prima fase. E il proiettore è pronto a funzionare, spacciandosi per originale e non modificato.

Tutti questi diversi dispositivi sono realizzati e promossi da diversi venditori di attrezzature per la riparazione. Tutti i tipi di chip “ingannatori” funzionano solo con i programmatori “nativi”, e nei programmatori sono spesso presenti funzionalità DRM come il binding all’account e un numero limitato di “riparazioni”, per il cui rinnovo è necessario pagare.

I riparatori sanno che con la loro riparazione distruggono completamente il sistema ideato da Apple per proteggere gli occhi dell’utente? In realtà no. Non sono reverse engineer – sono sciamani. Non hanno una comprensione dei principi di funzionamento. Hanno rituali e risultati, e questo è sufficiente per loro. E gli astuti reverse engineer cinesi condividono a malincuore i loro segreti con il pubblico. Ciò che ho descritto in questo articolo è noto nella sua interezza solo agli ingegneri Apple e a una decina di cinesi “del settore”. E a me. E ora anche a te.

Perché Apple è “stronza”

Sapete, non posso biasimare troppo gli ingegneri Apple per il fatto che il loro “killswitch” sia troppo attivo e rompa proiettori che potrebbero benissimo funzionare ancora. I laser sono un argomento pericoloso e l’idea di proteggere l’utente dagli “scenari peggiori” è assolutamente sensata. Anche se l’implementazione di questa protezione richiede miglioramenti.

Ma la politica di Apple di lotta contro le riparazioni non ufficiali è il peggiore di tutti i mali. Se i blocchi TrueDepth potessero essere tranquillamente sostituiti da un dispositivo all’altro, senza badare ai numeri di serie, allora non ci sarebbe praticamente alcun senso nei terribili rituali di riparazione distorti. Perché dannarsi con saldature microchirurgiche e ballare con i programmatori, se si può rimuovere da un altro “donatore” con lo schermo rotto un blocco TrueDepth assolutamente funzionante, installarlo nel telefono del cliente, ripristinare completamente la funzionalità e vivere tranquilli? Per i riparatori sarebbe più semplice e per i proprietari dei dispositivi più sicuro.

Ma la storia del comportamento “stronzo” anti-riparazione di Apple mostra chiaramente che questo non accadrà. Beh, a meno che negli Stati Uniti o nell’UE vari movimenti “Right to Repair” non rendano illegale il binding dei ricambi tramite numeri di serie. E questo ora è possibile. Nella battuta sul fatto che l’Unione Europea aggiunge più funzionalità utili ai nuovi modelli di iPhone di Apple, c’è una quota di verità molto alta. Quindi terremo d’occhio le iniziative legislative.

Articolo tradotto dal russo. Autore dell’articolo: acc0unt. Abbiamo cercato di preservare lo stile originale e le formulazioni dell’autore, per quanto possibile nella traduzione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *