【Https】如何实现安全传输的?

本文围绕HTTPS协议的安全性展开,介绍了CA、数字证书、数字签名等术语。详细阐述数字证书签发过程,包括网站提交信息、CA写入明文、加密指纹等步骤。还说明了浏览器验证数字证书的流程,确保与真实服务器通信,最后指出CA保证公钥唯一性,对称密钥传输安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 术语解释

HTTPS协议引入了CA和数字证书来解决安全性
数字证书:包含签发机构、有效期、申请人公钥、证书所有者、证书签名算法、证书指纹以及指纹算法等信息。
CA:数字证书签发机构,权威CA是受操作系统信任的,安装操作系统就会内置。
数字签名:用Hash算法对数据进行计算得到Hash值,利用私钥对该Hash加密得到签名。只有匹配的公钥才能解密出签名,来保证签名是本人私钥签发的证书。
对称密钥:服务器和客户端之间加密通信。
非对称密钥:服务器保存私钥,客户端持有公钥,而且公钥加密的数据只能由私钥解密。所以私钥一定要保证不能被泄露。

2 数字证书签发过程

1 网站生成密钥对,将私钥自己保存,公钥和网站域名等信息提交给CA
2 CA把证书签发机构(也就是自己)、证书有效期、网站的公钥、网站域名等信息以明文形式写入到一个文本文件
3 CA选择一个指纹算法(一般为hash算法)计算文本文件的内容得到指纹,用CA的私钥对指纹和指纹算法进行加密得到数字签名,签名算法包含在证书的明文部分
4 CA把明文证书、指纹、指纹算法、数字签名等信息打包在一起得到证书下发给服务器
5 此时服务器拥有了权威CA颁发的数字证书以及自己的私钥
6 以上都是为了完成非对称加解密。

3 浏览器验证数字证书

1 浏览器以HTTPS协议请求服务器的443端口2 服务器下发自己的数字证书给浏览器(明文)
3 浏览器先校验CA、有效期、域名是否有效,如果无效,则终止连接(服务器此时不可信任)如果有效,则从操作系统取出证书颁发机构的公钥,根据签名算法(CA明文记录在了数字证书中)对数字签名解密得到证书指纹和指纹算法(hash算法)
4 浏览器用解密得到的指纹算法计算证书的指纹,与解密得到的指纹进行比对,如果一致,证书有效,公钥(CA明文记录在数字证书中)也安全拿到了。
5 浏览器此时已经和真实的服务器进行通信了,中间人无法得知通信内容,因为中间人没有网站私钥。
6 服务器收到请求后,使用私钥解密请求参数,此间不会有业务数据交互,连接开始首先进行对称密钥的传输,该密钥为后续的业务通信数据加密。

4 小结

1 CA机构保证了服务器公钥的正确唯一性。
2 数字证书的作用就是验证公钥是否是CA颁发的,CA的公钥内置操作系统。
3 浏览器拿到公钥就可以和服务器通信了。
4 这个类似于ssh-copy-id命令,主动把公钥颁发给指定的ip一样,只不过需要改ip的账户密码授权,下次再ssh登录ip时就不需要在输密码了,实现免密登录。
5 对称密钥会被劫持吗?不会,因为对称密钥传输时被客户端使用了网站的公钥加密,即非对称密钥,只能由私钥才能解密,而该私钥只有服务器有。所以无法劫持到对称密钥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自驱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值