最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

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

IT圈 admin 36浏览 0评论

2024年3月12日发(作者:贲宛)

总第263期 

2011年第9期 

计算机与数字工程 

Computer&Digital Engineering 

Vo1.39 NO.9 

95 

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

许 平 

(江汉大学数学与计算机学院武汉430O56) 

摘要文章首先对CA(证书认证中心)体系中数字证书系统的地位和机Nil以阐叙和说明,然后详细讨论了构造数 

数字证书;CA;X.509标准;DER编码;PKI 

TP393 

字证书系统所要用到的技术和相关标准,最后在此基础上对整个数字证书系统的设计与实现作了具体的描叙。 

关键词

中图分类号

Design and Implement of the Digital Certificate System Based on X.509 

Xu Ping 

(School of Mathematics and Computer Sciences,Jianghan University,Wuhan 430056) 

Abstract The first section of this paper introduces the status and principle of the digit certificate in the CA system. 

The next section covers the related standards and techniques,such as ASN.1,X.509,which will adopted by the system.Fi— 

nally,the last section covers the details of design and implement of the digital certificate,which is basis Oil the previous tech— 

nique and specification. 

Key Words digital certificate,CA,X.509,DER encode,PKI 

Class Number TP393 

1 引言 

PKIElj的基本机制是定义和建立身份、认证和 

授权技术,然后分发、交换这些技术,在网络之间解 

上设计了CA系统中的证书数据结构,最后给出了 

具体的在系统中数字证书的生成实现过程和编码。 

释和管理这些信息。PKI对数据加密、数字签字、 

防抵赖、数据完整性,以及身份鉴别所需的密钥及 

认证实施统一的集中化管理,支持电子商务的参与 

2 构造数字证书的原理和相关技术 

标准 

2.1 编码规则一BER/DER 

ASN.1中的基本编码规则,缩写为BER,通过 

者在网络环境下建立和维护平等的信任关系,保证 

网上电子商务的安全_2]。 

个或多种规则将ASN.1定义的值变为一个或多 

的区别是给定一个ASN.1定义的一个值,采用 

个八位位组。DERE ]是BER的一个子集,它们唯 

数字证书是用于验证需认证者的标识信息与 

其公钥对应关系的一种数字文档,主要用于确认计 

算机信息网络上个人或组织的身份和相应的权限, 

BER编码方式有多种编码值,而DER只有唯一的 

值,本程序中所用的是DER的编码方式。 

2.2 X.509标准 

X.509是ITU—T于1993年11月16日批准 

用以解决网络信息安全问题。数字证书是由大家 

共同信任的第三方一授权机构(CA)颁发的[3],CA 

有权利签发并废除证书并且对证书的真实性负责。 

本文首先探讨了相应的构造数字证书的相关编码 

规则以及设计采用的X.509标准,然后在此基础 

通过,同时,它也作为ISO/IEC的国际标准。IETF 

X.509标准是目前被广泛接受的证书格式。但X. 

509标准并没有限制证书的内容,可以以它为基本 

收稿日期:2011年3月24日,修回日期:2011年5月4日 

作者简介:许平,男,硕士,讲师,研究方向:计算机软件工程,计算机网络安全。 

许平:基于x.509标准的CA数字证书系统的设计与实现 第39卷 

框架根据用户不同的的需求定义证书的内容[5]。 

X 509标准是ITU_T设计的PKI标准,它是为 

了解决X 500目录中的身份鉴别和访问控制问题而 

设计的。在X 509标准的早期版本中,除了最基本 

的组件一CA、证书持有者和依赖方外,只涉及了资 

料库。由于X.509标准是为X 500目录服务的,所 

以,资料库的形式就是X 500目录。在后来的)(. 

509标准版本中,又增加了CRI Issuer组件。在X 

509标准中,使用大量的篇幅来定义证书和CRI 的 

数据格式。目前,使用最广泛、最成功的证书和CRL 

格式,都是X 509标准定义的格式|_6]。 

在X.509方案中,一个用户有两把密钥:一把 

是用户的专用密钥,另一把是其他用户都可利用的 

公共密钥。公共密钥加密系统有两种主要用途:密 

钥的分配与身份认证。用户可用常规密钥(如 

DES)为信息加密,然后再用接收者的公共密钥对 

