`

[转]数字证书原理--证书的构成和原理

 
阅读更多
3. 证书的构成和原理
3.1 证书的构成和原理

之前已经大概说了一个证书由什么构成,但是没有仔细进行介绍,这里对证书的内容做一个详细的介绍。先看下一个证书到底是个什么东西,在windows下查看一个证书时,界面是这样的,我们主要关注一下Details Tab页,其中的内容比较长,我滚动内容后后抓了三个图,把完整的信息显示出来:

 

 

里面的内容比较多——Version、Serial number、Signature algorithm 等等,挑几个重要的解释一下。

 

◆Issuer (证书的发布机构)

指出是什么机构发布的这个证书,也就是指明这个证书是哪个公司创建的(只是创建证书,不是指证书的使用者)。对于上面的这个证书来说,就是指"SecureTrust CA"这个机构。

 

◆Valid from , Valid to (证书的有效期)

也就是证书的有效时间,或者说证书的使用期限。 过了有效期限,证书就会作废,不能使用了。

 

◆Public key (公钥)

这个我们在前面介绍公钥密码体制时介绍过,公钥是用来对消息进行加密的,第2章的例子中经常用到的。这个数字证书的公钥是2048位的,它的值可以在图的中间的那个对话框中看得到,是很长的一串数字。

 

◆Subject (主题)

这个证书是发布给谁的,或者说证书的所有者,一般是某个人或者某个公司名称、机构的名称、公司网站的网址等。 对于这里的证书来说,证书的所有者是Trustwave这个公司。

 

◆Signature algorithm (签名所使用的算法)

就是指的这个数字证书的数字签名所使用的加密算法,这样就可以使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。指纹的加密结果就是数字签名(第1.5节中解释过数字签名)。

 

◆Thumbprint, Thumbprint algorithm (指纹以及指纹算法)

这个是用来保证证书的完整性的,也就是说确保证书没有被修改过,这东西的作用和2.7中说到的第3个问题类似。 其原理就是在发布证书时,发布者根据指纹算法(一个hash算法)计算整个证书的hash值(指纹)并和证书放在一起,使用者在打开证书时,自己也根据指纹算法计算一下证书的hash值(指纹),如果和刚开始的值对得上,就说明证书没有被修改过,因为证书的内容被修改后,根据证书的内容计算的出的hash值(指纹)是会变化的。 注意,这个指纹会使用"SecureTrust CA"这个证书机构的私钥用签名算法(Signature algorithm)加密后和证书放在一起。

 

注意,为了保证安全,在证书的发布机构发布证书时,证书的指纹和指纹算法,都会加密后再和证书放到一起发布,以防有人修改指纹后伪造相应的数字证书。这里问题又来了,证书的指纹和指纹算法用什么加密呢?他们是用证书发布机构的私钥进行加密的。可以用证书发布机构的公钥对指纹和指纹算法解密,也就是说证书发布机构除了给别人发布证书外,他自己本身也有自己的证书。证书发布机构的证书是哪里来的呢???这个证书发布机构的数字证书(一般由他自己生成)在我们的操作系统刚安装好时(例如windows xp等操作系统),这些证书发布机构的数字证书就已经被微软(或者其它操作系统的开发机构)安装在操作系统中了,微软等公司会根据一些权威安全机构的评估选取一些信誉很好并且通过一定的安全认证的证书发布机构,把这些证书发布机构的证书默认就安装在操作系统里面了,并且设置为操作系统信任的数字证书。这些证书发布机构自己持有与他自己的数字证书对应的私钥,他会用这个私钥加密所有他发布的证书的指纹作为数字签名。

 

3.2 如何向证书的发布机构去申请证书

举个例子方便大家理解,假设我们公司"ABC Company"花了1000块钱,向一个证书发布机构"SecureTrust CA"为我们自己的公司"ABC Company"申请了一张证书,注意,这个证书发布机构"SecureTrust CA"是一个大家公认并被一些权威机构接受的证书发布机构,我们的操作系统里面已经安装了"SecureTrust CA"的证书。"SecureTrust CA"在给我们发布证书时,把Issuer,Public key,Subject,Valid from,Valid to等信息以明文的形式写到证书里面,然后用一个指纹算法计算出这些数字证书内容的一个指纹,并把指纹和指纹算法用自己的私钥进行加密,然后和证书的内容一起发布,同时"SecureTrust CA"还会给一个我们公司"ABC Company"的私钥给到我们。我们花了1000块钱买的这个证书的内容如下:

×××××××××××××××证书内容开始×××××××××××××××××

Issuer : SecureTrust CA

Subject : ABC Company

Valid from : 某个日期

Valid to: 某个日期

Public Key : 一串很长的数字

…… 其它的一些证书内容……

{证书的指纹和计算指纹所使用的指纹算法}[SecureTrust CA的私钥|RSA]      //这个就是"SecureTrust CA"对这个证书的一个数字签名,表示这个证书确实是他发布的,有什么问题他会负责(收了我们1000块,出了问题肯定要负责任的)

×××××××××××××××证书内容结束×××××××××××××××××

               // 记不记得前面的约定?{} 表示RSA加密后的内容,[ | ]表示用什么密钥和算法进行加密

 

我们"ABC Company"申请到这个证书后,我们把证书投入使用,我们在通信过程开始时会把证书发给对方,对方如何检查这个证书的确是合法的并且是我们"ABC Company"公司的证书呢?首先应用程序(对方通信用的程序,例如IE、OUTLook等)读取证书中的Issuer(发布机构)为"SecureTrust CA" ,然后会在操作系统中受信任的发布机构的证书中去找"SecureTrust CA"的证书,如果找不到,那说明证书的发布机构是个水货发布机构,证书可能有问题,程序会给出一个错误信息。 如果在系统中找到了"SecureTrust CA"的证书,那么应用程序就会从证书中取出"SecureTrust CA"的公钥,然后对我们"ABC Company"公司的证书里面的指纹和指纹算法用这个公钥进行解密,然后使用这个指纹算法计算"ABC Company"证书的指纹,将这个计算的指纹与放在证书中的指纹对比,如果一致,说明"ABC Company"的证书肯定没有被修改过并且证书是"SecureTrust CA" 发布的,证书中的公钥肯定是"ABC Company"的。对方然后就可以放心的使用这个公钥和我们"ABC Company"进行通信了。

★这个部分非常重要,一定要理解,您可以重新回顾一下之前的两章“1、基础知识”“ 2、一个加密通信过程的演化”,然后再来理解这部分的内容。如果您把这节的内容看了几遍还没有搞懂证书的工作原理,您可以留言指出我没有说清楚的内容,我好方便进行修正。

 

3.3 证书的发布机构

前面已经初步介绍了一下证书发布机构,这里再深入讨论一下。

其实所有的公司都可以发布证书,我们自己也可以去注册一家公司来专门给别人发布证书。但是很明显,我们自己的专门发布证书的公司是不会被那些国际上的权威机构认可的,人家怎么知道你是不是个狗屁皮包公司?因此微软在它的操作系统中,并不会信任我们这个证书发布机构,当应用程序在检查证书的合法信的时候,一看证书的发布机构并不是操作系统所信任的发布机构,就会抛出错误信息。也就是说windows操作系统中不会预先安装好我们这个证书发布机构的证书,不信任我们这个发布机构。

  

不受信任的证书发布机构的危害

为什么一个证书发布机构受不受信任这么重要?我们举个例子。假设我们开了一个狗屁公司来为别人发布证书,并且我和微软有一腿,微软在他们的操作系统中把我设置为了受信任的证书发布机构。现在如果有个小公司叫Wicrosoft 花了10块钱让我为他们公司申请了一个证书,并且公司慢慢壮大,证书的应用范围也越来越广。然后有个奸商的公司JS Company想冒充Wicrosoft,于是给了我¥10000,让我为他们颁布一个证书,但是证书的名字(Subject)要写Wicrosoft,假如我为了这¥10000,真的把证书给了他们,那么他们以后就可以使用这个证书来冒充Wicrosoft了。

如果是一个优秀的证书发布机构,比如你要向他申请一个名字叫Wicrosoft的证书,它会让你提供很多资料证明你确实可以代表Wicrosoft这个公司,也就是说他回去核实你的身份。证书发布机构是要为他发布出的证书负法律责任的。

  

到这里,你可能会想,TMD,那我们自己就不能发布证书吗?就一定要花钱去申请?当然不是,我们自己也可以成立证书发布机构,但是需要通过一些安全认证等等,只是有点麻烦。另外,如果数字证书只是要在公司内部使用,公司可以自己给自己生成一个证书,在公司的所有机器上把这个证书设置为操作系统信任的证书发布机构的证书(这句话仔细看清楚,有点绕口),这样以后公司发布的证书在公司内部的所有机器上就可以通过验证了(在发布证书时,把这些证书的Issuer(发布机构)设置为我们自己的证书发布机构的证书的Subject(主题)就可以了)。但是这只限于内部应用,因为只有我们公司自己的机器上设置了信任我们自己这个所谓的证书发布机构,而其它机器上并没有事先信任我们这个证书发布机构,所以在其它机器上,我们发布的证书就无法通过安全验证。

 

  • 大小: 60.9 KB
分享到:
评论

相关推荐

    看图片 读故事:轻松理解数字签名和数字证书 pdf

    《看图片 读故事:轻松理解数字签名和数字证书》一文通过生动的故事和直观的图像,深入浅出地解析了数字签名与数字证书的概念及其工作原理,为读者提供了清晰的思维导图,帮助理解这一复杂的IT安全领域知识。...

    数字证书流程

    ### 数字证书流程详解 #### 一、数字证书的核心价值 数字证书,作为一种电子文档,其核心作用在于...掌握数字证书的工作原理和技术细节,对于从事IT行业尤其是网络安全领域的专业人员来说,是不可或缺的能力之一。

    数字签名与数字证书

    本文将深入探讨数字签名、数字信封以及数字证书的基本原理、应用场景及其相互之间的关系。 #### 数字签名:保障数据完整性的基石 数字签名是一种用于验证电子文档真实性和完整性的技术。它的实现基于公钥基础设施...

    Kubernetes数字证书体系浅析.docx

    ### Kubernetes数字证书体系浅析 #### 序言 在初次接触Kubernetes(简称K8S)并着手构建其环境的过程中,新手往往会遇到一系列与安全证书相关的配置问题。尤其是在控制平面(Control Plane)的核心组件中,涉及大量...

    数字证书的概念和作用,PPT课件

    首先,我们要理解数字证书的基本构成。数字证书包含了以下几个关键元素:发行者的身份(通常是数字证书认证中心,或CA)、持有者的身份信息、持有者的公钥、证书的有效期限以及一个数字签名。这个数字签名由CA使用其...

    USB KEY的认证原理 USB KEY 认证原理

    USB KEY 的认证方式主要有两种应用模式:基于冲击-响应认证模式和基于 PKI 的数字证书的认证模式。 基于冲击-响应认证模式中,USB KEY 内置单向散列算法(MD5),预先在 USB KEY 和服务器中存储一个证明用户身份的...

    行业文档-设计装置-一种证书装置夹及其构成的证书.zip

    首先,证书装置夹是一个存储数字证书的容器,它包含了一系列用于验证身份、加密通信以及签署代码的证书。在数字世界中,证书扮演着身份凭证的角色,由权威的证书颁发机构(CA)签发,确保网络参与者之间的交互是可信...

    网络安全原理与应用:数字证书.pptx

    在本文中,我们将详细介绍数字证书的基本概念、工作原理、应用场景、内容和存储方式等 kiến thức点。 一、数字证书的基本概念 数字证书是一种电子文档,由权威机构颁发,用于证明身份和认证对方的身份。它类似于...

    如何在用Outlook发送电子邮件时添加数字签名

    这些信息共同构成了一个符合国际标准的数字证书,确保其在网络环境中的可靠性和有效性。 #### 二、获取及安装免费数字证书 **2.1 获取免费数字证书** 获取免费数字证书的过程相对简单。国内许多证书授权中心(CA...

    缺少证书链 SSL缺少证书链 怎么解决.zip

    在SSL/TLS认证过程中,证书链由一系列数字证书构成,用于证明服务器身份。这包括: 1. **根证书(Root CA Certificate)**:由权威的、被广泛信任的证书颁发机构(CA)签发,它代表了整个证书链的信任基础。 2. **...

    单向校验证书绕过 justTrustMePlush-release.zip

    Android应用在安装时需要通过系统验证其数字签名,以确保应用的完整性和来源可信。这个过程是由Java的JAR签名和Android的APK签名完成的。然而,在某些情况下,如进行安全测试或漏洞挖掘时,我们可能需要绕过这个验证...

    吐血推荐加密解密证书PKI

    PKI是一种基于公钥加密技术的基础设施,由证书颁发机构(CA)、注册机构(RA)以及数字证书组成,为用户提供身份验证、数据完整性和机密性保障。PKI的核心是CA,它负责验证用户身份并签发数字证书,将用户的公钥和...

    GIS证书考试2013年5月考试试卷(二级应用方向).pdf

    - 高级程序语言的编译过程和执行原理。 - 计算机网络病毒的类型和特性。 - 软件需求分析的重要性,以及GIS系统需求分析的特点。 7. 数据库和信息系统知识点: - GIS数据库中的数据存储方式,如链式编码、行程...

    行业分类-设备装置-用于以质量特性进行公钥证书的认证的方法和服务.zip

    2. 数字证书的生命周期管理:包括证书的申请、颁发、撤销和更新。 3. 设备认证流程:描述如何利用质量特性对设备进行认证,以及这与传统公钥证书认证的区别。 4. 安全标准和策略:讨论制定和实施设备安全标准的重要...

    https原理:证书传递、验证和数据加密、解密过程解析

    2. **服务端的配置**:服务器需要一个数字证书,通常由权威的证书颁发机构(CA)签发,用于证明服务器的身份。证书包含公钥和其他元数据,如域名、有效期等。自签名的证书则需要客户端验证通过。 3. **传送证书**:...

    行业分类-设备装置-针对计算设备保护用户证书.zip

    用户证书,也被称为数字证书,是一种电子文档,它结合了公钥加密技术与身份验证服务,以确保网络通信的安全性和数据的完整性。本资料包“行业分类-设备装置-针对计算设备保护用户证书.zip”主要涵盖了这一主题,其中...

    天融信证书管理器系统(V5.60.40)pdf介绍

    **1.1.2 数字证书原理** 数字证书采用了公钥体制,即通过一对相互匹配的密钥(私钥与公钥)来进行加密和解密操作。用户设定特定的私有密钥(私钥)用于数据解密和签名,同时设定公共密钥(公钥)并公开,供其他用户用于...

    SMPTE ST 430-2:2017 D-Cinema Operations — Digital Certificate - 完整英文电子版(21页).pdf

    4. **数字证书概述**:这部分提供了关于数字证书的基础知识,解释了它们如何在数字电影系统中用于认证和安全通信,包括公钥基础设施(PKI)的基本原理。 5. **证书字段**:这是标准的核心部分,详细列出了构成数字...

    X.509证书解析

    #### 一、X.509数字证书的编码原理 X.509标准是一种广泛应用于互联网安全通信中的数字证书格式,它通过一种称为ASN.1(Abstract Syntax Notation One)的标准化方法来描述和编码数据结构。这一标准不仅确保了数据的...

Global site tag (gtag.js) - Google Analytics