IANA在TLS参数拥有一个TLS密码套件的注册中心。TLS提供TLS_RSA_WITH_AES_128_CBC_SHA,其值为{0x00, 0x2f},它在TLS1.0及以上版本中可用。AES密码套件于2002年与RFC 3268,AES TLS密码套件一起加入到TLS中。
但是,AES密码套件没有添加到SSLv3中,因为SSLv3不受IETF的控制。来自RFC 5746,4.5节:
虽然SSLv3不是IETF变更控制下的协议(参见SSLv3),但它是TLS的原始基础,大多数TLS实现也支持SSLv3。
OpenSSL通过密码AES128-SHA提供TLS_RSA_WITH_AES_128_CBC_SHA (参见OpenSSL在ciphers(1)上的文档)。AES128-SHA通过s_client与SSLv3一起工作,并且快速的Wireshark跟踪显示使用了密码套件{0x00, 0x2f}。
$ openssl s_client -ssl3 -connect google.com:443 -cipher "AES128-SHA"
CONNECTED(00000003)
...
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
...
SSL-Session:
Protocol : SSLv3
Cipher : AES128-SHA
...我找不到AES密码套件在SSLv3中有效的引用。我查看了1996年的SSL协议版本3.0草稿、2011年的RFC 6101,安全套接字层(SSL)协议版本3.0和2002年的RFC 3268,AES TLS密码套件。我甚至搜索了IETF工具中的AES和SSL。
SSLv3协议所涵盖的AES密码套件在哪里?
发布于 2014-06-20 18:57:54
SSL3.0不是一个标准。实际上,这就是“网景当时所做的事情”。当协议变成标准时,它变成了RFC 2246,也就是“TLS1.0”。
TLS作者用作源的原始文档后来(很久以后)以RFC格式保存,成为RFC 6101,它具有“历史性”类别。历史上的RFC在标准阶梯上非常低,甚至低于“信息”RFC。在发布该RFC之前,打算编写SSL库的人首先按照RFC实现TLS1.0,然后遍历OpenSSL的源代码,并与现有实现进行互操作性测试,以提供SSLv3。
由于SSLv3是事实上的但不是法律上的标准,所以您将找不到一个指定使用SSL3.0执行AES的标准方法的RFC;根据定义,不可能有这样的标准。充其量,人们可以想象一个“历史”RFC,它将记录常见的实践,即直接使用RFC 3268。SSL3.0与TLS 1.0非常相似,因此AES密码套件从TLS 1.0到SSL3.0的后端并不含糊;作为已经这么做过(几次!)的人,我可以确认在SSL3.0中获得AES支持“正确”并不困难(其中"right“的意思是:”与现有的SSL客户端和服务器一起工作“)。
https://security.stackexchange.com/questions/61549
复制相似问题