一、HTTPS概念

1、HTTPS是什么

HTTPS协议是HTTP over SSL/TLS的缩写,也是在应用层的协议,它是在http协议的基础上多了一层加密。

2、HTTPS的作用

  • 防监听:数据在传输过程中是加密的,即使有人获取了也看不懂其中的意义
  • 防篡改:数据在传输过程中被非法串改接收方能立刻发现,确保接收方得到的是原始数据
  • 防冒充:通过证书验证网站的真实身份,确保访问的是真网站,而不是钓鱼网站

二、HTTPS常见的几种加密方式

1、对称加密 (Symmetric Encryption)

  • 概念:采用单钥加密的方式,加密和解密用的都是用一个密钥
  • 特点:速度快,计算量小,效率高
  • 常用算法:AES、DES等

2、非对称加密 (Asymmetric Encryption)

  • 概念:有俩两把密钥,一个是公钥(公开给大家)另一个是私钥(只有自己知道)公钥加密只有私钥才能解密,同样私钥加密也只有公钥才能解密(公钥加密私钥解,私钥加密公钥解
  • 特点:解决了对称加密存在的“如何安全交换密钥”的问题、算法强度复杂。
  • 常用算法:RSA,DSA,ECDSA

3、数据摘要&&数据指纹

  • 概念:利用单向散列函数(hash函数)对数据进行运算,生成一串固定长度的数字摘要,可以用来判断数据是否被串改
  • 特点:用于验证数据完整性、只能加密不能解密。
  • 常用算法:MD5、SHA-256、

三、加密方案探究

1、单独使用对称加密

  • 在只使用对称加密的情况下,最大的安全隐患出现在密钥分发阶段。因为客户端和服务端需要使用相同的密钥进行加解密,这个密钥必须通过网络传输给对方。在这个过程中,如果存在窃听者,他们就有可能截获这个密钥,进而能够解密所有后续的通信内容。

2、单独使用非对称加密

  • 窃取公钥:攻击者截获接收方发来的公钥,换成自己的公钥发给发送方。
  • 窃取密文:发送方用“假公钥”加密信息,攻击者截获密文后,用自己的私钥轻松解密。
  • 伪装转发:攻击者用接收方的真公钥重新加密信息,转发给接收方,全程不被察觉。
     

3、使用非对称加密+对称加密

  • 第一步:截胡公钥(偷梁换柱):当用户向服务端申请公钥时,窃取者拦截了这条请求。窃取者把自己的公钥发给用户,谎称这是服务端的公钥。
  • 第二步:骗取密钥(请君入瓮):用户信以为真,用窃取者的公钥加密了对称密钥。窃取者用自己的私钥轻松解密,成功拿到了这把“万能钥匙”。
  • 第三步:双向窃听(坐收渔利):窃取者把对称密钥转发给真正的服务端。从此,用户和服务端之间的所有加密通信,窃取者都能用这把钥匙解密,实现全量窃取。

4、采用非对称加密+对称加密+证书认证

  • 什么是证书
  1. 证书主体(tbsCertificate):包含版本号、序列号、颁发者、主体、公钥(服务端)等关键信息
  2. 签名算法(signatureAlgorithm):标识CA签名时使用的算法
  3. 数字签名(signatureValue):CA对证书主体进行哈希计算后,用私钥加密生成的签名,确保证书完整性

  • 数据传输流程 
  1. 服务器向CA申请证书,CA验证后用私钥对证书签名
  2. 客户端请求连接时,服务器发送带有CA签名的证书
  3. 客户端使用内置的CA公钥验证证书签名的真实性
  4. 验证通过后,客户端生成对称密钥并用服务器公钥加密发送
  5. 服务器用私钥解密获得对称密钥
  6. 后续通信使用对称密钥加密,确保效率和安全
     

  • 模拟中间人窃取数据方法和过程
  1. 串改证书内的公钥信息,采用3中非对称加密+对称加密同样的方式窃取数据

结论:可以看出当串改证书的公钥时,客户通过内置的CA机构的公钥解密签名依靠数据指纹进行对比,发现内容被串改过,从而拒绝访问链接,因此可以防止数据别窃取

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