https工作原理

本文主要参照:https://www.cnblogs.com/jesse131/p/9080925.html
同时加上我自己的一些理解。

https工作流程:
1、客户端发起HTTPS请求 用户在浏览器里输入一个https网址,然后连接到server的443端口。
2、服务端的配置
        采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
3、传送证书
        这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
4、客户端解析证书
        这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。
        (1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
        (2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
        (3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
        (4)如果找到,那么浏览器就会从操作系统中取出颁发者CA的公钥(多数浏览器开发商发布 版本时,会事先在内部植入常用认证机关的公开密钥),然后对服务器发来的证书里面的签名进行解密
        (5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
        (6)对比结果一致,则证明服务器发来的证书合法,没有被冒充 (7)此时浏览器就可以读取证书中的公钥,用于后续加密了
5、传送加密信息
        这部分传送的是用证书加密后的随机值(私钥),目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
6、服务端解密信息
        服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密
7、传输加密后的信息
        这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。
8、客户端解密信息
        客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

我总结了一下,简单来讲:
1、客户端通过服务端返回的证书,确认服务端是可信的;
2、客户端生成一个随机钥,并且用证书里面的公钥加密,发送给服务端;
3、服务端用私钥解密得到随机钥;
4、后续双方的通信内容都通过该随机钥加密,这个加密是对称的。

理论上如果有黑客拦截或者恶意修改信息,只能扰乱通信,而无法伪造信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值