Innanzitutto, Secure Enclave di Apple è un modulo che garantisce che il caricatore di avvio esegua solo il codice firmato da Apple. Non è quello che stai facendo, stai cercando di creare un Hardware Security Module (HSM) .
Come hai capito, il modo corretto per farlo è di fare in modo che l'HSM esegua tutte le operazioni di crittografia internamente in modo che nessuna chiave lasci mai il dispositivo, come fai notare, se passi la chiave di crittografia / decodifica al dispositivo , ora è fuori dal tuo controllo. Quindi idealmente vuoi un processore abbastanza veloce da eseguire l'elaborazione crittografica a bordo.
Detto questo, l'archiviazione di un codice AES crittografato sul dispositivo accanto ai dati e affidarsi all'HSM per decrittografarlo è esattamente come funziona la crittografia Full Disk Android (credo). Ti suggerisco di leggere la pagina Android Dev su Full Disk Encryption per darti idee.
Espanderò questa risposta per dare un contesto più ampio.
Questa domanda è abbastanza profonda da chiederci quale sia il tuo "modello di minaccia" (cioè "Che tipo di attacchi stai cercando di proteggere?"). Come sottolineato nei commenti di @JeffMeden e @supercat, quale livello di sicurezza è effettivamente necessario dipende da cosa stai cercando di proteggere e da come lo vuoi proteggere.
Hai detto che vuoi proteggere la chiave AES da un dump della memoria. Una chiave AES è preziosa, ma non perché la chiave stessa sia preziosa, piuttosto perché le informazioni che protegge sono preziose. Hai detto:
I do understand that the key used to encrypt the app data might be exposed through memory dumps,
Questa è una buona cosa a cui pensare, ma se i dati stessi potrebbero essere esposti attraverso i dump della memoria, allora è poco rilevante. Ma come dici tu,
but the application programmers can minimize this risk.
Se il tuo HSM decodifica un tasto AES o decodifica i dati direttamente, una volta restituito a un programma utente, non hai più alcun controllo sulla sua protezione.
Bottom line: se il tuo modello di minaccia include l'elaborazione dei dati decrittografati su un PC, proteggendo anche i dati contro qualcuno abbastanza potente da fare un dump della memoria, quindi non c'è nulla che la tua periferica USB possa fare; devi anche scrivere il software in esecuzione sul PC.
Se inizi a seguire questa linea, finirai per inventare un Trusted Execution Environment in cui tutta l'elaborazione di i dati in testo normale avvengono effettivamente all'interno di un processore sicuro, e solo il risultato viene restituito al PC "non attendibile".