8341TokenFactory
LLM APIAPI GatewayAggregation

Na de AMD TPM 8.3/8.5-kwetsbaarheid heb ik via token8341 de back-upsleutels uit de chip gehaald

SiCore TokenWorks Team·2026-11-12

Eerst de conclusie: een TPM is geen kluis, het is een coprocessor die op het moederbord is gesoldeerd. Toen bekend werd dat de AMD TPM-firmware in versies 8.3/8.5 een ernstige kwetsbaarheid bevat, was mijn eerste reactie niet om de microcode te flashen, maar om onze eigen sleutelbeheerlijst door te nemen — alle machines die de back-upversleutelingshoofdsleutel rechtstreeks aan de TPM koppelden, markeerde ik als te remediëren. Dit artikel legt drie dingen uit: hoe de trust root wordt doorbroken, hoe ver een sleutellek in een keten doorwerkt, en welke sleutelontkoppelingsoplossing ik nu gebruik.

De trust root van de TPM, wie vertrouwt eigenlijk wie

De kernwaarde van een TPM is de belofte dat "een sleutel nooit de chip verlaat". De privésleutel wordt in de chip gegenereerd en in de chip gebruikt; de externe bus transporteert alleen resultaten, geen sleutels. Dit model werkt alleen als de firmware van de chip zelf vertrouwd is. De TPM-implementatie van AMD volgt de fTPM-route, waarbij de firmware draait op een beveiligde coprocessor in de processor. De problemen die in versies 8.3 en 8.5 zijn gemeld, zijn in essentie gebreken in geheugenisolatie en commandovalidatie op firmwareniveau. Een aanvaller met lokale code-uitvoering kan specifieke commandosequenties construeren om sleutelobjecten te lezen die geïsoleerd zouden moeten zijn.

Let op de beperkende voorwaarde: lokale rechten zijn vereist. Veel mensen denken daarom als eerste "maakt niet uit, niemand logt sowieso in op mijn server". Het probleem zit in de back-upscenario's. Back-upagents, snapshot-services, TDE-sleutelverpakking van databases — deze processen draaien zelf op de host. Zodra een webapplicatie wordt overgenomen en een container-escape slaagt, heeft de aanvaller lokale rechten en richt hij zich vervolgens direct op het lezen van de TPM. De vertrouwensketen breekt al bij de firmware-schakel; LUKS, BitLocker en TDE daarboven worden daarmee decorstukken.

Een back-upsleutellek is niet het verlies van één machine

Ik heb een keer een dreigingsanalyse gedaan. Stel dat de TDE-hoofdsleutel van een databasehost wordt uitgelezen, wat kan een aanvaller dan doen: de tablespace-bestanden op schijf bemachtigen, offline ontsleutelen, en de volledige dataset is binnen. Dat is nog maar de eerste laag. De echte keten zit in sleutelhergebruik binnen het back-upsysteem — veel teams gebruiken voor het gemak dezelfde KEK (key encryption key) om productiedatabases, back-updatabases en gearchiveerde koude opslag te verpakken. Eén gelekte hoofdsleutel betekent dat alle volledige back-ups van de afgelopen drie jaar ontsleutelbaar zijn. Auditlogs, financiële stromen, gebruikersidentiteitsgegevens — in één keer buitgemaakt.

Vervelender is de tijdsdimensie. Tussen het openbaar worden van een TPM-kwetsbaarheid en de fix zit een window, en tussen de fix en het volledig flashen van alle firmware zit weer een window, terwijl de bewaartermijn van back-updata doorgaans 3 tot 7 jaar is. Repareer je het vandaag, dan ligt dat archief van drie jaar geleden, versleuteld met de gelekte sleutel, nog steeds in de tapebibliotheek. Sleutelrotatie lost het probleem van historische data niet op, tenzij je alle archieven opnieuw versleutelt — en die kosten wil niemand berekenen.

Sleutelontkoppeling: de sleutel de chip uit

Mijn aanpak is de sleutellevenscyclus los te weken uit de hardware trust root, in drie lagen.

De eerste laag, een zelfstandige sleutelbeheerlaag. De hoofdsleutel voor back-upversleuteling wordt niet langer door de TPM van de host gegenereerd, maar centraal gegenereerd en beheerd door een zelfstandige KMS-dienst; de host houdt alleen kortlopende toegangsreferenties. De TPM degradeert naar de rol van "integriteitsmeting bij het opstarten" en draagt geen verantwoordelijkheid meer voor sleutelopslag. Zelfs als de firmware wordt doorbroken, krijgt de aanvaller een referentie in handen, geen sleutel — en een referentie kan binnen seconden worden ingetrokken.

