HTTPS工作过程

先来一张图描述HTTS的交互过程:

上图需要用到的算法有:非对称加密,对称加密,单项散列。

简化步骤如下:

1、客户端发起请求;

2、服务端返回证书;

3、客户端从验证证书得到服务端的公钥;

4、客户端生成随机数,并用公钥加密后发送给服务端;

5、服务器根据随机数生成对称密钥;

6、用对称密钥加密数据传输;

什么是证书?

这里的证书其实就是使用权威机构的私钥加密过的服务器公钥,所以制作证书通常是要付费的。那么问题来啦,能不能自己制作一个证书?

为什么不能直接下发服务器公钥给客户端?

如果直接下发公钥给中间人拦截获取了,那么以后的通信过程就无安全可言了。

如何验证证书的可靠性?

使用数字签名,上图的编号就是用来验证证书的有效性的,权威机构颁发给不同网站的证书都只能是唯一的。

浏览器通常是怎么解密出服务器的公钥的?

在非对称加密中,用私钥加密的数据只有公钥才能解密,那么客户端一开始的公钥是怎么获得的?其实任何的操作系统比如windows 10和Mac本身就已经带有受信任机构的根证书。

为何HTTPS建立之后使用对称算法加密?

因为只要保证密钥不会泄露出去,那么数据就是安全的,而且非对称加密算法相当耗费资源,不可能也没必要每次传输都使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值