首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Delphi w Indy 10:无法通过TLS 1.2 w SSL连接web服务器上的“最佳实践”

Delphi w Indy 10:无法通过TLS 1.2 w SSL连接web服务器上的“最佳实践”
EN

Stack Overflow用户
提问于 2014-12-04 19:49:45
回答 1查看 8.6K关注 0票数 3

问题:如何让Indy 10与强制执行最新TLS1.2SSL最佳实践的web服务器协同工作?

--最佳实践是由微软记录的: https://technet.microsoft.com/library/security/ms12-006本质上来说,跨多个TLS版本使用的一大块密码被认为是不安全的。请注意,这个kb是从2013年年中,远早于贵宾犬。

作为一种最佳实践,德尔福社区有一些关于猛兽攻击的文章,这些文章还建议禁用基于CBC的密码(http://www.atozedsoftware.com/Intraweb/Blog/20120905.EN.aspx)。

最佳实践摘要:的主要漏洞包括猛兽和贵宾犬攻击。这里的场景既不尖锐,也不狭窄。这是“如何使一个真正现代化的、可靠的、基于Indy10+OpenSSL的SSL客户端”主题。简而言之,这些漏洞表明要避免SSL 2/3,在许多情况下,TLS 1.0也被认为是易受攻击的。许多基于CBC的密码被认为是不安全的。

我要补充一点:这不是假设性的。2014年早些时候,我们有一位渗透测试顾问(Poodle)在他的报告中提到,我们的应用服务器(针对我们的web应用程序)仅被设置为TLS 1.2,所有其他SSL协议都将被禁用。这位顾问是一家大型网络安全公司的一部分,他们在每一次审查中都建议这样做。我相信他们所做的是行业标准。

Indy 10 build: gsIdVersion =10.6.0.5213;

在代码中,indy被设置为: SSLOptions.SSLVersions := sslvSSLv23

和openssl库: 1.0.1.10 / 1.0.1J

使用with 2012-R2服务器进行测试,使用ssl证书。我们正在逐步降低web服务器上的SSL,以符合最新的SSL最佳实践。

我们发现了一个问题: Indy 10在执行最佳实践和TLS 1.2时无法连接。

浏览器连接得很好。

我们测试的方式:

  • 2012年-R2,商业SSL证书。
  • 使用Nartac软件"iis crypto“UI修改Win2012服务器上的SSL (Win2012配置)(下面的屏幕截图)

结果:

  • 当我们只实现“最佳实践”时,Indy10可以很好地连接。OpenSSL日志信息: SSL状态:"SSL协商成功完成“ 密码:名称=ese256-SHA;描述=res256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1;bits = 256;version =TLSv1 1/SSLv3 3;
  • 但是,当我们采取上述,我们禁用TLS 1.0和TLS 1.1,indy应用程序不能再连接。打开SSL日志: SSL状态:“SSL 2/v3写客户机hello A” SSL状态:“SSLv2 2/v3读取服务器hello A”套接字错误# 10054由对等方重置连接。

这里是implements:(下面的“最佳实践”按钮在一次单击中实现了Microsoft在这里推荐的内容:https://technet.microsoft.com/library/security/ms12-006 )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-07 06:26:56

正如雷米在对OP的注释中指出的那样,解决方案是使用Indy 10 SSLIOHandler的CipherList属性来设置密码列表。

可用密码:

https://www.openssl.org/docs/apps/ciphers.html

一些注意事项:

1)我们无法让上面openssl文档页面上的通配符示例正常工作。例句:所有的东西:@力量之类的东西,我们都做不到。

2)正确的格式是带有冒号分隔符的密码列表。例如AES128-SHA256:AES128-GCM-SHA256:ECDH-RSA-NULL-SHA

3)我们发现,提供一个长长的密码列表(40个或更多)实际上降低了与各种ssl服务器的连接性。(看起来在同一个列表中有些可能不兼容,或者openssl在与远程服务器协商方面做得不完美。)列表的子集给出了更好的结果。

4)到目前为止,我们还没有找到一份可靠的、推荐的清单。

5)有人告诉我们,由于某些密码的代价很高(cpu密集),其中一些密码很可能应该避免。我们目前还没有进一步调查这一地区。

6)为了将来验证您的应用程序,允许配置或注册表条目修改字段中的密码列表。(谁知道接下来会有什么被利用和残废.今天SSL v3,明天TLS 1.1.)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27302773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档