Se gli aggressori possono spostare fisicamente i dati in giro, da Flash a Flash, sarà necessario ricorrere alla crittografia. Se il chip A deve essere in grado di dare un senso ad alcuni byte di dati, ma il chip B (dello stesso modello) non può, allora il chip A deve conosci qualcosa che B non ha. Encryption riduce il problema: se crittografa tutti i tuoi dati sensibili con una chiave segreta nota solo a A (chiamiamola K A ) allora il tuo problema diventa: come puoi fare in modo che A memorizzi la sua chiave, in modo che non possa essere estratto? La lunghezza di K A tipicamente sarebbe di 128 bit, cioè 16 byte; questo è il valore aggiunto della crittografia: la dimensione del tuo problema si è ridotta a 16 byte.
Il primo metodo normale è il seguente: durante una fase iniziale (tipicamente alla fine della riga di fabbrica), un tasto specifico del dispositivo K A viene iniettato in dispositivo A , da memorizzare in un chip anti-manomissione. Quel chip deve essere in grado di memorizzare la chiave (solo pochi byte), fare un po 'di crittografia / decodifica con esso e resistere all'estrazione forzata (resistenza fisica). Un "server master" memorizza una copia di tutte le chiavi del dispositivo (attenzione! Sensibile!) E crittografa gli elementi dei dati che devono essere successivamente inviati in modo sicuro al dispositivo A . I telefoni cellulari usano quel modello; il chip anti-manomissione è la scheda SIM.
Un metodo esteso comporta un chip anti-manomissione con un po 'più di potenza: può fare crittografia asimmetrica ( ad esempio, RSA) e generare la propria coppia di chiavi privata / pubblica. Durante la fase di iscrizione iniziale, in condizioni controllate, il dispositivo genera la sua coppia di chiavi ed esporta la chiave pubblica; la chiave pubblica viene archiviata esternamente e viene utilizzata per la crittografia (quando alcuni dati devono essere inviati in modo sicuro al dispositivo A ) e all'autenticazione (quando il dispositivo A vuole dimostrare la propria identità a un server online). In genere, durante la fase di registrazione, la chiave pubblica viene spostata da un'autorità di certificazione personalizzata in un certificato e utilizzata in protocolli standard come come SSL / TLS . Alcuni terminali di pagamento utilizzano questo modello.
Un TPM è un chip antimanomissione che solitamente può eseguire la crittografia asimmetrica, inclusa la generazione e l'archiviazione di una chiave privata. Questo è lo strumento giusto per il lavoro, ma devi ancora usarlo: il TPM non magicamente, per sua semplice presenza, protegge i dati; devi progettare la fase di iscrizione iniziale e fare la gestione delle chiavi. Come descritto sopra, questo più-o-meno implica l'esecuzione della tua PKI .