Delphi Indy SSL 参数

标签 delphi ssl indy

这是 Indy server supports SSL 2, but it should not 的延续.

使用Delphi XE Berlin 10.1,我找到了两个满足A级加密强度基本要求的CipherList字符串:

TLSv1:TLSv1.2:SSLv3:!RC4:!NULL-MD5:!NULL-SHA:!NULL-SHA256:!DES-CBC-SHA:!DES-CBC3-SHA:!IDEA-CBC-SHA

ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

使用 Qualys SSLlabs 进行的测试对它们显示了相同的结果:它们很强大,但是:

  • 不支持前向保密。

  • 一些较旧的浏览器(特别是 XP 和 Win7 上的 IE8)无法连接(我的一些用户 - 政府、医院 - 可能仍在使用这些浏览器。你可能会争辩说那些用户的问题比担心 RC4 和 DES,但这不是这篇文章的主题)。

当我使用 Qualys 检查我的银行服务时,我注意到它们确实支持所有旧浏览器。我的问题是:如何配置 Indy 的 TIdServerIOHandlerSSLOpenSSL 以便我的服务器执行相同的操作?

在当前配置中,我有:

Method := sslvTLSv1_2;
SSLVersions := [sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];

我注意到 Qualys 报告说我的服务器仅支持 TLS 1.2,而我的银行似乎也支持 TLS 1.1 和 TLS 1.0。他们使用带有 SHA256withRSA 签名的 RSA2048 key 。但我也是。我使用最新的 OpenSSL DLL。 cipherList 来自 Hynek Sclawack (hynek.me/articles),10 天前更新。

然而:没有旧版浏览器,没有前向保密。我错过了什么?

最佳答案

几个月前,我在 Qualys Labs 上的测试获得了 A 等级,包括前向保密性。这是使用的 CipherList(Cipher List 太长,无法评论,所以这里作为答案):

CipherList := 'ECDHE-RSA-AES256-GCM-SHA384:'+            
  'ECDHE-RSA-AES128-GCM-SHA256:'+            
  'ECDHE-RSA-AES256-SHA384:'+                
  'ECDHE-RSA-AES128-SHA256:'+                
  'ECDHE-RSA-AES256-SHA:'+                   
  'ECDHE-RSA-AES128-SHA:'+                   
  'DHE-RSA-AES256-GCM-SHA384:'+              
  'DHE-RSA-AES256-SHA256:'+                  
  'DHE-RSA-AES256-SHA:'+                     
  'DHE-RSA-AES128-GCM-SHA256:'+              
  'DHE-RSA-AES128-SHA256:'+                  
  'DHE-RSA-AES128-SHA:'+                     
  'DES-CBC3-SHA:'+                           
  '!ADH:!EXP:!RC4:!eNULL@STRENGTH';

关于Delphi Indy SSL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44767903/

相关文章:

delphi - OpenGL:帮助进行相机变换

delphi - 是否有用于获取英文时区名称的 Windows API 例程?

Java 使用 SSL 进行数据库连接

multithreading - 保护两个线程的字符串缓冲区?

当我使用 TIdHTTP 进行 HTTPS 调用时,Android 6.0 应用程序崩溃

delphi - 如何在 Delphi XE3 中的 Firemonkey FM2 应用程序中设置非客户区的样式

java - 将 PEM 转换为 PKCS12 并导入到 Java keystore

node.js - 将 SSL (端口 443) 添加到 Nginx 反向代理服务器 (端口 80) - Nginx 配置文件

Delphi - Indy - 保存 GMail 草稿

delphi - 如何将所有者分配给克隆的 TMenuItem?