Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Författare: Justin Turner, Ansvarig för eskalering inom support inom Windows-gruppen
Note
Det här innehållet är skrivet av en Microsoft-kundsupporttekniker och är avsett för erfarna administratörer och systemarkitekter som letar efter djupare tekniska förklaringar av funktioner och lösningar i Windows Server 2012 R2 än vad ämnen på TechNet vanligtvis ger. Det har dock inte genomgått samma redigeringspass, så en del av språket kan verka mindre polerat än vad som vanligtvis finns på TechNet.
Overview
Även om stöd för TPM-skyddade nycklar har funnits sedan Windows 8, fanns det inga mekanismer för certifikatutfärdare att kryptografiskt intyga att den privata nyckeln för certifikatförfrågan faktiskt skyddas av en betrodd plattformsmodul (TPM). Den här uppdateringen gör det möjligt för en certifikatutfärdare att utföra attesteringen och återspegla attesteringen i det utfärdade certifikatet.
Note
Den här artikeln förutsätter att läsaren är bekant med certifikatmallskonceptet (se certifikatmallar som referens). Det förutsätter också att läsaren är bekant med hur du konfigurerar företagscertifikatutfärdare för att utfärda certifikat baserat på certifikatmallar (se checklista: Konfigurera certifikatutfärdare för att utfärda och hantera certifikat).
Terminology
| Term | Definition |
|---|---|
| EK | Bekräftelsenyckel. Det här är en asymmetrisk nyckel som finns i TPM (matas in vid tillverkningstillfället). EK är unikt för varje TPM och kan identifiera det. EK kan inte ändras eller tas bort. |
| EKpub | Avser EK:s offentliga nyckel. |
| EKPriv | Refererar till EK:s privata nyckel. |
| EKCert | EK-certifikat. Ett TPM-tillverkarutfärdat certifikat för EKPub. Alla TPM:er har inte EKCert. |
| TPM | Modul för betrodd plattform. En TPM är utformad för att tillhandahålla maskinvarubaserade säkerhetsrelaterade funktioner. Ett TPM-chip är en säker kryptoprocessor som är utformad för att utföra kryptografiska åtgärder. Chipet innehåller flera fysiska säkerhetsmekanismer för att göra det manipuleringsbeständigt, och skadlig programvara kan inte manipulera säkerhetsfunktionerna i TPM. |
Background
Från och med Windows 8 kan en TPM (Trusted Platform Module) användas för att skydda ett certifikats privata nyckel. Microsoft Platform Crypto Provider Key Storage Provider (KSP) aktiverar den här funktionen. Det fanns två problem med genomförandet:
Det fanns ingen garanti för att en nyckel faktiskt skyddas av en TPM (någon kan enkelt förfalska en programvaru-KSP som en TPM KSP med autentiseringsuppgifter för lokal administratör).
Det gick inte att begränsa listan över TPM:er som tillåts skydda företagsutfärdade certifikat (i händelse av att PKI-administratören vill styra vilka typer av enheter som kan användas för att hämta certifikat i miljön).
TPM-nyckelattestering
TPM-nyckelattestering är möjligheten för entiteten som begär ett certifikat att kryptografiskt bevisa för en certifikatutfärdare att RSA-nyckeln i certifikatbegäran skyddas av antingen "a" eller "den" TPM som CA:n litar på. TPM-förtroendemodellen beskrivs mer i avsnittet Distributionsöversikt senare i den här artikeln.
Varför är TPM-nyckelattestering viktigt?
Ett användarcertifikat med en TPM-baserad nyckel ger högre säkerhetsgaranti som backas upp av icke-exporterbarhet, skydd mot tvång och isolering av nycklar som tillhandahålls av TPM.
Med TPM-nyckelattestering är ett nytt hanteringsparadigm nu möjligt: En administratör kan definiera den uppsättning enheter som användare kan använda för att komma åt företagsresurser (till exempel VPN eller trådlös åtkomstpunkt) och har starka garantier för att inga andra enheter kan användas för att komma åt dem. Det här nya paradigmet för åtkomstkontroll är starkt eftersom det är kopplat till en maskinvarubunden användaridentitet, som är starkare än en programvarubaserad autentiseringsuppgift.
Hur fungerar TPM-nyckelattestering?
I allmänhet baseras TPM-nyckelattestering på följande grundpelare:
Varje TPM levereras med en unik asymmetrisk nyckel, kallad bekräftelsenyckeln (EK), som bränns av tillverkaren. Vi refererar till den offentliga delen av den här nyckeln som EKPub och den associerade privata nyckeln som EKPriv. Vissa TPM-chips har också ett EK-certifikat som utfärdas av tillverkaren för EKPub. Vi refererar till det här certifikatet som EKCert.
En certifikatutfärdare upprättar förtroende för TPM antingen via EKPub eller EKCert.
En användare bevisar för ca:n att RSA-nyckeln som certifikatet begärs för är kryptografiskt relaterad till EKPub och att användaren äger EKpriv.
Certifikatmyndigheten utfärdar ett certifikat med en särskild utfärdandepolicy-OID för att ange att nyckeln nu är intygad att vara skyddad av en TPM.
Översikt över distribution
I den här distributionen förutsätts det att en Windows Server 2012 R2-företagscertifikatutfärdare har konfigurerats. Dessutom är klienter (Windows 8.1) konfigurerade för registrering mot den företagscertifikatutfärdaren med hjälp av certifikatmallar.
Det finns tre steg för att implementera TPM-nyckelattestering:
Planera TPM-förtroendemodellen: Det första steget är att bestämma vilken TPM-förtroendemodell som ska användas. Det finns tre sätt att göra detta på:
Förtroende baserat på användarautentiseringsuppgifter: Företagscertifikatutfärdare litar på ekpub som tillhandahålls av användaren som en del av certifikatbegäran och ingen verifiering utförs förutom användarens domänautentiseringsuppgifter.
Förtroende baserat på EKCert: Företagscertifikatutfärdare verifierar DEN EKCert-kedja som tillhandahålls som en del av certifikatbegäran mot en administratörshanterad lista över godkända EK-certifikatkedjor. De godkända kedjorna definieras per tillverkare och uttrycks via två anpassade certifikatarkiv på den utfärdande CA:n (ett arkiv för mellanliggande certifikat och ett för rot-CA-certifikat). Det här förtroendeläget innebär att alla TPM:er från en viss tillverkare är betrodda. Observera att I det här läget måste de TPM:er som används i miljön innehålla EKCerts.
Förtroende baserat på EKPub: Företagscertifikatutfärdare verifierar att DEN EKPub som tillhandahålls som en del av certifikatbegäran visas i en administratörshanterad lista över tillåtna EKPubs. Den här listan uttrycks som en katalog med filer där namnet på varje fil i den här katalogen är SHA-2-hash för den tillåtna EKPub. Det här alternativet erbjuder den högsta säkerhetsnivån men kräver mer administrativt arbete, eftersom varje enhet identifieras individuellt. I den här förtroendemodellen tillåts endast de enheter som har fått sin TPM:s EKPub tillagd i den tillåtna listan över EKPubs att registrera sig för ett TPM-intygat certifikat.
Beroende på vilken metod som används tillämpar certifikatutfärdare en annan utfärdandeprincip-OID på det utfärdade certifikatet. Mer information om utfärdandeprincip-OID:er finns i tabellen Issuance Policy OIDs i avsnittet Konfigurera en certifikatmall i den här artikeln.
Observera att det är möjligt att välja en kombination av TPM-förtroendemodeller. I det här fallet accepterar certifikatutfärdare någon av attesteringsmetoderna, och utfärdandeprincipens OID återspeglar alla attesteringsmetoder som lyckas.
Konfigurera certifikatmallen: Konfiguration av certifikatmallen beskrivs i avsnittet Distributionsinformation i den här artikeln. Den här artikeln beskriver inte hur den här certifikatmallen tilldelas till företagscertifikatutfärdaren eller hur registreringsåtkomst ges till en grupp användare. Mer information finns i Checklista: Konfigurera certifikatutfärdare för att utfärda och hantera certifikat.
Konfigurera ca:n för TPM-förtroendemodellen
Förtroende baserat på användarautentiseringsuppgifter: Ingen specifik konfiguration krävs.
Förtroende baserat på EKCert: Administratören måste hämta EKCert-kedjecertifikaten från TPM-tillverkare och importera dem till två nya certifikatarkiv som skapats av administratören på certifikatutfärdare som utför TPM-nyckelattestering. Mer information finns i avsnittet CA-konfiguration i den här artikeln.
Förtroende baserat på EKPub: Administratören måste hämta EKPub för varje enhet som behöver TPM-intygade certifikat och lägga till dem i listan över tillåtna EKPubs. Mer information finns i avsnittet CA-konfiguration i den här artikeln.
Note
- Den här funktionen kräver Windows 8.1/Windows Server 2012 R2.
- TPM-nyckelattestering för tredjeparts-KSP:er för smartkort stöds inte. Microsoft Platform Crypto Provider KSP måste användas.
- TPM-nyckelattestering fungerar endast för RSA-nycklar.
- TPM-nyckelattestering stöds inte för en fristående ca.
- TPM-nyckelattestering stöder inte icke-beständig certifikatbearbetning.
Distributionsinformation
Konfigurera en certifikatmall
Utför följande konfigurationssteg för att konfigurera certifikatmallen för TPM-nyckelattestering:
Fliken Kompatibilitet
I avsnittet Kompatibilitetsinställningar :
Kontrollera att Windows Server 2012 R2 har valts för certifikatutfärdare.
Kontrollera att Windows 8.1/Windows Server 2012 R2 har valts för certifikatmottagaren.
Fliken Kryptografi
Kontrollera att nyckellagringsprovidern är vald för providerkategorin och att RSA har valts som algoritmnamn. Se till att Begäranden måste använda någon av följande leverantörer har valts och alternativet Kryptoprovider för Microsoft Platform har valts under Providers.
Fliken Nyckelattestering
Det här är en ny flik för Windows Server 2012 R2:
Välj ett attesteringsläge bland de tre möjliga alternativen.
Ingen: Innebär att nyckelattestering inte får användas
Obligatoriskt om klienten är kapabel: Tillåter att användare på en enhet som inte stöder TPM-nyckelattestering fortsätter att registrera sig för certifikatet. Användare som kan utföra attestering kommer att särskiljas med en särskild utfärdandepolicy "OID". Vissa enheter kanske inte kan utföra attestering på grund av en gammal TPM som inte stöder nyckelattestering eller att enheten inte har någon TPM alls.
Krävs: Klienten måste utföra TPM-nyckelattestering, annars misslyckas certifikatbegäran.
Välj sedan TPM-förtroendemodellen. Det finns återigen tre alternativ:
Användarautentiseringsuppgifter: Tillåt en autentiserande användare att gå i god för en giltig TPM genom att ange sina domänautentiseringsuppgifter.
Bekräftelsecertifikat: Enhetens EKCert måste verifieras via administratörshanterade TPM mellanliggande CA-certifikat till ett administratörshanterat rot CA-certifikat. Om du väljer det här alternativet måste du konfigurera EKCA- och EKRoot-certifikatarkiv på den utfärdande certifikatutfärdare enligt beskrivningen i avsnittet CA-konfiguration i den här artikeln.
Bekräftelsenyckel: Enhetens EKPub måste visas i listan som hanteras av PKI-administratören. Det här alternativet erbjuder den högsta säkerhetsnivån men kräver mer administrativt arbete. Om du väljer det här alternativet måste du konfigurera en EKPub-lista på den utfärdande certifikatutfärdaradressen enligt beskrivningen i avsnittet CA-konfiguration i den här artikeln.
Slutligen bestämmer du vilken utfärdandeprincip som ska visas i det utfärdade certifikatet. Som standardinställning har varje genomdrivningstyp en associerad objektidentifierare (OID) som kommer att infogas i certifikatet om den passerar den genomdrivningstypen, enligt beskrivningen i följande tabell. Observera att det är möjligt att välja en kombination av tvingande metoder. I det här fallet accepterar certifikatutfärdaren vilken som helst av attesteringsmetoderna, och utfärdandepolicyns OID återspeglar alla attesteringsmetoder som lyckades.
Utfärdandeprinciper för OID:er
OID Nyckelattesteringstyp Description Säkerhetsnivå 1.3.6.1.4.1.311.21.30 EK "EK Verified": För administratörshanterad lista över EK High 1.3.6.1.4.1.311.21.31 Godkännandeintyg "EK-certifikat verifierat": När EK-certifikatkedjan verifieras Medium 1.3.6.1.4.1.311.21.32 Användarautentiseringsuppgifter "EK Trusted on Use": För användarattesterad EK Low OID:erna infogas i det utfärdade certifikatet om Inkludera utfärdandeprinciper har valts (standardkonfigurationen).
Tip
En möjlig användning av att ha OID i certifikatet är att begränsa åtkomsten till VPN eller trådlösa nätverk till vissa enheter. Din åtkomstprincip kan till exempel tillåta anslutning (eller åtkomst till ett annat VLAN) om OID 1.3.6.1.4.1.311.21.30 finns i certifikatet. På så sätt kan du begränsa åtkomsten till enheter vars TPM EK finns i EKPUB-listan.
CA-konfiguration
Konfigurera EKCA- och EKROOT-certifikatarkiv på en utfärdande certifikatutfärdare
Om du väljer Bekräftelsecertifikat för mallinställningarna utför du följande konfigurationssteg:
Använd Windows PowerShell för att skapa två nya certifikatarkiv på certifikatutfärdarservern (CA) som ska utföra TPM-nyckelattestering.
Hämta mellanliggande certifikat och rot-CA-certifikat från certifikattillverkare som du vill tillåta i din företagsmiljö. Dessa certifikat måste importeras till de tidigare skapade certifikatarkiven (EKCA och EKROOT) efter behov.
Följande Windows PowerShell-skript utför båda dessa steg. I följande exempel har TPM-tillverkaren Fabrikam angett ett rotcertifikat FabrikamRoot.cer och ett utfärdande CA-certifikat Fabrikamca.cer.
PS C:>\cd cert: PS Cert:\>cd .\\LocalMachine PS Cert:\LocalMachine> new-item EKROOT PS Cert:\ LocalMachine> new-item EKCA PS Cert:\EKCA\copy FabrikamCa.cer .\EKCA PS Cert:\EKROOT\copy FabrikamRoot.cer .\EKROOTKonfigurera EKPUB-lista om du använder EK-attestationstyp
Om du väljer Bekräftelsenyckel i mallinställningarna är nästa konfigurationssteg att skapa och konfigurera en mapp på den utfärdande certifikatutfärdare som innehåller 0 byte-filer, var och en med namnet för SHA-2-hashen för en tillåten EK. Den här mappen fungerar som en "allowlist" för enheter som har behörighet att hämta TPM-nyckelattesterade certifikat. Eftersom du måste lägga till EKPUB manuellt för varje enhet som kräver ett intygat certifikat, ger det företaget en garanti för de enheter som har behörighet att hämta TPM-nyckelattesterade certifikat. Det krävs två steg för att konfigurera en ca för det här läget:
Skapa registerposten EndorsementKeyListDirectories: Använd kommandoradsverktyget Certutil för att konfigurera de mappplatser där betrodda EKpubs definieras enligt beskrivningen i följande tabell.
Operation Kommandosyntax Lägga till mappplatser certutil.exe -setreg CA\EndorsementKeyListDirectories +"<mapp>" Ta bort mappplatser certutil.exe -setreg CA\EndorsementKeyListDirectories -"<mapp>" Kommandot EndorsementKeyListDirectories i certutil är en registerinställning enligt beskrivningen i följande tabell.
Värdenamn Type Data EndorsementKeyListDirectories REG_MULTI_SZ <LOKAL sökväg eller UNC-sökväg till TILLÅTNA EKPUB-listor> Example:
\\blueCA.contoso.com\ekpub
\\bluecluster1.contoso.com\ekpub
D:\ekpub
HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Sanitized Name>
EndorsementKeyListDirectories kommer att innehålla en lista över UNC-sökvägar eller lokala filsystemsökvägar, var och en pekande på en mapp som certifikatsmyndigheten har läsbehörighet till. Varje mapp kan innehålla noll eller fler poster i en tillåtelselista, där varje post är en fil med ett namn som är SHA-2-hashen av en betrodd EKpub, utan filnamnstillägg. Om du skapar eller redigerar den här registernyckelns konfiguration måste CA:n startas om, precis som befintliga inställningar för CA. Ändringar i konfigurationsinställningen börjar dock gälla omedelbart och kräver inte att certifikatet startas om.
Important
Skydda mapparna i listan från manipulering och obehörig åtkomst genom att konfigurera behörigheter så att endast behöriga administratörer har läs- och skrivåtkomst. Certifikatutfärdarens datorkonto kräver endast läsåtkomst.
Fyll i EKPUB-listan: Använd följande Windows PowerShell-cmdlet för att hämta den offentliga nyckelhashen för TPM EK med hjälp av Windows PowerShell på varje enhet och skicka sedan denna offentliga nyckelhash till ca:n och lagra den i mappen EKPubList.
PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256 PS C:>$b=new-item $a.PublicKeyHash -ItemType file
Troubleshooting
Nyckelattesteringsfält är inte tillgängliga i en certifikatmall
Fälten för nyckelattestering är inte tillgängliga om mallinställningarna inte uppfyller kraven för attestering. Vanliga orsaker är:
Kompatibilitetsinställningarna är inte korrekt konfigurerade. Kontrollera att de är konfigurerade på följande sätt:
Certifikatutfärdare: Windows Server 2012 R2
Certifikatmottagare: Windows 8.1/Windows Server 2012 R2
Kryptografiinställningarna är inte korrekt konfigurerade. Kontrollera att de är konfigurerade på följande sätt:
Providerkategori: Nyckellagringsprovider
Algoritmnamn: RSA
Providers: Microsoft Platform Crypto Provider
Inställningarna för hantering av begäranden är inte korrekt konfigurerade. Kontrollera att de är konfigurerade på följande sätt:
Alternativet Tillåt att privat nyckel exporteras får inte väljas.
Alternativet Arkivera ämnets privata krypteringsnyckel får inte väljas.
Verifiering av TPM-enhet för attestering
Använd Windows PowerShell-cmdleten Confirm-CAEndorsementKeyInfo för att verifiera att en specifik TPM-enhet är betrodd för attestering av certifikatutfärdare. Det finns två alternativ: ett för att verifiera EKCert och det andra för att verifiera en EKPub. Cmdleten körs antingen lokalt på en certifikatutfärdare eller på fjärranslutna certifikatutfärdare med hjälp av Windows PowerShell-fjärrstyrning.
Utför följande två steg för att verifiera förtroendet för en EKPub:
Extrahera EKPub från klientdatorn: EKPub kan extraheras från en klientdator via Get-TpmEndorsementKeyInfo. Kör följande kommandon från en förhöjd kommandotolk:
PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256Kontrollera förtroendet för en EKCert på en CA-dator: Kopiera den extraherade strängen (SHA-2-hashen för EKPub) till servern (till exempel via e-post) och skicka den till cmdleten Confirm-CAEndorsementKeyInfo. Observera att den här parametern måste vara 64 tecken.
Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <string>
Utför följande två steg för att verifiera förtroendet för en EKCert:
Extrahera EKCert från klientdatorn: EKCert kan extraheras från en klientdator via Get-TpmEndorsementKeyInfo. Kör följande kommandon från en förhöjd kommandotolk:
PS C:>\$a=Get-TpmEndorsementKeyInfo PS C:>\$a.manufacturerCertificates|Export-Certificate -filepath c:\myEkcert.cerKontrollera förtroendet för en EKCert på en CA-dator: Kopiera den extraherade EKCert (EkCert.cer) till CA (till exempel via e-post eller xcopy). Om du till exempel kopierar certifikatfilen mappen "c:\diagnose" på CA-servern kör du följande för att slutföra verifieringen:
PS C:>new-object System.Security.Cryptography.X509Certificates.X509Certificate2 "c:\diagnose\myEKcert.cer" | Confirm-CAEndorsementKeyInfo
Se även
Teknisk översikt över betrodd plattformsmodul –extern resurs: Modul för betrodd plattform