Dela via


Registerinställningar för Transport Layer Security (TLS)

I den här artikeln beskrivs information om registerinställningar som stöds för Windows-implementeringen av TLS-protokollet (Transport Layer Security) och SSL-protokollet (Secure Sockets Layer) via Schannel Security Support Provider (SSP). Registerundernycklarna och posterna som beskrivs i den här artikeln hjälper dig att administrera och felsöka Schannel SSP, särskilt TLS- och SSL-protokollen.

Caution

Den här informationen tillhandahålls som en referens att använda när du felsöker eller verifierar att de nödvändiga inställningarna tillämpas. Vi rekommenderar att du inte redigerar registret direkt om det inte finns något annat alternativ. Ändringar i registret verifieras inte av registereditorn eller av Windows-operativsystemet innan de tillämpas. Därför kan felaktiga värden lagras, vilket kan leda till oåterkalleliga fel i systemet. När det är möjligt, istället för att redigera registret direkt, ska du använda Gruppolicy eller andra Windows-verktyg, till exempel Microsoft Management Console (MMC). Om du måste redigera registret bör du vara mycket försiktig.

Schannel-loggning

Det finns åtta loggningsnivåer för Schannel-händelser som sparats i systemets händelseloggar och kan visas med Händelseloggen. Den här registersökvägen lagras under HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNELnyckeln Händelseloggning med ett DWORD-värde inställt på 1.

Decimal eller hex Schannel-loggningshändelser
0 Inga händelser
1 Felhändelser
2 Varningshändelser
3 Fel- och varningshändelser
4 Informations- och framgångshändelser
5 Fel-, informations- och framgångshändelser
6 Varnings-, informations- och framgångshändelser
7 Fel-, varnings-, informations- och framgångshändelser

Note

Du måste starta om enheten när du har ändrat loggningsnivån.

CertificateMappingMethods

När ett serverprogram kräver klientautentisering försöker Schannel automatiskt mappa certifikatet som tillhandahålls av klientdatorn till ett användarkonto. Du kan autentisera användare som loggar in med ett klientcertifikat genom att skapa mappningar som relaterar certifikatinformationen till ett Windows-användarkonto.

När du har skapat och aktiverat en certifikatmappning associerar serverprogrammet automatiskt användaren med lämpligt Windows-användarkonto varje gång en klient visar ett klientcertifikat.

I de flesta fall mappas ett certifikat till ett användarkonto på något av två sätt:

  • Ett enskilt certifikat mappas till ett enskilt användarkonto (en-till-en-mappning).
  • Flera certifikat mappas till ett användarkonto (många-till-en-mappning).

Schannel-providern använder fyra metoder för certifikatmappning:

  1. Kerberos-mappning för tjänst för användare (S4U) (aktiverad som standard)
  2. Mappning av användarens huvudnamn
  3. En-till-en-mappning (kallas även ämnes-/utfärdarmappning)
  4. Många-till-en-mappning

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Postnamn DWORD Aktiverad som standard
Subject/Issuer 0x000000001 No
Issuer 0x000000002 No
UPN 0x000000004 No
S4U2Self 0x000000008 Yes
S4U2Self Explicit 0x000000010 Yes

Ciphers

TLS/SSL-chiffer bör styras genom att chiffersvitordningen konfigureras. Mer information finns i Konfigurera TLS-chifferpaketordning.

Information om standardbeställningar av chiffersviter som används av Schannel SSP finns i Chiffersviter i TLS/SSL (Schannel SSP).

CipherSuites

Du bör konfigurera TLS/SSL-chiffersviter med hjälp av grupprincip, MDM eller PowerShell. Mer information finns i Konfigurera TLS Cipher Suite Order .

Information om standardbeställningar av chiffersviter som används av Schannel SSP finns i Chiffersviter i TLS/SSL (Schannel SSP).

ClientCacheTime

Den här posten anger klientens livslängd för TLS-sessionscacheobjekt i millisekunder. Från och med Windows Server 2008 och Windows Vista är standardvärdet 10 timmar. Värdet 0 inaktiverar TLS-sessionscachelagring på klienten.

Första gången en klient ansluter till en server via Schannel SSP utförs en fullständig TLS/SSL-handskakning. När det är klart lagras huvudhemligheten, chiffersviten och certifikaten i sessionscachen på respektive klient och server.

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

EnableOcspStaplingForSni

