基于OPENSSL的证书中心的构建

来源 :硅谷 | 被引量 : 0次 | 上传用户:leoric
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: 证书中心是信息安全保障的重要基础设施,主要讲述OPENSSL的主要层次结构,以及如何使用OPENSSL的相关功能来实现证书中心的主要功能,并指出了使用OPENSSL构建证书中心的优点。
  关键词: OPENSSL;证书中心;X509;密码算法
  中图分类号:TP309.1文献标识码:A文章编号:1671-7597(2010)0910185-01
  
  0 引言
  随着信息技术及电子商务的发展,信息系统的安全性越来越重要,其中数字证书是保障信息系统安全的重要技术。基于PKI体系,数字证书能够为系统的安全提供一个良好的基础,而这个体系中的核心便是证书中心,证书中心是证书颁发、撤销机构,一般简称为CA。在一个需要安全保障的系统中,构建一个良好的、标准的证书中心能够为系统的安全保障提供良好的服务。
  现在证书均是基于X509标准,该标准比较复杂,其中用到了很多的密码算法,如果从底层做一个标准的证书中心,难度是非常大的。而OPENSSL弥补了这方面的不足,OPENSSL是一个开源项目,是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,其基于标准C语言开发,能够用于Winows、Linux等主流操作系统。OPENSSL包含了大量的密码算法和协议,能够方便为证书中心的开发提供服务。本文首先介绍了OPENSSL主要结构,然后讲述了如何用OPENSSL来开发证书中心。
  1 OPENSSL的构成
  OPENSSL的本意是为SSL安全协议提供一套工具包,以便于SSL协议的开发,然而OPENSSL用途绝不仅限于此,除了为SSL安全协议的开发工具包外,还有很多其它的安全工具包构成,总结起来,OPENSSL主要由以下几部分构成:
  1)各种密码算法的封装,其中包括非对称算法、对称算法、数字摘要算法等,基本涵盖了目前使用的各种密码算法。
  2)证书等相关操作的封装,包括证书请求、证书、证书撤销列表各种对象的封装,及其生成、解析等主要函数也包括在其中。
  3)SSL协议的封装,支持SSL3.0及TLS1.0协议。
  4)一套命令行工具,通过这些命令行工具能够方便用户使用OPENSSL的各项功能,但功能相对较弱。
  在证书中心的构建过程中,主要使用OPNESSL中的1、2、4部分,即其中的密码算法和证书相关操作的封装及相关命令。
  2 证书中心的实现
  下面主要说明了证书中心的主要功能,及如何使用OPENSSL进行实现。一个完善证书中心主要包含以下功能:
  1)根证书、根私钥的生成:每个证书中心都有一个根证书,同时还有一个与证书相对应的私钥,该证书和私钥是由证书中心初始化的时候生成,其主要用于对用户证书的签名。
  可以使用OPENSSL相关命令完成该步骤:
  首先生成CA私钥:
  openssl genrsa -out cakey.pem -rand .rand 1024
  然后生成证书:
  openssl req -new -out careq.csr -key cakey.pem
  openssl req -new -x509 -days 3650 -key cakey.pem -out cacert.cer -config openssl.cnf
  2)用户证书的生成:使用根证书对用户提交的公钥和身份信息进行签名,生成符合X509标准的用户证书。
  可以使用在程序中调用OPENSSL提供的密码算法和证书接口完成,重要步骤如下:
  X509*x=X509_new();//新建证书
  X509_set_version(x,3);//设置证书版本
  ASN1_INTEGER_set(X509_get_serialNumber(x),sn)//设置序列号
  X509_gmtime_adj(X509_get_notBefore(x),0))//设置开始时间
  X509_gmtime_adj(X509_get_notAfter(x),times);//设置有效期
  X509_set_subject_name(x,subject);//设置主体名
  X509_set_pubkey(x,pkey);//设置公钥
  X509_set_issuer_name(x,issuername);//设置发行者
  X509_sign(x,cakey,EVP_md5());//进行签名
  3)用户证书的撤销:当用户证书丢失时,可以将其撤销,并交撤销的证书编号放入证收撤销列表(CRL)中,其核心代码如下。
  X509_CRL*crl=X509_CRL_new();//新建CRL
  X509_CRL_set_...(crl,…);//设置CRL相关信息
  X509_CRL_add0_revoked(crl,revoked);//在CRL中加入撤销项
  X509_CRL_sign(crl,cakey,EVP_md5());//对CRL进行签名
  以上是一个证书中心的主要功能,除此之外,还有一些额外的工作,比如管理界面、证书数据库的操作、证书查询功能等,这些功能是常见的管理系统的功能,在这里就不再详述。
  3 结论
  OPENSSL是一个封装良好的密码函数库,通过其构建证书中心,不但开发速度快,而且扩展性和兼容性都非常好,特别适合于在中、小型系统中证书中心的开发。
  
  参考文献:
  [1]张巍,认证中心CA的设计与实现[D].四川大学,2003.
  [2]杜广荣,PKI证书管理策略的研究与实现[D].东南大学,2005.
  [3]陈晓果,OpenSSL的组件化封装研究与实现[D].西南交通大学,2006.
  
  作者简介:
  郭丽(1980-),女,河南省南阳市人,学士,河南工业设计学校(助教),主要研究方向为计算机网络。
其他文献
摘要: 网页制作课程对于电子商务专业的学生比较有难度,结合电子商务专业学生的特点,对教学改革进行探讨,提出改革办法,以增强学生的学习兴趣,提高学生的动手操作能力。  关键词: 网页制作;电子商务;教学改革  中图分类号:G642文献标识码:A文章编号:1671-7597(2010)0910165-01    0 引言  电子商务专业是融计算机应用、市场营销学等于一体的新型交叉学科。主要培养掌握计算
“马上要毕业了,我想依靠自己所学的技术去创业!”7月,新一批大学毕业生走出校门,开始投入工作。北京交通大学电子与信息工程学院的小郭对工作的期望则是自己创业。小郭的愿望并非遥不可及,去年中科院硕士毕业的李小军就实现了。在一间不到20平方米的房间里:三张大办公桌、几把配套的座椅,还有几台电脑,简单的“装备”倒让不大的空间显得宽敞李小军就在这里办公。这也是清华大学国家大学科技园“高校学生科技创业实习基地