Condividi tramite


Gestire protocolli SSL/TLS e pacchetti di crittografia per AD FS

La documentazione seguente fornisce informazioni su come disabilitare e abilitare determinati protocolli TLS/SSL e pacchetti di crittografia usati da Active Directory Federation Services (AD FS).

TLS/SSL, Schannel e suite di cifratura in AD FS

Il protocollo TLS (Transport Layer Security) fornisce comunicazioni sicure crittografate in rete. Il protocollo SSL (Secure Sockets Layer) crittografa gli scambi di dati sensibili trasmessi tra un server Web e un Web browser simile a TLS. Active Directory Federation Services (AD FS) usa questi protocolli per le comunicazioni. Oggi esistono diverse versioni di questi protocolli.

Security Channel (Schannel) è un provider di supporto per la sicurezza (SSP) che implementa i protocolli di autenticazione Standard Internet SSL, TLS e DTLS. Security Support Provider Interface (SSPI) è un'API utilizzata dai sistemi Windows per eseguire funzioni correlate alla sicurezza, tra cui l'autenticazione. SSPI funziona come una comune interfaccia per diversi SSP, incluso SSP Schannel.

Una suite di cifratura è un insieme di algoritmi crittografici. L'implementazione SSP Schannel dei protocolli TLS/SSL usa algoritmi di una suite di crittografia per creare chiavi e crittografare le informazioni. Un pacchetto di crittografia specifica un algoritmo per ognuna delle attività seguenti:

  • Scambio di chiave
  • Crittografia di massa
  • Autenticazione dei messaggi

AD FS usa Schannel.dll per eseguire le interazioni di comunicazione sicure. ATTUALMENTE AD FS supporta tutti i protocolli e i pacchetti di crittografia supportati Schannel.dll.

Gestire i protocolli TLS/SSL e i pacchetti di crittografia

Importante

Questa sezione contiene i passaggi che illustrano come modificare il Registro di sistema. Tuttavia, potrebbero verificarsi gravi problemi se si modifica il registro in modo errato. Pertanto, assicurati che segui questi passaggi con attenzione.

Tenere presente che la modifica delle impostazioni di sicurezza predefinite per SCHANNEL potrebbe interrompere o impedire le comunicazioni tra determinati client e server. Ciò si verifica se è necessaria una comunicazione sicura e non hanno un protocollo con cui negoziare le comunicazioni.

Se si applicano queste modifiche, è necessario applicarle a tutti i server AD FS nella farm. Dopo aver applicato queste modifiche, è necessario un riavvio.

Nella giornata e nell'età odierna, la protezione avanzata dei server e la rimozione di suite di crittografia meno recenti o deboli sta diventando una priorità importante per molte organizzazioni. Sono disponibili pacchetti software che testano i server e forniscono informazioni dettagliate su questi protocolli e gruppi. Per mantenere la conformità o ottenere valutazioni sicure, la rimozione o la disabilitazione di protocolli o pacchetti di crittografia più deboli è diventata un must. Nella parte restante di questo documento vengono fornite indicazioni su come abilitare o disabilitare determinati protocolli e pacchetti di crittografia.

Le chiavi del Registro di sistema seguenti si trovano nella stessa posizione: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Usare l'editor del Registro di sistema o PowerShell per abilitare o disabilitare questi protocolli e pacchetti di crittografia.

Screenshot dell'editor del Registro di sistema che mostra le chiavi del Registro di sistema che si trovano nella cartella Protocols.

Abilitare e disabilitare SSL 3.0

Usare le chiavi del Registro di sistema seguenti e i relativi valori per abilitare e disabilitare SSL 3.0.

Abilitare SSL 3.0

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Disabilitato per impostazione predefinita 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Cliente Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Cliente Disabilitato per impostazione predefinita 00000000

Disabilitare SSL 3.0

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Disabilitato per impostazione predefinita 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Cliente Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Cliente Disabilitato per impostazione predefinita 00000001

Usare PowerShell per disabilitare SSL 3.0

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'SSL 3.0 has been disabled.'