DES进行加密并将之附于信息之上,这样接收者可 

用对应的专用密钥打开DES密锁,并对信息解密。 

为进行身份认证,X.509标准及公共密钥加密 

系统提供了一个称作数字签名的方案。用户可生 

成一段信息及其摘要(亦称作信息“指纹”)。用户 

用专用密钥对摘要加密以形成签名,接收者用发送 

者的公共密钥对签名解密,并将之与收到的信息 

“指纹”进行比较,以确定其真实性。虽然用适当的 

运算方法及充分的钥匙长度都无法破译公共密钥 

密码,但它仍有一个缺点,即接收者如何判定发送 

方的公共密钥的正确性。此问题的解决方案即 

X.509标准与公共密钥证书。本质上,证书由公共 

密钥加密钥拥有者的用户标识组成,整个字块有可 

信赖的第三方签名。典型的第三方即大型用户群 

体(如政府机关或金融机构)所信赖的CA。 

3 数字证书在CA中的分类及结构 

设计 

3.1数字证书设计中的问题 

由于绝大多数纯CA产品只使用一套密钥对[3]。 

要想支持不可抵赖性,用户的私有密钥就只能由其自 

己产生(如通过浏览器等),并使用高强度的口令来保 

护它。反之,如果用户的那套密钥对由系统集中产生 

并备份,则就不能保障其不可抵赖性,因为这时除了用 

户自己持有用来签名的私有密钥以外,系统也知道其 

私有密钥。使用一套密钥对时,对应于是否集中备份 

用户的私有密钥,会出现两种结果: 

1)不将用户的私有密钥集中备份,一旦用户 

忘记了自己读取私有密钥的口令或其私有密钥因 

各种原因而丢失,则用户就会无法解密那些已加密 

的数据,单位会因此而丢失一些重要数据。可以想 

象,越是重要的数据,用户越是担心其无法解密而 

导致丢失;而用户的这种担心会促使他们对重要的 

数据反而不进行加密保护,出现这种情况是非常危 

险而又具有讽刺意味的。 

2)若将用户的私有密钥集中备份(由于纯CA 

产品不支持该功能,还得手工实现私有密钥的集中 

备份),虽能克服1)中所述的数据丢失的难题,但 

是这种功能是通过损害系统的不可抵赖性而获得 

的,因为这时除了用户自己持有用来签名的私有密 

钥以外,系统也知道其私有密钥。 

3.2数字证书设计问题的解决 

在设计的证书分类中运用了双证书,也就是使 

用两套密钥,其中一对公开密钥/私有密钥用来做 

/JR/解密,另一对公开密钥/私有密钥用来做验证/ 

签名。由于使用了上述两套密钥的方案,前述困难 

迎刃而解: 

1)将加/解密密钥对中作解密之用的私有密 

钥备份;在需要时,可根据系统的安全策略恢复出 

用户的解密密钥,这样就能确保企业数据不会因无 

法解密而丢失。 

2)对于验证/签名密钥对中用于签名的私有 

密钥,则不作备份。这时,只有用户自己拥有该私 

有密钥,因而其不可抵赖性并未受到损害。尽管推 

荐用户使用两套密钥,但在系统中也能适用于那些 

只支持一套密钥对的应用。 

3.3数字证书的结构设计 

根据X.509标准数字证书结构基本上由三项 

组成即:证书的基本信息(tbsCertificate),签名算 

法(signatureAlgorithm)E ]以及数字签名(signa— 

ture)E 。结构定义如下: 

Certificate::=SEQUENCE{ 

tbsCertificate TBSCertiifcate,/*证书基本 

信息*f 

signatureAlgorithm AlgorithmIdentiifer,/*签 

名算法*/ 

signature BITSTRING/*数字签名*/ 

} 

4数字证书的实现 

4.1数字证书生成大体流程图及说明 

证书生成的过程就是进行编码签名的过程。 

根据X.509标准数字证书结构由三部分构成即: 

2011年第9期 计算机与数字工程 

证书的基本信息(tbsCertiifcate),签名算法(signa— 

tureAlgorithm)以及签名算法(signature)。先是对 

证书的基本信息进行DER编码,然后根据CA的 

私钥进行签名,最后对整部分进行封装编码从而生 

