ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

【JavaEE】HTTPS(面)

【JavaEE】HTTPS(面)

前面讲过运营商劫持

为了防止这一情况,现在用https进行加密

明文,就是要传说的原始数据

密文就是把明文进行一系列变化之后,得到一个看不懂的内容

加密就是明文到密文的过程

解密就是明文,密文到明文的过程

加密和解密的过程中,用到一个特殊的数据密钥


对称加密
一个密钥,既可以加密,也可以解密

非对称加密
两个密钥k1k2,如果使用
k1加密就用k2解密
k2加密就用k1解密
涉及到公钥私钥,这二者既可以加密,也可以解密
公钥,其中一个公开出去的
自己保存的就是私钥

使用公钥加密,就要用私钥解密,反之亦然

在http基础上引入的加密层叫SSL/TLS协议
并非是给HTTPS单独使用,也会应用于很多其他场景
前面是秋款本的名字,后面是现在的

  1. 引入对称加密
    客户端或者服务器生成一个密钥,让对方也持有这个密钥
    客户端发给服务器的数据就使用这个密钥加密服务器,使用密钥解密

Http的header和body是需要加密的,这个首行不需要

一个服务器给多个客户端提供服务,每个客户端肯定是不同的密钥,但是,客户端生成密钥传输的时候,也可能会被截获
嗯,就是要对密钥也加密

  1. 用非对称加密
    服务器生成公钥和私钥,客户端持有公钥,用公钥加密密钥,黑客也持有公钥但没有用,服务器用私钥解密

那为什么还要用对称加密呢?不一直使用,非对称加密
因为对称加密效率比较高,占系统资源少

仍有缺陷
3. 中间人攻击

4. 应对中间人攻击

需要引入证书,这个证书是字符串(结构化数据),是,第三方公证机构给服务器颁的
微信

有意思不?
这是经典面试题(ಥ_ಥ)
背下来!

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进