Abilitare e disabilitare TLS 1.0

Usare le chiavi del Registro di sistema seguenti e i relativi valori per abilitare e disabilitare TLS 1.0.

Importante

La disabilitazione di TLS 1.0 interrompe l'attendibilità di WAP ad AD FS. Se si disabilita TLS 1.0, è necessario abilitare l'autenticazione avanzata per le applicazioni. Per altre informazioni, vedere Abilitare l'autenticazione avanzata per le applicazioni .NET

Abilitare TLS 1.0

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Disabilitato per impostazione predefinita 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Cliente Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Cliente Disabilitato per impostazione predefinita 00000000

Disabilitare TLS 1.0

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled"=000000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Disabilitato per impostazione predefinita 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Cliente Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Cliente Disabilitato per impostazione predefinita 00000001

Usare PowerShell per disabilitare TLS 1.0

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.0 has been disabled.'

Abilitare e disabilitare TLS 1.1

Usare le chiavi del Registro di sistema seguenti e i relativi valori per abilitare e disabilitare TLS 1.1.

Abilitare TLS 1.1

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Disabilitato per impostazione predefinita 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Cliente Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Cliente Disabilitato per impostazione predefinita 00000000

Disabilitare TLS 1.1

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Disabilitato per impostazione predefinita 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Cliente Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Cliente Disabilitato per impostazione predefinita 00000001

Usare PowerShell per disabilitare TLS 1.1

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.1 has been disabled.'

Disabilitare TLS 1.2

TLS 1.2 è abilitato per impostazione predefinita a partire da Windows Server 2012. È possibile usare le chiavi del Registro di sistema seguenti e i relativi valori per disabilitare TLS 1.2.

Avvertimento

La disabilitazione di TLS 1.2 non è consigliata perché può interrompere la funzionalità di altri componenti nel server che si basano su questo protocollo. Ad esempio, i servizi come Microsoft Azure AD Connect (Azure AD Sync) richiedono che TLS 1.2 funzioni correttamente. La disabilitazione potrebbe causare errori del servizio o funzionalità ridotte.

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server Disabilitato per impostazione predefinita 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Cliente Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Cliente Disabilitato per impostazione predefinita 00000001

Usare PowerShell per disabilitare TLS 1.2

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.2 has been disabled.'

Abilitare o disabilitare hash, crittografie e pacchetti di crittografia

Il controllo di crittografie, hash e algoritmi di scambio di chiavi diversi dalle dimensioni della chiave tramite il Registro di sistema non è supportato. Gli hash, le crittografie e gli algoritmi di scambio delle chiavi vengono controllati tramite PowerShell, MDM o Cipher Suite Ordering.

Per un elenco completo delle suite di crittografia supportate, vedere Pacchetti di crittografia in TLS/SSL (SSP Schannel). Questo articolo fornisce una tabella di pacchetti abilitati per impostazione predefinita e mostra quali suite sono supportate ma non abilitate per impostazione predefinita. Per classificare in ordine di priorità le suite di crittografia, vedere Definizione delle priorità delle suite di crittografia Schannel.

Abilitare l'autenticazione avanzata per le applicazioni .NET

Le applicazioni .NET Framework 3.5/4.0/4.5.x possono passare il protocollo predefinito a TLS 1.2 abilitando la chiave del Registro di sistema SchUseStrongCrypto. Queste chiavi del Registro di sistema forzano le applicazioni .NET a usare TLS 1.2.

Importante

Per AD FS in Windows Server 2016 e Windows Server 2012 R2, è necessario usare la chiave .NET Framework 4.0/4.5.x: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

Per .NET Framework 3.5, usare la chiave del Registro di sistema seguente:

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

Per .NET Framework 4.0/4.5.x, usare la chiave del Registro di sistema seguente:

Percorso Nome del valore Dati valore
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

Screenshot dell'editor del Registro di sistema che evidenzia la chiave SchUseStrongCrypto

New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

Informazioni aggiuntive