首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL协议太低了吗?

SSL协议太低了吗?
EN

Security用户
提问于 2016-03-17 21:29:30
回答 1查看 3.5K关注 0票数 3

我试图诊断Mac客户端和Windows服务器之间潜在的SSL/TLS问题。我已经生成了自己的根证书,并为服务器签名了一个证书,并在Mac客户机上安装了根证书。当我试图从mac连接到服务器时,如下所示

代码语言:javascript
复制
echo quit | openssl s_client -connect newmail.example.com:443 -CAfile ~/Downloads/myroot.cer 

我看到了这些结果

代码语言:javascript
复制
---
SSL handshake has read 1365 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: DE2800000D2050CAB6CEE9136CD377998559C46C7AD57A1062907EE417457DE0
    Session-ID-ctx: 
    Master-Key: 24E2BE661880D703B7033E0F723323296C26ECEDA0BA79493AE134C7F03EEBD765692C9DF10933BE213FF4E0F89771AC
    Key-Arg   : None
    Start Time: 1458249776
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
DONE

这些结果是否意味着协议谈判的最高级别是TLSv1?(我怀疑这是导致我的应用程序问题的原因)?不应该是TLS 1.2吗?

EN

回答 1

Security用户

回答已采纳

发布于 2016-03-17 21:48:05

协议版本是客户端和服务器之间协商的结果。客户端在ClientHello中发送它支持的最大版本;然后服务器用将要使用的版本进行响应。通常,服务器将选择它支持的最高协议版本,并且不高于客户端公布的最大版本。

在这里,使用openssl命令行工具作为客户端,您可以得到TLS1.0。因此,客户端(此处为OpenSSL)或服务器只知道TLS1.0,而不知道1.2。

OS附带的/usr/bin/openssl工具非常老;在最新的OS安装(El Capitan)上,它是OpenSSL0.9.8zg --这是一个带有bug修复的古老OpenSSL,但不支持OpenSSL-1.*版本中添加的特性。特别是,没有TLS 1.1或1.2。这就解释了,使用OpenSSL,你只能得到1.0。

(OS不会将OpenSSL升级到较新的版本,因为OpenSSL开发人员破坏了API中的向后兼容性,因此更改库版本可能会破坏使用它的第三方现有应用程序。)

为进一步调查你的问题,我建议如下:

  • 尝试一个更新的openssl客户端。您可以使用MacPorts (例如)合理地轻松安装这样的开源软件。
  • 您可能希望使用专门用于此目的的工具之一来测试您的服务器。如果您的服务器可以从因特网访问,Qualys实验室是通常的方法。对于专用网络上的服务器,也有命令行工具(如testssl.shTestSSLServer )可以提供一些信息。
  • 您应该观察到使用网络监视应用程序(例如,Windows上的网络监视器,或Wireshark)进行SSL握手的尝试。这将显示客户端是否试图发起握手,它发送了哪些版本/密码套件,以及服务器响应了什么。这样的跟踪还可能暴露其他情况,例如试图下载CRL作为客户端证书验证的一部分的尝试失败。
票数 6
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/117808

复制
相关文章

相似问题

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