一种数字证书的快速处理方法

文档序号:6581062阅读:308来源:国知局
专利名称:一种数字证书的快速处理方法
技术领域
本发明是用于互联网中使用的数据证书的处理方法,特别是对用户或服务器进行 身份认证时的一种数字证书的快速处理方法。
背景技术
随着互联网的发展,人们越来越多的依靠网络来完成一些敏感数据的事务处理, 比如电子银行,电子商务等等。这些敏感数据的事务处理的电子化导致非常重要和私密的 数据经常在网络中传输。为此,人们发明了很多新的技术来保证这些重要和私密的数据能 够在网络中安全可靠的传输,越来越多的用户使用数字证书来进行身份认证,基于数字证 书的身份认证是目前最安全的身份认证方式。因此数字证书的使用越来越多普遍。数字证书是公开密钥基础设施(PKI)技术的重要组成部分,所谓数字证书,实际 上是一段数据,数字证书通常包括所有者的公钥、所有者的名字、公钥的失效期、颁发机构 的名称(发放数字证书的CA)、数字证书的序列号、颁发机构的数字签名等。数字证书在编 码时一般采用基本编码规则(BER)或非典型编码规则(DER)编码。数字证书广泛应用于多种应用系统,对数字证书的解析一般按照DER或BER编码 的反向过程进行,由于数字证书大多采用抽象语法记法一(ASN. 1)的编码方式,导致在进 行证书解析时用户很难直观的得到解析出来的信息。

发明内容
本发明的目的是提供一种数字证书的快速处理方法,本发明解决了目前数字证书 大多采用抽象语法记法一(ASN. 1)的编码方式,导致数字证书解析时用户很难直观的得到 解析出来的信息的问题。本发明的一种数字证书的快速处理方法,所述的数字证书由数字证书信息主体、 数字证书签名算法标识和数字证书签名值构成;处理方法包括ASN. 1扫描和数据获取两 个步骤;具体操作步骤是ASN. 1扫描步骤1)利用迭代方法获取所有ASN. 1构造类型和基本类型的类型、长度、偏移和头部 长度信息;2)利用哈希表将获得的信息存放在按照ASN. 1文本描述的相对位置信息表征的 键值对中;3)判断当前的键值的类型是否为构造类型,如果当前类型为是,即构造类型,则将 数据、键值、当前ASN. 1结构对象和当前哈希表叙谈输入递归;如果当前的类型为否,即非 构造类型,则返回重新处理;直至获得所有的ASN. 1构造类型的哈希表;数据获取步骤根据数字证书的ASN. 1文本描述结构,为各个域指定键值,根据哈希表,应用系统 获取到各个键值对应的内容,包括偏移、长度、类型和所有构造类型的属性,得到这些信息后,解码基本数据类型即可。上述ASN. 1扫描第3)步骤,键值的构造类型按照前导符-第一层序号[_可选 号]-第二层序号[-可选号]-第三层序号[-可选号]-第四层序号[_可选号]-第五层 序号[_可选号]……,以此类推的形式,使之能够区分可选和必须的项目即可。本发明是一种可以直观的将数字证书的ASN. 1描述与具体的数据结构进行对应 并获取其中信息的处理方法。由于采用了以上技术方案,本发明具有如下优点1、能够直接 按照数字证书的ASN. 1文本描述的先后顺序提取数字证书各个数据项的偏移、类型和长度 等内容,然后用户就可以非常直观地自由提取数字证书的内容,特别适合对ASN. 1编解码 不是特别熟练的人员使用;2、在进行数字证书解码过程中不直接修改数据实体的内容,使 得处理速度更快;3、不复制数据实体的内容,从而减小系统内存的占用,提高了工作效率。


