ssl握手

先说几个概念:

加密可以分为对称加密和非对称加密。两者的主要区别就是是否使用同一个秘钥,对称加密需要用同一个秘钥。
非对称加密不需要用同一个秘钥,而是需要两个秘钥:公开密钥(publickey)和私有密钥(privatekey),并且加密密钥和解密密钥是成对出现的。

前提:公钥加密(大家都知道),私钥解密(只有自己知道)
反之也是。

解决三个问题:
1.文件内容不能被读取(加密)
2.文件内容不能被篡改(数字签名)
3.文件内容不能被掉包(数字证书)

  1. 对端的公钥加密本端的对称秘钥,这个对称秘钥再去加密内容(有被篡改风险)
  2. 解决篡改风险:数字签名方法
    利用摘要算法提取出文件的摘要并用本端私钥加密内容(数字签名),这个时候发送两份文件,也就是第一步1的加密内容和数字签名。(对端收到数据会把1的加密内容使用算法提取出摘要信息,在把摘要信息和数字签名里的摘要对比,一致,说明数据没有被篡改),但是又产生一个风险(对端乙无法确定自己的公钥是甲的,还是有被篡改风险)
  3. 数字证书解决:
    数字证书里一般会包含公钥、公钥拥有者名称、CA 的数字签名、有效期、授权中心名称、证书序列号等信息。
    Ca数字签名:使用自己的私钥加密摘要,公钥开放,接收方提取出证书的摘要和数字签名的摘要对比,一致没有篡改

解释:对称加密算法使用秘钥加密数据,非对称加密算法对秘钥加密

数字签名:提取出数据的目录结构使用 摘要算法 进行加密,私钥在加密数据。最后使用公钥

1.四次握手
http的数据得到交给ssl创建加密通道,最后数据通过传输层TCP/UDP传输过去。
2.现在说ssl握手过程
1)client里面携带的hello报文里面携带随机数1和几个加密套件
2)server收到以后,选用client里面的一个加密套件,然后发送到client,里面有随机数2和选择的加密套件
3)server把自己的证书(参考文档开头的数字证书)发送给客户端,客户端认证通过才可以得到公钥,此时生成 随机数3(然后使用公钥加密随机数3)
4)server使用私钥解密出随机数3(这样两边都有随机数1,2,3)
两边使用这三个随机数生成秘钥,握手结束,此时确定好了秘钥,接着数据使用这个秘钥对称加密,最后把数据通过传输层发送

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值