文章首发在个人我的博客:www.brandhuang.com/article/158…web
若是喜欢本文但愿能点个赞~浏览器
固然能够关注我来获取后续文章安全
也能够关注我我的博客服务器
HTTP 的不足:网站
HTTP 和 SSL(Secure Socket Layer,安全套接层) 或 TLS(Transport Layer Security,安全传输协议)组合使用来加密 HTTP。加密
加密后的内容依然可能被窃听,只是可能让人没法破解报文的实际含义
code
HTTP 和 SSL 组合使用就被称为HTTPS
。cdn
对 HTTP 协议传输的内容进行加密,须要客户端和服务端同时具备加密和解密的能力。与 SSL
或者 TLS
将整个通讯线路加密
不一样,因此内容任有被篡改的风险。接口
在 HTTP
通讯时,不存在确认通讯方的步骤,任何人都能发起请求,服务器收到请求后,也都会返回一个响应(仅限于发送端的 IP 地址和端口没有被 Web 服务器设为限制访问)
内存
不确认通讯方会存在如下隐患:
有多是已假装的服务器
。有多是已假装的客户端
。是否具有访问权限
。(某些重要信息只想发给特定用户通讯的权限)没法阻止海量请求下的DoS攻击
(Denial of Service,拒绝服务攻击)SSL 不只提供加密处理,还使用了一种叫证书
的手段,用于确认通讯方
HTTP 没法证实通讯报文的完整性,换句话说,没有办法确认,发出的请求/响应和接收到请求/响应是相同的
在传输途中遭攻击者拦截并篡改内容的攻击叫中间人攻击
。
经常使用的防篡改方式:
MD5
和 SHA-1
等散列值校验方法,以及用来确认文件的数字签名
方法。
但以上方式仍没法百分百保证结果正确,由于若是 MD5 、数字签名等自己被改写的话,用户是没法感知的,因此有必要使用 HTTPS
HTTPS 协议并不是一种新协议
,只是 HTTP
通讯接口部分用 SSL
和 TLS
协议替代。
一般 HTTP
直接和 TCP
通讯,当使用 SSL
后,则变成先和 SSL
通讯,再由 SSL
和 TCP
通讯。
SSL
采用的是公开密钥加密
的加密处理方式
对称密钥加密
:加密和解密同用一个密钥,也称为共享密钥加密
公开密钥加密
:使用一对非对称密钥,一把私有密钥(private key)
,一把公开密钥(public key)
。公开密钥随意发布,经过本身的私有密钥进行解密。HTTPS采用混合加密机制,即公开密钥和共享密钥混合加密的机制
因为公开密钥加密处理速度比共享密钥加密慢
。
因此要结合二者优点,将多种方式结合起来用于通讯: 在交换密钥(共享密钥加密的密钥)环节使用「公开密钥加密方式」,以后创建通讯交换报文阶段则使用「共享密钥加密」
。
因为「公开密钥加密」的方式没法证实公开密钥自己是真正的公开密钥,因此采用数字证书认证机构和其相关机构颁发的公开密钥证书
来解决上述问题
数字证书认证机构业务流程:
上述的
「认证机构的公开密钥」
必须安全的转交给客户端,为了保证安全,一般是浏览器厂商发布版本时,一般会事先内置
经常使用认证机构的公开密钥。
SSL 速度慢分两种:通讯慢
、大量消耗CPU、内存等资源致使处理速度慢
(由于SSL须要加密处理,在客户端和服务器都须要进行)
既然 HTTPS 那么安全,为何全部的 web 网站不一直使用 HTTPS?
因此一般只有敏感信息进行 HTTPS 通讯。
本文先整理这么多吧,反正一次也消化不完。
还也能够关注我公众号「九零后重庆崽儿」。