X.509数据结构,实例分析与使用

  • X.509被广泛使用的数字证书标准,是由国际电联电信委员会(ITU-T)为单点登录(SSO-Single Sign-on)和授权管理基础设施 (PMI-Privilege Management Infrastructure)制定的PKI标准,其中,单点登录指的是用户只需要登录一次就可以访问所有相互信任的应用系统,PKI标准指的是为支持公开密钥管理并能支持认证、加密、完整性和可追究性服务的基础设施。
  • X.509证书数据结构详细描述:<摘自:RCF 2459 4.1 Basic Certificate Fields >
 Certificate ::= SEQUENCE {
        tbsCertificate       TBSCertificate, -- 证书主体
        signatureAlgorithm   AlgorithmIdentifier, -- 证书签名算法标识
        signatureValue       BIT STRING --证书签名值,是使用signatureAlgorithm部分指定的签名算法对tbsCertificate证书主题部分签名后的值.
         }
   TBSCertificate ::= SEQUENCE {
        version         [0] EXPLICIT Version DEFAULT v1, 
-- 证书版本号
        serialNumber         CertificateSerialNumber, 
-- 证书序列号,对同一CA所颁发的证书,序列号唯一标识证书
        signature            AlgorithmIdentifier, 
--证书签名算法标识
        issuer               Name,            --证书发行者名称
        validity             Validity,            --证书有效期
        subject              Name,             --证书主体名称
        subjectPublicKeyInfo SubjectPublicKeyInfo,
--证书公钥
        issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- 证书发行者ID(可选),只在证书版本2、3中才有
        subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- 证书主体ID(可选),只在证书版本2、3中才有
 extensions      [3] EXPLICIT Extensions OPTIONAL
-- 证书扩展段(可选),只在证书版本3中才有
        }
   Version ::= INTEGER { v1(0), v2(1), v3(2) }
   CertificateSerialNumber ::= INTEGER

   AlgorithmIdentifier ::= SEQUENCE {
        algorithm               OBJECT IDENTIFIER,
        parameters              ANY DEFINED BY algorithm OPTIONAL }
   parameters:
   Dss-Parms ::= SEQUENCE { 
-- parameters ,DSA(DSS)算法时的parameters,RSA算法没有此参数
        p             INTEGER,
        q             INTEGER,
        g             INTEGER }

signatureValue:
Dss-Sig-Value ::= SEQUENCE {
-- sha1DSA签名算法时,签名值
      r       INTEGER,
        s       INTEGER }

   Name ::= CHOICE {
     RDNSequence }
   RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
   RelativeDistinguishedName ::=
     SET OF AttributeTypeAndValue
   AttributeTypeAndValue ::= SEQUENCE {
     type     AttributeType,
     value    AttributeValue }
   AttributeType ::= OBJECT IDENTIFIER
   AttributeValue ::= ANY DEFINED BY AttributeType

   Validity ::= SEQUENCE {
        notBefore      Time,  -- 证书有效期起始时间
        notAfter       Time  -- 证书有效期终止时间
        }
   Time ::= CHOICE {
        utcTime        UTCTime,
        generalTime    GeneralizedTime }
   UniqueIdentifier ::= BIT STRING
   SubjectPublicKeyInfo ::= SEQUENCE {
        algorithm            AlgorithmIdentifier, 
-- 公钥算法
        subjectPublicKey     BIT STRING            
-- 公钥值
        }
subjectPublicKey:
RSAPublicKey ::= SEQUENCE { -- RSA算法时的公钥值
       modulus        INTEGER, -- n
       publicExponent     INTEGER -- e -- }

   Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
   Extension ::= SEQUENCE {
        extnID      OBJECT IDENTIFIER,
        critical    BOOLEAN DEFAULT FALSE,
        extnValue   OCTET STRING }

X.509数字证书实例
<摘自RCF 2459 Appendix D. Examples> –下文在此附加翻译与注释
D.3 End-Entity Certificate Using RSA
包含一个结束实体证书的转储,包含一个RSA公钥,并与RSA和MD5签署。这
证书不是最小认证路径的一部分。
证书包含675字节,证书版本号为3。
(a) 证书序列号是256 (0x100);
(b) 证书使用RSA和MD2哈希算法签署;
(c) 证书发行者的名字是OU=Dept. Arquitectura de Computadors; O=Universitat Politecnica de Catalunya; C=ES
(d) 证书主体的名字是CN=Francisco Jordan;OU=Dept. Arquitectura de Computadors; O=Universitat Politecnica de Catalunya; C=ES
(e) 证书于1996年5月21日签发,并1997年5月21日到期;
(f) 证书包含一个768位RSA 公钥;
(g) 证书是一个结束实体证书(不是CA证书);
(h) 证书包含证书主体别名、证书发行者别名–都是URLs
(i) 证书包括一个权威密钥标识符和证书政策扩展;
(j) 证书包含一个密钥用法的扩展,指定用于数字签名

0000 30 80           : SEQUENCE   (size undefined) 
// Certificate:: SEQUENCE类型(30),数据块长度不定,由00、00作为结束符
0002 30 82 02 40 576: . SEQUENCE     
// tbsCertificate:: SEQUENCE类型,长度576
0006 a0 03          3: . . [0]   
// Version:: 特殊内容-证书版本(a0),长度3
0008 02 01          1: . . . INTEGER 2   //整数类型(02),长度1
                     : 02                
// 版本3(2)
0011 02 02          2: . . INTEGER 256   
//serialNumber:: 整数类型(02),长度2
                     : 01 00   // 证书序列号256
0015 30 0d         13: . . SEQUENCE      
// signature:: SEQUENCE类型(30),长度13
0017 06 09          9: . . . OID 1.2.840.113549.1.1.2: MD2WithRSAEncryption
                 // signature:: OBJECT IDENTIFIER类型,长度9
                     : 2a 86 48 86 f7 0d 01 01 02 //MD2WithRSAEncryption算法
0028 05 00          0: . . . NULL
0030 30 68         88: . . SEQUENCE   // 以下的数据块表示issuer信息
0032 31 0b         11: . . . SET
0034 30 09          9: . . . . SEQUENCE
0036 06 03          3: . . . . . OID 2.5.4.6: C
                     : 55 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值