1.HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为 HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS
http协议是明文传输,传输数据过程中的任何第三方都可以截获并篡改该明文 必须加密
(ps:编解码的算法完全公开透明,只是为了方便信息传输而更换一种表现形式,并不具有任何隐私性 base64)
小明和小美 通信
甲方选择某一种加密规则,对信息进行加密
乙方使用同一种规则,对信息进行解密。(3des)
特点 :速度快 约定秘钥
不安全
1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。(RSA)
公钥和私钥是成对的,它们互相解密。
公钥加密,私钥解密。
私钥加密,公钥解密。
特点: 慢 加密对称加密秘钥
φ(n) = n-1
n = p^k
,则φ(n) = p^k-p^(k-1) = (p-1)*p^(k-1)
φ(n*m) = φ(n)*φ(m)
a^φ(n)=a*a^(φ(n)-1)
简单原理:
将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
1.小美生成自己的公钥和私钥,通信之前,她告诉小明她的公钥就可以了,公钥因为是公开的,所以可以随意在网络中传输。
2.小明用小美的公钥,对对称加密的密码进行非对称加密后发给小美。
3.小美再通过她的私钥解密后,就获取了小明生成的对称加密的密码。
不知道是谁发的
4.小明把自己公钥 公开 用自己的私钥加密 发送给小美。
5.小美用小明的公钥解密 得到信息。
6.老王想冒充小明,偷偷用了小美电脑,用自己的公钥替换小明的公钥
7.老王用自己的私钥加密信息,写信给小美,让小美用假的小明公钥进行解密
8.后来,小美感觉不对劲,发现自己无法确定公钥是否真的属于小明。
公证处 获得小明公钥
9.CA给小明颁发一个证书证明是小明就可以了。CA给小明颁发的证书中,含有小明的个人信息以及小明的公钥
同时,CA也会给小明颁发一个私钥
如何获取正确的证书信息
10.CA的证书默认存储我的电脑里了,可以使用CA的公钥进行解密操作,从而验证小明的证书是否是CA颁发
如何知道 证书是小明的
11. CA证书中的数字签名 : 使用CA私钥加密过的【小明的信息+公钥】的hash值 作用证明信息没有被修改过
(ps:hash 特点: 定长输出 雪崩效应 md5,sha1)
12.小明发信息时带上证书,小美用算法对【小明的信息+公钥】进行hash计算(公钥 信息 都是公开)。
13.证书里签名的hash值与小美计算出来的hash值一致,就说明这个证书确实是小明的
chales抓包原理
参考链接:
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
https://juejin.im/post/5a7146fd51882573351a9d99
http://bubuko.com/infodetail-291184.html