Según PCI, debemos dejar de usar SSL y TLS (1.0 y 1.1 en ciertas implementaciones) a partir del 30 de junio de 2016 según http://blog.securitymetrics.com/2015/04/pci-3-1-ssl-and- tls.html
Tenemos una aplicación cliente creada en .Net 3.5 que usa el objeto HttpWebRequest para conectarse a los servicios web.
Según MSDN SecurityProtocolType ( https://msdn.microsoft.com/en-us/library/system.net.securityprotocoltype(v=vs.110).aspx ) solo admite Ssl3 y Tls(1.0) en .Net Framework 4 o abajo. Tls11 y Tls12 solo son compatibles con .Net Framework 4.5/4.6
¿Significa eso que para estar dentro del entorno de datos del titular de la tarjeta y totalmente compatible con pci, debemos actualizar todas las aplicaciones a .Net 4.5/4.6 y permitir que solo Tls12 SecurityProtocolType se conecte a servicios web externos mediante HttpWebRequest?
En realidad, puede usar TLS 1.2 en Frameworks inferiores a 4.5 (al menos lo manejé en el cliente .NET Framework 4). En lugar de usar el comando clásico para configurar el Protocolo como Tls12, puede omitirlo usando la identificación para este protocolo.
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;Cualquier canal de comunicación que actualmente use SSL/TLS temprano o que esté dispuesto a aceptarlos en la negociación y que sea parte del entorno de datos del titular de la tarjeta como control de seguridad debe cambiarse para que solo use TLS 1.1 (con un conjunto de cifrado aprobado). ) o superior.
Debe volver a compilar en .Net 4.5 o superior (TLS 1.2 no está habilitado de forma predeterminada, por lo que se necesitan cambios de código) o usar una biblioteca de terceros que admita los protocolos requeridos.
Tenga en cuenta que si sabe que su sistema usa SSL/TLS temprano, debe crear un plan/documento de mitigación de riesgos.
Microsoft ha hecho lo impensable y ha publicado parches para esto.