成DER格式数字证书。 

首先是在整个系统中数字证书生成框图。 

证书申清录入 l证书和编码签名l 

证书审核 消息传递 I l 

I l生成数字证书l 

发送证书申清’ 

RA端 CA端 

图1数字证书生成图 

由图1可知数字证书生成的大体过程,实际上 

在这里主要实现具体底层的证书编码签名。要将 

所有的底层编码封装在一个动态链接库中[9],以供 

上层调用,将证书编码功能封装到自己设计的函数 

PKI

_

Encode

Cert(…)中,生成证书函数流程如图 

2所示。 

将属性信息赋值给结构 

USER

——

X509

——

TBS

——

CERT 

检查结构USER

X509TBS

—一—

CERTIAJ容 

将结构USER

X509

TBS

C ERTtA]容转化 

至0结构X509

TBS

CERT ̄ 

对结构X509

TBS

一—

CERT进 ̄-DER编码 

用CA密钥进行签名 

I 

进行编码 

生成证书到缓冲区BUF中 

图2生成证书函数流程图 

4.2数字证书生成具体分析 

根据上面流程将重点对证书结构的编码实现 

过程进行具体的分析。 

在函数PKI—Encode—Cert(…)中首先根据从 

RA端发送过来的用户证书申请信息将其分别赋 

值给存放用户证书信息的结构USER—X509一TBS— 

CERT中,然后调用证书编码函数c2d—USER— 

X509

TBS

CERT(…)来完成主要DER编码功 

能,最后调用函数PKI—Gen—Signature(…)根据 

CA密钥进行签名。在c2d—USER—X509一TBS— 

CERT(…)函数中,首先检查结构USER—X509一 

TBS

CERT内容是否符合要求,然后将用户证书 

结构内容赋值给结构X509一TBS—CERT,最后调用 

函数Der—Encode—X509一Tbs—Cert分别具体的对 

证书信息的每一项进行DER编码。 

在程序中对结构X509一TBS—CERT进行DER 

编码的重要部分主要由Der—Encode—X509一Tbs— 

Cert(…)函数 。 来完成。下面是该函数中选出其 

中对证书版本号进行编码的部分代码。 

|*version 7 

if(x509tbs

cert.versionFlag){ 

rtn

_

code—new

ASN1

SEQUENCE({ p

tail); 

—一—

/*创建ASN.1的SEQUENCE对象*/ 

if(rtn

code!一FUNC

OK){/*是否创建成功 

*f 

free

ASN1

SEQUENCE(p

head); 

_一_

PKIPut

Err(fno,3,”new

ASN1

SE— 

——

QUENCE”): 

return FUN( ERR; 

} 

buf.data[0]一x509一tbs—cert.version; 

/*对X.509证书的版本号信息进行编码*/ 

rtn

code—DerEncodeX5O9Version(t

—一—

buf, 

&p—cur一>data); 

if(rtn

_

code!一FUNC

OK){/*判断编码是否 

成功*/ 

PKI

Put

Err(fno,4,”Der

Encode

Ver— 

sion”): 

rtn

code—free

ASN1

SEQUENCE(P— 

head); 

return FUNCERR; 

_

) 

在这段代码中主要是调用Der—Encode—X509一 

Version(…)函数来进行DER编码的。 

不同的证书生成根据不同的证书结构,在实现 

中主要依据证书结构的扩展项的不同编码生成不 

同的证书。 

5 结语 

到目前为止基本上已实现了数字证书的生成, 

并能进行身份认证等其它一系列操作,而且支持多 

种证书。但是同时也存在着一些问题等待解决,例 

如关于证书链的问题,证书间的兼容性的问题,证 

(下转第167页) 

201】年第9期 计算机与数字工程 

地址码要正确2数据码 

终印刷、焊接、调试,系统能够从外部获取控制信号 

并在单片机中进行数据处理,并能对误触发进行判 

断。数据处理完毕之后单片机便将控制信号输出 

到报警电路进行报警,将显示数据输出到显示电路 

进行显示。实现实时监测,监测到真实触发信号通 

匝受囹 

和数据反码之和恰好等 

于0xff则数据完整,提 

取数据码到hwx—data 

寄存器中。 

3)定时器0中断 

模块 

设置定时器的初 

N 

过蜂呜器发出报警声响的功能,并能对报警时间进 

行记录,通过开关可以查询最近十条记录。较好地 

前1 6位一一地址寄存器 

中8位一一数据正码寄存器 

后8后一一数据反码寄存器 

I 

满足了现代报警器数字化和信息化的安防需求。 

本系统结构简单、可靠性高、功能齐全,成本低,具 

有很强的实用价值和广阔的市场发展情景。 

参考文献 

值,是TO为5ms定时 

器。然后发生2O次定 

时器TO中断后,进入1 

数据正码寄存器数 

据放入数据寄存器 

次lOOms的累加,进行 

10次,累加到1S。执行 

E1]黄菊生.单片微型计算机与机电接V1技术[M].北京: 

国防工业出版社.2007:81~89 

厂 而『_] 

