我们对于做不做 HTTPS 网站这一问题进行了相关调研。

HTTPS 是什么? HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer), 是以安全为目标的 HTTP 通道, 简单讲是 HTTP 的安全版。

即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL, 因此加密的详细内容就需要 SSL 。

HTTPS 存在不同于 HTTP 的预设埠及一个加密/身份验证层 (在 HTTP 与 TCP 之间) 。

这个系统提供了身份验证与加密通讯方法。

现在它被广泛用于全球信息网上安全敏感的通讯, 例如交易支付方面。

传统的 HTTP 模式, 存在著大量的灰色中间环节, 相关信息很容易被窃取, 但 HTTPS 却是通过认证使用者与服务器, 将资料准确地传送到客户机与服务器, 并采用加密方式以防资料中途被盗取, 大大降低了第三方窃取信息、篡改冒充身份的风险。

HTTPS 安全原理解析 HTTPS 主要由有两部分组成:HTTP + SSL / TLS, 也就是在 HTTP 上又加了一层处理加密信息的模组。

服务端和客户端的信息传输都会通过 TLS 进行加密, 所以传输的资料都是加密后的资料。

HTTP 工作原理:
①客户端的浏览器首先要通过网络与服务器建立连线, 该连线是通过 TCP 来完成的, 一般 TCP 连线的埠号是 80 。

 建立连线后, 客户机传送一个请求给服务器, 请求方式的格式为: 统一资源识别符号 (URL) 、协议版本号, 后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。

② 服务器接到请求后, 给予相应的响应信息, 其格式为一个状态行, 包括信息的协议版本号、一个成功或错误的代码, 后边是 MIME 信息包括服务器信息、实体信息和可能的内容。

HTTPS 的工作原理: ①. 客户端将它所支持的演算法列表和一个用作产生金钥的随机数传送给服务器;
②. 服务器从演算法列表中选择一种加密演算法, 并将它和一份包含服务器公用金钥的证书传送给客户端; 该证书还包含了用于认证目的的服务器标识, 服务器同时还提供了一个用作产生金钥的随机数;
③. 客户端对服务器的证书进行验证 (有关验证证书, 可以参考数字签名), 并抽取服务器的公用金钥; 然后, 再产生一个称作 pre_master_secret 的随机密码串, 并使用服务器的公用金钥对其进行加密 (参考非对称加/解密), 并将加密后的信息传送给服务器;
④. 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和 MAC 金钥 (参考 DH 金钥交换演算法) 。

⑤. 客户端将所有握手讯息的 MAC 值传送给服务器;
⑥. 服务器将所有握手讯息的 MAC 值传送给客户端。

HTTPS 的优点与缺点 根据案例反馈, 目前 HTTPS 的优缺点主要分布在三方面: HTTPS 的优点: 安全性方面 在目前的技术背景下,HTTPS 是现行架构下最安全的解决方案, 主要有以下几个好处: 1 、使用 HTTPS 协议可认证使用者和服务器, 确保资料传送到正确的客户机和服务器;
2 、 HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议, 要比 http 协议安全, 可防止资料在传输过程中不被窃取、改变, 确保资料的完整性。

3 、 HTTPS 是现行架构下最安全的解决方案, 虽然不是绝对安全, 但它大幅增加了中间人攻击的成本。

HTTPS 的缺点: 技术方面 1 、相同网络环境下,HTTPS 协议会使页面的载入时间延长近 50%, 增加 10% 到 20% 的耗电。

此外,HTTPS 协议还会影响快取, 增加资料开销和功耗。

2 、 HTTPS 协议的安全是有范围的, 在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。

3 、最关键的,SSL 证书的信用链体系并不安全。

特别是在某些国家可以控制 CA 根证书的情况下, 中间人攻击一样可行。

成本方面 1 、 SSL 的专业证书需要购买, 功能越强大的证书费用越高。

个人网站、小网站可以选择入门级免费证书。

2 、 SSL 证书通常需要系结 固定 IP, 为服务器增加固定 IP 会增加一定费用; 3 、 HTTPS 连线服务器端资源占用高较高多, 相同负载下会增加频宽和服务器投入成本; 既然 HTTPS 有这么多缺点, 那是不是就不该做呢, 当然不是的, 随著技术的发展很多缺点是可以优化和弥补的。

比如: 开启速度问题完全可以通过 CDN 加速解决, 很多 IDC 也在著手推出免费证书和一站式 HTTPS 搭建服务,HTTPS 成本在未来将会大大缩小! 我们到底要不要做 HTTPS? 调研中发现, 大多数人对 HTTPS 持观望态度, 他们对 HTTPS 安全性是认可的, 但是从各个层面进行考虑后, 做出了目前不做 HTTPS 网站的决定, 主要有以下两种观点: 正方观点: 1 、 HTTPS 具有更好的加密效能, 避免使用者信息泄露;
2 、 HTTPS 复杂的传输方式, 降低网站被劫持的风险;
3 、搜索引擎已经全面支持 HTTPS 抓取、收录, 并且会优先展示 HTTPS 结果;
4 、从安全形度来说个人觉得要做 HTTPS, 不过 HTTPS 可以采用登入后展示;
5 、 HTTPS 绿锁表示可以提升使用者对网站信任程度;
6 、基础成本可控, 证书及服务器已经有了成型的支持方案;
7 、网站载入速度可以通过 cdn 等方式进行弥补, 但是安全不能忽略;
8 、 HTTPS 是网络的发展趋势, 早晚都要做;
9 、可以有效防止山寨、映象网站; 反方观点: 1 、 HTTPS 会降低使用者访问速度, 增加网站服务器的计算资源消耗;
2 、目前搜索引擎只是收录了小部分 HTTPS 内容, 应该保持观望制度;
3 、 HTTPS 需要申请加密协议, 增加了运营成本;
4 、百度目前对 HTTPS 的优先展现效果不明显, 谷歌较为明显;
5 、技术门槛较高, 无从下手;
6 、目前站点不涉及私密信息, 无需 HTTPS;
7 、相容性有待提升, 如 robots 不支持/联盟广告不支持等;
8 、 HTTPS 网站的安全程度有限, 该被黑还是被黑;
9 、 HTTPS 维护比较麻烦, 在搜索引擎支持 HTTP 的情况, 没必要做 HTTPS;