当前位置: 首页 > news >正文

4.4 X.509证书

目录

证书

获得用户证书(重点)

证书撤销

X.509版本3


X.500系列推荐标准定义了一套目录服务。所谓目录服务,实际上是指用于维护用户信息数据库的一个或一组分布式服务器。这些信息包括从用户名到网络地址的映射关系,以及其他关于用户的属性和信息。

X.509是X.500推荐标准系列的一部分,X.509定义了一个使用X.500目录向其用户提供认证服务的框架。该目录可以作为公钥证书存储库

每个证书都包括用户的公钥,并由一个可信任的认证中心(CA,Certificate Authority)私钥签名

除此之外,X.509定义了另一个基于使用公钥证书的认证协议。

X.509标准很重要!!!

这是因为X.509中定义的证书结构和认证协议在很多环境下都会使用。例如S/MIME(第7章)、IP安全(第8章)和SSL/TLS(第5章)。

X.509基于公钥加密体制数字签名的使用。

这个标准并没有强制使用某个特定的算法,但是推荐使用RSA。数字签名方案假定需要使用散列函数。同样,这个标准也没有强制使用某种特定的散列算法。

公钥证书的产生过程:

《网络安全基础应用与标准》第5版

证书

公钥证书是由可信任的CA创建的,它放在目录中。目录服务器本身不负责公钥的产生和认证功能;它只为用户获取证书提供一个容易访问的场所

证书的一般结构:

《网络安全基础应用与标准》第5版

此标准采取以下表示法来定义一个证书:
CA << A >>= CA {V, SN, AI, CA, UCA, A, UA, A_{p}, T^{A}}
其中:
Y<<X>>=由认证中心 Y 发放的用户 X 的证书;
Y{I}=Y对1的签名,它包括I,并在其后追加一个加密过的散列码;
V=证书的版本;
SN=证书的序列号;
AI=签名算法标识符;
CA=认证中心名称;
UCA=可选的CA唯一标识符;
A=用户A名称;

UA=可选的用户A唯一标识符;
Ap=用户A的公钥;
T^{A}=证书的有效期。

CA用它的私钥对证书进行签名。如果一个用户知道该CA的公钥,那个用户就可以验证由CA签名过的证书是否合法。这是典型的数字签名方法。

获得用户证书(重点)

有CA生成的用户证书的特点:

  • 任何可以访问CA公钥的用户都可以验证此经过签名的用户公钥。
  • 只有认证中心才可以修改用户证书而不会被发现。

由于证书是不可伪造的,它们可以放在目录中,而不需要目录采取特殊的措施来保护它们。

在有许多用户的情况下,使用多个CA是更可行的方法,其中每个CA都将它的公钥安全地提供给一部分用户。

现在假定A从认证中心X处得到证书,而B从认证中心Y处得到证书。如果A不能安全地知道Y的公钥,那么由Y发放给B的证书对A来说没有用处。A可以读取B的证书,但不能验证签名。

但是,如果两个CA之间已经安全地交换了它们的公钥,下面的过程使A得到B的公钥:

(1)A从目录中得到经过X签名的Y的证书。由于A安全地知道X的公钥,A可以从Y的证书中得到它的公钥,并通过X对该证书的签名验证它。
(2)之后,A返回目录并得到由Y签名的B的证书。由于A现在已经可以信任Y的公钥副本,所以A可以对签名进行验证,并安全地得到B的公钥

A使用一个证书链来得到B的公钥:X<<Y>>Y<<B>>,对于B则是:Y<<X>>X<<A>>

《网络安全基础应用与标准》第5版

被连接起来的圆圈表明CA之间的层次关系。与此相关联的方框表明了在每个CA目录入口中存储的证书。每个CA的目录入口都包含如下两种类型的证书:

  • 前向证书:由其他CA生成的X的证书;
  • 反向证书:由X生成的其他CA的证书。

(注意:上面的X<<Z>>和Z<<X>>是没有的,不然的话X和Z之间应该有一条连线)

