数字证书简介

原创 2005年04月28日 15:08:00

 数字证书(以下简称"证书")将公钥和实体的一些信息(如个人、组织、帐号或者地点)绑定并且要跟它相关的私钥联合使用,这时这个被绑定的实体被称为证书的主体。公钥的分发是通过证书进行。这种完整性机制保证公钥及相关的信息不被偷偷的篡改而且保证公钥属于该用户。这种绑定机制使得依托方(即RFC2527中定义的声称者绑定的机制)能得到以下的保证:将公钥(及相关的信息)的完整性得到保证;公钥(及相关的信息)以一种可信的方式和它的声称所有者绑定在一起。下面简要介绍数字证书的各个组成部分。
一,数字证书的组成部分
1,版本    这个字段描绘编码证书的版本,当使用扩展的时候,建议使用X.509版本3(值为2)。如果没有扩展项,这时使用版本2,如果仅仅存在基本字段,使用版本1。
2,序列号    序列号是CA给每一个证书分配的一个整数。它是特定CA签发的证书唯一代码(即发行者名字和序列号唯一识别一张证书)序列号没有必要限制为32位,建议CA软件实现中采用字节编码方式来处理序列号,这种情况下,它是大证书编码,但不要忘记编码时最告慰是符号位,一定要设置为零,避免生成负数的序列号。
3,签名算法    它含有算法标识符,这个算法是CA在证书上签名使用的算法,这个字段还含有与序列Certificate中signatureAlgorithm字段同样的算法标识符。它的主要作用是通过检查签名算法标识来判断CA对证书的签名是否符合所声明的算法。这样可以防止某些可能出现的攻击行为。例如某人伪造证书签名,他可以将签名算法A生成的签名值用签名算法B通过精心选择来替代,而同时可以随意地改变证书体外传送的没有保护的算法标志(例如将算法A改为算法B)。
4,发行者    发行者字段用来标志在证书上签名和发行的实体。发行者字段含有一非空的能辨别出的名字(DN)。证书编码中可能有如下一些内容:countryName,localityName,stateOrProvinceName,organization,organizationUnitName,commonName,emailAddress.证书的DN可以根据需要将上面几项或者某项为空,但是一般CA证书必须包含签发者DN,这已经成为大家遵循的标准。国家(countryName)编码字段采用标准ISO3166的Internet编码方式,例如美国是US,中国是CN等。
5,有效期    证书有效期是时间间隔,在这期间CA保证它讲保持关于证书的状况的信息,把字段描绘为级联的两个日期:日期证书有效期开始(notBefore)和日期证书有效期结束(notAfter),它们可以作为UTCTime或者GeneralizedTime类型编码。
6,主题    主题实际上是对证书申请者的直译,主题字段标志与存储在主题公开字段中相关联的密钥实体主题名字在subjectAltName扩展中被附带。
7,主题公开密钥信息    使用这个字段携带公开密钥和密钥使用算法的标志符。该字段包含公钥,它实际上是大整数的序列。因为ASN.1编码的整数是有符号的,因此在编码证书前,必须设置最高位符号位。可以在编码整数前增加一个值为零的字节,来表示忽略最高位作为符号位的含义。这样当最高位(符号位)被设置为1时,在其签名一定有一个值为0的字节。如果系统内部表示的数据在编码前就已经有值为0的字节,就必须跳过,从值不为0的字节开始编码
8,唯一标识符    这个字段可能仅出现在版本2或者版本3中。主题和发行者唯一标识符存在于证书中,处理在超出(有效)时间的主题和/或发行者名字的再使用的可能性
9,扩展
     i. 证书扩展项,在X.509 v3证书扩展定义中为用户提供公开密钥和证书管理登记制度相结合的附加属性的方法。证书扩展项可以分为两类,一是约束和限制型扩展项,用来限制证书中的密钥(和对应的私钥)用途和证书自身用途。二是附带额外同志信息的扩展项,CA必须支持密钥标志符、基本约束、密钥应用和证书策略扩展。                      
     ii. 标准扩展     
     iii.私有Internet扩展
因为扩展是个大的专题,这里只是简单介绍,以后将对这一专题具体讨论一下。

参考文献:《PKI原理与技术》, 谢冬青 冷健 编著  清华大学出版社

数字证书简介及Java编码实现

1.数字证书简介 数字证书具备常规加密解密必要的信息,包含签名算法,可用于网络数据加密解密交互,标识网络用户(计算机)身份。数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的...

数字证书简介及Java编码实现

1.数字证书简介 数字证书具备常规加密解密必要的信息,包含签名算法,可用于网络数据加密解密交互,标识网络用户(计算机)身份。数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的...

java安全架构____多种数字证书简介(X509,cer,pem,pfx,keystore)

.cer证书: 用于存储公钥的一种证书的文件格式通常被用于二进制的DER文件格式(同于.der), 不过也被用于Base64编码的文件 (例如 .pem). (.jks,.keystore,.t...

数字证书简介

文章参照自:http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/232849.html 一、前言 证书(Certificate,也称public...
  • hudashi
  • hudashi
  • 2011年12月14日 11:23
  • 763

动态口令与数字证书简介

1.动态口令   动态口令,又叫动态令牌、动态密码。20 世纪80 年代初,美国科学家LeslieLamport 针对静态口令认证的缺陷,首次提出了利用散列函数产生动态口令(OTP:One Time...
  • zonelan
  • zonelan
  • 2013年03月27日 16:57
  • 2291

数字签名与数字证书技术简介(三)

数字证书   基于非对称密钥算法,Bob生成了一对公私钥。Bob将公钥发布在公开的密钥库中。而Alice在向Bob发送加密文件或者验证Bob签名的文件时,均要从公钥库取到Bob的公钥。...

数字签名与数字证书技术简介(二)

信息摘要、数字签名 基于上篇文章,我们介绍了的非对称密钥算法 我们可以继续我们的场景: 假设有一天,Alice收到了一份署名为Bob的文件。Alice希望能够确认这份文件一定是来自B...

基于OpenSSL颁发数字证书的一个完整实例

网上有不少关于OpenSSL命令行的用法,问题在于大部分文章只是零碎的使用一个命令行而已,没有一个完整的证书颁发流程。有部分只是自签名证书,被谷歌浏览器和火狐浏览器等绝大部分浏览器认为是不可信任的证书...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数字证书简介
举报原因:
原因补充:

(最多只允许输入30个字)