我通过使用java keytool和RSA算法生成的证书在tomcat 6中配置了SSL机制,并且我可以使用HTTPS访问这些URL。SSL层中的数据是否被加密(128位加密)?
现在我有几个怀疑
- 虽然使用的是128位加密与服务器通信的客户端(浏览器到服务器或服务器到浏览器)中,数据也被加密?
- 如果独立应用程序正在与服务器进行通信,我是否只能获得加密数据?
请澄清我的疑惑。在此先感谢
我通过使用java keytool和RSA算法生成的证书在tomcat 6中配置了SSL机制,并且我可以使用HTTPS访问这些URL。SSL层中的数据是否被加密(128位加密)?
现在我有几个怀疑
请澄清我的疑惑。在此先感谢
是的,一旦SSL连接已经协商(这是首先发生的),所有的数据(客户端和服务器)进行加密。
任何通过SSL安全通道进行通信的应用程序都将对其所有数据进行加密,并且(由于证书签名),它会相对确信它正在与其认为应该与之交谈的演员发言(即,它会有抵御MITM攻击的保护)。
如果你有启用SSL的客户端连接(不管是浏览器,libcurl
,或者别的什么)到任何端口已配置了SSL,您的整个通信路径将被加密。如果您尝试使用未启用SSL的客户端的HTTPS连接监听器,你会得到这样一个Bad Request
的错误信息:
Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please.
如果你真的担心,可以尝试使用像Wireshark东西,查看客户端和服务器之间的通信。
使用Wireshark进行检查。好决定。 – 2010-10-27 16:29:04
Thx寻求帮助我清除了基本的疑问......可以给我提供从独立应用程序进行HTTPS通信的示例实例如何进行证书交换?并且仅有可能获得加密数据?请在此帮忙。 thx – 2010-10-27 13:28:39
任何支持HTTPS的HTTP客户端都可能具有合理的证书协商默认设置,并且还会为您提供自定义选项。举例来说,Python的SSL客户端允许您指定一个证书和您自己的可信CA列表。 – 2010-10-27 16:27:40
我不确定你的意思是“只获取加密数据”......如果你的意思是“没有HTTP使用SSL”,那么是的 - 这很容易(尽管实现细节很大程度上取决于可用的库)。如果没有...请澄清。 – 2010-10-27 16:28:34