图1是本发明数据处理流程图;图2是本发明中数字证书结构示意图。
具体实施例方式下面结合附图并用最佳的实施例对本发明作详细的说明。参阅图2,本发明的数字证书的结构,包括数字证书信息主体 (tbsCertificate)、数字证书签名算法标识(signatureAlgorithm)和数字证书签名值 (signatureValue) 0其中数字证书信息主体(tbsCertificate)是主要部分,它包含了证书 的很多主要字段。参阅图1,一种数字证书的快速处理方法,它包括两个步骤:ASN. 1扫描和数据获 取。ASN. 1扫描包括如下步骤1)初始化一个描述ASN. 1结构的对象为父节点,将类型设为 0,长度设为要处理的数据的长度;初始化一张空的哈希表;2)将待处理的数据、一个有一 定意义的前缀字符串和前面初始化的两个变量作为输入开始处理;3)获取类型,如30 82 02 53 3082 01 BC……中,第一个30表示是一个SEQUENCE ;4)获取长度,如上述3)第一个 82表示长度有两位,长度值为后两个八位位组对应的值;5)将处理指针移到内容位置,如 上述3)的第4位置;6)构造哈希表键值K,并将键值K和当前获得的类型、长度和偏移量和 其它构造类型属性(如可选值)放入哈希表;7)如果当前的类型是构造类型(即由基本类 型构造的类型)则将数据、键值K、当前ASN. 1结构对象和当前哈希表作为输入重复上述步 骤处理;否则,8)将处理指针指向内容以后的位置,返回2)重复处理,直至获得所有ASN. 1 构造类型的哈希表。第二步获得证书信息,如下的的数字证书的ASN. 1文本描述结构,为各个域 指定键值,如数字证书信息主体(tbsCertificate)的键值是-0-0 ;数字证书信息主 体(tbsCertificate)还是一个构造类型,因此可以继续对其内部的各个域进行处理, 指定各个域的键值,依此类推;数字证书签名算法标识(signatureAlgorithm)的键值 是-0-1,从ASN. 1的描述可知这也是构造类型,可以获得更加详细的内容;数字证书签名值 (signatureValue)的键值是_0_2,ASN. 1基本类型,处理到此为止。这样根据哈希表的特 点,应用系统就能够很快的取出各个键值对应的内容,得到这些信息后,应用仅需要解码基本数据类型即可,应用也可以获得各个构造类型的数据。数字证书ASN. 1文本描述的基本 内容如下Certificate = SEQUENCE{
tbsCertificateTBSCertificate,signatureAlgorithm AlgorithmIdentifier,signatureBIT STRING}TBSCertificate = SEQUENCE{version
Version DEFAULT vl,serialNumberCertificateSerialNumber,signatureAlgorithmIdentifier,issuerName,validityValidity,subjectName,subjectPubIicKeyInfο SubjectPubIicKeyInfo,issuerUniquelD [1]IMPLICIT UniqueIdentifier OPTIONAL,—If present, version MUST be v2 orv3subjectUniquelD [2]IMPLICIT UniqueIdentifier OPTIONAL,—If present, version MUST be v2 orv3extensions[3]Extensions OPTIONAL—If present, version MUST be v3—}Version = INTEGER {vl (0), v2(l), v3 (2)}CertificateSerialNumber = INTEGERValidity = SEQUENCE{notBeforeTime,notAfterTime}Time = CHOICE {utcTimeUTCTime,generalTimeGeneralizedTime}UniqueIdentifier = BIT STRINGSubjectPublicKeyInfo = SEQUENCE{algorithmAlgorithmIdentifier,subjectPublicKey BIT STRING}Extensions = SEQUENCE SIZE (1. . MAX) OF ExtensionExtension = SEQUENCE{extnIDOBJECT IDENTIFIER,critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING}Algorithmldentifier = SEQUENCE{algorithmOBJECT IDENTIFIER,parametersANY DEFINED BY algorithmOPTIONAL}上述实施例仅为本发明的技术方案的举例说明,在本发明内容描述的技术方案 内,本发明采用的算法可以有许多变化或替换,这些算法的变化或替换都不应排除在本发 明的保护范围之外。
权利要求
一种数字证书的快速处理方法,其特征在于所述的数字证书由数字证书信息主体、数字证书签名算法标识和数字证书签名值构成;处理方法包括ASN.1扫描和数据获取两个步骤,具体操作步骤是ASN.1扫描步骤1)利用迭代方法获取所有ASN.1构造类型和基本类型的类型、长度、偏移和头部长度信息;2)利用哈希表将获得的信息存放在按照ASN.1文本描述的相对位置信息表征的键值对中;3)判断当前的键值的类型是否为构造类型,如果当前类型为是,即构造类型,则将数据、键值、当前ASN.1结构对象和当前哈希表叙谈输入递归;如果当前的类型为否,即非构造类型,则返回重新处理;直至获得所有的ASN.1构造类型的哈希表;数据获取步骤根据数字证书的ASN.1文本描述结构,为各个域指定键值,根据哈希表,应用系统获取到各个键值对应的内容,包括偏移、长度、类型和所有构造类型的属性,得到这些信息后,解码基本数据类型即可。
2.如权利要求1所述的一种数字证书快速处理方法,其特征在于ASN.1扫描第3)步 骤,键值的构造类型按照前导符-第一层序号[-可选号]-第二层序号[-可选号]-第三 层序号[-可选号]-第四层序号[-可选号]-第五层序号[-可选号]……,以此类推的形 式,使之能够区分可选和必须的项目即可。
全文摘要
本发明的一种数字证书的快速处理方法,是对用户或服务器进行身份认证时的一种数字证书的快速处理方法。所述的数字证书由数字证书信息主体、数字证书签名算法标识和数字证书签名值构成。处理方法包括ASN.1扫描和数据获取两个步骤。包括获取所有ASN.1构造类型;利用哈希表将获得的信息存放在相对位置信息表征的键值对中;判断当前的键值的类型是否为构造类型,直至获得所有的ASN.1构造类型的哈希表。根据数字证书的ASN.1文本描述结构,为各个域指定键值,根据哈希表,应用系统获取到各个键值对应的内容,得到这些信息后,解码基本数据类型即可。本发明解决了目前数字证书解析时用户很难直观的得到解析出来的信息的问题。
文档编号G06F17/30GK101826962SQ20091018116
公开日2010年9月8日 申请日期2009年10月13日 优先权日2009年10月13日
发明者汪宗斌 申请人:北京信安世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1