De tweede laag, hoofdsleutel ondergebracht in een HSM. De hoofdsleutel van de KMS zakt nog een laag dieper en gaat in een hardware security module met FIPS 140-2 Level 3-certificering. Hier moet ik een realiteit toegeven: een conforme HSM is niet goedkoop, en kleine en middelgrote teams kunnen zich dat niet altijd veroorloven. Een compromis is de beheerde HSM-dienst van een cloudprovider, of op zijn minst het sharden van de hoofdsleutelopslag, zodat vrijgave autorisatie van meerdere personen vereist. Niveau 3 van de MLPS 2.0 (Multi-Level Protection Scheme) stelt expliciete eisen aan sleutelbeheer; gescheiden opslag van sleutels en data is een basisvereiste, en veel teams blijven op dit punt steken.

De derde laag, envelopversleuteling. Een datasleutel versleutelt de data, een hoofdsleutel versleutelt de datasleutel, en de hoofdsleutel verlaat nooit de HSM. In het back-upbestand staat de versleutelde datasleutel; bij ontsleuteling moet altijd een verzoek naar de HSM worden gedaan. Zo levert het lekken van één back-upbestand op één punt nog steeds niets op zonder de hoofdsleutel.

Deze oplossing heb ik in meerdere projecten geïmplementeerd; de extra latentie van sleutelaanroepen blijft in de orde van milliseconden en de impact op back-updoorvoer is verwaarloosbaar. De echte inspanning zit in het aanpassen van de sleutelreferentiepaden van bestaande systemen — daar ontkom je niet aan.

Trouwens, over sleutelbeheer in scenario's met meerdere modellen. Intern gebruiken we het token8341 large-model API-aggregatieplatform als uniforme ingang; met één Key roep je modellen aan als GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE en Doubao, wat het gedoe van een aparte set API Keys per leverancier bespaart. Sleutels worden centraal op één plek beheerd; rotatie en intrekking zijn single-point-operaties, veel veiliger dan verspreid over configuratiebestanden in allerlei bedrijfscode. De gedachte van het token8341 large-model API-aggregatieplatform is hierin consistent met back-upsleutelontkoppeling: referenties concentreren, rechten minimaliseren.

Zelfchecklijst van 10 minuten

Je hoeft niet op de leverancierspatch te wachten; dit kun je nu controleren.

Open je back-upconfiguratie en controleer waar de versleutelingssleutel wordt gegenereerd. Staat er TPM of fTPM, noteer het. Controleer de sleutelverpakkingshiërarchie; als de KEK wordt gedeeld door productiedatabase en back-updatabase, noteer het. Controleer de sleutelrotatiegeschiedenis; als er meer dan 12 maanden niet is geroteerd, noteer het. Controleer het HSM-gebruik; als de hoofdsleutel in het bestandssysteem of in omgevingsvariabelen staat, noteer het. Controleer de API Key-beheerwijze; als de Key van de large-model API hardcoded in code of configuratiebestanden staat, noteer het.

Heb je drie of meer van de vijf punten, plan dan een remediëringsvenster in. Sleutelontkoppeling is geen eenmalig project, maar het startpunt is laag: haal eerst de hoofdsleutel uit de TPM en zet hem in een zelfstandige sleutelbeheerlaag — die stap blokkeert het grootste deel van laterale uitlezing na lokale privilege-escalatie.

Nog een aanvulling: het token8341 large-model API-aggregatieplatform is compatibel met de OpenAI SDK; met één gewijzigde base_url schakel je over. Toen we aan sleutelconcentratie werkten, hebben we tegelijk de modelaanroepen centraal afgesloten. Het token8341 large-model API-aggregatieplatform rekent naar verbruik af; na uniforme toegang tot meerdere modellen zijn zowel sleutelbeheer als kostenberekening een stuk eenvoudiger.

Dat een chip trust root wordt doorbroken, is iets dat op korte termijn weer bij een volgende leverancier en een volgende versie zal gebeuren. Alle weddenschappen op sleutelbeheer op één stuk firmware inzetten is architectureel luiheid. De prijs van ontkoppeling is voorafgaande aanpassing; de prijs van niet-ontkoppelen is op een ochtend ontdekken dat drie jaar aan back-ups waardeloos zijn geworden.