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