当前位置: 首页 > 知识库问答 >
问题:

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

魏熠彤
2023-03-14

问题是:我们如何让Indy10与执行最新TLS1.2 SSL最佳实践的web服务器一起工作?

Microsoft记录了最佳实践:https://technet.microsoft.com/library/security/ms12-006本质上,跨多个TLS版本使用的密码块被认为是不安全的。注意,这个kb来自2013年年中,远在狮子狗之前。

作为最佳实践,来自Delphi社区的一些与BEAST攻击相关的文章也建议禁用基于CBC的密码(http://www.atozedsoftware.com/intraweb/blog/20120905.en.aspx)

印第10构建:gsIdVersion='10.6.0.5213';

在代码中,indy设置为:ssloptions.sslversions:=[sslvSSLv23]

和openssl libs:1.0.1.10/1.0.1j

  • Win2012-R2,商业SSL证书。
  • 使用Nartac软件“IIS Crypto”UI修改Win2012服务器上的SSL配置(schannel.dll配置)(屏幕快照如下)

结果:

>

  • 当我们只实现“最佳实践”时,Indy10可以很好地连接。OpenSSL日志信息:

    SSL状态:“SSLV2/V3读取服务器hello A”套接字错误#10054连接由对等方重置。

    以下是IIS加密配置:(下面的最佳实践按钮一次单击即可实现Microsoft在此推荐的内容:https://technet.Microsoft.com/library/security/ms12-006)

  • 共有1个答案

    蔺昊穹
    2023-03-14

    正如Remy在对OP的评论中所指出的,解决方案是使用Indy10 sslioHandler的CipherList属性来设置密码列表。

    可用密码:

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

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

    5)我们已经被告知,由于某些密码的昂贵(cpu密集)性质,可能应该避免使用。我们目前还没有进一步研究这个领域。

    6)为了将来证明你的应用程序,允许一个配置或注册表项修改字段中的密码列表。(谁知道下一步会被利用和禁用...今天的SSL v3,明天的TLS 1.1....)

     类似资料:
    • 我的入口pod无法通过IP访问两个集群IP服务。有很多其他集群IP服务它没有到达困难。包括在同一个命名空间中。另一个pod到达服务没有问题(我在同一个命名空间中尝试了默认后端,一切正常)。 我应该去哪里?以下是我的实际服务,它无法到达第一个,但可以到达第二个: 我的入口吊舱:

    • 我一直在寻找一个解决办法,但没有找到一个有效的解决办法。 我已经在我的MacBook中使用brew安装了postgres(),并且我目前正在使用brew服务运行它(将postgres显示为正在运行的服务)。但是,当我尝试运行时,我得到以下错误。 PSQL:无法连接到服务器:没有这样的文件或目录是本地运行并接受Unix域套接字“/tmp/.s.pgsql.5432”上的连接的服务器吗? 有人已经解决

    • 问题内容: 在厌倦了c3p0的恒定锁定之后,我将转向BoneCP作为数据库的备用连接池。我有一个服务器应用程序,每分钟处理大约7,000个项目,需要将这些项目记录到我们的MySQL数据库中。我目前有100个工作线程,并按如下方式设置了我的池: 这些应用程序是否接受这些设置?我问是因为运行一两分钟后,在尝试调用池时出现BoneCP异常。谢谢您的帮助。 这是我在工作线程中用于db调用的代码,它不会在网

    • 分包 建议将服务接口、服务模型、服务异常等均放在 API 包中,因为服务模型和异常也是 API 的一部分,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP)。 如果需要,也可以考虑在 API 包中放置一份 Spring 的引用配置,这样使用方只需在 Spring 加载过程中引用此配置即可。配置建议放在模块的包目录下,以免冲突,如:com/alibaba/china/xxx/d

    • 据我所知,我的服务器运行正常,因为我(仅在我自己的计算机上)可以连接到服务器。 当我试图让任何其他计算机连接到它,它从来没有连接,我感到茫然和需要想法。 我使用谷歌chrome连接,就像我之前说的,它工作很好,但只在我的电脑上

    • 问题内容: 上传或提交页面时,我的网站上出现以下错误: mysql_real_escape_string()[function.mysql-real-escape- string]:无法通过套接字’/var/lib/mysql/mysql.sock’连接到本地MySQL服务器(2) 这到底是什么意思? 问题答案: 由于对该错误的调用引发了错误,因此它意味着您没有先调用该错误并将有效的数据库句柄传递