首页 > 其他分享 >双向证书校验 和单向证书校验分别是什么原理

双向证书校验 和单向证书校验分别是什么原理

时间:2024-11-15 14:46:24浏览次数:3  
标签:公钥 验证 证书 单向 校验 服务器 客户端

1. 单向证书校验 (One-Way Authentication)

单向证书校验是指在客户端与服务器之间的通信中,只有服务器需要提供证书,客户端通过验证服务器的证书来确认服务器的身份。

原理:

客户端发起连接请求(如通过HTTPS)。
服务器将其数字证书发送给客户端,数字证书中包含了服务器的公钥和其他信息(如证书的有效期、签发者等)。
客户端收到证书后,通过信任的证书颁发机构(CA)的公钥来验证证书的有效性。如果证书有效,客户端就信任这个服务器,继续进行后续的加密通信。
客户端不需要提供任何证书或身份验证。
场景:

单向证书校验适用于大多数常见的HTTPS通信场景,例如浏览器访问网站。浏览器验证网站的服务器身份,但服务器不需要验证客户端的身份。

2. 双向证书校验 (Mutual Authentication)

双向证书校验则要求客户端和服务器都提供证书,并且相互验证对方的身份。这样不仅服务器要验证客户端的身份,客户端也要验证服务器的身份。

原理:

客户端发起连接请求。
服务器发送其数字证书给客户端,客户端用CA公钥验证服务器证书的合法性。
服务器要求客户端也提供数字证书。客户端向服务器提供自己的证书,服务器同样使用CA公钥验证客户端证书的合法性。
双方都确认对方的身份后,开始建立加密通道进行安全通信。
场景:

双向证书校验多用于需要更高安全性和身份验证的场景,例如金融、支付、企业内部系统,或在某些API接口中,确保通信的双方都有合法身份。
在这里插入图片描述
总的来说,单向证书校验用于大多数普通的网络通信场景,而双向证书校验则适用于那些对安全要求较高的通信场景,确保双方都能确认对方的合法身份。

公钥校验证书的校验流程:

证书链验证:

数字证书通常由证书颁发机构(CA)签发,并且可能会有一个证书链(即从最终用户证书到根证书)。校验证书时,首先要检查证书链,确保每个证书都由受信任的机构签发。
如果验证是服务器证书,浏览器会通过根证书来验证证书的有效性。根证书通常是由操作系统或浏览器本地存储的。
验证签名:

数字证书包含一个签名,该签名是CA使用其私钥对证书内容进行加密后的结果。这个签名的目的是保证证书内容(包括公钥)没有被篡改。
校验过程是利用CA的公钥来验证签名的正确性。如果验证通过,说明该证书的内容(包括公钥)是可信的,未被篡改。
具体步骤:

提取证书中的签名部分。
使用CA的公钥对签名进行验证。CA的公钥通常可以从信任的根证书或证书颁发机构获取。
如果验证成功,说明证书是由一个可信的CA签发的,证书内容(包括公钥)是有效的。
验证证书有效性:

除了签名验证,证书还包含一些有效期信息,包括证书的起始日期和截止日期。验证时需要确认当前时间在证书的有效期内。
如果证书已过期,则该证书不可用,公钥也被认为不可信。
检查撤销状态:

除了有效期,证书还需要检查是否被吊销。CA通常会提供**证书吊销列表(CRL)或支持在线证书状态协议(OCSP)**来检查证书的撤销状态。
如果证书被列为吊销状态,则不能信任该证书及其公钥。
公钥使用:

最后,证书中的公钥可以用来进行加密或签名验证。校验过程中的最终目的是确保该公钥是合法的,可以用于建立安全的通信。
校验过程的总结:
证书链验证:确保证书是由受信任的CA签发的。
签名验证:使用CA的公钥验证证书的签名,确保证书未被篡改。
证书有效性检查:验证证书是否在有效期内。
撤销状态检查:检查证书是否被吊销。
公钥使用:确保可以信任证书中的公钥进行安全操作。

标签:公钥,验证,证书,单向,校验,服务器,客户端
From: https://blog.csdn.net/sunminem/article/details/143773306

