Architektúra
1. A TPM mint biztonságos kriptoprocesszor (Secure Cryptoprocessor)¶
A TPM egy mikrocip, amelyet a számítógép alaplapjára telepítenek, és hardveres buszon keresztül kommunikál a rendszer többi részével. A chipet úgy tervezték, hogy biztonságos kriptográfiai műveleteket hajtson végre, garantálva a titkos kulcsok és adatok fizikai izolációját. A TPM alapvető funkciói közé tartozik a kriptográfiai kulcsok generálása, tárolása, és a használatuk korlátozása.
A TPM kritikus funkciója a hardveres véletlenszám-generátor (RNG), amely kiváló minőségű entrópiaforrást biztosít a biztonságos kulcsgeneráláshoz, felülmúlva a szoftveres generátorok minőségét.
2. Kulcshierarchia és kulcskézbesítés¶
A TPM biztonságának alapja a kulcshierarchia, amely megakadályozza a privát kulcsok felfedését az operációs rendszer felé, még rendszerkompromisszum esetén is.
- Endorsement Key (EK): Ez az egyedi RSA kulcs a chipbe van égetve a gyártás során. Az EK-t a készülék hitelesítésére használják. Az EK magán része soha nem kerül nyilvánosságra semmilyen komponens, szoftver vagy felhasználó felé.
- Storage Root Key (SRK): Az elsődleges burkoló kulcs. Az SRK a TPM-en belül tárolódik, és felelős az összes többi kulcs titkosításáért és védelméért.
- Attestation Identity Key (AIK): Az EK aliasaként funkcionál, lehetővé téve a távoli attesztációt, miközben több, nem összekapcsolható kulccsal garantálja a felhasználói anonimitást a különböző szolgáltatások felé.
A kulcsok védelme kulcsburkolás (wrapping) és binding mechanizmusokkal történik, amelyek biztosítják, hogy a kulcsok a biztonságos határvonalon belül maradjanak. A TPM képes a szótártámadások enyhítésére is, korlátozva a hitelesítési érték (jelszó) próbálkozásainak számát.
3. Platform configuration registers (PCR) mechanizmus¶
A Platform Configuration Registers (PCR-ek) a platform integritásának mérési mechanizmusát képezik. Ezek a regiszterek tárolják a rendszerindítási folyamat (firmware, boot kód, operációs rendszer komponensek) során betöltött kód hasítékainak integritási metrikáit. A PCR-eknek vissza kell állniuk (resetelődniük) minden rendszerindításkor vagy áramvesztéskor, biztosítva ezzel, hogy minden egyes indításkor új integritási mérés történjen.
A PCR-ek értékeinek mérése az indítási folyamat során történik, még a kód tényleges végrehajtása előtt. A mérések bizonyítékként szolgálnak arra, hogy a rendszer hogyan indult el, és biztosítják, hogy egy TPM-alapú kulcs csak akkor kerüljön felhasználásra, ha a rendszer a megfelelő szoftverrel indult.
A rendszerbiztonság megértéséhez kritikus, hogy bár a TPM tárolja a méréseket, a bizalom gyökere a környező firmware integritásán alapul, amely ezeket a méréseket (PCR kiterjesztéseket) végzi. A TCG PC Client Specific Platform Firmware Profile Specification határozza meg a Linux alatt is releváns PCR indexeket:
| PCR Index | Leírás | Kiterjesztés Forrása / Felelősségi Köre | Relevancia (Példa) |
|---|---|---|---|
| PCR0 | Core System Firmware Executable Code | UEFI Firmware | Platform integritás (UEFI kód hashe) |
| PCR1 | Core System Firmware Data/Settings | UEFI Firmware | BIOS/UEFI beállítások, boot sorrend |
| PCR7 | Secure Boot Policy State | UEFI Secure Boot | Secure Boot állapotának ellenőrzése |
| PCR8-15 | Operációs Rendszer-specifikus Használat | Rendszerbetöltő, Kernel, Initramfs | LUKS kulcs lezárása (FDE) |
4. Kulcskezelési primitívek: Binding és Sealing¶
A TPM két kulcsművelete, a Binding és a Sealing, alapvető fontosságúak a kulcsok és adatok platformhoz kötésében.
A Binding (Kötés) az adat titkosítását jelenti a TPM egyedi kulcsával, ami biztosítja, hogy az adatok csak az adott TPM birtokában fejthetők vissza. Ez a mechanizmus a privát kulcsok védelmét szolgálja.
A Sealing (Lezárás) egy fejlett mechanizmus, amely a titkosított adatot (vagy titkos kulcsot) az adott platform konfigurációs méréseihez (PCR-értékekhez) köti. A lezárt kulcs vagy adat csak akkor fejthető vissza (unseal), ha a platform aktuális PCR-értékei pontosan megegyeznek azokkal az értékekkel, amelyek a lezáráskor érvényben voltak. Ez a képesség teszi lehetővé a megbízható rendszerindítási folyamatok kikényszerítését (Trusted Boot). A sealing képesség közvetlenül biztosítja a platform integritásának mérési mechanizmusát; ha nem lenne sealing, a TPM csak egy passzív, hardveres kulcstároló lenne, de a PCR-ekhez kötés révén képes kényszeríteni a platform állapotát.