HTTP和HTTPS之间的区别

69

HTTP和HTTPS头之间的区别是什么?

  1. 使用HTTPS相比HTTP有哪些好处?
  2. 使网站使用HTTPS需要进行哪些设置?
  3. 我们可以仅在登录时使用HTTPS,之后改为HTTP吗?
  4. HTTPS中是否存在任何威胁?
  5. 处理HTTPS是否需要比HTTP更长的时间?
  6. HTTPS的成本是否高于HTTP?

13
为什么会把包含6个问题的问题标记为“不是一个真实的问题”并关闭它呢? :) - Michael Krelin - hacker
3
@MichaelKrelin-hacker 因为这个问题过于宽泛。这样的“问题”可能会引发一本书,而不是一个SO答案。 - Eugene Mayevski 'Callback
1
我需要了解它们在这6个方面的区别。 - Somnath Muluk
1
@EugeneMayevski'EldoSCorp,我考虑过自己关闭它,但是“不是一个真正的问题?” - Michael Krelin - hacker
1
我已经编辑了问题,现在它还是不是一个真正的问题吗?我应该怎么做来改进它? - Somnath Muluk
3
似乎问题已经得到回答,没有用书......看来真是想不到啊...... - james walker
2个回答

92
  1. HTTPS相比HTTP有哪些优势?

HTTPS意味着您通过TLS / SSL隧道传输HTTP协议,从而加密了HTTP负载。因此,其好处在于HTTP请求和响应在网络上得到安全传输,例如,您的Internet服务提供商不知道您正在做什么。

  1. 如何使用HTTPS?

通常在终端点(应用程序服务器前面的web服务器)启用它。大多数Web服务器(例如IIS,Apache)通过配置支持此功能。根据您的机密性要求,这可能还不够。

  1. 我们可以仅在登录时使用HTTPS,然后改为HTTP吗?

从技术上讲,这是可能的,但会引入一些安全风险。例如:在经过安全验证的登录之后,您将传输标识用户的会话ID。如果未加密地传输这些会话ID(没有SSL),则会出现会话劫持的风险(中间人攻击)

  1. 使网站成为HTTPS需要进行哪些设置?

请参见#2。在公共互联网场景下,您应该从某个特定的证书颁发机构(CA)请求(购买)证书,以便最终用户客户端可以验证是否应信任您的证书。

  1. HTTPS中是否存在任何威胁?

在协议本身中,存在轻微的中间人攻击风险。例如:客户端和服务器之间的代理可能会假装自己是服务器本身(这需要成功攻击网络基础设施,例如DNS)。还有其他几种“更为隐晦”的风险与协议本身无关,例如:

  • 使用过时的加密密钥长度(例如256位)
  • 私钥丢失或不适当的密钥管理程序(例如通过未加密的电子邮件发送)
  • 证书授权机构失败(只需查看2011年的新闻发布)
    1. HTTPS所需的处理时间是否大于HTTP?

    是的,密钥协商(握手)需要大量CPU容量。


    1
    @Somnath Muluk:您先接受了这个答案,然后又拒绝了它。我可以问一下原因吗?告诉我缺少什么就好了。 - home
    关于第5点,要求证书验证正是为了防止DNS欺骗(和其他形式的冒充)。 - Bruno
    @Bruno:我不理解你的问题,能否请你提供更多细节? - home
    @Bruno:当然,你是正确的。也许我应该进一步阐述一下。毫无疑问,客户端或CA也必须受到攻击。 - home

    8
    1. HTTPS代表http安全协议,并提供加密功能。
    2. 通常情况下,您将此任务委托给您的Web服务器。
    3. 是的,这是可能的。
    4. 根据您的Web服务器,您至少应该提供一个证书,如果您的网站是公共的,那么最好购买一个。
    5. HTTPS并不能消除所有威胁,但它不会增加任何新的威胁。
    6. 是的,这需要更多的资源。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接