首页 文章

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

提问于
浏览
49

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

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

4 回答

  • 36

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

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

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

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

  • 47

    两个解决方案 .

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

    SSL证书是他们将用于就服务器真实性达成一致的文档 .

  • 1

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

    “HTTPS往往会引起人们的讨论,嘲笑证书安全及其周围的生态系统 . ”

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

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

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

    HSTS告诉浏览器始终通过HTTPS向HSTS站点发出请求 . 网站通过内置到浏览器中或通过广告 Headers 成为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 's answer and you' ll必须自己访问adam langley的博客https://www.imperialviolet.org/2012/07/19/hope9talk.html

    “Adam Langley可以使用Google的HTTPS服务基础架构和Google Chrome的网络堆栈 . ”

  • 5

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

    SSL是较低级别的协议,不具备此功能 . SSL是传输级加密 .

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

相关问题