完后若热释电模块被触 

发,则开始计时。 

图 外中断模块流程图 4)误触发判断模块 

[2]深圳电应普科技有限公司.DYP—ME003人体红外感应 

模块使用说明书,2011 

[3]刘超,任智华.浅谈热释电红外传感器在防盗报警系统 

误触发判断设计原理是初次触发后两声报警 

声进行预告警,热释电已被触发,延时5s抗干扰, 

在延时过后一个5s内若再有触发则证明触发事件 

确实存在,启动3声报警并开启继电器并把时间记 

录下来。 

中的应用[J].计算机与网络,2008(6):70471 

[4]Antonir.Infrared detectors:an overview[J].Infrared 

Physics Technology,2002(43):187 ̄210 

[5]何希才.传感器及其应用电路[M].北京:电子工业出 

版社,2001:34 ̄41 

[6]孙华,李扬.热释电红外传感器原理及其应用[J].内江 

5 结语 

本文设计了一个多路智能报警器电路,系统主 

要包括以下模块电路:单片机控制模块、传感器模 

块、报警模块、显示模块四部分。控制模块外围,有 

为该系统设计的遥控启动模块,稳压电源模块,继 

科技,2010(12):116,160 

[7]胡伟生.热释电红外探测器的元器件(4)设计上改进的 

方向及措施[J].电子世界,2004(11):40 ̄42 

[8]A.Rogalski.Infrared detectors:status and trends. 

Prog.Quant.Electronics,2003,27:594210 

[9]申柏华,罗晓牧,王国利.运动检测与定位的热释电红外 

传感新方法[J].光电子・激光,2010,21(9):1350 ̄1354 

ElO]冯涛,李新,蔡睿洁,等.热释电红外敏感器的温差响 

应特性[J].弹箭与制导学报,2010,30(5):218 ̄220 

’ 不 矫 矫 

电器动作模块,开关查询模块,使系统更稳定,更实 

用,功能更全面。 

经AltiumDesigner0 9绘制完成PCB板,并最 

;. 不 尔 绵 矫 !坏 希 带 

(上接第97页) 

书的交叉认证的问题等等,这些问题都要在以后的 

工作中逐步的解决完善改进,以适应未来电子商务 

发展的要求。 

参考文献 

E5]ITu—T Recommendation.X.509,1993,11 

E 6]R.Housley,W.Polk,W.Ford.Internet X.509 Pub— 

lic Key Infrastructure Certificate and CRL Profile[S]. 

RFC2459.1999。1 

[7]王锐译.网络最高安全技术指南[M].北京:机械工业 

出版社,1998 

[1]谢冬青,冷健.PKI原理与技术[M].北京:清华大学出 

版社,2004 

E8]冯登国.公开密钥基础设施一概念、标准、实施[M].北 

京:人民邮电出版社,2001 

[2]胡道元,闵京华.网络安全[M].北京:清华大学出版社, 

2008 

[9]王晓峰,王尚平,王育民.公钥基础设施中的证书路径 

构造方法及验证算法[J].计算机工程与应用,2002,28 

(6):69 

[3]石志国.计算机网络安全教程[M].北京:清华大学出 

版社,2004 

[4]Bruce Schneier.应用密码学一协议、算法与C源程序 

[M].北京:清华大学出版社,1999 

[1O]朱振元,朱承.数据结构一C++语言描述[M].北京: 

清华大学出版社,2007 

