从http到https浅析(二)

接上一篇HTTP的基础知识来展开,还是以提问的方式,来回答进行分析

1.HTTP存在什么问题才引入HTTPS?

原因:

1.通信使用明文, 可能被窃听

2.没有验证用户身份,可能会存在伪造

3.没有验证数据报的完整性,可能被篡改.

针对存在窃听的可能,网络是公用的,任何地方都可能存在窃听.

如何防止被窃听?  

通信的加密.

但HTTP协议中并没有加密机制,可以通过和SSL(Secure Socket Layer )或TLS(Transport Layer Security)组合使用,来加密HTTP通信.

使用SSL建立安全的通信线路以后,就可以在线路上进行HTTP传输了.这种结合SSL的HTTP就是所称为的HTTPS.

内容的加密.

对传输的HTTP数据报的报文主体进行加密,报文数据并不处理.常见于web.但是这样存在问题.

如何验证身份?

首先,HTTP本身并不认证用户身份,客户不知道服务器是否是真正的服务器, 服务器也不知道用户是不是真实的用户,也不知道是否是拥有当前权限的用户. 因此,在目前的论述中并不能抵抗Ddos攻击.

解决: SSL引入了第三方证书的概念,通过可信的第三方给服务端发布证书,用户访问服务器,可以查看到当前的证书是否是合法的.也就是当前服务器是否是可信的. 另外,客户端持有证书,就可以进行身份的认证,也可用于web的认证环节.

如何保护数据的完整性?

接收到的数据可能有误,可能存在中间人攻击(即在服务器和客户端之间可能存在一个第三方的用户,通过截取发送和接收信息,并进行篡改,来产生攻击).

如何防止篡改? 通过md5,sha1, sha2等函数,但是如果攻击者知道用户所使用的散列函数,则整个中间人的攻击还是任然存在的.

 

2.到底什么是HTTPS?

HTTP+ 加密(防窃听)+认证(防伪造)+ 完整性保护(防篡改) =HTTPS

HTTPS是披着SSL外壳的HTTP.

要有的基础:公钥加密(使用公钥加密私钥解密)的开销大于对称加密(加密解密秘钥相同). 但是由于信道不安全,需要对分发秘钥进行保护.使用公钥加密对称加密的私钥.之后发送到服务端使用服务器的私钥解密. 但是又涉及到中间人可能会攻击, 引入第三方(CA:证书颁发机构)

上图的基本操作步骤:

1.服务器把公钥交给CA,通过CA对服务器的公钥进行签名(使用CA的私钥进行签名).

2.服务器收到签名后的公钥,发送给请求访问的客户端.

3.客户端收到签名后,使用浏览器存放的CA公钥对服务器公钥进行验证.

4.验证成功后,使用服务器的公钥对对之后对称加密所要使用的秘钥进行加密(协商会话密钥)的过程.

5.服务器接收到自己公钥加密的对称密钥,解密得到最后要使用的密钥.

3.SSL速度慢吗?

两方面:1.通信慢(数据传输量的增加). 2.大量CPU和内存消耗(需要对明文加密,对密文解密).

所以安全又走到了权衡的位置,是否需要? CA需要支出,CPU消耗,内存消耗等方面都要综合考虑.具体场景具体分析.

引用: 图解HTTP

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值