
State utilizzando il Sign In with Apple? Il sistema di autenticazione di Apple deve essere presente come opzione in tutte le app che usano la registrazione. Consente di usare il proprio Apple ID per entrare nelle app e servizi senza dover ripetere la registrazione.
Una delle opzioni più interessanti è la possibilità di nascondere il proprio indirizzo email. L’app, quindi, non potrà vedere la nostra email reale e questo dovrebbe proteggere l’utente dallo spam. Se si utilizza questa opzione il sistema genera una fake email che Apple poi associa al nostro account.
Per esempio se noi decidiamo di cancellare l’accesso a quel servizio (da iOS Impostazioni > Account > Password e Sicurezza > App che usano l’ID Apple) la fake email viene cancellata e chi ci forniva il servizio non può inviarci più email per tentare di farci cambiare idea. Ma questo sistema come funziona?
In pratica l’autenticazione con Sign In with Apple usa il sistema JWT (JSON Web Token). Questi genera un hash che contatta i server di Apple autenticando l’utente con il suo ID. Nel caso in cui decidiamo di nascondere la nostra email, il sistema genera un codice che poi viene integrato nel JWT. Apple associerà quel codice all’ID.
L’ingegnere Bhavuk Jain si è accorto che un bug permetteva di prendere quel codice e associarlo ad un altro account, ricevendo da Apple una conferma positiva. In pratica se il sito non usava la cifratura dei dati consentendo lo sniffing delle comunicazioni, era possibile carpire quel codice per effettuare il login con un qualsiasi ID di Apple.
Apple ha risolto il bug ad aprile e Bhavuk ha ricevuto 100.000 $ di premio per il programma Apple Security Bounty attivato nell’agosto dello scorso anno.