2024年3月12日发(作者:贲宛)

总第263期 

2011年第9期 

计算机与数字工程 

Computer&Digital Engineering 

Vo1.39 NO.9 

95 

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

许 平 

(江汉大学数学与计算机学院武汉430O56) 

摘要文章首先对CA(证书认证中心)体系中数字证书系统的地位和机Nil以阐叙和说明,然后详细讨论了构造数 

数字证书;CA;X.509标准;DER编码;PKI 

TP393 

字证书系统所要用到的技术和相关标准,最后在此基础上对整个数字证书系统的设计与实现作了具体的描叙。 

关键词

中图分类号

Design and Implement of the Digital Certificate System Based on X.509 

Xu Ping 

(School of Mathematics and Computer Sciences,Jianghan University,Wuhan 430056) 

Abstract The first section of this paper introduces the status and principle of the digit certificate in the CA system. 

The next section covers the related standards and techniques,such as ASN.1,X.509,which will adopted by the system.Fi— 

nally,the last section covers the details of design and implement of the digital certificate,which is basis Oil the previous tech— 

nique and specification. 

Key Words digital certificate,CA,X.509,DER encode,PKI 

Class Number TP393 

1 引言 

PKIElj的基本机制是定义和建立身份、认证和 

授权技术,然后分发、交换这些技术,在网络之间解 

上设计了CA系统中的证书数据结构,最后给出了 

具体的在系统中数字证书的生成实现过程和编码。 

释和管理这些信息。PKI对数据加密、数字签字、 

防抵赖、数据完整性,以及身份鉴别所需的密钥及 

认证实施统一的集中化管理,支持电子商务的参与 

2 构造数字证书的原理和相关技术 

标准 

2.1 编码规则一BER/DER 

ASN.1中的基本编码规则,缩写为BER,通过 

者在网络环境下建立和维护平等的信任关系,保证 

网上电子商务的安全_2]。 

个或多种规则将ASN.1定义的值变为一个或多 

的区别是给定一个ASN.1定义的一个值,采用 

个八位位组。DERE ]是BER的一个子集,它们唯 

数字证书是用于验证需认证者的标识信息与 

其公钥对应关系的一种数字文档,主要用于确认计 

算机信息网络上个人或组织的身份和相应的权限, 

BER编码方式有多种编码值,而DER只有唯一的 

值,本程序中所用的是DER的编码方式。 

2.2 X.509标准 

X.509是ITU—T于1993年11月16日批准 

用以解决网络信息安全问题。数字证书是由大家 

共同信任的第三方一授权机构(CA)颁发的[3],CA 

有权利签发并废除证书并且对证书的真实性负责。 

本文首先探讨了相应的构造数字证书的相关编码 

规则以及设计采用的X.509标准,然后在此基础 

通过,同时,它也作为ISO/IEC的国际标准。IETF 

X.509标准是目前被广泛接受的证书格式。但X. 

509标准并没有限制证书的内容,可以以它为基本 

收稿日期:2011年3月24日,修回日期:2011年5月4日 

作者简介:许平,男,硕士,讲师,研究方向:计算机软件工程,计算机网络安全。 

许平:基于x.509标准的CA数字证书系统的设计与实现 第39卷 

框架根据用户不同的的需求定义证书的内容[5]。 

X 509标准是ITU_T设计的PKI标准,它是为 

了解决X 500目录中的身份鉴别和访问控制问题而 

设计的。在X 509标准的早期版本中,除了最基本 

的组件一CA、证书持有者和依赖方外,只涉及了资 

料库。由于X.509标准是为X 500目录服务的,所 

以,资料库的形式就是X 500目录。在后来的)(. 

509标准版本中,又增加了CRI Issuer组件。在X 

509标准中,使用大量的篇幅来定义证书和CRI 的 

数据格式。目前,使用最广泛、最成功的证书和CRL 

格式,都是X 509标准定义的格式|_6]。 

在X.509方案中,一个用户有两把密钥:一把 

是用户的专用密钥,另一把是其他用户都可利用的 

公共密钥。公共密钥加密系统有两种主要用途:密 

钥的分配与身份认证。用户可用常规密钥(如 

DES)为信息加密,然后再用接收者的公共密钥对 

