HTTP
????? 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基
HTTPS
??? HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证 保证了传输过程的安全性?[1]
?。HTTPS 在HTTP 的基础下加入,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与?TCP之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网 上安全敏感的通讯,例如交易支付等方面
?HTTPS与HTTP原理区别
HTTP 原理
? ?? 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,一般 TCP 连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容 。
???? 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容? 。
HTTPS 原理
?? 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器 ;
?? ? ?? 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器 公用密钥的证书发送给客户端 ;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;
?????? 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名 ),并抽取服务器的公用密钥;然后,再产生一个称作 pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加 / 解密),并将加密后的信息发送给服务器? ;
? ? ?? 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和?MAC 密钥(参考 DH密钥交换算法);
?????? 客户端将所有握手消息的 MAC 值发送给服务器 ;
? ? ?? 服务器将所有握手消息的 MAC 值发送给客户端 。
优缺点
优点
- 使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器
- HTTPS 协议是由 SSL+HTTP构建的可进行加密传输、身份认证的网络协议,要比 HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性
- HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本
缺点
- 相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电。此外,HTTPS 协议还会影响缓存,增加数据开销和功耗
- HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用
- 最关键的是,SSL 证书的信用链
体系并不安全。特别是在某些国家可以控制?CA?根证书的情况下,中间人攻击一样可行
|