X。509公钥证书证书中包含哪些信息?
前面的文章中,我们已经对证书系统有了一个基本的认识,这篇文章我们一起来看看,公钥证书中都包含那些信息,这些信息都是做什么用的。
整体结构
证书信息都是采用 ASN.1 编码格式编码成二进制数据存储在文件中, 这些信息都有相应的层次结构,我们下边自顶向下的逐一解析。
平时我们可能会通过 Windows 自带的程序打开证书文件,查看证书的信息,看起来这些信息是扁平的,这是因为这些程序对证书信息进行了处理,以便于阅读。
但是,如果你使用 ASN.1 的阅读工具查看这个证书文件的内容,那么它是这样的:
这里,我们不打算分析证书是如何使用 ASN.1 编码的,也不打算详细解析证书的结构,我们只看看证书里面那些重要的信息。版本
所有的 X.509 证书中都包含 Version 信息。 这个信息主要是告诉程序当前的证书的版本,以便程序能自动解析证书。 当前看到的证书都是 V3.
主体
主体,也就是 Subject。 这个信息表示当前证书是 CA 签发给谁的。 比如我们上面的证书中 Subject 的值是 "CN = *.toutiao.com", 那么就表明这个证书是签发给 *.toutiao.com 这个主体的。
主体信息主要用于向你的通信的另一方表明你的身份。
比如说: 我是一个 HTTPS 的客户端,我向 toutiao.com 发送了一个 HTTPS GET 的请求。在 TLS 握手阶段,头条的web服务器会向我发送它的证书。 此时,当我收到它的证书之后,我需要校验证书中的 Subject,如果 Subject 和我想要访问的网站域名无法匹配,那么说明我们此时连接到了错误/伪装的网站,TLS 握手会失败, 以保证我们的信息不会被错误的发送给其他第三方。发行人和序列号
发行人 = Issuer. Issuer 是用于签发当前证书的证书的 Subject。
序列号 = Serial number。 Serial Number 是 Issuer 在签发当前证书时给它指定的一个 Id。 规范中要求,同一个 CA,对于它签发的证书,所有的 Serial Number 必须是唯一的,不能重复。
Issuer 的作用是什么呢?主要用于证书链校验的过程中。我们拿到一个证书之后,需要决定是否信任这个证书。那么就需要构建当前证书的证书链。如何构建证书链?从当前证书开始,逐个寻找它们的 Issuer,然后逐一校验这些证书。有效期
证书中包含两个时间信息:Valid From 和 Valid To。分别用来指明证书的有效时间的开始和结束时间点。
这个信息也是用来校验整数的合法性的。过期的证书是不被信任的。证书的拥有者需要定期的更新自己的证书,以保证证书不过期。公钥
这是公钥证书中最重要的部分。
常见的公钥类型包括 RSA,DSA(现在很少了), ECDSA. EdDSA 比较新,目前遇到的还比较少。
公钥证书主要用来进行加密和验证签名。
举个例子:假设我们需要和实体 S 加密通信, 实体 S 有一个证书 C。 它的公钥我们用 pubC 表示,私钥用 privC 表示。
那么,我们可以用 pubC 对我们的信息加密,发送给 S,然后 S 就可以用 privC 解密。因为 privC 只有 S 有,因此别人无法解密我们发送的密文。
S 发送给我们的消息,为了防止在传输过程中被篡改,可以用 privC 进行签名,我们收到消息后,可以用 pubC 校验消息中的签名,以确保消息没有被篡改。
因为 pubC 是公开的,因此,所有能拿到这个消息的实体都可以校验这个签名。但是没有关系,签名中是不包含敏感信息的,敏感信息依然需要单独加密。 签名只是为了确保消息在传输过程中没有被第三方篡改。证书签名信息
每个证书在被 CA 签发的时候,都会附带上一个签名信息。这个签名信息用于确保当前证书在被 CA 签发后,没有被修改过。
想象一下,如果没有这个签名信息,上述的任何一个信息被篡改,你又能怎么发现呢?
我们称当前证书为 C,C 的 Issuer 的 IssuerC。那么证书的签名是怎么计算的呢?
C 的签名是 Issuer C 用 Issuer C的私钥对证书C的内容签名所得到的。
Issuer C 的公钥是公开的,因此,当我们收到证书 C,想要校验它的签名的时候,我们需要检查 C,找到它的 Issuer,然后从 Issuer 证书中获取公钥信息,然后用这个公钥信息校验 C 的签名是否合法。扩展信息
证书中都会包含一系列扩展信息。这里我们后续再来继续学习。
关注我,带你了解更多网络通信协议,网络信息安全,文件系统知识
旅发大会,保障先行怀化移动全力保障旅游发展大会通信畅通怀化市首届旅游发展大会将于12月9日10日在洪江区召开,为全力支持大会顺利召开,湖南移动怀化分公司未雨绸缪,多次组织网络部门深入调研,全力备战通信保障工作,为大会开幕式主会场各项目
首钢第二阶段首战不敌广东,小外援仅得2分12月7日晚,CBA常规赛第二阶段首个比赛日一场焦点战,北京首钢男篮以74比91不敌广东男篮。田宇翔在比赛中受伤,广东方面,易建联带伤出战,不到20分钟拿下11分和8个篮板。方硕防
山河春意云游山西丨来应县木塔,感受云薄万栱的古今传奇应县佛宫寺释迦塔位于山西省朔州市应县城内西北佛宫寺内俗称应县木塔与埃菲尔铁塔比萨尔斜塔并称世界三大奇塔应县木塔周身,蓝天白云,花团锦簇建于辽清宁二年(公元1056年)全塔自地面至塔
新十条发布,旅业春天已至?丨直击一线12月7日,国务院联防联控机制综合组发布关于进一步优化落实新冠肺炎疫情防控措施的通知(以下简称新十条),不再对跨地区流动人员查验核酸检测证明和健康码,不再开展落地检,无症状轻症可居
刘勋败北江东孙策年少有为,承父旨,势力日渐强大。199年,孙策欲北进,准备夺取长江以北的庐江郡。庐江郡为刘勋所占,南濒长江,北濒淮河,易守难攻。孙策知道,自己硬进攻,胜算很小,针对刘勋的贪
盘点百家姓之卢姓本期,波叔来为大家简单介绍一下当今百家姓上排名第四十二位的卢姓。卢姓,是一个典型的多民族多源流姓氏,主要源自姜姓姬姓以及少数民族改姓等。其得姓始祖为高傒(傒公),是姜尚十一世裔孙,
三国神秘而短暂的三位将领,战败马超,砍杀魏延,却没什么知名度在汉朝末年三国初期的大裂变时代,机遇与死亡共存,荣耀同耻辱共生,有胜将便有败军,有红花自有绿叶,可偏偏有些大将,所表现出的战力不输三国武将顶流,但却如流星一般,只是三国战场上惊鸿一
续篇匈奴崛起谁是匈奴大秦帝国秦惠文王演员(秦惠文王七年)韩赵魏燕齐帅匈奴共攻秦。秦使庶长疾与战修鱼,虏其将申差,败赵公子渴韩太子奂,斩首八万二千。(史记秦本纪)这一年是公元前229年。这是史记里第一次
人物传记一(4)五帝尧唐尧氏,名放勋,这是我的名字,我从小被寄养在伊长儒家,我的父亲是帝喾(k),是部落的首领,我对他的印象很少。在我小时候他就去世了,是我最大的兄长挚接的位。帝尧我从小就喜欢学习,天天
记忆中的提督街八十年代初中期我曾在提督街住过几年,就在解放军电影院旁边的院子头。院子的前半段是阿坝州商业局采供站的宿舍,后半段有一个小院坝和一幢三层楼房,一楼住家,二楼以上为成都市煤建公司的办公
兔死狐悲唇亡齿寒苛政猛于虎也避内乱,前往齐国孔子仅仅在洛阳逗留了不到一年,就束装回国。回国后,他和敬叔前往鲁昭公处复命。鲁昭公见孔子年纪轻轻,却仪态出众,神色庄严,问及游学的经过和心得时,孔子思路清晰,对答得