前段时间我研究抓包,然后发现抓自己数据库交互的时候,是能抓出数据的,但是朋友的数据库是一长串字节,并不能抓取出真实数据,然后就研究为什么会这样。
然后查看抓取到的包有什么差异,发现在在登陆的时候多了一步TLS连接操作,然后就查询了相关的文档,TLS(传输层安全协议)其实就是SSL(安全套接字协议)的一个升级,那一切就明了了,SSL的主要功能就是对通信数据加密。
我们先讲解加密方式
1.对称加密
- 对数据的加密和解密是同一把密钥
- 加密快,安全性相对较低
- 多用于加密大内容,例如:会话内容
2.非对称加密
- 对数据的加密和解密是两把密钥,其中一把key对数据加密后,只能用另一把密钥解密
- 加密慢,安全性较高
- 多用来加密对称加密的密钥
我们再讲解下认证方式
1.单向认证
- 客户端发送SSL版本等...
- 服务端返回SSL信息、公钥证书等...
- 客户端验证证书通过后,保存公钥,发送支持的对称加密方式
- 服务端选择可用的对称加密方式,返回给客户端
- 客户端获取加密方式后,生成对称加密秘钥,用服务端公钥加密后发送服务端
- 服务端获取对称加密秘钥
- 开始通信
2.双向认证
- 客户端发送SSL版本等...
- 服务端返回SSL信息、公钥证书等...
- 客户端验证证书通过后,发送自己的公钥证书
- 服务器验证证书通过后,保存公钥
- 客户端发送支持的对称加密