HTTPS知识

HTTPS

在HTTP上引入一个加密层

明文:实际意思

密文:对明文加密后不易理解

密钥

解密/加密的工具

对称加密:共用同一个密钥

非对称加密:两把密钥,客户端用公钥,服务器用私钥。

HTTPS公认的三大优势有:

  1. 数据加密,防窃听:HTTPS中的对称加密和非对称加密
  2. 身份验证,防冒充:HTTPS的CA和证书
  3. 完整性校验,防篡改:HTTPS的哈希

加密过程

主要是对header和body进行加密

1、引入对称加密

对称加密其实就是通过同一个 "密钥" , 把明文加密成密文, 并且也能把密文解密成明文。

对称加密是客户端和服务器使用同一个密钥,但有很多客户端,每个人用的秘钥都必须是不同的,服务器就需要维护每个客户端和每个密钥之间的关联关系。

如果客户端和服务器直接的密钥传输是明文的,那黑客就容易得到,从而知道明文数据了。

2、引入非对称加密

服务器生成一个公钥和私钥,公钥给客户端用来加密密钥。

公钥和私钥是配对的. 最大的缺点就是运算速度非常慢,比对称加密要慢很多.

意义:

  1. 客户端在本地生成对称密钥, 通过公钥加密, 发送给服务器.

  2. 由于中间的网络设备没有私钥, 即使截获了数据, 也无法还原出内部的原文, 也就无法获取到对称密

  3. 服务器通过私钥解密, 还原出客户端发送的对称密钥. 并且使用这个对称密钥加密给客户端返回的响应数据.

  4. 后续客户端和服务器的通信都只用对称加密即可. 由于该密钥只有客户端和服务器两个主机知道,其他主机/设备不知道密钥即使截获数据也没有意义

这样有一个缺点,因为客户端不知道返回的pub公钥是否是服务器生成的,黑客也可以自己生成一个公钥和私钥进行返回给客户端,从而获取明文数据。

3、引入证书

在客户端和服务器刚一建立连接的时候, 服务器给客户端返回一个 证书.

这个证书包含了刚才的公钥, 也包含了网站的身份信息.

这个 证书 可以理解成是一个结构化的字符串, 里面包含了以下信息:

  1. 证书发布机构
  2. 证书有效期
  3. 公钥
  4. 证书所有者
  5. 签名
  6. ......

当客户端拿到证书之后,会进行检验,查看证书是否伪造

  1. 判定证书的有效期是否过期
  2. 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构).
  3. 验证证书是否被篡改: 从系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个 hash (称为据摘要), 设为 hash1. 然后计算整个证书的 hash , 设为 hash2. 对比 hash1 hash2 是否相等.如果相等, 则说明证书是没有被篡改过的

有了引入证书之后,黑客就很难进行查看修改数据了,大大提升了数据安全性。

总结

HTTPS 工作过程中涉及到的密钥有三组

第一组(非对称加密): 用于校验证书是否被篡改. 服务器持有私钥(私钥在注册证书时获得), 客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥). 服务器使用这个私钥对证书的签名进行加密. 客户端通过这个公钥解密获取到证书的签名, 从而校验证书内容是否是篡改过.

第二组(非对称加密): 用于协商生成对称加密的密钥. 服务器生成这组 私钥-公钥 对, 然后通过证书把公钥传递给客户端. 然后客户端用这个公钥给生成的对称加密的密钥加密, 传输给服务器, 服务器通过私钥解密获取到对称加密密钥.

第三组(对称加密): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值