Domanda

Mi chiedo se sia possibile programmare TPM ( http://en.wikipedia.org/wiki/Trusted_Platform_Module ) presente nella maggior parte dei chip Intel, in modo tale da:

- decide what to store in the persistent memory
- decide which cryptographic algorithms to implement.

Ovviamente non dovrebbe essere riprogrammabile una volta che inizia a funzionare (sapete se questa affermazione è corretta?).

È stato utile?

Soluzione

Il comportamento di un TPM è definito dalle specifiche emesse dal Trusted Computing Group. Un TPM deve comportarsi esattamente come specificato, quindi non è possibile modificare la funzionalità di un TPM implementato correttamente. I produttori di TPM hanno capacità limitate di aggiornare i propri prodotti dopo la spedizione. Ad esempio Infineon fornisce aggiornamenti del firmware per i propri dispositivi.

Tuttavia, i TPM Intel potrebbero essere diversi. Alcuni chipset includevano un TPM emulato / software invece di un vero e proprio TPM hardware. Questi TPM possono essere aggiornati con un aggiornamento del BIOS. Ma anche in questo caso l'aggiornamento deve essere fornito da Intel. Schede recenti come la DQ67SW hanno TPM hardware indipendenti non prodotti da Intel.

Quindi la risposta alla tua seconda domanda è: No, non puoi programmare / definire gli algoritmi crittografici utilizzati da un TPM.


Riguardo alla tua prima domanda: Sì, puoi definire cosa memorizzare nella memoria persistente in una certa misura. Questa regione di memoria è denominata Archiviazione non volatile o NV . Devi prima definire dello spazio utilizzando il comando TPM_NV_DefineSpace . Successivamente puoi leggere e scrivere da / nella posizione utilizzando TPM_NV_ReadValue e TPM_NV_WriteValue . La definizione riserva una data quantità di memoria in NV e imposta anche gli attributi di sicurezza di questa posizione. Questi comandi sono comandi TPM di basso livello, si consiglia vivamente di utilizzare uno Trusted Software Stack (TSS) per interfacciare il TPM. Puoi utilizzare jTSS con jTpmTools o TrouSerS .

Alcune note riguardanti NV:

  • Lo spazio disponibile nella NV è molto limitato, ma l'importo esatto dipende dal fornitore (di solito meno di 5kb). L'importo minimo per la piattaforma PC è 2048 byte.
  • Il TPM è un dispositivo passivo, non può fare nulla senza che gli venga impartito un comando. Se vuoi memorizzare qualcosa nel TPM, devi avere una parte attiva (BIOS, software, chipset, CPU) che emetta quei comandi.
  • Anche la maggior parte delle chiavi crittografiche non sono archiviate nel TPM. Esiste una gerarchia di chiavi e solo la chiave radice (Storage Root Key - SRK) è archiviata nel TPM. Tutte le altre chiavi sono archiviate all'esterno in modo crittografato.

Altri suggerimenti

Il TPM non è concepito per essere programmabile.Ha un set fisso di algoritmi supportati.Il codice è memorizzato nella ROM (o, se non lo è, è memorizzato in una EEPROM che si trova all'interno di un pacchetto in qualche modo a prova di manomissione e non è possibile sovrascriverlo).

Il TPM definisce vari ruoli amministrativi.Quando lo usi per la prima volta, imposterai password amministrative (o il tuo software lo farà per te, nel qual caso dovresti eseguire attentamente il backup di queste password).Se non sei sicuro dello stato del TPM quando lo ricevi, puoi ripristinarlo alle "impostazioni di fabbrica" ​​(cancellando tutte le chiavi e le credenziali esistenti);questa operazione si chiama cancellazione del TPM e normalmente viene eseguita dal BIOS.

Troverai una panoramica delle varie credenziali archiviate e utilizzate dal TPM nel file profili credenziali.Oltre alle chiavi che fanno parte del normale ciclo di vita, puoi importare le tue chiavi e creare chiavi non esportabili con l'RNG del TPM.

C'è una norma Profilo di protezione TPM.Non so se il TPM di Intel sia stato valutato rispetto ad esso.La Figura 1 è un diagramma del ciclo di vita del TPM, che mostra quando è possibile generare le chiavi.

In pratica, probabilmente interagirai con il TPM tramite Pantaloni (un'API TPM completamente open source) o in modo limitato tramite Bitlocker su Windows.

Sì, puoi utilizzare il chip TPM esattamente per questo tipo di operazioni e molte altre.

Lo stack TrouSerS è un'implementazione open source dello stack software di elaborazione attendibile necessario per l'utilizzo delChip TPM affidabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top