Med OCSP-stapling (Online Certificate Status Protocol) kan en webbserver, till exempel Internet Information Services (IIS), tillhandahålla den aktuella statusen för återkallelse av ett servercertifikat när servercertifikatet skickas till en klient under TLS-handskakningen. Den här funktionen minskar belastningen på OCSP-servrar eftersom webbservern kan cachelagras den aktuella OCSP-statusen för servercertifikatet och skicka den till flera webbklienter. Utan den här funktionen skulle varje webbklient försöka hämta den aktuella OCSP-statusen för servercertifikatet från OCSP-servern. Detta skulle generera en hög belastning på OCSP-servern.

Förutom IIS kan webbtjänster via http.sys också dra nytta av den här inställningen, inklusive Active Directory Federation Services (AD FS) och Web Application Proxy (WAP).

Som standard är OCSP-stöd aktiverat för IIS-webbplatser som har en enkel säker bindning (SSL/TLS). Det här stödet är dock inte aktiverat som standard om IIS-webbplatsen använder någon av eller båda av följande typer av SSL/TLS-bindningar:

  • Kräv servernamnsindikator
  • Använda centraliserat certifikatarkiv

I det här fallet innehåller serverns Hello-svar under TLS-handskakningen inte en OCSP-staplad status som standardinställning. Det här beteendet förbättrar prestandan: Implementeringen av Windows OCSP-häftning skalas till hundratals servercertifikat. Servernamnindikering (SNI) och Central Certificate Store (CCS) gör det dock möjligt för IIS att skala till tusentals webbplatser som potentiellt har tusentals servercertifikat, och därför kan det orsaka prestandaproblem att aktivera OCSP-häftning för CCS-bindningar.

Registersökväg: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Lägg till följande nyckel:

"EnableOcspStaplingForSni"=dword:00000001

Om du vill inaktivera anger du DWORD-värdet till 0:

"EnableOcspStaplingForSni"=dword:00000000

Note

Aktivering av den här registernyckeln har potentiell prestandapåverkan.

Hashes

TLS/SSL-hashalgoritmer bör styras genom att chiffersvitordningen konfigureras. Mer information finns i Konfigurera TLS-chiffersvitordning .

IssuerCacheSize

Den här posten kontrollerar storleken på utfärdarcachen och används tillsammans med utfärdarmappning. Schannel SSP försöker mappa alla utfärdare i klientens certifikatkedja, inte bara den direkta utfärdaren av klientcertifikatet. När utfärdarna inte mappas till ett konto, vilket är vanligt, kan servern försöka mappa samma utfärdarnamn upprepade gånger, hundratals gånger per sekund.

För att förhindra detta har servern ett negativt cacheminne, så om ett utfärdarnamn inte mappas till ett konto läggs det till i cachen och Schannel SSP försöker inte mappa utfärdarnamnet igen förrän cacheposten upphör att gälla. Den här registerposten anger cachestorleken. Den här posten finns inte i registret som standard. Standardvärdet är 100.

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

IssuerCacheTime

Den här posten styr längden på tidsgränsintervallet för cacheminnet i millisekunder. Schannel SSP försöker mappa alla utfärdare i klientens certifikatkedja, inte bara den direkta utfärdaren av klientcertifikatet. Om utfärdarna inte mappar till ett konto, vilket är typiskt, kan servern försöka mappa samma utfärdarnamn upprepade gånger, hundratals gånger per sekund.

För att förhindra detta har servern ett negativt cacheminne, så om ett utfärdarnamn inte mappas till ett konto läggs det till i cachen och Schannel SSP försöker inte mappa utfärdarnamnet igen förrän cacheposten upphör att gälla. Den här cachen sparas av prestandaskäl så att systemet inte fortsätter att försöka mappa samma utfärdare. Den här posten finns inte i registret som standard. Standardvärdet är 10 minuter.

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Nyckelutbytesalgoritm nyckelstorlekar

Följande poster kanske inte finns i registret som standard och måste skapas manuellt. Användning av nyckelutbytesalgoritmer bör styras genom att konfigurera chiffersvitordningen. Mer information om kryptografiska algoritmer för TLS/SSL-chiffersvit finns i Chiffersviter i TLS/SSL (Schannel SSP).

Har lagts till i Windows 10, version 1507 och Windows Server 2016.

Registersökväg: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman

Skapa ett ClientMinKeyBitLength-post för att ange ett minimum stödintervall för Diffie-Hellman nyckelbitslängden i TLS-klienten. När du har skapat posten ändrar du DWORD-värdet till önskad bitlängd. Om den inte har konfigurerats är 1 024 bitar minst.

