http(2)

http && https

https

  • https大部分内容和http一样,https可以理解为对http的一层封装。
  • https在应用层和传输层之间增加了一层SSL/TLS,用来加密和解密数据,保护用户的信息。即,用户的数据在发送之前由SSL层进行加密处理,发送到目标主机后再由SSL进行解密处理。
  • 有得必有失,https更高的安全性所带来的损失就是效率,所以https的效率一定比http要低。

对称加密

  • 密钥:某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。
  • 公钥:对所有人公开的密钥称为公钥。
  • 私钥:保密的、不能让别人知道的密钥。

所谓的对称加密就是服务器和客户端双方都使用同一个密钥。
客户端用该密钥进行加密。服务器用该密钥进行解密。

  • 一旦第三方拿到密钥,那么就会对用户造成损失。
  • 客户端和服务器要想拥有同一份密钥,需要先将密钥传给对方,那么谁来保护密钥呢?
  • 所以,又有了非对称加密。

非对称加密

  • 服务器拥有私钥和公钥。私钥一般用来解密,公钥一般用来加密。
  • 当有一台客户端连接到服务器,服务器将公钥和加密算法传给客户端,这些是不怕被知道的,因为解密的是私钥,公钥只能用来加密。
  • 然后客户端将数据用公钥加密,传给服务器,在这个过程中,即使数据被劫持,对方没有私钥,也无法解密。

但是非对称加密一般比较复杂,浪费时间,所以我们可以采用对称和非对称加密结合。客户端拿到公钥后,将对称加密的密钥通过公钥加密,然后传给服务器。服务器解密后,双方直接使用密钥进行通信。

中间人攻击

  • 但是,这样也不是绝对的安全。
  • 考虑这样一种情况,在服务器发送公钥给你的时候,有一个黑客劫持了这个公钥,然后通过自己的主机发送一个新的公钥给你。那么你的数据发送给黑客的时候,他就可以通过自己的私钥进行解密,然后它就继续将你的信息通过劫持的公钥发给服务器。
  • 这样,表面上,你和服务器都认为在和对方通信,实质上所有的数据都被黑客窃取。

中间人攻击
针对中间人攻击,我们要解决两个问题:

1,如果保证客户端接收到的数据没有被篡改?

  • 我们对一份数据使用hash算法,然后得到一份**数据摘要,因为hash算法是单向的,所以很难倒推出源文。然后我们使用私钥对数据摘要进行加密,得到数据签名(指纹)**,将发送的数据和指纹一同发给对方。
  • 接收方接收到之后,先使用公钥进行解密,然后得到数据摘要。使用同样的hash算法计算出一份新的数据摘要,两份数据摘要进行对比,如果相同那么就没有被修改。
  • 缺点就是,必须保证公钥是正确的。如果公钥不正确,那么无法保证数据的正确。

2, 如何鉴别接收到的数据是服务器发送的,而非黑客发送的?

  • 一般比较安全的服务器都会进行公证,这里的公证是指有权威部门办法ca证书,证书包括了公钥私钥、以及该服务器的一些权威信息等。

  • 操作系统会自带证书,用来证明数据是否来自中间人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值