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).

Pacchetti TLS/SSL, Schannel e di crittografia 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 in modo simile al TLS. Active Directory Federation Services (AD FS) usa questi protocolli per le comunicazioni. Oggi esistono diverse versioni di questi protocolli.

Security Channel (Schannel) è un Security Support Provider (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 di SSP Schannel per i protocolli TLS/SSL usa gli algoritmi di un pacchetto di crittografia per creare chiavi e crittografare 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 da 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. Se, tuttavia, si modifica il Registro di sistema in modo errato, possono verificarsi gravi problemi. Pertanto, assicurarsi di osservare attentamente la procedura seguente.

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 si ha 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 riavviare il computer.

Nell'età odierna, la protezione avanzata dei server e la rimozione di suite di crittografia meno recenti o deboli stanno diventando una priorità assoluta per molte organizzazioni. Sono disponibili pacchetti software che testano i server e forniscono informazioni dettagliate su questi protocolli e pacchetti. Per mantenere la conformità e ottenere valutazioni sicure, la rimozione o la disabilitazione di protocolli o pacchetti di crittografia più deboli sono diventate un obbligo. 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 of the Registry Editor showing the registry keys located in the Protocols folder.

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

Path Nome 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 DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000000

Disabilitare SSL 3.0

Path Nome 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 DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 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 ulteriori informazioni, vedere Abilitare l'autenticazione avanzata per le applicazioni .NET

Abilitare TLS 1.0

Path Nome 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 DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000000

Disabilitazione di TLS 1.0

Path Nome valore Dati valore
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled"=00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 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

Path Nome 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 DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Attivato 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000000

Disabilitare TLS 1.1

Path Nome 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 DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 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.

Nota

Non è consigliabile disabilitare TLS 1.2.

Path Nome 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 DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client Attivato 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client DisabledByDefault 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 di chiavi vengono controllati tramite PowerShell, MDM o Cipher Suite Ordering.

Per un elenco completo dei pacchetti di crittografia supportati, vedere Pacchetti di crittografia in TLS/SSL (SSP Schannel). Questo articolo fornisce una tabella di pacchetti abilitati per impostazione predefinita e mostra quali pacchetti sono supportati ma non abilitati per impostazione predefinita. Per classificare in ordine di priorità i pacchetti di crittografia, vedere Definizione delle priorità dei pacchetti 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:

Path Nome 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:

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

Screenshot of Registry Editor that highlights the SchUseStrongCrypto key

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

Informazioni aggiuntive