Note

Konfigurerade elliptiska kurvor avgör den kryptografiska styrkan för ECDHE-nyckelutbytet. Mer information finns i Hantera TLS (Transport Layer Security).

MaximumCacheSize

Den här posten styr det maximala antalet TLS-sessioner som ska cachelagras. Inställningen MaximumCacheSize inaktiverar 0 sessionscachen på serversidan för att förhindra att sessionen återupptas. Om du ökar MaximumCacheSize över standardvärdena kan Lsass.exe förbruka extra minne. Varje session-cache-element kräver vanligtvis 2 KB till 4 KB minne. Den här posten finns inte i registret som standard. Standardvärdet är 20 000 element.

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Meddelanden – fragmentparseringen

Den här posten styr den maximala tillåtna storleken på ett TLS-handskakningsmeddelande som godkänns. Meddelanden som är större än den tillåtna storleken accepteras inte och TLS-handskakningen misslyckas. Dessa poster finns inte i registret som standard.

När du anger värdet till 0x0bearbetas inte fragmenterade meddelanden och gör att TLS-handskakningen misslyckas. Detta gör att TLS-klienter eller servrar på den aktuella datorn inte är kompatibla med TLS RFCs.

Den maximala tillåtna storleken kan ökas med upp till 2^16 byte. Att tillåta en klient eller server att läsa och lagra stora mängder overifierade data från nätverket är inte en bra idé och förbrukar extra minne för varje säkerhetskontext.

Har lagts till i Windows 7 och Windows Server 2008 R2: En uppdatering som gör det möjligt för Internet Explorer i Windows XP, Windows Vista eller Windows Server 2008 att parsa fragmenterade TLS/SSL-handskakningsmeddelanden är tillgänglig.

Registersökväg: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Messaging

Om du vill ange en maximal tillåten storlek för fragmenterade TLS-handskakningsmeddelanden som TLS-klienten accepterar skapar du en MessageLimitClient post. När du har skapat posten ändrar du DWORD-värdet till önskad bitlängd. Om det inte är konfigurerat är 0x8000 standardvärdet byte.

Om du vill ange en maximal tillåten storlek på fragmenterade TLS-handskakningsmeddelanden som TLS-servern accepterar när det inte finns någon klientautentisering skapar du en MessageLimitServer post. När du har skapat posten ändrar du DWORD-värdet till önskad bitlängd. Om det inte är konfigurerat är standardvärdet 0x4000 byte.

Om du vill ange en maximal tillåten storlek på fragmenterade TLS-handskakningsmeddelanden som TLS-servern accepterar när det finns klientautentisering skapar du en MessageLimitServerClientAuth post. När du har skapat posten ändrar du DWORD-värdet till önskad bitlängd. Om det inte är konfigurerat är standardvärdet 0x8000 byte.

SendTrustedIssuerList

TLS-servrar kan skicka en lista över de unika namnen på godtagbara certifikatutfärdare när klientautentisering begärs. Detta kan hjälpa TLS-klienter att välja ett lämpligt TLS-klientcertifikat. Schannel-baserade TLS-servrar skickar inte den här listan över betrodda utfärdare som standard eftersom de certifikatutfärdare som är betrodda av servern exponeras för passiva observatörer och även ökar mängden data som utbyts under TLS-handskakningen. Om det här värdet anges till 1 skickas deras listor över betrodda utfärdare av Schannel-baserade servrar.

Att inte skicka en lista över betrodda utfärdare kan påverka vad klienten skickar när den uppmanas att ange ett klientcertifikat. När Microsoft Edge till exempel tar emot en begäran om klientautentisering visas bara de klientcertifikat som kedjar upp till en av de certifikatutfärdare som skickas av servern. Om servern inte skickade någon lista visar Microsoft Edge alla klientcertifikat som är installerade på klienten.

Det här beteendet kan vara önskvärt. När PKI-miljöer till exempel innehåller korscertifikat har klient- och servercertifikaten inte samma rotcertifikatutfärdare. Därför kan Microsoft Edge inte välja ett certifikat som kedjar upp till en av serverns certifikatutfärdare. TLS-klienter kan erbjuda alla tillgängliga klientcertifikat när en server inte skickar listan över betrodda utfärdare. Den här posten finns inte i registret som standard.

Standardbeteende för skicka lista över betrodda utfärdare

Windows-version Standardbeteendet
Windows Server 2012, Windows 8 och senare FALSE

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

ServerCacheTime

