PCI 3.1 合规性和 .net C# 应用程序 w/SSL

PCI 3.1 Compliance and .net C# apps w/SSL

在用户在其系统上应用关于 SSL 3.0 和 TLS 1.0 传入和传出流量的 PCI 3.1 标准后,您如何修复使用 SSL 连接到外部服务器的损坏的 .net 3.5、C# 应用程序?

我想在问题开始出现之前把它弄出来。我最近有一个客户将他们的 PCI 合规性升级到 3.1,其中不再允许 SSL 3.0 或 TLS 1.0 流量进出他们的系统。相反,TLS 1.1 和 1.2 目前是安全连接的主要驱动力。如果您的 .net C# 应用程序连接外部 HTTPS 站点或使用安全 SQL 连接到服务器,则需要做一些事情。

首先,将您的应用程序 .net 版本更新到 4.5 或更高版本。 .net 4.5 之前的版本不能默认使用 TLS 1.1 和 1.2。如果你有一个小应用程序并想保留你的 .net 3.5,你可以让客户使用这个 link 更新他们的 PC:.net 3.5 TLS

其次,如果您使用 .net 4.5,则需要在您的代码中添加一行代码,然后才能安全连接到外部站点。 (在 4.6 或更高版本的情况下,建议 TLS 1.2 已经是默认设置,可能不需要此附加代码。)此代码将告诉您的 .net 4.5 应用程序在尝试使用之前默认使用 TLS 1.1 或 TLS 1.2其他方法,例如 SSL 3.0.

System.Net.ServicePointManager.SecurityProtocol =  
    SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;  

希望对您有所帮助。这是来自 PCISecurityStandards.org 的文档,描述了 2018 年 6 月的 3.1 合规截止日期:PCI 3.1 Deadline