DES进行加密并将之附于信息之上,这样接收者可 

用对应的专用密钥打开DES密锁,并对信息解密。 

为进行身份认证,X.509标准及公共密钥加密 

系统提供了一个称作数字签名的方案。用户可生 

成一段信息及其摘要(亦称作信息“指纹”)。用户 

用专用密钥对摘要加密以形成签名,接收者用发送 

者的公共密钥对签名解密,并将之与收到的信息 

“指纹”进行比较,以确定其真实性。虽然用适当的 

运算方法及充分的钥匙长度都无法破译公共密钥 

密码,但它仍有一个缺点,即接收者如何判定发送 

方的公共密钥的正确性。此问题的解决方案即 

X.509标准与公共密钥证书。本质上,证书由公共 

密钥加密钥拥有者的用户标识组成,整个字块有可 

信赖的第三方签名。典型的第三方即大型用户群 

体(如政府机关或金融机构)所信赖的CA。 

3 数字证书在CA中的分类及结构 

设计 

3.1数字证书设计中的问题 

由于绝大多数纯CA产品只使用一套密钥对[3]。 

要想支持不可抵赖性,用户的私有密钥就只能由其自 

己产生(如通过浏览器等),并使用高强度的口令来保 

护它。反之,如果用户的那套密钥对由系统集中产生 

并备份,则就不能保障其不可抵赖性,因为这时除了用 

户自己持有用来签名的私有密钥以外,系统也知道其 

私有密钥。使用一套密钥对时,对应于是否集中备份 

用户的私有密钥,会出现两种结果: 

1)不将用户的私有密钥集中备份,一旦用户 

忘记了自己读取私有密钥的口令或其私有密钥因 

各种原因而丢失,则用户就会无法解密那些已加密 

的数据,单位会因此而丢失一些重要数据。可以想 

象,越是重要的数据,用户越是担心其无法解密而 

导致丢失;而用户的这种担心会促使他们对重要的 

数据反而不进行加密保护,出现这种情况是非常危 

险而又具有讽刺意味的。 

2)若将用户的私有密钥集中备份(由于纯CA 

产品不支持该功能,还得手工实现私有密钥的集中 

备份),虽能克服1)中所述的数据丢失的难题,但 

是这种功能是通过损害系统的不可抵赖性而获得 

的,因为这时除了用户自己持有用来签名的私有密 

钥以外,系统也知道其私有密钥。 

3.2数字证书设计问题的解决 

在设计的证书分类中运用了双证书,也就是使 

用两套密钥,其中一对公开密钥/私有密钥用来做 

/JR/解密,另一对公开密钥/私有密钥用来做验证/ 

签名。由于使用了上述两套密钥的方案,前述困难 

迎刃而解: 

1)将加/解密密钥对中作解密之用的私有密 

钥备份;在需要时,可根据系统的安全策略恢复出 

用户的解密密钥,这样就能确保企业数据不会因无 

法解密而丢失。 

2)对于验证/签名密钥对中用于签名的私有 

密钥,则不作备份。这时,只有用户自己拥有该私 

有密钥,因而其不可抵赖性并未受到损害。尽管推 

荐用户使用两套密钥,但在系统中也能适用于那些 

只支持一套密钥对的应用。 

3.3数字证书的结构设计 

根据X.509标准数字证书结构基本上由三项 

组成即:证书的基本信息(tbsCertificate),签名算 

法(signatureAlgorithm)E ]以及数字签名(signa— 

ture)E 。结构定义如下: 

Certificate::=SEQUENCE{ 

tbsCertificate TBSCertiifcate,/*证书基本 

信息*f 

signatureAlgorithm AlgorithmIdentiifer,/*签 

名算法*/ 

signature BITSTRING/*数字签名*/ 

} 

4数字证书的实现 

4.1数字证书生成大体流程图及说明 

证书生成的过程就是进行编码签名的过程。 

根据X.509标准数字证书结构由三部分构成即: 

2011年第9期 计算机与数字工程 

证书的基本信息(tbsCertiifcate),签名算法(signa— 

tureAlgorithm)以及签名算法(signature)。先是对 

证书的基本信息进行DER编码,然后根据CA的 

私钥进行签名,最后对整部分进行封装编码从而生 

成DER格式数字证书。 