Den här posten anger livslängden för server-TLS-sessionscacheobjektet i millisekunder. Standardvärdet är 10 timmar. Värdet 0 inaktiverar TLS-sessionscachelagring på servern och förhindrar att sessionen återupptas. Om du ökar ServerCacheTime över standardvärdena kan Lsass.exe förbruka ytterligare minne. Varje sessionscacheelement kräver vanligtvis 2 KB till 4 KB minne. Den här posten finns inte i registret som standard.

Registersökväg: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Standardtid för servercache: 10 timmar

Versionsinställningar för TLS, DTLS och SSL-protokoll

SChannel SSP implementerar versioner av TLS-, DTLS- och SSL-protokollen. Olika Windows-versioner stöder olika protokollversioner. Uppsättningen (D)TLS- och SSL-versioner som är tillgängliga i hela systemet kan begränsas (men inte expanderas) av SSPI-anropare som anger SCH_CREDENTIALS struktur i AcquireCredentialsHandle-anropet . Vi rekommenderar att SSPI-anropare använder systemets standardvärden i stället för att införa begränsningar för protokollversioner.

En (D)TLS- eller SSL-protokollversion som stöds kan finnas i något av följande tillstånd:

  • Aktiverad: Såvida inte SSPI-anroparen uttryckligen inaktiverar den här protokollversionen med hjälp av SCH_CREDENTIALS struktur kan Schannel SSP förhandla om den här protokollversionen med en stödjande peer.
  • Inaktiverad: Schannel SSP förhandlar inte om den här protokollversionen oavsett vilka inställningar som SSPI-anroparen kan ange.

Dessa registervärden konfigureras separat för protokollklient- och serverrollerna under registerundernycklarna med följande format:

<SSL/TLS/DTLS> <major version number>.<minor version number><Client\Server>

Dessa versionsspecifika undernycklar kan skapas under följande registersökväg:

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

Här är till exempel några giltiga registersökvägar med versionsspecifika undernycklar:

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\DTLS 1.2\Client

Om du vill åsidosätta ett systemstandardvärde och ange en TLS- eller SSL-protokollversion som stöds till Enabled tillståndet skapar du ett DWORD-registervärde med namnet Enabled med postvärdet "1" under motsvarande versionsspecifika undernyckel.

I följande exempel visas TLS 1.0-klienten inställd på tillståndet Aktiverad :

Skärmbild av Ange TLS 1.0-klientsidan som ska aktiveras i Windows Server-registerinställningen.

För att åsidosätta ett systemstandard och ange en version av (D)TLS- eller SSL-protokoll som stöds till Disabled tillståndet ändrar du DWORD-registervärdet Enabled till "0" under motsvarande versionsspecifika undernyckel.

I följande exempel visas DTLS 1.2 inaktiverat i registret:

Skärmbild av Windows Server-registerinställningen för DTLS 1.2 inställd på att inaktiveras som standard.

Om du byter en (D)TLS- eller SSL-protokollversion till tillstånd kan det leda till Disabled att AcquireCredentialsHandle-anrop misslyckas på grund av bristen på protokollversioner som är aktiverade i hela systemet och samtidigt tillåts av vissa SSPI-anropare. Dessutom kan en reducering av uppsättningen (D)TLS- och SSL-versioner möjligen bryta interoperabiliteten med fjärranslutna enheter.

När (D)TLS- eller SSL-protokollversionsinställningarna har ändrats börjar de gälla för anslutningar som upprättats med hjälp av autentiseringsreferenser som öppnats av efterföljande AcquireCredentialsHandle-anrop . (D)TLS- och SSL-klient- och serverprogram och -tjänster tenderar att återanvända autentiseringshandtag för flera anslutningar av prestandaskäl. För att dessa applikationer ska kunna återfå sina referenser kan en omstart av applikationen eller tjänsten krävas.

De här registerinställningarna gäller endast för Schannel SSP och påverkar inte några tredjeparts-TLS- och SSL-implementeringar som kan vara installerade i systemet.

Warning

Försök att skapa eller justera eventuella Schannel-registerinställningar som inte uttryckligen beskrivs i den här artikeln rekommenderas inte på grund av potentiella risker och oavsiktliga konsekvenser som kan uppstå vid konfigurationer som inte stöds.

Mer information om hur du hanterar TLS-chiffersviten med hjälp av PowerShell finns i TLS-kommandoreferens. Om du är intresserad av att hantera TLS-inställningar via grupprincip kan du läsa Konfigurera TLS-chiffersvitordning med hjälp av grupprincip.