Hai ragione ad avere dubbi sulla sicurezza di un codice pin a quattro cifre - qualunque cosa Apple faccia per proteggere i tuoi dati Keychain, almeno qualcuno all'interno di Apple sarebbe sempre in grado di eseguire un attacco a forza bruta per tutti i 10000 possibili cifre con pochissimo sforzo. Semplicemente non è possibile proteggere da una forza bruta parallela con un input di bassa entropia, indipendentemente dal KDF che si utilizza.
Poiché l'implementazione è proprietaria e closed-source, tutto ciò che riguarda il funzionamento effettivo è la speculazione, quindi per favore prendi le seguenti speculazioni con più di un granello di sale. Detto questo, ecco come un servizio come iCloud Keychain potrebbe essere implementato in modo coerente con il di Apple a> dichiarazioni .
-
Il contenuto del portachiavi sembra davvero essere crittografato con una chiave simmetrica sul lato client; probabilmente solo una versione criptata verrà caricata sui server Apple.
-
L'aggiunta di nuovi dispositivi probabilmente avviene tramite crittografia a chiave pubblica (la concessione di una "nuova periferica" potrebbe crittografare la chiave simmetrica con quella del dispositivo), ma sfortunatamente non consente la verifica delle impronte digitali (che rende man-in-the- attacchi medi possibili, proprio come con iMessage).
-
Probabilmente la password di ripristino verrà utilizzata per crittografare la chiave simmetrica utilizzando una funzione di indurimento della chiave usando un salt e molte iterazioni prima di essere caricata su Apple; quando utilizza tale codice di ripristino, Apple utilizza probabilmente un hash basato su tale codice per limitare i tentativi di ripristino prima di distribuire la chiave simmetrica avvolta insieme ai dati Keychain crittografati.
Ars Technica ha un articolo interessante sull'argomento, e giungono alla conclusione che l'utilizzo del codice di ripristino a quattro cifre suggerito rende un attacco a forza bruta molto fattibile, ma solo per Apple (o qualcuno che riesce a irrompere nella loro infrastruttura lato server).
Ho anche scritto su questo in un post sul blog me stesso, dove vengo a conclusioni molto simili.
Per riassumere: se sei preoccupato per Apple (o qualcuno che è in grado di accedere ai loro sistemi, sia che si tratti di hacker o autorità preposte all'applicazione della legge) di accedere ai tuoi dati Keychain, utilizza almeno un strong alfanumerico password per il ripristino o non utilizzare affatto il codice di ripristino.