https协议和我们在web浏览器中使用的SSL证书有什么区别?
这两个不是都用来加密客户端(浏览器)和服务器之间的通信吗?
发布于 2009-05-13 05:37:09
HTTPS是超文本传输协议(HyperText )加上安全套接字层( SSL )。您需要证书才能使用任何使用SSL的协议。
SSL允许任意协议安全地进行通信。它使客户端能够(a)验证它们确实正在与其期望的服务器通信,而不是中间人,以及(b)加密网络流量,以便客户端和服务器以外的各方看不到通信。
SSL证书包含公钥和证书颁发者。客户端不仅可以使用证书与服务器通信,还可以验证证书是否由官方证书颁发机构进行了加密签名。例如,如果您的浏览器信任SSL证书颁发机构,而VeriSign签署了我的VeriSign证书,则您的浏览器将本质上信任我的SSL证书。
这里有一些不错的读物:http://en.wikipedia.org/wiki/Transport_Layer_Security
发布于 2009-05-13 05:32:38
一个解决方案的两个部分。
https是定义客户端和服务器如何协商安全连接的协议。
SSL证书是他们用来就服务器的真实性达成一致的文档。
发布于 2013-11-28 21:44:50
HTPS是新的HTTPS。HTTPS很容易受到SSL剥离/ MITM (中间人)的攻击。引用亚当·兰利( adam Langley)的博客《帝国紫罗兰》:
"HTTPS往往会导致人们发表演讲,嘲笑证书安全和围绕它的生态系统。“
问题是该页面不是通过HTTPS提供的。它应该是,但当用户在浏览器中键入主机名时,默认方案是HTTP。服务器可能会尝试将用户重定向到HTTPS,但这种重定向是不安全的: MITM攻击者可以重写该重定向,并将用户保留在HTTP上,从而始终欺骗真实站点。攻击者现在可以截获这个配置良好且安全的网站的所有流量。
这就是所谓的SSL剥离,它非常简单,而且非常有效。我们可能不经常看到它,因为它不是公司代理需要做的事情,所以它不在现成的设备中。但这种喘息不太可能持续很长时间,可能已经结束了:我们如何知道它是否正在被使用?
为了停止SSL剥离,我们需要使HTTPS成为唯一的协议。我们不能在整个Internet上做到这一点,但我们可以使用HTTP严格传输安全(HSTS)逐站点地做到这一点。
HSTS告诉浏览器总是通过HTTPS向HSTS站点发出请求。站点可以通过内置在浏览器中,或者通过广告标题来成为HSTS:
严格传输安全: max-age=8640000;includeSubDomains
报头在给定的秒数内有效,并且也可以应用于所有子域。必须通过干净的HTTPS连接接收报头。
一旦浏览器知道一个站点只有HTTPS,用户输入mail.google.com就是安全的:初始请求使用HTTPS,攻击者没有漏洞可以利用。
(mail.google.com和许多其他站点已经内置到Chrome中作为HSTS站点,所以实际上不可能使用Chrome通过HTTP访问accounts.google.com -我不得不篡改这个图像!)如果你想加入Chrome的内置HSTS列表,请发邮件给我。)
HSTS还可以保护你,网站管理员,避免犯愚蠢的错误。假设您已经告诉您的母亲,在访问她的银行站点之前,应该始终输入https://,或者您为她设置了一个书签。老实说,这超出了我们对用户的期望。但是假设我们的超级用户..。]
由于stackoverflow上针对新用户的链接规则的阻碍/非常愚蠢,我不能给你亚当剩下的答案,你必须自己访问亚当·兰利的博客https://www.imperialviolet.org/2012/07/19/hope9talk.html
"Adam Langley在Google的HTTPS服务基础设施和Google Chrome的网络堆栈上工作。“
https://stackoverflow.com/questions/856209
复制相似问题