这样,A要获得B的公钥,可以通过:X<<W>>W<<V>>V<<Y>>Y<<Z>>Z<<B>>.

证书撤销

前面中显示每个证书都包含一个有效期,新证书要在老证书过期前发放。另外,在下面情况中不管证书有没有过期都希望撤销:

(1)用户的私钥被认为已泄露。
(2)用户不再被CA信任。
(3)CA的证书被认为已泄露。

这些证书撤销列表(CRL)也都应该存放在目录中。

当用户从消息中得到证书时,必须要确定证书是否被撤销。用户可以在每次收到证书时检查目录。为了避免由目录搜索带来的延迟和可能的消耗,用户可以维护一个记录证书和被撤销证书列表的本地缓存。

X.509版本3

版本2不能满足以下要求:

(1)主体域不能胜任将密钥所有者的身份传递给公钥用户。X.509的名称相对来说可
能有些短,并且缺乏用户可能需要的显而易见的身份细节。
(2)主体域也不能胜任许多应用,这些应用一般通过互联网电子邮件地址、URL或其
他与网络相关的标识来辨认实体。
(3)需要标明安全策略方面的信息。这可以使得一个诸如IPSec之类的安全应用或安
全功能能够将X.509证书与给定的安全策略联系起来。
(4)需要通过设定对特定证书适用性的约束来限制出故障的或恶意的CA造成的危害。
(5)具有识别同一用户在不同时间使用的不同密钥的能力是重要的。这种特性可以支
持密钥的生命周期管理,特别是在通常或特殊情况下更新用户和CA之间密钥对的能力。

标准开发者采用在版本2格式中附加可选扩展的方式,这样更加灵活。

每个扩展包括一个扩展标识、一个危险指示符和一个扩展值。危险指示符用来指示一个扩展是否可以被安全地忽略。如果危险指示符的值为True,而一个执行程序没有辨认出此扩展,则它必须把此证书当作无效的。

证书扩展可分为三个主要类型:密钥和策略信息主体和发放者属性以及认证路径约束


密钥和策略信息。这些扩展传送关于主体与发放者密钥的附加信息和证书策略指示符。
证书策略是一个命名的规则集,它被用来指示证书对于一个特定的具有相同安全需求的团
体和/或应用类别的适用性。例如,一个策略可用于对一定价格范围内商品贸易的电子数据
交换(EDI)交易进行认证。

相关文章:

  • 小红的回文子串(B组)
  • 解决qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
  • 浏览器访问https站点的过程
  • SuperMap iClient3D for WebGL 影像数据可视范围控制
  • docker和containerd从TLS harbor拉取镜像
  • AI学习第六天-python的基础使用-趣味图形
  • 基于Linux系统的物联网智能终端
  • 文字描边实现内黄外绿效果
  • 如何正确理解mAP、精度、召回率等概念
  • 北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)
  • 考研出分24小时,人类精神状态图鉴
  • 【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】
  • 本地部署SenseVoice(包括离线设备操作)
  • Golang——内存(内存管理、内存逃逸、垃圾回收 (GC) 机制)
  • 什么是标记 PDF(Tagged PDF)?
  • Ollama下载安装+本地部署DeepSeek+UI可视化+搭建个人知识库——详解!(Windows版本)
  • 京东-零售-数据研发面经【附答案】
  • 选开源CMS建站系统时,插件越多越好吗?
  • 0x02 js、Vue、Ajax
  • 家用可燃气体探测器——家庭燃气安全的坚实防线
  • 苏州1-4月进出口总值增长6.8%,工业机器人出口额倍增
  • 家国万里·时光故事会|构筑中国船舰钢筋铁骨,她在焊花里展现工匠风范
  • 乌称苏梅州一公共汽车遭俄军袭击,致9死4伤
  • 阳光保险拟设立私募证券投资基金,总规模200亿元
  • 总奖金池百万!澎湃与七猫非虚构写作与现实题材征文大赛征稿启动
  • 江苏省委组织部副部长高颜已任南京市委常委、组织部部长