https那些事(一)

如何建立安全连接?

公钥:所有人都知道
私钥:只有服务器自己知道

公钥加密数据,私钥解密: 只要能解密这个数据就代表是服务端
私钥加密,公钥解密: 所有人都可以知道,但是没人能对解析出来的数据“二次伪造”,因为私钥只存在在服务端

1、客户端获取服务器公钥以及加密算法
2、客户端 => 服务端 客户端用公钥加密一个随机数rd,加密结果为str(没有私钥解密不了)
3、服务端 => 客户端 解析str,将rd的结果返回给客户端(私钥加密,有了公钥就可以以解析)
4、客户端校验rd,通过,此时利用对称加密,生成一个密钥以及加密算法
5、客户端 => 客户端 将上述密钥&加密算法利用公钥加密(没有私钥解密不了)
6、服务端 解析密钥&加密算法,此时可以正常通信
7、服务端 => 客户端 利用密钥&加密算法,返回客户端ok
8、可以开始愉快的通信了

1、如何确认是服务器的公钥?毕竟这个是最基础的东西?
答:证书。由三方可信的机构颁发的证书
2&3、返回的rd是所有人都可以解析的。如果这个rd很简单的话,那么中间人会不会破解这个"密钥"?
答:有这个理论可能,但是一般服务端返回的一般都是hash(rd),所以中间人解析也一脸懵,而客户端解析到这个数据可以自己对rd加密比较结果,判断是否是服务器发送的消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值