2015-07-09 24 views
11

Come per PCI, dobbiamo smettere di usare SSL e TLS (1.0 e 1.1 in determinate implementazioni) dal 30 giugno 2016 come http://blog.securitymetrics.com/2015/04/pci-3-1-ssl-and-tls.htmlSSL e obsoleto TLS (1.0 e 1.1) per applicazione client Servizio Web su .Net 3.5

Abbiamo un'applicazione client su .Net 3.5 che utilizza l'oggetto HttpWebRequest per connettersi ai servizi web.

Come da MSDN SecurityProtocolType (https://msdn.microsoft.com/en-us/library/system.net.securityprotocoltype(v=vs.110).aspx) supporta solo Ssl3 e Tls (1.0) su .Net Framework 4 o successivi. Tls11 e Tls12 sono supportati solo in .Net Framework 4.5/4.6

Ciò significa che all'interno dell'ambiente di dati Cardholder e pienamente pci compatibile, è necessario aggiornare tutte le applicazioni a .Net 4.5/4.6 e consentire solo Tls12 SecurityProtocolType per connettersi a servizi Web esterni che utilizzano HttpWebRequest?

risposta

2

Qualsiasi canale di comunicazione che attualmente utilizza SSL/TLS iniziale o che è disposto ad accettarli in fase di negoziazione e che fa parte dell'ambiente dei dati dei titolari di carta come controllo di sicurezza deve essere modificato in modo che utilizzi solo TLS 1.1 (con una suite di crittografia approvata) o superiore.

È necessario ricompilare in. Net 4.5 o versione successiva (TLS 1.2 non è abilitato per impostazione predefinita, quindi sono necessarie modifiche al codice) o utilizzare una libreria di terze parti che supporti i protocolli richiesti.

Si noti che se si conosce che il proprio sistema utilizza SSL/TLS iniziale è necessario creare un piano/documento di riduzione del rischio.

INFORMATION SUPPLEMENT Migrating from SSL and Early TLS

+0

C'è qualche possibilità per Microsoft di rilasciare una patch per .Net 2.0 e versioni successive per supportare TLS 1.2 per la sicurezza? La ragione è che la maggior parte delle aziende non avrà risorse pianificate per ricompilare tutte le applicazioni nell'ambiente dei dati dei titolari di carta su .Net 4.5 entro il 30 giugno 2016. – Nirlep

+1

Personalmente ne dubito fortemente, la loro soluzione era implementare TLS 1.1+ in .Net 4.5. –

+0

La ricompilazione con .Net 4.6 come destinazione non richiede modifiche al codice, poiché .Net 4.6 abilita TLS 1.2 per impostazione predefinita. Una ricompilazione può essere evitata interamente per la maggior parte delle applicazioni con targeting .Net 3.5 o versione successiva modificando il registro (consultare le istruzioni su https://technet.microsoft.com/en-us/library/security/2960358.aspx#ID0ETHAE). Questo cambia il comportamento predefinito. Le applicazioni che specificano esplicitamente il protocollo di sicurezza richiedono comunque un cambio di codice. – Brian

1

Microsoft hanno fatto le patch impensabili e pubblicati per questo

  • KB3154518 - Affidabilità Rollup HR-1605 - NDP 2.0 SP2 - Win7 SP1/Win 2008 R2 SP1
  • KB3154519 - Affidabilità Rollup HR-1605 - NDP 2.0 SP2 - Win8 RTM/Win 2012 RTM
  • KB3154520 - Affidabilità cumulativo HR-1605 - NDP 2.0 SP2 - Win8.1RTM/Win 2012 R2 RTM
  • KB3156421 - 1605 cumulativo di hotfix tramite Windows Update per Windows 10.
4

In realtà, è possibile utilizzare TLS 1.2 in quadri inferiori a 4,5 (almeno sono riuscito a .NET Framework 4 Client). Invece di usare il comando classico per impostare il protocollo come Tls12, puoi bypassarlo usando l'id per questo protocollo.

  ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; 
+0

Funziona solo se sul server è installato Framework 4.5. – Brian

+1

@Brian Non ho avuto problemi a eseguirlo su client .NET Framework 4 – tzes

+0

È possibile che alcune delle correzioni rapide incluse con Windows Update abbiano aggiunto il supporto anche senza Framework 4.5 installato. O Windows Update ha installato Framework 4.5 senza che tu te ne accorga. – Brian

0

L'unica cosa che non sembrano aver fatto, è aggiornare wsdl.exe per sostenere TLS1.1 o 1.2. Questo è quello che succede se si prova e la forma punto wsdle.exe .Net 4.7 ad un servizio web che non supporta TLS1.0:

Microsoft (R) Web Services Description Language Utility 
[Microsoft (R) .NET Framework, Version 4.7.2558.0] 
Copyright (C) Microsoft Corporation. All rights reserved. 
Error: There was an error processing 'http://<some.domain>/_vti_bin/Authentication.asmx?wsdl'. 
    - There was an error downloading 'http://<some.domain>/_vti_bin/Authentication.asmx?wsdl'. 
    - The underlying connection was closed: An unexpected error occurred on a send. 
    - Authentication failed because the remote party has closed the transport stream. 

Questo mi sta causando alcuni problemi reali, e proprio stordito che questa applicazione non è ancora stato aggiornato!

Problemi correlati