基于C语言的PKICA认证中心的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WebRA服务器:WebRA面向普通用户,用于 提供证书申请、浏览、证书撤消列表以及证书下载 等安全服务.WebRA与用户的通信采用安全信道 方式(如SSL的方式,不需要对用户进行身份认 证).用户首先得到安全服务器的证书(该证书由 CA颁发).然后用户与服务器之间的所有通信, 包括用户填写的申请信息以及浏览器生成的公钥 均以安全服务器的密钥进行加密传输。只有安全 服务器利用自己的私钥解密才能得到明文,这样 可以防止其他人通过窃听得到明文.从而保证了 证书申请和传输过程中的信息安全性.
钥匙加密算法(非对称加密算法):
·DSACryptoServieeProvider }RSACryptoServiceProvider
下面是一个RSACryptoServieeProvider类的应 用实例
Using RSACryptoServieeProvider
Dim PublicKey As Byte()={214,46,220,
关键词:公钥基础设施(PKI);认证中d(CA);C#语言
0 引言
信息技术的飞速发展,使传统的商务模式经 受到巨大的变革考验.企业信息资源的网络化以 及电子商务各类应用的集成与整合,出现了前所 未有的快速发展.如此规模的发展速度,除基于传 统业务开发的各类电子商务平台的应用以外,还 依赖于网络技术应用与发展的安全保障.
认证中心CA(Certillcate Authority)是PKI的 核心,CA负责管理PKI结构下的所有用户(包括 各种应用程序)的证书,把用户的公钥和用户的
其他信息捆绑在一起,在网上验证用户的身份 CA还要负责用户证书的黑名单的登记和发布.
1 CA认证的基本概念
1.1认证中心 认证中心是一个负责发放和管理数字证书的
本系统采用的公共钥匙加密算法又称为非对 称密钥密码算法”o.它使用到两个密钥:公开密 钥和私有密钥,分别用于对数据的加密和解密,即 如果用公开密钥对数据进行加密.只有用对应的 私有密钥才能进行解密;如果用私有密钥对数据
进行加密.则只有用对应的公开密钥才能解密. .NET Framework提供了以下类来实现公共
83,160,73,40,39,201,155,19,202,3, 11,191,178,56,74,90,36,248,103,
18,144,170,163,145,87,54,61,34,220. 222,207,137,149,173,14,92。120,206,
222,158,28,40,24,30,16,175,108, 128,35,230.118,40.121.113,125,216,
117,177,87,143,242,213,11,44,180.
113,93,106,99,179,68.175,21l,
164,116,64,148,226,254,172,147} Dim ExponentAs Byte()=11,0,I}
7Values to store encrypted symmetric keys.
LDAP服务器”1:LDAP服务器提供目录浏览 服务,负责将注册机构服务器传输过来的用户信 息以及数字证书加入到服务器上.这样其它用户 通过访问LDAP服务器就能够得到其他用户的数 字证书,
本系统中包括以下数据库:一个CA数据库, 一个CA后援数据库,一个证书库(LDAP数据 库)和多个RA数据库.
2 CA认证中心的总体结构设计
CA认证中心通常为在一个安全域内的有限 群体发放证书,同时还负责维护和发布证书发放 列表CRL(eertificate revocation lists).本CA认证 中心由六个服务器组成,分别为CA签发服务器、 CA管理服务器、CA审计服务器、RA注册服务 器、WebRA收发服务器和目录服务器.它们的功 能如下:
’Create a new instance of RSAParameters.
Dim RSAKeylnfo As New RSAParameters()
’Set RSAKeylnfo t0 the public key values. RSAKeylnfo.Modulus=PublicKey RSAKeyInfo.Exponent=Exponent
注册服务器(RA):用于登记用户的申请,核 查用户身份的真伪.核对后批准颁发.将申请转给 签发服务器,并负责将签发好的数字证书以安全 方式传送给用户.
签发服务器:是CA系统的核心部分.根据校 准的申请书签发电子证书并将证书传送给注册服 务器RA;发布CRL到目录服务器;管理中央数据 库;保管CA的密钥,并用此密钥为电子证书签名 公正;对其它部件提出的请求给出应答.
万方数据
第4期
基于c#语言的PKI/CA认证中心的设计
RA铝‘理员『
f至..里I ②十I③
f CA管理员
l三』.J
⑤干I⑥
相-瓦谨封裟喾鳟觜
I⑧获般证
I ⑦导山证I
..
¨、cRL ⑨发布J f
’|钆cR。
f
;淼H证懈 目录服f·—叶证¨库
RA
数据库
CA 数掘库
国1 CA认证中心重要部件之间的接口
第19卷 第4期
哈尔滨师范大学自然科学学报 NATURAL SCIENCES JOURNAL OF HARBIN NORMAL UNIVERSITY
Vol 19,No.4 2003
基于C#语言的PKI/CA认证中心的设计
李玉强
(哈尔滨工业大学)
张红伟
(哈尔滨师范大学)
【摘要】PKI/CA认证中。是目前保证网络信息安全的一种比较可靠的安全体 系.本文依照PKI系统的结构框架,给出了一个CA认证中ro的结构设计,同时应用 目前最先进的C#编程语言,给出了在.NET环境下实现CA认证中。的一种编程方 法.
’Import key parameters into RSA. RSA.hnpoaParameters(RSAKeyInfo) 7Create a new instance of the RijndaelManaged
claSS.
Dim RM As New RijndaelManaged()
’Encrypt the symmetric key and IV. EncryptedSymmetrieKey 。 RSA.Encrypt
数字证书就是网络通信中标志通信各方身份 信息的一系列数据,其作用类似于现实生活中的 身份证.它是由一个权威机构发行的,人们可以在 交往中用它来识别对方的身份. 1.3.2数字证书的作用:
访问需要客户验证的安全Internet站点. 用对方的数字证书向对方发送加密的邮件. 给对方发送带自己签名的邮件. 1.3.3数字证书的内容: 证书的格式由ITU标准X.509v3来定义.根 据这项标准,证书包括申请证书个体的信息和发 行证书CA的信息.证书由以下两部分组成: A、证书数据: 版本信息:用来与X.509的将来版本兼容; 证书序列号:每一个由CA发行的证书必须 有一个唯一的序列号; CA所使用的签名算法; 发行证书CA的名称; 证书的有效期限; 证书主题名称; 被证明的公钥信息,包括公钥算法、公钥的位 字符串表示; 包含额外信息的特别扩展. B、发行证书的CA签名: 证书第二部分包括发行证书的CA签名和用 来生成数字签名的签名算法.任何人收到证书后 都能使用签名算法来验证证书是由CA的签名密 钥签发的. 1.4安全套接字层fSSL) 安全套接字层SSL(Secure Sockets Layer)是 一种提供Intemet上保密性的在线协议.它允许 客户/服务器应用以一种不能被偷听的方式通讯. 它是Intemet网上安全通讯与交易的标准.SSL协 议使用通讯双方的证书在通讯双方问建立一条安 全的、可信任的通讯通路.
收稿13期:2(303—06—14 李玉强.男,计算机硕士,主要研究计算机网络安全、数控系统以及工业现场总线的数据传输安全等课题
万方数据
哈尔滨师范大学自然科学学报
签名又加密、只签名、只加密,当然,也可以既不签 名也不加密.发送方计算出的签名和数据一起传 送给接收方,签名值是关于发送方的私钥和要发 送的信息的一个数学函数的值.算法的构造保证 如果不知道私钥的话就不可能计算出这个签名 值.接收方可以通过依赖发送方的公钥、签名值和 接收到的数据的另一个数学算法来验证接收到的 信息就是发送方签名的信息. 1.3数字证书 1.3.1数字证书的概念:
在Intemet网上进行通信时,如何保证通信 双方身份的真实性、内容的安全性是一个重要的 问题.PKI(Public Key Infrastructure)”。。’1公钥基 础设施是利用公钥技术实现电子商务安全的一种 体系,是一种基础设施.是提供公钥加密和数字签 名服务的系统或平台,目的是为了管理密钥和证 书.一个机构通过采用PKI框架管理密钥和证书 可以建立一个安全的网络环境.PKI主要包括四 个部分:X.509格式的证书(X.509 V3)和证书废 止列表CRL(X.509 V2)、CA/RA操作协议、CA 管理协议和CA政策制定.
130,1l,24,90,48,194,240,105,44, 76.34,57,249,228,125,80,38,9,136.
29,117,207,139,168,181,85,137, 126,10,126,242,120,247,121,8,100.
12,201,171,38,226,193,180,190,
c精言继承了丰富的程序设计传统.它是直
接从当今最成功的两种计算机语言(C和C++) 演变而来的,而且与Java紧密相关.c#语盲兼具 了c语言的强大底层控制功能、简洁性和可表达 性,以及c++的面向对象特性,同时也具有Java 的可移植性.在此基础上,C#语言实现了交叉语 言互操作性.
在.NET环境中,System.Security.Crypttogra— phy命名空间包含了与加密、签名相关的类.利用 这些类,我们就可以很方便地使用各种广泛使用 的算法,包括RSA,DSA和其他Hash算法.
CA管理服务器:主要负责证书、密钥、CRL 的管理和CA系统运行的管理.证书、密钥、CRL 的管理包括证书、密钥、CRL的更新、归档、撤消 和恢复等;CA系统运行的管理包括人员管理(如 权限管理)和系统配置及审计.
审计服务器:负责对存储备份及CA系统状 态查询、历史事件的记录、审计、汇总、报表和打印 等.
权威机构.认证中心通常采用多层次的分级结构, 上级认证中心负责签发和管理下级认证中心的证 书,最下一级的认证中心直接面向最终用户.认证 中心的主要功能:
·证书的颁发 ·证书的更新 ·证书的查询 ·证书的作废 ·证书的归档 1.2 数字签名”o 数字签名是通过一个单向函数对要传送的信 息进行处理得到的用以认证信息来源并核实信息 在传送过程中是否发生变化的一个字母数字串. 数字签名提供了对信息来源的确定并能检测信息 是否被篡改. 数字签名与数据加密完全独立.数据可以既
(RM.Key,False) EnctyptedSymmetfieIV=RSA.Enerypt(RM.
IV,False)
.NET Framework提供了以下类来实现数字 签名加密算法t
十DSACryptoServicePmvider 十RSACryptoServicePmvider
3 CA认证中心的软件系统实现
本系统主要采用.NET环境下的c#i吾言来实 现.
c蛞言是Microsoft公司为支持其.NET框架
的开发而设计的,它的出现代表了程序设计语言 的下一步发展方向.它利用并改进了久经试验的 各种特性,给现代的企业级计算环境(包括Win— dows、Interact以及组件等)提供一种非常有用而 且高效的编程方法.
பைடு நூலகம்
万方数据
哈尔滨师范大学自然科学学报
2003拒
Dim EncryptedSymmetricKey()As Byte Dim EncryptedSymmetrielV()As Byte
’Create a new instance of RSACryptoServi- ceProvider.
Dim RSA As New RSACryptoServiceProvider()
钥匙加密算法(非对称加密算法):
·DSACryptoServieeProvider }RSACryptoServiceProvider
下面是一个RSACryptoServieeProvider类的应 用实例
Using RSACryptoServieeProvider
Dim PublicKey As Byte()={214,46,220,
关键词:公钥基础设施(PKI);认证中d(CA);C#语言
0 引言
信息技术的飞速发展,使传统的商务模式经 受到巨大的变革考验.企业信息资源的网络化以 及电子商务各类应用的集成与整合,出现了前所 未有的快速发展.如此规模的发展速度,除基于传 统业务开发的各类电子商务平台的应用以外,还 依赖于网络技术应用与发展的安全保障.
认证中心CA(Certillcate Authority)是PKI的 核心,CA负责管理PKI结构下的所有用户(包括 各种应用程序)的证书,把用户的公钥和用户的
其他信息捆绑在一起,在网上验证用户的身份 CA还要负责用户证书的黑名单的登记和发布.
1 CA认证的基本概念
1.1认证中心 认证中心是一个负责发放和管理数字证书的
本系统采用的公共钥匙加密算法又称为非对 称密钥密码算法”o.它使用到两个密钥:公开密 钥和私有密钥,分别用于对数据的加密和解密,即 如果用公开密钥对数据进行加密.只有用对应的 私有密钥才能进行解密;如果用私有密钥对数据
进行加密.则只有用对应的公开密钥才能解密. .NET Framework提供了以下类来实现公共
83,160,73,40,39,201,155,19,202,3, 11,191,178,56,74,90,36,248,103,
18,144,170,163,145,87,54,61,34,220. 222,207,137,149,173,14,92。120,206,
222,158,28,40,24,30,16,175,108, 128,35,230.118,40.121.113,125,216,
117,177,87,143,242,213,11,44,180.
113,93,106,99,179,68.175,21l,
164,116,64,148,226,254,172,147} Dim ExponentAs Byte()=11,0,I}
7Values to store encrypted symmetric keys.
LDAP服务器”1:LDAP服务器提供目录浏览 服务,负责将注册机构服务器传输过来的用户信 息以及数字证书加入到服务器上.这样其它用户 通过访问LDAP服务器就能够得到其他用户的数 字证书,
本系统中包括以下数据库:一个CA数据库, 一个CA后援数据库,一个证书库(LDAP数据 库)和多个RA数据库.
2 CA认证中心的总体结构设计
CA认证中心通常为在一个安全域内的有限 群体发放证书,同时还负责维护和发布证书发放 列表CRL(eertificate revocation lists).本CA认证 中心由六个服务器组成,分别为CA签发服务器、 CA管理服务器、CA审计服务器、RA注册服务 器、WebRA收发服务器和目录服务器.它们的功 能如下:
’Create a new instance of RSAParameters.
Dim RSAKeylnfo As New RSAParameters()
’Set RSAKeylnfo t0 the public key values. RSAKeylnfo.Modulus=PublicKey RSAKeyInfo.Exponent=Exponent
注册服务器(RA):用于登记用户的申请,核 查用户身份的真伪.核对后批准颁发.将申请转给 签发服务器,并负责将签发好的数字证书以安全 方式传送给用户.
签发服务器:是CA系统的核心部分.根据校 准的申请书签发电子证书并将证书传送给注册服 务器RA;发布CRL到目录服务器;管理中央数据 库;保管CA的密钥,并用此密钥为电子证书签名 公正;对其它部件提出的请求给出应答.
万方数据
第4期
基于c#语言的PKI/CA认证中心的设计
RA铝‘理员『
f至..里I ②十I③
f CA管理员
l三』.J
⑤干I⑥
相-瓦谨封裟喾鳟觜
I⑧获般证
I ⑦导山证I
..
¨、cRL ⑨发布J f
’|钆cR。
f
;淼H证懈 目录服f·—叶证¨库
RA
数据库
CA 数掘库
国1 CA认证中心重要部件之间的接口
第19卷 第4期
哈尔滨师范大学自然科学学报 NATURAL SCIENCES JOURNAL OF HARBIN NORMAL UNIVERSITY
Vol 19,No.4 2003
基于C#语言的PKI/CA认证中心的设计
李玉强
(哈尔滨工业大学)
张红伟
(哈尔滨师范大学)
【摘要】PKI/CA认证中。是目前保证网络信息安全的一种比较可靠的安全体 系.本文依照PKI系统的结构框架,给出了一个CA认证中ro的结构设计,同时应用 目前最先进的C#编程语言,给出了在.NET环境下实现CA认证中。的一种编程方 法.
’Import key parameters into RSA. RSA.hnpoaParameters(RSAKeyInfo) 7Create a new instance of the RijndaelManaged
claSS.
Dim RM As New RijndaelManaged()
’Encrypt the symmetric key and IV. EncryptedSymmetrieKey 。 RSA.Encrypt
数字证书就是网络通信中标志通信各方身份 信息的一系列数据,其作用类似于现实生活中的 身份证.它是由一个权威机构发行的,人们可以在 交往中用它来识别对方的身份. 1.3.2数字证书的作用:
访问需要客户验证的安全Internet站点. 用对方的数字证书向对方发送加密的邮件. 给对方发送带自己签名的邮件. 1.3.3数字证书的内容: 证书的格式由ITU标准X.509v3来定义.根 据这项标准,证书包括申请证书个体的信息和发 行证书CA的信息.证书由以下两部分组成: A、证书数据: 版本信息:用来与X.509的将来版本兼容; 证书序列号:每一个由CA发行的证书必须 有一个唯一的序列号; CA所使用的签名算法; 发行证书CA的名称; 证书的有效期限; 证书主题名称; 被证明的公钥信息,包括公钥算法、公钥的位 字符串表示; 包含额外信息的特别扩展. B、发行证书的CA签名: 证书第二部分包括发行证书的CA签名和用 来生成数字签名的签名算法.任何人收到证书后 都能使用签名算法来验证证书是由CA的签名密 钥签发的. 1.4安全套接字层fSSL) 安全套接字层SSL(Secure Sockets Layer)是 一种提供Intemet上保密性的在线协议.它允许 客户/服务器应用以一种不能被偷听的方式通讯. 它是Intemet网上安全通讯与交易的标准.SSL协 议使用通讯双方的证书在通讯双方问建立一条安 全的、可信任的通讯通路.
收稿13期:2(303—06—14 李玉强.男,计算机硕士,主要研究计算机网络安全、数控系统以及工业现场总线的数据传输安全等课题
万方数据
哈尔滨师范大学自然科学学报
签名又加密、只签名、只加密,当然,也可以既不签 名也不加密.发送方计算出的签名和数据一起传 送给接收方,签名值是关于发送方的私钥和要发 送的信息的一个数学函数的值.算法的构造保证 如果不知道私钥的话就不可能计算出这个签名 值.接收方可以通过依赖发送方的公钥、签名值和 接收到的数据的另一个数学算法来验证接收到的 信息就是发送方签名的信息. 1.3数字证书 1.3.1数字证书的概念:
在Intemet网上进行通信时,如何保证通信 双方身份的真实性、内容的安全性是一个重要的 问题.PKI(Public Key Infrastructure)”。。’1公钥基 础设施是利用公钥技术实现电子商务安全的一种 体系,是一种基础设施.是提供公钥加密和数字签 名服务的系统或平台,目的是为了管理密钥和证 书.一个机构通过采用PKI框架管理密钥和证书 可以建立一个安全的网络环境.PKI主要包括四 个部分:X.509格式的证书(X.509 V3)和证书废 止列表CRL(X.509 V2)、CA/RA操作协议、CA 管理协议和CA政策制定.
130,1l,24,90,48,194,240,105,44, 76.34,57,249,228,125,80,38,9,136.
29,117,207,139,168,181,85,137, 126,10,126,242,120,247,121,8,100.
12,201,171,38,226,193,180,190,
c精言继承了丰富的程序设计传统.它是直
接从当今最成功的两种计算机语言(C和C++) 演变而来的,而且与Java紧密相关.c#语盲兼具 了c语言的强大底层控制功能、简洁性和可表达 性,以及c++的面向对象特性,同时也具有Java 的可移植性.在此基础上,C#语言实现了交叉语 言互操作性.
在.NET环境中,System.Security.Crypttogra— phy命名空间包含了与加密、签名相关的类.利用 这些类,我们就可以很方便地使用各种广泛使用 的算法,包括RSA,DSA和其他Hash算法.
CA管理服务器:主要负责证书、密钥、CRL 的管理和CA系统运行的管理.证书、密钥、CRL 的管理包括证书、密钥、CRL的更新、归档、撤消 和恢复等;CA系统运行的管理包括人员管理(如 权限管理)和系统配置及审计.
审计服务器:负责对存储备份及CA系统状 态查询、历史事件的记录、审计、汇总、报表和打印 等.
权威机构.认证中心通常采用多层次的分级结构, 上级认证中心负责签发和管理下级认证中心的证 书,最下一级的认证中心直接面向最终用户.认证 中心的主要功能:
·证书的颁发 ·证书的更新 ·证书的查询 ·证书的作废 ·证书的归档 1.2 数字签名”o 数字签名是通过一个单向函数对要传送的信 息进行处理得到的用以认证信息来源并核实信息 在传送过程中是否发生变化的一个字母数字串. 数字签名提供了对信息来源的确定并能检测信息 是否被篡改. 数字签名与数据加密完全独立.数据可以既
(RM.Key,False) EnctyptedSymmetfieIV=RSA.Enerypt(RM.
IV,False)
.NET Framework提供了以下类来实现数字 签名加密算法t
十DSACryptoServicePmvider 十RSACryptoServicePmvider
3 CA认证中心的软件系统实现
本系统主要采用.NET环境下的c#i吾言来实 现.
c蛞言是Microsoft公司为支持其.NET框架
的开发而设计的,它的出现代表了程序设计语言 的下一步发展方向.它利用并改进了久经试验的 各种特性,给现代的企业级计算环境(包括Win— dows、Interact以及组件等)提供一种非常有用而 且高效的编程方法.
பைடு நூலகம்
万方数据
哈尔滨师范大学自然科学学报
2003拒
Dim EncryptedSymmetricKey()As Byte Dim EncryptedSymmetrielV()As Byte
’Create a new instance of RSACryptoServi- ceProvider.
Dim RSA As New RSACryptoServiceProvider()