https协议和SSL证书之间的区别

时间:2009-05-13 05:29:11

标签: ssl https ssl-certificate protocols

我们在网络浏览器中使用的https协议和SSL证书有什么区别?

这些都不是用来加密客户端(浏览器)和服务器之间的通信吗?

4 个答案:

答案 0 :(得分:48)

HTTPS是HTTP(超文本传输​​协议)加SSL(安全套接字层)。您需要证书才能使用任何使用SSL的协议。

SSL允许安全地传输任意协议。它使客户能够(a)验证他们确实正在与他们期望的服务器进行通信而不是中间人,以及(b)加密网络流量,以便客户端和服务器以外的各方无法看到通信。

SSL证书包含公钥和证书颁发者。客户端不仅可以使用证书与服务器通信,还可以验证证书是否由官方证书颁发机构以加密方式签名。例如,如果您的浏览器信任VeriSign证书颁发机构,并且VeriSign签署了我的SSL证书,那么您的浏览器将固有地信任我的SSL证书。

这里有一些好的阅读:http://en.wikipedia.org/wiki/Transport_Layer_Security

答案 1 :(得分:35)

两个解决方案。

https是定义客户端和服务器如何协商安全连接的协议。

SSL证书是他们用来商定服务器真实性的文件。

答案 2 :(得分:6)

HTPS是新的HTTPS。 HTTPS极易受到SSL剥离/ MITM(中间人)的攻击。 引用亚当朗格的(谷歌)博客帝国紫罗兰:

“HTTPS往往会导致人们提出模仿证书安全性及其周围生态系统的讨论。”

问题是该页面不是通过HTTPS提供的。本来应该是,但是当用户在浏览器中键入主机名时,默认方案是HTTP。服务器可能会尝试将用户重定向到HTTPS,但该重定向是不安全的:MITM攻击者可以重写它并使用户保持HTTP,从而欺骗真实站点。攻击者现在可以截获这个完美配置好的安全网站的所有流量。

这称为SSL剥离,它非常简单且具有破坏性。我们可能不经常看到它,因为它不是公司代理需要做的事情,所以它不是现成的设备。但这种喘息不太可能持续很长时间,也许它已经结束了:我们怎么知道它是否被使用?

为了阻止SSL剥离,我们需要将HTTPS作为唯一的协议。我们无法为整个互联网做到这一点,但我们可以通过HTTP严格传输安全(HSTS)逐站进行。

HSTS告诉浏览器始终通过HTTPS向HSTS站点发出请求。网站通过内置到浏览器或通过标题标题成为HSTS:

严格 - 运输 - 安全:max-age = 8640000; includeSubDomains

标题在指定的秒数内有效,也可能适用于所有子域。必须通过干净的HTTPS连接接收标头。

一旦浏览器知道某个网站只是HTTPS,输入mail.google.com的用户就是安全的:初始请求使用HTTPS并且攻击者无法利用它。

(mail.google.com和其他一些网站已经作为HSTS网站内置在Chrome中,因此实际上无法通过HTTP访问使用Chrome的accounts.google.com - 我不得不对该图片进行处理!如果您需要要包含在Chrome的内置HSTS列表中,请发送电子邮件给我。)

HSTS还可以保护网站管理员免于犯下愚蠢的错误。让我们假设您告诉您的母亲,她应该在去她的银行网站之前输入https://或者为她设置一个书签。说实话,我们可以或者应该期望我们的用户。但是,让我们说我们的超级用户......]

由于阻止/非常愚蠢的链接规则为stackoverflow上的新用户我无法给你adam的答案,你将不得不访问adam langley的博客自己 https://www.imperialviolet.org/2012/07/19/hope9talk.html

“Adam Langley适用于Google的HTTPS服务基础架构和Google Chrome的网络堆栈。”

答案 3 :(得分:1)

HTTPS是一种应用层协议。它可以通过数字签名提供对个别请求或响应的不可否认性。

SSL是较低级别的协议,但没有此功能。 SSL是传输级加密。

HTTPS比SSL更灵活:应用程序可以配置所需的安全级别。 SSL的选项较少,因此更易于设置和管理。