`
conkeyn
  • 浏览: 1528930 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论
阅读更多

原文连接:    http://www.cnblogs.com/bjrmt/archive/2006/08/17/479728.html

      在和CA进行一些接触时,我们常常会听到一个名词: X.509。它是一种行业标准或者行业解决方案,在X.509方案中,默认的加密体制是公钥密码体制。为进行身份认证,X.509标准及公共密钥加密系统提供了数字签名的方案。用户可生成一段信息及其摘要(亦称作信息"指纹")。用户用专用密钥对摘要加密以形成签名,接收者用发送者的公共密钥对签名解密, 并将之与收到的信息"指纹"进行比较,以确定其真实性。
  此问题的解决方案即X.509标准与公共密钥证书。本质上,证书由公共密钥加密钥拥有者的用户标识组成,整个字块有可信赖的第三方签名。典型的第三方即大型用户群体(如政府机关或金融机构)所信赖的CA。
  此外,X.509标准还提供了一种标准格式CRL,下面我们就来看一看 X.509标准下的证书格式极其扩展。
  目前X.509有不同的版本,例如 X.509 V2和x.509 v3都是目前比较新的版本,但是都在原有版本(X.509 V1)的基础上进行功能的扩充,其中每一版本必须包含下列信息:
  (1) 版本号
  (2) 序列号;
  (3) 签名算法标识符
  (4) 认证机构
  (5) 有效期限
  (6) 主题信息
  (7) 认证机构的数字签名
  (8) 公钥信息
1、版本号:
用来区分X.509的不同版本号
2、序列号;
由CA给予每一个证书的分配唯一的数字型编号,当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中;这也是序列号唯一的原因。
3、签名算法标识符:
用来指定用CA签发证书时所使用的签名算法。算法标识符用来指定CA签发证书时所使用的公开密钥算法和HASH算法,须向国际指明标准组织(如ISO)注册。
4、认证机构:
即发出该证书的机构唯一的CA的x.500名字;
5、有效期限:
证书有效的时间包括两个日期:证书开始生效期和证书失效的日期和时间。在所指定的这两个时间之间有效;
6、主题信息:
证书持有人的姓名、服务处所等信息;
7、认证机构的数字签名:
以确保这个证书在发放之后没有被撰改过;
8、公钥信息:
包括被证明有效的公钥值和加上使用这个公钥的方法名称;
  X.509的扩展(V3)
  X.509标准第三版在V2的基础上进行了扩展,V3引进一种机制。这种机制允许通过标准化和类的方式将证书进行扩展包括额外的信息,从而适应下面的一些要求一:
  (1)一个证书主体可以有多个证书;
  (2)证书主体可以被多个组织或社团的其他用户识别;
  (3)可按特定的应用名(不是X.500名)识别用户,如将公钥同EMAIL地址联系起来;
  (4)在不同证书政策和实用下会发放不同的证书,这就要求公钥用户要信赖证书;证书并不限于这些标准扩展,任何人都可以向适当的权利机构注册一种扩展。将来会有更多的适于应用的扩展列入标准扩展集中。值得注意的是这种扩展机制应该是完全可以继承的。
  每一种扩展包括三个域:类型、可否缺省、值
类型字段定义了扩展值字段中的数据类型。这个类型可以是简单的字符串,数值,日期,图片或一个复杂的数据类型。为便于交互,所有的数据类型都应该在国际知名组织进行注册。
  是否可缺省字段是一比特标识位。当一扩展标识为不可缺省时,说明相应的扩展值非常重要,应用程序不能忽略这个信息。如果使用一特殊证书的应用程序不能处理该字段的内容,就应该拒绝此证书。
扩展值字段包含了这个扩展实际的数据。
公开密钥证书的标准扩展可以分为以下几组:
  · 密钥和政策信息,包括机构密钥识别符、主体密钥识别符、密钥用途(如数字签字,不可否认性   、密钥加密、数据加密、密钥协商、证书签字、CRL签字等),密钥使用期限等;
  · 主体和发证人属性,包括主体代用名、发证者代用名、主体检索属性等;
  · 证书通路约束,包括基本约束,指明是否可以做证书机构。
  · 与CRL有关的补充;

  X.509是国际标准化组织CCITT建议作为X.500目录检索的一部分提供安全目录检索服务。一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息一种非常通用的证书格式,所有的证书都符合X.509 国际标准。目前X.509有不同的版本,例如 X.509 V2和x.509 v3都是目前比较新的版本,但是都在原有版本基础上进行功能的扩充,其中每一版本必须包含下列信息:
  (1) 用来区分X.509的不同版本号既版本号
  (2) 由CA给予每一个证书的分配的编号即序列号;
  (3) 用于产生证书所用的方法以及一切参数即签名算法
  (4) CA的x.500名字即发出该证书的认证机构
  (5) 证书有效的时间包括两个日期,在所指定的两个时间之 间有效即有效期限
  (6) 证书持有人的姓名、服务处所等信息即主题信息
  (7) 认证机构的数字签名
  (8) 被证明的公钥值,加上使用这个公钥的方法名称即公钥信息

  PKI (Public-Key Infrastructure) 公钥体系基础框架。
  PKIX (Public-Key Infrastructure Using X.509)使用X.509的公钥体系基础框架。
  X.500 由ISO和ITU提出的用于为大型网络提供目录服务的标准体系。
  X.509 为X.500提供验证(Authenticating)体系的标准。
  PKCS(Public Key Cryptography Standards)公钥加密标准,为PKI提供一套完善的标准体系。
  对于任何基于公钥体系的安全应用,必须确立其PKI。而电子签证机关(CA)是PKI中的一个关键的组成部分,它主要涉及两方面的内容,即公钥证书的发放和公钥证书的有效性证明。在PKIX中,CA遵循  X.509标准规范。
  X.509最早的版本X.509v1是在1988年提出的,到现在已升级到X.509v3,现将其涉及到的主要内容以及与前版本的比较列于下表。
  X.509 PKI国际标准更新版本对照表
  X.509 PKI 主要特性
  X.509 v1 & 2 X.509 v3
证书信息 只有X.500 实体名,包括CA、证主(subject)名,证主公钥及其有效期。 充分扩展,可包含任何信息。
  CA 规范 CA体系鼓励带交叉的层状树型结构,无信任限制规范。 CA体系鼓励带交叉的层状树型结构,有信任限制规范。
  CA "证主 " 用户 CA、证主、用户在概念上严格区分
  CA "证主" 用户信任关系 认为每个用户至少信任一个CA。CA无法操纵与其它CA、证主及用户间的信任关系。 认为每个用户至少信任一个CA。CA可以规范与其它CA及证主间的信任关系。
证书有效性验证方式 离线方式,通过检查证书有效期及是否出现在最近的CRL(证书吊销表)上。 支持离线与在线方式。
  证书吊销方法 简单CRL。 复杂的CRL,通过功能扩展支持在线方式。
证书形式特点 身份形式的证书。 主要还是身份形式的证书,但支持信任委托形式的证书。
匿名性 匿名程度依赖于 X.500 条目的匿名程度。 扩展功能支持彻底的匿名服务。
  X.509证书格式
  X.509是另一种非常通用的证书格式。所有的证书都符合ITU-T X.509国际标准;因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用。但实际上,不同的公司对X.509证书进行了不同的扩展,不是所有的证书都彼此兼容。在一份证书中,必须证明公钥及其所有者的姓名是一致的。对PGP证书来说,任何人都可以扮演认证者的角色。对X.509 证书来说,认证者总是 CA或由CA指定的人(其实PGP证书也完全支持使用CA来确认证书的体系结构),一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。X.509标准定义了证书中应该包含哪些信息,并描述了这些信息是如何编码的(即数据格式),所有的X.509证书包含以下数据:
  <>X.509版本号:指出该证书使用了哪种版本的X.509标准,版本号会影响证书中的一些特定信息。目前的版本是3。
  <>证书持有人的公钥:包括证书持有人的公钥,算法(指明密钥属于哪种密码系统)的标示符和其他相关的密钥参数。
  <>证书的序列号:创建证书的实体(组织或个人)有责任为该证书指定一个独一无二的序列号,以区别于该实体发布的其他证书。序列号信息有许多用途;比如当一份证书被回收以后,它的序列号就被放入证书回收列表(CRL)之中。
  <>证书持有人唯一的标示符:(或称DN-distinguished name)这个名字在 Internet上应该是唯一的。DN由许多部分组成,看起来象这样:
  CN=Bob Allen, OU=Total Network Security Division,
  O=Network Associates, Inc., C=US
这些信息指出该科目的通用名,组织单位,组织和国家
  <>证书的有效期:证书起始日期和时间以及终止日期和时间;指明证书何时失效。
  <>证书发布者的唯一名字:这是签发该证书的实体的唯一名字。通常是CA。.使用该证书意味着信任签发证书的实体。(注意:在某些情况下,比如根或顶级CA证书,发布者自己签发证书)
  <>发布者的数字签名:这是使用发布者私钥生成的签名。
  <>签名算法的标示符:指明CA签署证书所使用的算法。
  X.509证书和PGP证书之间有许多不同,最明显的如下所述:
  <>用户可以创建自己的PGP证书,但是必须向CA请求才能得到一份X.509证书。
  <>X.509证书天生只支持密钥拥有者的一个名字。
  <>X.509证书只支持证明密钥合法性的一个数字签名。
要获得一份X.509证书,必须请求CA发给你证书。用户提供自己的公钥,证明自己拥有相应的私钥,并提供有关自己的某些特定信息。然后在这些信息上数字签名,并将整个数据包(称为证书请求)发给CA。CA做一些努力来验证用户提供的信息是正确的,然后就生成证书并返回给用户。
一份X.509证书看起来很象一份带公钥的标准书面证书(类似于基础急救班的结业证书)。证书中包含名字和一些有关的个人信息,加上颁发证书人的签名。
当前X.509证书最广泛的使用大概是在Web浏览器之中。

分享到:
评论

相关推荐

    基于X.509标准的CA数字证书系统的设计与实现

    【基于X.509标准的CA数字证书系统的设计与实现】主要涉及以下几个核心知识点: 1. **PKI体系**:PKI(Public Key Infrastructure,公钥基础设施)是一种用于管理和验证数字身份的关键技术,它提供了身份认证、数据...

    KeyTool 工具生成X.509证书

    在本文中,我们将深入探讨KeyTool的基本用法、X.509证书的概念,以及如何使用KeyTool生成这种类型的证书。 X.509是一种国际标准,用于定义证书的格式,它包含了公钥和相关标识信息,如组织名称、地理位置等,常用于...

    X509Parse:X.509证书解析器

    X.509标准是由国际电信联盟(ITU-T)制定的,用于定义公钥基础设施(PKI)中证书的格式。在网络安全领域,X.509证书广泛应用于HTTPS、SSL/TLS协议,用于验证服务器的身份,确保数据传输的安全性。 1. **X.509证书结构**...

    x.509-rfc2459.zip

    X.509是一种国际标准,用于定义公钥证书的格式,它是Public Key Infrastructure (PKI) 的核心组成部分。RFC 2459是IETF(互联网工程任务组)发布的一个文档,详细描述了X.509的版本3(X.509v3)证书规范。这个标准被...

    基于X.509标准的CA数字证书系统的设计与实现(修改稿)

    《基于X.509标准的CA数字证书系统的设计与实现》 数字证书在现代网络安全中扮演着至关重要的角色,特别是在公共密钥基础设施(PKI)中。PKI是一种架构,旨在通过认证、授权和加密服务确保网络环境的安全。X.509标准...

    x509_public_key.rar_X.509_x509

    X.509是一种国际标准,用于数字证书的格式化,它定义了公钥基础设施(PKI)中证书的结构。X.509证书在网络安全中扮演着至关重要的角色,因为它们是验证网络实体身份的主要方式,如服务器、用户和设备。在描述中提到...

    Internet X.509 公钥基础设施(RFC2459中文翻译).txt

    该文档是针对Internet环境中使用的X.509 v3证书和X.509 v2撤销列表(CRL)的规范标准,主要涉及证书和CRL的结构、扩展及其在Internet中的应用。 #### 重要知识点解析 ##### 1. 证书与CRL概述 - **证书**: 一种数字...

    read509.tar.gz_X509格式_read509_x509 解析_解析证书_证书

    在IT行业中,X.509是一种广泛使用的公钥基础设施(PKI)标准,用于数字证书的格式。本文将深入探讨X.509证书、`read509.tar.gz`压缩包中的`read509`程序以及如何解析X.509证书。 首先,X.509证书是电子文档,它包含...

    A Quick View of ASN.1 Notations for X.509

    X.509是一种在公开密钥基础设施(PKI)中广泛使用的证书格式,它遵循国际电信联盟(ITU-T)的X.509标准。X.509证书用于证明公钥和其拥有者身份之间的关联,是互联网上数字证书的核心标准之一。X.509证书包含了证书...

    基于X_509证书PKI认证系统的研究.pdf

    X.509标准定义了一种用于公钥基础设施(PKI)中的数字证书格式。每份X.509证书都包含了一系列固定字段,如版本号、序列号、签名算法标识符、签发者名称、有效期、主体名称、公钥信息等。这些信息共同构成了证书主体...

    x509证书结构解析源码

    首先,我们需要理解X.509证书的基本结构。一个X.509证书主要包括以下几个部分: 1. **版本号**:标识证书所遵循的X.509规范版本,通常为v3。 2. **序列号**:每个证书都有一个唯一的序列号,由颁发者分配,用于...

    maki-identity-x509:Maki应用程序的X.509身份

    X.509是一种广泛使用的数字证书标准,用于证明网络实体的身份。在这个主题中,我们将深入探讨Maki应用程序如何利用X.509证书来实现强大的身份验证机制,以及在JavaScript开发中的实际应用。 Maki是一款轻量级的应用...

    vc++生成x509证书

    在描述中提到的“vc++生成x509证书”,意味着我们要用VC++来编写程序,利用OpenSSL库生成符合X.509标准的证书。 OpenSSL是一个强大的安全套接层(SSL/TLS)和加密库,它提供了各种加密算法、常用的密钥和证书操作等...

    java生成X509证书jar包

    首先,我们需要了解X509证书的基本结构。X509证书包含了主体信息(如组织名、组织单位、国家等)、公钥、签名算法标识、发行者信息以及有效期。在Java中,这些信息被表示为`java.security.cert.X509Certificate`对象...

    x509证书,x509证书,x509证书

    这个标准源自国际电信联盟的X.509 v3规范,是互联网上安全通信的重要基石。 首先,我们要理解x509证书的基本结构。一个x509证书通常包含以下几个关键部分: 1. **证书序列号**:每个证书都有一个唯一的序列号,...

    signapk.jar + .x509.pem + .pk8.zip

    `.x509.pem` 文件是公钥证书,遵循X.509标准。它包含了证书持有者的公开密钥以及证书颁发机构(CA)对这个密钥的签名。在Android签名过程中,此证书用于验证APK的发布者身份,因为每个合法的Android开发者都会有一个...

    RFC5280_中文版_个人翻译v1.0

    3. **4_基本证书项.docx**: 这个文档可能详细阐述了X.509证书的基本组成部分,如版本号、序列号、签名算法标识、主体和发行者信息、有效期、公共密钥信息等。 **详细知识点**: - **RFC5280**是互联网工程任务组...

    武汉大学-密码学课件

    5. **数字签名与证书**:06.pdf可能介绍数字签名的概念,它是如何提供消息不可否认性和完整性保障的,以及X.509数字证书的使用。 6. **公钥基础设施(PKI)**:03.pdf可能涉及公钥基础设施,包括证书权威机构(CA)、...

    cer二进制,base64及证书链解析api和头文件

    X.509标准由国际电信联盟(ITU)制定,用于定义公钥基础设施(PKI)中证书的结构。证书通常用于验证网络实体的身份,例如服务器身份、电子邮件签名和代码签名。CER文件可能包含证书的完整链,包括根证书、中间证书和...

    golang解析数字证书

    1. **数字证书(Digital Certificate)**:也称为X.509证书,是一种标准格式,用于在网络上证明实体的身份。它包含公钥、主体信息(如组织名、域名)、颁发者信息以及有效期等。 2. **公钥和私钥(Public Key and ...

Global site tag (gtag.js) - Google Analytics