首先是在整个系统中数字证书生成框图。 

证书申清录入 l证书和编码签名l 

证书审核 消息传递 I l 

I l生成数字证书l 

发送证书申清’ 

RA端 CA端 

图1数字证书生成图 

由图1可知数字证书生成的大体过程,实际上 

在这里主要实现具体底层的证书编码签名。要将 

所有的底层编码封装在一个动态链接库中[9],以供 

上层调用,将证书编码功能封装到自己设计的函数 

PKI

_

Encode

Cert(…)中,生成证书函数流程如图 

2所示。 

将属性信息赋值给结构 

USER

——

X509

——

TBS

——

CERT 

检查结构USER

X509TBS

—一—

CERTIAJ容 

将结构USER

X509

TBS

C ERTtA]容转化 

至0结构X509

TBS

CERT ̄ 

对结构X509

TBS

一—

CERT进 ̄-DER编码 

用CA密钥进行签名 

I 

进行编码 

生成证书到缓冲区BUF中 

图2生成证书函数流程图 

4.2数字证书生成具体分析 

根据上面流程将重点对证书结构的编码实现 

过程进行具体的分析。 

在函数PKI—Encode—Cert(…)中首先根据从 

RA端发送过来的用户证书申请信息将其分别赋 

值给存放用户证书信息的结构USER—X509一TBS— 

CERT中,然后调用证书编码函数c2d—USER— 

X509

TBS

CERT(…)来完成主要DER编码功 

能,最后调用函数PKI—Gen—Signature(…)根据 

CA密钥进行签名。在c2d—USER—X509一TBS— 

CERT(…)函数中,首先检查结构USER—X509一 

TBS

CERT内容是否符合要求,然后将用户证书 

结构内容赋值给结构X509一TBS—CERT,最后调用 

函数Der—Encode—X509一Tbs—Cert分别具体的对 

证书信息的每一项进行DER编码。 

在程序中对结构X509一TBS—CERT进行DER 

编码的重要部分主要由Der—Encode—X509一Tbs— 

Cert(…)函数 。 来完成。下面是该函数中选出其 

中对证书版本号进行编码的部分代码。 

|*version 7 

if(x509tbs

cert.versionFlag){ 

rtn

_

code—new

ASN1

SEQUENCE({ p

tail); 

—一—

/*创建ASN.1的SEQUENCE对象*/ 

if(rtn

code!一FUNC

OK){/*是否创建成功 

*f 

free

ASN1

SEQUENCE(p

head); 

_一_

PKIPut

Err(fno,3,”new

ASN1

SE— 

——

QUENCE”): 

return FUN( ERR; 

} 

buf.data[0]一x509一tbs—cert.version; 

/*对X.509证书的版本号信息进行编码*/ 

rtn

code—DerEncodeX5O9Version(t

—一—

buf, 

&p—cur一>data); 

if(rtn

_

code!一FUNC

OK){/*判断编码是否 

成功*/ 

PKI

Put

Err(fno,4,”Der

Encode

Ver— 

sion”): 

rtn

code—free

ASN1

SEQUENCE(P— 

head); 

return FUNCERR; 

_

) 

在这段代码中主要是调用Der—Encode—X509一 

Version(…)函数来进行DER编码的。 

不同的证书生成根据不同的证书结构,在实现 

中主要依据证书结构的扩展项的不同编码生成不 

同的证书。 

5 结语 

到目前为止基本上已实现了数字证书的生成, 

并能进行身份认证等其它一系列操作,而且支持多 

种证书。但是同时也存在着一些问题等待解决,例 

如关于证书链的问题,证书间的兼容性的问题,证 

(下转第167页) 

201】年第9期 计算机与数字工程 

地址码要正确2数据码 

终印刷、焊接、调试,系统能够从外部获取控制信号 

并在单片机中进行数据处理,并能对误触发进行判 

断。数据处理完毕之后单片机便将控制信号输出 

到报警电路进行报警,将显示数据输出到显示电路 

进行显示。实现实时监测,监测到真实触发信号通 

匝受囹 

和数据反码之和恰好等 

于0xff则数据完整,提 

取数据码到hwx—data 

寄存器中。 

3)定时器0中断 

模块 

设置定时器的初 

N 

过蜂呜器发出报警声响的功能,并能对报警时间进 

行记录,通过开关可以查询最近十条记录。较好地 

前1 6位一一地址寄存器 

中8位一一数据正码寄存器 

后8后一一数据反码寄存器 

I 

满足了现代报警器数字化和信息化的安防需求。 

本系统结构简单、可靠性高、功能齐全,成本低,具 

有很强的实用价值和广阔的市场发展情景。 

参考文献 

值,是TO为5ms定时 

器。然后发生2O次定 

时器TO中断后,进入1 

数据正码寄存器数 

据放入数据寄存器 

次lOOms的累加,进行 

10次,累加到1S。执行 

E1]黄菊生.单片微型计算机与机电接V1技术[M].北京: 

国防工业出版社.2007:81~89 

厂 而『_] 

