2012-12-17 186 views
0

我相信这是嵌入在SSL证书/ HTTPS规范的细节中,但我并不完全正在讨论这个问题。SSL证书和浏览器到网络服务器连接

如果现代浏览器连接到HTTPS站点,则HTTP请求的主体将被加密。 SSL证书实质上是用于在客户端和服务器之间来回通信的“公共”密钥?

黑客能否从公共网站获取公钥,称为“https://www.google.com”,并监控客户端/服务器流量并解密数据?

此外,客户是否需要验证证书的“颁发者”。例如,自签名证书客户端不需要验证,但是对于从可信发行者提供的证书,证书验证过程中会发生什么?

回答

1

服务器的证书包含一个实际上每个人都可以看到的公钥。

http://en.wikipedia.org/wiki/Secure_Sockets_Layer#TLS_handshake_in_detail

无法黑客获得:反过来此密钥服务器和客户端之间的握手过程中,以创建将用于加密任何进一步的消息的唯一会话密钥使用从公共网站公开的密钥,说 “https://www.google.com”和监测客户端/服务器的流量和解密 的数据?

黑客不会知道会话密钥。他会听(无知)加密的东西。

此外,客户是否需要验证证书的“颁发者”。例如,对于 示例,自签名证书客户端不需要验证,但是对于 从可信发行者提供的证书,在证书验证过程中发生了什么?

像你说的,该证书的颁发者验证对信任当局的一个预先定义的列表。证书链中的任何证书都将进行验证,包括受信任的颁发者,到期日期。此外,每个证书都包含指向证书吊销列表(CRL分发点)的URL,客户将尝试从此URL下载列表并确保手头证书尚未被吊销。 “

+0

”就像你说的,证书颁发者是根据预先定义的信任机构名单进行验证的。“ - 所以客户有代码来对受信任的机构进行“验证”。我正在使用Java,嵌入代码以验证使用HTTPSURLConnection库的权限在哪里? –

+0

我指的是浏览器。他们都在幕后进行这些检查。如果您需要使用代码手动执行此操作,则您有更好的机会开始一个新问题(我在.net中完成了这项工作,而不是在java中完成)。 – Ulises

+0

在浏览器中存在代码并且存在基于Java的web浏览器。如果我使用的是基于Java的浏览器,我不知道代码是如何工作的。但你的回答已经回答了我的核心问题。 –

相关问题