TL; DR: Per ammissione di Apple, la forza bruta di un codice numerico a 4 cifre richiede circa 3 minuti. L'aggiornamento del codice di accesso a un alfanumerico a 8 cifre aumenta il tempo di forza bruta sul dispositivo in modo tale che un attacco riuscito abbia probabilmente bisogno di estrarre l'UID dall'enclave sicura, per quanto a lungo richieda.
Disclaimer: non ho molta familiarità con l'implementazione della sicurezza iOS. Questa risposta si basa sulle rivelazioni vaghe di Apple e su varie ipotesi, alcune delle quali potrebbero essere errate.
Passcode Brute Force Time senza conoscere UID
In base al white paper sulla sicurezza iOS di ottobre 2014 di Apple ogni tentativo di forza bruta del codice di accesso richiederebbe circa 80 millisecondi.
The passcode is entangled with the device’s UID, so brute-force
attempts must be performed on the device under attack. A large
iteration count is used to make each attempt slower. The iteration
count is calibrated so that one attempt takes approximately 80
milliseconds. This means it would take more than 5½ years to try all
combinations of a six-character alphanumeric passcode with lowercase
letters and numbers.
Non so quale sia la definizione di "entangle" che Apple utilizza qui, ma suppongo che significano che una chiave di decrittografia che protegge i tuoi dati deriva dall'ID del dispositivo e dal codice di accesso.
UID Exfiltration
Apple afferma che "i tentativi di forza bruta devono essere eseguiti sul dispositivo sotto attacco" a differenza di altri dispositivi con velocità di iterazione molto più veloci. Sto indovinando che Apple basa questa asserzione sull'assunto (non comprovato) che l'UID non può essere esfiltrato. Apple dichiara che l'UID è memorizzato nella sua "Secure Enclave":
Each Secure Enclave is provisioned during fabrication with its own UID
(Unique ID) that is not accessible to other parts of the system and
is not known to Apple.
Non ho trovato alcuna informazione che parli della fattibilità di esfiltrare l'UID dalla "Secure Enclave". Se l'UID viene esfiltrato, allora un utente malintenzionato dovrebbe essere in grado di utilizzare altro hardware di calcolo per la forza bruta ad una velocità molto più elevata di 80 ms per tentativo. L'esfiltrazione dell'UID può anche significare che il tempo di forza bruta diventa banale.
Quanto durerà un attacco per riuscire?
Supponendo che
- il tuo passcode non è facile da indovinare,
- Il white paper di Apple descrive accuratamente l'implementazione e
- Apple non ha commesso errori che indeboliscono la protezione oltre a quanto descritto nel whitepaper
quindi, approssimativamente, la quantità di tempo che un utente malintenzionato richiede per forzare la bruta-forza il tuo passcode è il minore di
a) in media, 40 ms * a^n
dove a
è il numero di possibilità per ogni cifra e n
è il numero di cifre, e
b) la quantità di tempo necessaria per estrarre l'UID dalla "Secure Enclave".
Per quanto tempo dovrebbe essere il tuo passcode?
Un codice di accesso numerico a 4 cifre richiederebbe una media di circa 7 minuti per un attacker adeguatamente equipaggiato alla forza bruta, che è sicuramente più semplice dell'esfiltrazione dell'UID. Pertanto, la tua sicurezza probabilmente trarrebbe vantaggio dall'aggiornamento a un codice di accesso alfanumerico a 8 cifre che richiederebbe una media di circa 7000 anni per la forza bruta. Con un codice di accesso alfanumerico di 8 cifre, sarebbe probabilmente più rapido per un utente malintenzionato estrarre l'UID.