iOS: intercettazione del codice di accesso prima che raggiunga l'enclave protetta

3

Da ciò che poco ho letto sulla "Secure enclave" di Apple, capisco che si tratta di un coprocessore che crittografa / decodifica i dati in base al codice di accesso dell'utente.

Quindi ecco lo scenario: in qualche modo ottengo l'accesso come root al sistema operativo principale. Quando all'utente viene richiesto il codice di accesso (prima di acquistare un'app, ad esempio), cosa mi impedisce di inviare il passcode che ottengo dall'utente al mio server, prima di inviarlo al coprocessore?

La mia ipotesi principale qui è che le parti dell'interfaccia utente e I / O del flusso di lavoro non sono gestite dal coprocessore.

    
posta scribu 21.02.2016 - 17:46
fonte

1 risposta

2

I somehow get root access

È un bel se .

Se ciò fosse vero e successivamente il dispositivo è stato sbloccato almeno una volta, non mi preoccuperei di intercettare il codice di accesso, secondo Guida alla sicurezza di iOS :

When a file is opened, its metadata is decrypted with the file system key, revealing the wrapped per-file key and a notation on which class protects it. The per-file key is unwrapped with the class key, then supplied to the hardware AES engine, which decrypts the file as it is read from flash memory.

Come root posso presumibilmente aprire qualsiasi file che mi piace e leggere il contenuto non criptato.

L'unica limitazione di ciò è che non è possibile imparare il codice di accesso contemporaneamente, quindi utilizzarlo in futuro per accedere ad alcuni dati che non erano originariamente presenti. Tuttavia, dubito che potresti modificare il software di passcode per intercettare i dati e inviarlo a te:

When an iOS device is turned on, its application processor immediately executes code from read-only memory known as the Boot ROM. This immutable code, known as the hardware root of trust, is laid down during chip fabrication, and is implicitly trusted. The Boot ROM code contains the Apple Root CA public key, which is used to verify that the Low-Level Bootloader (LLB) is signed by Apple before allowing it to load. This is the first step in the chain of trust where each step ensures that the next is signed by Apple. When the LLB finishes its tasks, it verifies and runs the next-stage bootloader, iBoot, which in turn verifies and runs the iOS kernel.

This secure boot chain helps ensure that the lowest levels of software are not tampered with and allows iOS to run only on validated Apple devices.

Quindi potresti essere in grado di modificare temporaneamente il software ma dubito che potresti farlo in modo permanente perché il software di sistema verrebbe nuovamente verificato al prossimo avvio.

Ho anche il strong sospetto che come root potresti accedere ad alcune delle chiavi derivate che renderebbero il passcode moot, come la chiave del file system:

The key that encrypts each file’s metadata, including its class key. This is kept in Effaceable Storage to facilitate fast wipe, rather than confidentiality.

" Piuttosto che confidenzialità " mi sembra che possa essere letto come root e successivamente usarlo per decrittografare l'intero file system.

    
risposta data 22.02.2016 - 00:05
fonte

Leggi altre domande sui tag