相关文章

  • 魅族市场 签名空包 找不到meizu的证书链。meizu必须引用包含私有密钥和相应的公共密
    官方地址:https://open.flyme.cn/docs?id=18详解:1.下载空白 下载后解压得到 jarsigner-verbose-keystore.\tp.keystore-signedjarmeizuemptyapk-release-signed.apkmeizuemptyapk-release-unsigned.apktestalias给apk包签名的方式有很多种,我们推荐您使用JDK自带......
  • 生成本地开发环境中的Https SSL证书和私钥的工具:mkcert
    mkcert 是一个用于生成本地开发环境中的SSL证书和私钥的工具。它可以帮助开发者在不需要购买或配置复杂证书颁发机构(CA)的情况下,快速创建受信任的SSL证书。这对于本地开发和测试Web应用非常有用,因为它可以确保HTTPS连接的安全性。特点简单易用:mkcert 提供了一个简单的命令行......
  • PMP项目经理证书考试难不难?
    2025年考纲没有变动,但是参考教材变了,不再使用《PMBOK》第六版作为参考教材了,改成了《过程组:实践指南》这本书,跟《PMBOK》第七版一起作为参考资料。看到是不是很懵,感觉变化很大,其实《过程组:实践指南》跟《PMBOK》第六版的内容差不多,只是把一些知识点换一个说法来描述,表达的是......
  • 单向链表题库2(c++)
    目录前言[1.力扣——LCR123.图书整理I](https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/)[2.力扣——LCR024.反转链表](https://leetcode.cn/problems/UHnkqh/submissions/580256040/)[3.力扣LCR141.训练计划III](https://le......
  • 第十三:BurpSuite模拟器安装Burp Suite证书(一)-重点
    一.模拟器安装BurpSuite证书抓取安卓应用(使用协议为http/https的数据包)1.下载逍遥模拟器地址:https://www.xyaz.cn/2.注意:安装程序一直下一步注意:目录(文件夹)不要出现中文(防止出现错误,无法正常安装成功)!!!3.windows+R-cmd-config//查看本机ip地址4.为模拟器......
  • 第十一:BurpSuite安装浏览器安装Burp Suite证书(一)-重点
    一.浏览器安装BurpSuite证书(BurpSuite抓取浏览器https协议需要安装BurpSuite的证书)1.浏览器设置-搜索:证书-点击:安全2.点击:管理设备的证书3.为受信任的根证书颁布机构(安装证书)3.1.为中间证书颁发机构(安装证书)注意:为什么要给两个都安装证......
  • # StringBoot项目配置SSL证书及配置Nginx ##
    一、证书相关命令1.key转换成.pemopensslrsa-inexample.key-outexample.pem2.crt转换成.pemopensslx509-inexample.crt-outexample.pem二、配置流程1.在nginx目录下创建cert文件夹,导入证书文件及对应的key文件2.修改application.yml配置文件server:port:910......
  • 红帽认证可以直接考rhce吗?红帽证书有效期概述
    在IT行业的诸多认证中,红帽绝对可以算得上是极具含金量的一个证书。若成为一名专业的红帽认证工程师将会大大提升日后在职场中的竞争力,升职加薪也是自然而然的事情。但很多人对这个认证不是很了解,不知道红帽认证和rhce是什么关系,红帽认证可以直接考rhce吗?一、红帽认证等级......
  • vue2的uniapp添加用户登录校验
    在uni-app中实现全局路由守卫的确切方法可能会根据框架的版本和具体的实现方式有所不同。在Vue2和uni-app的结合使用中,全局路由守卫并不是原生支持的功能,因此我们需要采用一些替代方案。对于Vue2和uni-app,你可以通过封装uni-app的页面跳转方法来实现类似全局......
  • 当警察,需要什么证书?(非常详细),零基础入门到精通,看这一篇就够了
    前言近日,浙江公安招聘网络安全技术特殊职位15名、电子物证特殊职位12名,报考条件中的证书值得网安从业者关注。经常说,证书是加分项,也是门槛,就和学历一样,需要用到时,短时间也拿不到,可能错失重要的机会。或许机会就这一次,错过了,以后不会再有了。证书并非越多越好,关键在于精和......