Sintomi
Si supponga di aver aggiornato il computer a Microsoft.NET Framework 4.6. Quando si utilizza un'applicazione che utilizza SSL 3.0 e ServicePointManager o SslStream API per la connessione a un server, la connessione non riesce.
Causa
Questo problema si verifica perché il set predefinito di protocolli SSL/TLS utilizzato da ServicePointManager e SslStream è stato modificato.
Valore precedente: Ssl 3.0 | TLS 1.0 | TLS 1.1
Nuovo valore: Tls 1.0 | TLS 1.1 | TLS 1.2
Soluzione alternativa
Per risolvere questo problema, aggiornare il server a Tls 1.0, 1.1 Tls o Tls 1.2 SSL 3.0 abbia dimostrato di essere vulnerabili ad attacchi come POODLE e non protette.AppContext di disattivare questa funzionalità. A tale scopo, utilizzare uno dei seguenti metodi:
Nota: Se non è possibile aggiornare il server, utilizzare la classe-
Livello di codice: Deve essere la prima cosa che l'applicazione non perché ServicePointManager inizializzerà una sola volta. Nell'applicazione, utilizzare l'esempio di codice riportato di seguito:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
Utilizzando il file /appConfig per l'applicazione: aggiungere la seguente riga al file /appConfig:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Ulteriori informazioni
Per ulteriori informazioni sulle modifiche di controllo delle versioni del prodotto e impatto nel 4.6 di.NET Framework, vedere Compatibilità delle applicazioni nei 4.6 di.NET Framework. Note
-
La nuova configurazione verrà applicata solo quando l'applicazione è destinata la 4.6 di.NET Framework. Le versioni precedenti di.NET Framework 4.5.2 rimane invariate anche se eseguiti in un ambiente.NET Framework 4.6.
-
Elenco delle API di primo livello interessate:
-
HttpClient, HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Questo flag dovrà essere automaticamente utilizzato il 4.6 di.NET Framework e influisce sul comportamento rimuovendo gli algoritmi di crittografico e hash non sicuri. Per tutti i sistemi operativi precedenti a Windows 10, l'algoritmo RC4 verrà rimosso dall'uso. Da 10 di Windows, verranno rimossi i seguenti algoritmi non sicuri: DES, NULL, ESPORTARE e MD5