您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页一种将认证中心与业务系统整合方案

一种将认证中心与业务系统整合方案

来源:华佗小知识
第35卷第2期 2014年 4月 河南科技大学学报:自然科学版 Journal of Henan University of Science and Technology:Natural Science Vo1.35 NO.2 Apr. 2014 文章编号:1672—6871(2014)02—0038—06 一种将认证中心与业务系统整合方案 吴洁明,史建宜,李硕征 (北方工业大学信息工程学院,北京100144) 摘要:身份认证是保障业务系统安全的防火墙。使用CA认证中心虽然可以大大提高业务系统的安全性,但 是采用第三方CA认证中心,需要很大一笔费用。市场上业务系统的开发成本往往很低,使用第三方CA身份 认证来保证系统的安全性是不切实际的。针对这种情况,设计出一种适合开发成本低的业务系统的CA身份 认证方案,用开源的EJBCA实现第三方CA认证中心的功能;使用EJBCA的Web Service服务,实现业务系统 与EJBCA之间的信息交互及身份认证。这样,既可以保障业务系统的安全性,又可以大大缩减开发成本。 关键词:信息安全;EJBCA技术;认证中心;公钥基础设施;Web Service技术;业务系统 中图分类号:TP393.08 文献标志码:A 0 引言 公钥基础设施(PKI)是国际上解决开放式互联网络信息安全要求的一套体系。PKI体系支持身份 认证,信息传输、存储的完整性,消息传输、存储的机密性,以及操作的不抵赖性。PKI的核心就是CA (认证中心)。 CA认证技术是保障通信网络安全性的重要手段,它是以PKI为基础。现阶段,PKI/CA技术被广 泛应用到各种应用系统中。它是唯一能同时解决身份认证、访问控制、信息保密和不可抵赖性的安全技 术。其中,身份认证功能是整个PKI/CA的核心 。 身份认证是安全技术的一个十分重要的方面,它也是保障业务系统安全性的第一道关卡,只有实现 了合法有效的身份认证,才能对用户进行访问控制,一旦身份认证系统被攻破,系统的安全性设置就形 同虚设 。 目前,很多业务系统都希望实现更加坚固有效的身份认证。现阶段,大部分业务系统使用简单相等 身份验证的方式,对用户进行访问控制,但是这种方式存在安全漏洞。如果将CA与业务系统进行整 合,可以大大提高用户身份认证的安全性。目前,国内出现了很多CA认证中心,比如:北京数字认证股 份有限公司。现在越来越多的业务系统使用这种第三方的CA认证中心,来提高业务系统的安全性。 但是,如果在业务系统中使用这类CA认证中心,需要占用很大份额的开发经费。并且,随着市场竞争 越来越激烈,在整个业务系统开发过程中,都在尽量降低开发成本。因此,中小型企业对于在业务系统 中使用第三方收费的CA身份认证中心,变得望而却步。 针对以上这种情况,本 提出了一种用开源的、免费的CA认证中心,代替收费的第三方CA认证中 心,与中小型企业开发的业务系统进行整合实现有效的身份认证的方案,这种方案经济实惠、可行性强, 同时可以增强业务系统的安全性。 1 背景知识 1.1 EJBCA EJBCA是本方案实施的理论研究基础。EJBCA是一个基于J2EE技术的企业级的PKI证书颁发机 构。EJBCA由CA、RA(注册中心)、数据库、CRL(证书撤销列表)和LDAP(轻量级目录服务器)组成,其 中CA是EJBCA的核心组成部分。EJBCA是一个功能齐全的、免费的、开源的CA认证中心 ]。 基金项目:国家科技部支撑计划基金项目(2012BAH04FO1) 作者简介:吴洁明(1958一),女,河北保定人,教授,硕士,硕士生导师,主要研究方向为软件工程、面向对象技术 收稿日期:2013—08—29 第2期 吴洁明等:一种将认证中心与业务系统整合方案 ・39・ 1.2 EJBCA Web Service配置 EJBCA自从3.4版本之后,提供Web Service服务,在安装EJBCA时,需要通过配置来使EJBCA发 布Web Service服务。成功发布Web Service服务之后,就可以很方便地访问EJBCA Web Service提供的 各种服务,这有利于将EJBCA与业务系统更好地、更方便地整合到一起。 在搭建EJBCA环境时,使用的操作系统是Windows,EJBCA版本是3.9,此版本可以提供Web Service服务。MySQL作为保存CA信息的数据库,证书发布服务器使用的是开源的OpenLDAP,运行 EJBCA的应用服务器是JBOSS,版本为5.0.1。 此处简述EJBCA中配置和发布Web Service的过程: (1)启用EJBCA Web Service:在%EJBCA—HOME%\conf\jaxws.properties文件中,配置jbcaws. enabled项,将其设置为true。此设置表示将EJBCA部署到JBOSS时,发布EJBCA Web Sercvice服务。 其中,%EJBCA—HOME%代表的是EJBCA的安装路径。 (2)部署EJBCA:在%EJBCA—HOME%\bin\下,执行ant deploy。执行完毕后,EJBCA将成功部署到 JBOSS应用服务器上。 (3)启用JBOSS:在%JBOSS—HOME%\bin\下,执行run.bat,即启动JBOSS的服务。启动成功后,用 户可以通过浏览器访问EJBCA的服务。其中,%JBOSS—HOME%代表的是JBOSS的安装路径。 (4)配置域名:在hosts文件中,为EJBCA服务配置域名,添加一项:localhost ca.ejbca.con。此项表 示当访问域名ca.ejbca.eom时,其对应的实际IP地址就是本地IP。 (5)修改WSDL文件:在%JBOSS—HOME%\server\default\data\wsdl\ejbca.ear\ejbca—WS—ejb.jar\目 录下,存放的是EJBCA Web Service所对应的WSDL文件,每次启动JBOSS,都会重新发布一个新的 WSDL文件。本文修改最新生成的WSDL文件,配置其中的soap:address项,配置如下:<soap:address location=”https://ca.ejbca.eom:8443/eibca/ejbcaws/eibcaws”/>。 经过以上步骤,就完成了EJBCA的搭建和配置工作,EJBCA所能提供的主要功能结构如图1所示, 主要功能结构及描述如下。 获取 CRL 用于 证书 图1 EJBCA功能结构图 (1)MySQL数据库:数据库是整个EJBCA的基础。cA认证中心的各种数据,cA信息、证书信息、 CRL信息、用户信息、各种操作的日志信息都将存储到MySQL数据库中。 ・40・ 河南科技大学学报:自然科学版 (2)RA注册中心:RA注册中心相当于整个EJBCA的门户。普通用户通过浏览器可方便地进行用 户证书申请、证书文件下载、证书信息查看、证书状态查询等操作。管理员通过浏览器可以对用户和用 户证书进行管理,主要包括添加、删除、查看、修改、撤销等。 (3)CA认证中心:CA认证中心是整个EJBCA的核心和精髓之处。它的主要工作就是负责证书的 签发和认证。EJBCA能够很好地支持多级CA,可以根据实际的需要在ROOTCA下面生成多级SUBCA。 从而,实现更好的CA认证中心服务。 (4)JBOSS应用服务器:JBOSS应用服务器为整个EJBCA提供了运行空间。EJBCA所能提供的所 有服务都将在JBOSS上运行,用户通过JBOSS对服务进行访问。 (5)OpenLDAP:LDAP是一个目录服务器,也被称为证书发布服务器,主要功能是提供目录浏览服 务,负责将RA注册中心传送过来的证书信息加入到此服务器上。用户可以通过访问LDAP服务获得 数字证书信息和CRL证书撤销列表信息。EJBCA是开源的、免费的。所以,此处与EJBCA配合使用的 LDAP,选择使用了免费的OpenLDAP服务器。 (6)业务系统:此业务系统主要是需要整合CA认证功能的业务系统。业务系统可以通过JBOSS来访 问EJBCA所提供的各种服务,实现与EJBCA的交互,实现cA的身份认证,从而提高业务系统安全性 。 2 EJBCA与业务系统整合方案 2.1 编码申领业务系统 本文通过编码申领业务系统介绍EJBCA同业务系统整合的方案。 编码申领业务系统主要是基于B/S架构,实现音像制品的申报、审核、发码。每个编码将唯一标志 一个音像制品,为了确保编码能够实现其本身代表的意义,需要提高业务系统的安全性,确保只有真实 的编码,才具有实际的意义。 此编码申领系统在安全性方面有一定的要求,但是客户又希望尽量降低开发成本。为了同时满足 有效的用户才可以正常地登录到系统,进行音像制品编码的申领工作。只有这样,针对此音像制品发放 客户在这两方面的要求,使用EJBCA来实现CA身份认证功能。在使用基本的权限访问控制保障业务 系统安全性的基础之上,将EJBCA的功能与此业务系统进行整合。为此编码申领系统定制了一个符合 它需求的、功能齐全的CA认证中心。 使用这套整合方案,既能提高业务系统的安全性,又能大大地降低系统开发成本,可行性和实施性 好,经济实用。 2.2 EJBCA与编码申领业务系统整合 EJBCA与业务系统整合方案的整合过程中,主要活动分为如下3部分: (1)用户申请数字证书:每个在编码申领业务系统中的用户,需要到EJBCA中的RA用户注册中 心,申领自己的数字证书。 (2)制作数字证书:用户申请证书的信息,经过CA中心的RA审核人员的审核,将把数字证书对应 的证书密码,以邮件的形式返还给申请用户。用户以用户名和证书密码,到EJBCA网站进行证书文件 下载。此时,可以购买USB—KEY,本文使用的是飞天诚信的USB—KEY,通过它提供的证书导入工具,将 证书文件导人到USB.KEY中。 (3)用户登录:为了提高编码申领系统的安全性,在用户登录的时候,首先对用户名和密码进行判 断,判断通过;随后,对用户的USB—KEY的有效性进行验证,验证通过;最后,通过使用用户输入的USB— KEY密码读取用户证书信息,通过EJBCA Web Service在线判断当前数字证书的有效性。从而可以实 现用户身份认证,大大提高系统的安全性。 EJBCA与业务系统整合方案的整体流程图,如图2所示。 具体流程分析及描述如下: 第(1)步:用户申请证书。编码申领业务系统中的用户,需要到EJBCA申领自己的数字证书。用户 访问EJBCA网站,在RA注册中心填写并提交用户证书申请信息,等待审核。 第2期 吴洁明等:一种将认证中心与业务系统整合方案 ・41・ l未申请证书的用户l ● t 编码申领 务系统I l BcA服务网站l 第(1)步  lRA审核用户I 第(2)步 LWl = Dt ~.L舢I口口  日 -l I证书密码 ・l挹棼证书申请巍息l -l用户申请审核 通过 l由萌牛通知用户 第(3)步 访问EIB 艮务网 ・l下载证书 ‘ I证书文件1. 导入到USB KEY 第(4) 。 /\\/ 涧编码申 【 系统I  1l且眨. i‘: 轱lLl l 第(5)2眵  失 败 l ———用户名、密码判 ◇ 成功 第(6) 第(7)步 不 USB KEY- ̄l---一 —— 1证书是否撤销l 匦 生I衢 一 威功——_<.> 失败 \ -/ 、 图2 整合流程的整体流程图 第(2)步:审核用户证书申请。EJBCA中有RA审核角色的用户,此RA用户将对用户的证书申请 进行审核。审核通过,此用户证书文件对应的密码将以邮件的形式发给用户,此密码是随机的4位数 字,密码的长度可以通过在EJBCA的用户注册模板中进行配置,比如:可以是长度为6或8的随机数字 等;审核不通过,用户将变成失败状态。 第(3)步:下载用户证书。用户收到邮件后,访问EJBCA网站,可以进行用户证书文件下载,下载时 可以选择生成证书密钥的长度,主要有1 024和2 048两种长度。证书有pfx、pem、ccr等格式,可以根据 具体需要进行配置。 第(4)步:用户证书导人USB KEY。每个生产USB KEY的公司,一般都会提供相应的证书导人工 具。使用所购买的USB KEY公司提供的导人工具,将下载的用户证书文件导入到USB KEY中。 第(5)步:用户名、密码判断。用户登录编码申请业务系统时,需要输入用户名、密码、USB KEY密 码。首先需要对用户输入的用户名和密码进行判断,判断数据库中是否存在对应用户。 第(6)步:USB EY验证。根据用户输入的USB KEY密码,读取证书信息,需要对证书的有效性、 时间是否在有效期内等信息进行简单的判断。 第(7)步:证书是否撤销。调用EJBCA Web Service中的证书撤销状态查询服务,判断证书当前的 撤销状态,从而能检测出用户证书当前处在什么状态,是有效状态还是撤销状态。 2.3具体实现过程 在将EJBCA整合到编码申领业务系统的过程中,主要包括3步:用户申请数字证书、制作数字证 书、登录系统。其中,前两步主要体现了如何使用EJBCA;第3步主要体现了业务系统如何与EJBCA Web Service服务进行信息交互。因此,此处详细介绍用户登录部分。 用户登录具体可以分为3步: ・42・ 河南科技大学学报:自然科学版 (1)用户名和密码判断,主要是查找对应的用户名和密码的用户在数据库中是否存在。 (2)使用用户输入的USB.KEY的密码,读取USB—KEY中的证书信息,对证书进行简单的有效性判 断,主要包括判断证书是否有效、是否在证书有效期内。主要代码如下: (I)Certiifcate[]certs=keyStore.getCertificatechain(keyAlias); (II)X509Certificate x509Certificate=(X509Certificate)certs[0]; (1lI)x509Certiifcate.checkValidity(); (1V)x509Certiifcate.checkValidity(date)。 第(I)行:查看与给定别名关联的证书链。 第(Ⅱ)行:取出第一个证书。 第(Ⅲ)行:验证证书目前是否有效。 第(1V)行:检查证书目前是否处于有效期内。 (3)证书撤销判断,使用EJBCA Web Service所提供的证书撤销状态服务,查询此证书是否已经被 撤销。主要代码 如下: (I)ejbcaraws=getEjbcaWS(); (Ⅱ)RevokeStatus revokeStatus=ejbcaraws.checkRevokationStatus( x509Certificate.getIssuerx5O0Principal().toString(), x509Certiifcate.getSerialNumber().toString(16)); (Ⅲ)XMLGregorianCalendar xmlGregorianCa1endar: revokeStatus.getRevocationDate(); (Ⅳ)GregorianCalendar gregorianCalendar = xmlGregorianCa1endar.t0Greg0riancalendar(); (v)SimpleDateFormat simp1eDateFormat= new SimpleDateFormat(”YYYY—MM—dd”); (VI)String dateTimeString:simp1eDateFormat. format(gregorianCalendar.getTime()); (VII)if(!.f 1970—01—01”.equals(dateTimeString))flag:false; (VIII)Integer reason=revokeStatus.getReason(); (1X)if(!reason.equals(一1))flag=false。 第(I)行:初始化EJBCA Web Service服务,得到EjbcaWS对象ejbcaraws。 第(Ⅱ)行:调用EJBCA Web Service中的checkRevokationStatus()服务,得到此证书的当前撤销状 态。 第(Ⅲ)行:从RevokeStatus(证书撤销状态)对象中,取出证书撤销时间。 第(IV)~(VI)行:时间格式转换。将xMLGregorianca1endar格式的证书撤销时间,最终转换成 “YYYY・MM—dd”格式的、字符串类型的证书撤销时间。 第(VII)行:每个证书默认的证书撤销时间为格林威治标准时间(世界时)。如果撤销时间与格林威 治标准时间(1970—01—01)不相同,说明证书被撤销,现在处于撤销状态,把flag设置为false。 第(Ⅷ)行:取出证书撤销原因的状态。 第(IX)行:每个证书默认的证书撤销原因的状态为“一l”,此状态代表证书没有撤销。如果证书被 撤销,此属性将被设置为相应的撤销原因。如果撤销原因状态与“一1”不相等,说明证书被撤销,现在 处于撤销状态,把flag设置为false。 当所有验证过程执行完毕,lfag仍然为true。此时,说明此用户为真实有效的合法用户,用户身份认 证成功,用户可以成功登录到编码申领系统,进行制品申报等业务操作了 。 2.4结果分析 现阶段,普通的业务系统进行的都是简单相等验证,即实际用户名和密码哈希值的简单相等验证。 第2期 吴洁明等:一种将认证中心与业务系统整合方案 ・43・ r;] 此验证方法实质上就是判断用户和密码哈希值是否匹配。针对每一个用户,每次验证时在网络上传输 的用户名和密码都是一样的,这是一个安全漏洞。 将EJBCA的CA身份认证功能添加到编码申领业务系统中,在简单相等身份验证的基础之上,添 加了一层CA的身份认证。CA认证是十分安全可靠的,从而大大提高了业务系统的身份认证安全。 在经济效益方面,一个业务系统想要使用第三方CA认证中心,需要增加很多费用,包括CA认证服 务器购置的费用;制作CA证书的费用;CA证书维护费用等,仅仅是以上几项,大致需要几十万元,这使 得很多业务系统对于CA认证都望而却步。 本方案中,使用免费的、企业级的、功能齐全的EJBCA实现CA认证中心。客户只需要花费一定量 的费用购买USB KEY即可,此部分费用大致几百元到几千元。本方案为业务系统提供相同级别的安 全,却大大降低了费用。 3 结束语 互联网的飞速发展,给人们生活带来方便的同时,也带来很多安全方面的隐患。越来越多的业务系 统希望提高安全性,但是,又很顾忌使用第三方CA认证中心带来的巨大开销。所以,本文提出使用开 源的、免费的CA认证中心——EJBcA。针对业务系统的具体需求,搭建自己的CA认证中心。这种方 式灵活性非常强,比如:用户不需要通过LDAP查看证书信息和证书撤销列表,在整个EJBCA中就可以 不搭建LDAP部分。通过配置EJBCA Web Service服务,使得业务系统可以十分方便地与EJBCA进行 信息交互,实现用户的身份认证,从而得以保障业务系统的身份认证的安全性。而且,使用EJBCA所产 生的费用,相对来说是十分低廉的。 下一步主要有两项工作:第一,实现EJBCA的多级CA,这样更加有利于实现对用户证书权限的控 制;第二,业务系统结合CA实现更加安全可靠的用户身份认证。在此基础之上,希望可以结合其他信 息安全方面的技术,对业务系统中需要在网络间传输的数据进行安全操作。比如,实现制品申报数据的 数字签名、多人数字签名、数字信封等功能。从而,进一步提高业务系统的安全性。 参考文献: [1] 颜海龙,喻建平,胡强,等.基于PKI/CA的分布式跨域信任平台研究与实现[J].计算机工程与设计,2013,34(2) 686—690. [2] 钱晓捷,赵亚涛,宋兵.容忍入侵的CA方案设计与实现[J].计算机工程与设计,2011,32(10):3262—3265. [3] 颜海龙,闫巧,冯级强,等.基于PKI/CA互信互认体系的电子商务[J].深圳大学学报:理工版,2012,29(3):113 】】7 张虎强,洪佩林,李津生,等.用户名密码认证方案的安全性分析及解决方案[J].计算机工程与应用,2006(33): l02一lO6. 陈勤,凌青山,丁宏.安全CA实例一EJBcA的研究[J].计算机工程与设计,2005,26(12):3222—3224. 王代,陈长海,熊允发.大学PKI/PMI身份认证与授权访问系统分析[J].中国人民大学学报:自然科学 版,2012(1):49—52. 刘博,刘知贵,任立学.PKI认证技术在阅卷系统中的应用与实现[J].计算机安全,2010(5):83—85. 吴鹏,王晓峻,苏新宁.基于PKI/PMI的Web应用安全解决方案[J].计算机工程与应用,2006(6):1—3. 徐歆恺,梁军.巧用CAPICOM进行安全通信[J].计算机与网络,2009(18):53—55. 周志刚,徐芳,肖晓华,等.在Java中进行数字签名的一种实现方法[J].科学技术与工程,2006,6(17):2752— 2754. 张青凤,张凤琴.CryptoAPI在基于数字证书身份认证系统中的应用[J].现代计算机,2011(1O):28—31. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务