完后若热释电模块被触 

发,则开始计时。 

图 外中断模块流程图 4)误触发判断模块 

[2]深圳电应普科技有限公司.DYP—ME003人体红外感应 

模块使用说明书,2011 

[3]刘超,任智华.浅谈热释电红外传感器在防盗报警系统 

误触发判断设计原理是初次触发后两声报警 

声进行预告警,热释电已被触发,延时5s抗干扰, 

在延时过后一个5s内若再有触发则证明触发事件 

确实存在,启动3声报警并开启继电器并把时间记 

录下来。 

中的应用[J].计算机与网络,2008(6):70471 

[4]Antonir.Infrared detectors:an overview[J].Infrared 

Physics Technology,2002(43):187 ̄210 

[5]何希才.传感器及其应用电路[M].北京:电子工业出 

版社,2001:34 ̄41 

[6]孙华,李扬.热释电红外传感器原理及其应用[J].内江 

5 结语 

本文设计了一个多路智能报警器电路,系统主 

要包括以下模块电路:单片机控制模块、传感器模 

块、报警模块、显示模块四部分。控制模块外围,有 

为该系统设计的遥控启动模块,稳压电源模块,继 

科技,2010(12):116,160 

[7]胡伟生.热释电红外探测器的元器件(4)设计上改进的 

方向及措施[J].电子世界,2004(11):40 ̄42 

[8]A.Rogalski.Infrared detectors:status and trends. 

Prog.Quant.Electronics,2003,27:594210 

[9]申柏华,罗晓牧,王国利.运动检测与定位的热释电红外 

传感新方法[J].光电子・激光,2010,21(9):1350 ̄1354 

ElO]冯涛,李新,蔡睿洁,等.热释电红外敏感器的温差响 

应特性[J].弹箭与制导学报,2010,30(5):218 ̄220 

’ 不 矫 矫 

电器动作模块,开关查询模块,使系统更稳定,更实 

用,功能更全面。 

经AltiumDesigner0 9绘制完成PCB板,并最 

;. 不 尔 绵 矫 !坏 希 带 

(上接第97页) 

书的交叉认证的问题等等,这些问题都要在以后的 

工作中逐步的解决完善改进,以适应未来电子商务 

发展的要求。 

参考文献 

E5]ITu—T Recommendation.X.509,1993,11 

E 6]R.Housley,W.Polk,W.Ford.Internet X.509 Pub— 

lic Key Infrastructure Certificate and CRL Profile[S]. 

RFC2459.1999。1 

[7]王锐译.网络最高安全技术指南[M].北京:机械工业 

出版社,1998 

[1]谢冬青,冷健.PKI原理与技术[M].北京:清华大学出 

版社,2004 

E8]冯登国.公开密钥基础设施一概念、标准、实施[M].北 

京:人民邮电出版社,2001 

[2]胡道元,闵京华.网络安全[M].北京:清华大学出版社, 

2008 

[9]王晓峰,王尚平,王育民.公钥基础设施中的证书路径 

构造方法及验证算法[J].计算机工程与应用,2002,28 

(6):69 

[3]石志国.计算机网络安全教程[M].北京:清华大学出 

版社,2004 

[4]Bruce Schneier.应用密码学一协议、算法与C源程序 

[M].北京:清华大学出版社,1999 

[1O]朱振元,朱承.数据结构一C++语言描述[M].北京: 

清华大学出版社,2007 

发布评论

评论列表 (0)

  1. 暂无评论