Applies To.NET Framework 4.6.2

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.Nota: Se non è possibile aggiornare il server, utilizzare la classe AppContext di disattivare questa funzionalità. A tale scopo, utilizzare uno dei seguenti metodi:

  • 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"/ >

Per ulteriori informazioni sui problemi noti di 4.6 di.NET Framework, vedere problemi per il 4.6 di.NET Framework.

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

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.