一、对称加密
AES加密
AES加密是一种高级加密标准,是一种区块加密标准。它是一个对称密码,就是说加密和解密用相同的密钥。WPA/WPA2经常用的加密方式就是AES加密算法。
二、非对称加密
RSA加密算法是一种非对称加密算法,非对称加密算法需要两个密钥:公共密钥和私有密钥。公钥和私钥是配对的,用公钥加密的数据只有配对的私钥才能解密。
RSA对加密数据的长度有限制,一般为密钥的长度值-11,要加密较长的数据,可以采用数据截取的方法,分段加密。
使用场景:
文件或数据在本地使用公钥或私钥加密,加密后的数据传送到服务器,服务器使用同一套密钥中的私钥或者公钥进行解密。
一、Https是什么?
1.HTTPS概念
HTTPS并不是一个单独的协议,而是对工作在一加密连接(SSL/TLS)上的常规HTTP协议。通过在TCP和HTTP之间加入TLS来加密。
2.SSL/TLS协议
SSL协议,是一种安全传输的协议,TLS是SSL v3.0的升级版。
4.HTTPS传输速度
1)通信慢
2)SSL必须进行加密处理,比HTTP消耗更多资源
二、TLS/SSL握手
1.密码学原理
1)对称加密
加密数据用的秘钥和解密数据用的密钥是一样的。
2)不对称加密
私有密钥:一方保管
共有密钥:双方公有
RSA算法。
2.数字证书
1)就是互联网通讯中标志通讯各方身份信息的一串数字,也是一个文件。
2)为什么有数字证书?
3)数字证书的颁发过程?
3.SSL与TLS握手的过程?
使用非对称加密,随机数不能被随便破解
Https双向认证的流程:
a. 客户端向服务端发送SSL版本等信息
b. 服务端给客户端返回SSL版本,同时也返回服务器端的证书
c. 客户端使用服务的返回的信息验证服务器的合法性,
a) 包括:证书是否过期,发型服务器证书的CA是否可靠,返回的公钥能正确解开返回证书中的数字签名,服务器证书上帝域名是否和服务器的实际域名想匹配
b) 验证通过后,将进行通信,否则终止通信
d. 客户端将自己的证书和公钥发送给服务端
e. 验证客户端的证书,通过验证后,会获得客户端的公钥
f. 客户端向服务端发送自己可以支持的对称加密方案给服务端,让服务端进行选择
g. 服务端在客户端提供的加密方案中选择加密程度高的加密方式
h. 将加密方案通过使用之前获取到的公钥进行加密,返回给客户端
i. 客户端收到服务端返回的加密方案后,使用自己的私钥进行解密,获取具体的加密方式,最后,产生加密方式的随机码,用作过程中的密钥,使用之前从客户端证书中获取到的公钥进行加密后,发送嘿服务端
j. 服务端收到客户端发来的消息后,使用私钥对加密信息进行加密,获得对称加密的密钥
k. 对称加密,确保通信安全
总结:https实际上就是在TCP层与http层之间加入了SSL/TLS来为上层的安全保驾护航,主要用到了对称加密,非对称加密,证书等技术进行客户端与服务器的数据加密传输,最终达到保证整个通信的安全性。