




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\h\u96891引言 161132基于Linux的web证书服务设计 1105822.1设计目标 1122202.2整体设计 2225012.2.1系统框架设计 2108262.2.2服务定义 470822.2.3业务流程设计 4292632.3模块具体设计 61952.3.1证书服务中心设计 697782.3.2泛RA服务模块设计 7275672.3.3实体用户服务模块设计 8167113基于Linux的web证书服务的实现 9143403.1证书服务中心的实现 9287213.2泛RA服务模块的实现 11106683.3实体用户服务模块的实现 1329088参考文献 15基于Linux的web证书服务设计与实现摘要:公钥基础设施(PublicKeyInfrastructure,PKI)是建立在公钥密码体制上的信息安全基础设施,为应用提供身份认证、加密、数字签名、时间戳等安全服务。数字证书认证中心(CA)是其核心部件,它的主要任务是数字证书、证书废除列表CRL的签发及管理。PKI已广泛用于保障电子商务和电子政务的安全。然而,需要使用PKI技术的机构用户并非都具有设立自己的PKI系统的技术和硬件条件,这些机构用户希望不设立相关系统,即能享受PKI技术的相关服务。于是,一些数字证书的公司开始提供基于PKI技术的服务,这些服务被称为证书服务(也称PKI服务)。证书服务的出现,使PKI的应用更加全面,也为一些中小型机构带来了福音。本文对证书服务的现状作了探讨和分析,针对其中的托管服务提出了存在的问题,探讨了解决方案—采用WebService技术,整合两种托管服务,分模块实现服务安全性等,并在这些分析的基础上对基于Linux的web证书服务应用系统作出了设计,并加以实现。关键词:Linux;web;证书服务;PKI;JSP1引言PKI作为网络安全最基本的技术,正得到日益广泛的应用,为电子商务、电子政务等网上交易与活动保驾护航。近年来大部分的系统都融入了SoftwareasAService的概念,SOA也已经越来越多的融入到各种系统中,作为安全基础设施,PKI也应该作相应调整。此外,对于安全的需求,使PKI技术的使用者扩展到了不少中小型机构,然而并非所有这些机构都具有自己PKI系统的条件,如何让这些机构在不架设PKI系统的情况下也能享受到PKI带来的服务,也成为了一个重要问题。对应上面两个问题,证书服务孕育而生,为PKI应用提供了多元化的发展。然而证书服务的一些模式亦存在着一些问题,如果能够在证书服务的实现成本和服务整合,以及服务本身的安全性方面做更多的探索,将大大推动证书服务的发展与普及。2基于Linux的web证书服务设计2.1设计目标基于第二、三章的技术研究和的分析,我们可以设计一套基于WebService的证书服务。该服务将提供较为全面的证书管理所需要的一系列操作,另外,此证书服务还提供如数据存储、发放实体证书等可选服务模块,用户可以根据实际情况选择。具体设计目标包括:1.全面的服务内容此证书服务提供除:个人证书以及服务器证书的申请、证书申请、证书更新、证书撤销、证书状态查询等服务外,还提供针对机构用户的完全托管证书服务(ManagedPKIService)和定制托管证书服务(PKIHostingService)。2.模块化可选服务此证书服务除核心服务外,根据用户需要提供模块化可选服务,包括:#fill。此外,证书申请、更新等服务可选择不同方式—如CA产生私钥对发送给实体用户,或只发送公钥到CA,等等。3.统一接口、可用性可扩展性强服务的接口和地址等都基于标准进行定义,具体实现的语言和平台没有特殊限制,通信相关的实现较简单,具有可扩展性强和便于与其他系统整合的特点。4.安全性佳通信消息内容中的重要部分的安全性和完整性得到保证、发送方和接收方的身份可以得到认证。消息的路由不被加密,可以被中间点读取,顺利转发至指定接受方(Endpoint)。2.2整体设计2.2.1系统框架设计证书服务的系统框架主要分为三块:证书服务中心、RA、实体用户。框架设计如图2-1所示:图2-1证书服务系统的框架设计证书服务中心—提供证书服务,是整个系统的核心。其中:1.证书服务接口,接收来自RA部分的申请消息;2.分发模块,主要负责将消息按照操作的类型和客户类型等进行分发处理;3.CA模块,是业务核心模块,主要负责证书签发、证书更新、证书撤销、发布CRL等;4.数据存储模块,负责存储用户和证书的相关数据;5.实体用户模块,是整个服务与证书实体用户之间的窗口,其中包括用于证书下载安装/验证的服务中心Web网站,和Email发送两个子模块。泛RA方面—证书服务的RA方面,接受服务的方法可以通过以下三种:1.特殊RA,主要负责如站点证书申请/更新/撤销、LRA证书申请/更新/撤销,以及个人用户业务等;2.LRA自开发系统,指机构用户根据服务定义的接口,与原有系统整合,或开发相应系统。LRA通过此自开发系统可接受证书服务中心提供的定制托管服务(PKIHostingService);3.审批中心网站,为没有自开发系统的LRA提供服务平台,当LRA获得对应的审批证书后,即可登入审批中心网站进行证书服务的相应操作。审批中心网站的设立是为了向一些中小型机构用户提供完全托管服务/RA托管服务(ManagedPKIService)。实体用户—证书实体用户,只需拥有基本的网络连接、邮箱地址和浏览器,即可接收证书服务。证书服务将通过Email发送通知和Web链接,由用户在Web网注册安装证书(CertificateEnrollment)以及通过Email直接发送证书等形式,向实体用户提供服务。2.2.2服务定义证书服务中心提供以下种类的服务:1.证书申请–包括实体个人证书申请,以及站点证书申请。实体个人证书申请中可选择:(a)由证书服务中心生成密钥对,或者(b)用户自己生成密钥对两种方式。2.证书更新–包括实体个人证书更新,以及站点证书更新。实体个人证书更新中可选择:(a)由证书服务中心生成新的密钥对,或者(b)用户自己生成新的密钥对两种方式。3.证书撤销–由于密钥泄漏,或者用户状态发生变化时,由LRA或者实体用户通过LRA可进行证书撤销。被撤销证书将被加入CRL列表。4.证书查找–LRA或用户可以通过证书的序号、主体名、颁发者、有效期限、经办人等信息对证书进行查找。查找后返回证书详细信息以及公钥证书的下载URL地址。5.证书状态查询–可以通过证书的颁发者以及序号对相应证书的状态作查询。2.2.3业务流程设计1.证书服务整体流程完整的证书服务的典型业务流程的设计如图4-2所示:图2-2证书服务完整业务流程对应上一节服务定义中的核心服务内容,分别对证书申请、证书更新、证书撤销服务设计业务流程。2.证书申请流程证书申请有两种可选方式:(a)用户自己不产生密钥对,由证书服务中心一并产生;(b)用户自行产生密钥对,后将标准格式的证书申请(PKCS#10)发由证书服务中心批准。证书申请(a)、(b)方式的流程如图2-3和图2-4所示:图2-3证书申请流程(a)图2-4证书申请流程(b)3.证书撤销流程证书撤销可由实体用户向LRA提出,再由LRA审核后向证书中心提交撤销申请;也可由LRA根据实体用户及其所属单位的相关变化,直接向证书中心提交撤销申请。证书撤销流程如图2-7所示:图2-7证书撤销流程2.3模块具体设计2.3.1证书服务中心设计证书服务中心是证书服务的提供者,主要由证书服务接口、分发模块、CA模块、数据存储模块、实体用户服务模块组成。实体用户模块的设计将在后面介绍,这里对其余子模块的设计进行描述:证书服务接口,是指连接泛RA方面,接受其服务申请并返回结果的接口。证书服务中心与泛RA方面的通信采用SOAP协议。在前面的整体设计中已经描述了服务定义语言WSDL的设计,定义了与泛RA方面的服务操作(Operations)通讯的请求与相应消息的格式(Message)等。因此证书服务接口相当于是WebService中的Skeleton模块,即证书服务中心内部消息参数与标准的由WSDL定义的通信消息之间的转换模块。分发模块,根据通信消息中的操作类型(如申请、更新,还是查询等)、申请证书的制定颁发机构(issuer)、操作员ID(OperatorID)等信息,将消息分发给不同的功能模块。CA模块,是真正执行证书服务业务逻辑的核心。CA模块以功能模块的方式,又分为申请管理签发、存储、密钥管理、验证、OCSP以及维护等模块。申请管理模块封装了证书申请、证书撤销申请以及申请信息管理(条件查找、否决、删除)等功能。签发模块用于证书、CRL的签发。存储模块用于证书、CRL的存取。密钥管理封装了密钥对产生、密钥对存取以及密钥对管理(备份、恢复)。验证模块需要使用存储模块来获取证书的状态,从而可以验证证书的有效性。OCSP模块以验证模块的验证性为基础,提供了解析OCSP请求(OCSPRequest)以及生成相应的OCSP响应(OCSPResponse)的功能。维护模块主要用于CA的日常维护,它以计划的方式定期执行数据备份、垃圾信息清除以及过期证书检查等等行为。数据存储模块又分为两层:数据层与数据集成层。数据层为系统的持久数据源(例如数据库等),该数据源保存了证书/证书撤销申请信息、已签发的证书信息、证书的撤销列表、密钥库以及系统的日志信息等等PKI系统中需要持久化的相关信息。数据集成层的主要功能是为其他模块的应用提供一个访问数据层的方式。它封装了对数据层访问的具体细节,这样业务逻辑层不与数据层直接交互,所以就无需关心数据层的相关细节。该层中的“申请信息”、“证书信息”、“撤销列表”、“密钥对”以及“日志”五个模块分别封装了数据层中申请信息、证书信息、撤销列表、密钥库和日志五个数据源。封装的典型方式是对象-关系映射(Object-RelationalMapping)。数据集成层中还有一个DAO(DataAccessObject,数据访问对象)模块,该模块的主要功能是用于实现复杂的或是大规模的数据查询,例如检索或是分页。因为系统如果使用对象-关系映射实现数据访问封装时,大量的结果数据会造成系统在数据集成层处会有大量的对象,这样会非常耗费系统资源,使用DAO模块可以很好的解决这个问题。2.3.2泛RA服务模块设计从2.2.1节整体设计框图2-1可知,泛RA方面分为三块:特殊RA、LRA用户系统接口、审批中心网站。其中,特殊RA与审批中心网站由证书服务中心实现建立、运行与维护。特殊RA,由证书服务中心建立,其运行管理人员和维护人员也由证书服务中心指派。特殊RA主要负责站点证书的申请受理、审批,和无对应LRA的个人用户证书的申请受理、审批,以及一些特殊用途证书的业务受理(如代码签名证书等)。特殊RA的构成主要由应用程序主体、与证书服务中心的接口、用户注册管理及数据备份的数据系统等组成。LRA用户系统接口,一般由机构用户根据自己原有待整合系统与数据,及服务定义WSDL进行开发。简单地说,LRA用户系统接口相当于是WebService中的Stub功能模块,它可以用任何语言在任何平台上实现。审批中心网站,主要针对没有条件自己建立LRA用户系统接口和配套应用系统的机构用户,为他们提供轻松登录,进行业务受理、审批作业的平台。审批中心网站采用B/S架构,机构用户无需安装客户端,亦免去了服务升级或需要改动时对客户端的影响。同时,审批中心网站与证书服务中心之间的通信建立WebService技术上,基于统一的WSDL服务定义,这样的松耦合还将增强模块独立性,减少改动时的相互影响。2.3.3实体用户服务模块设计实体用户服务模块,是指证书服务中心与实体用户交互的模块,是证书中心的一个部分。实体用户服务模块主要包括两个子模块,即Email系统与实体用户服务中心网站。Email系统负责对实体用户发送邮件。发送的邮件包括更新提醒通知邮件、证书安装链接邮件、证书寄送邮件、撤销结果告知邮件、暂停服务通知邮件等。几乎每个与实体用户相关的服务都少不了发送邮件的服务,服务操作内容与邮件服务的具体关系描述如下:1.证书申请(a)(证书服务中心生成密钥对申请方式)--由于证书的密钥对由证书服务中心生成,因此用户无需登录服务中心网站进行证书注册安装(Certficateenrollment),只需用邮件服务直接将公私钥证书寄送给用户即可,此邮件称为“证书寄送邮件”。2.证书申请(b)(用户自行生成密钥对申请方式)--如果证书的密钥对由用户自行产生后,以标准证书申请格式发送给证书服务中心,若申请成功,实体用户还需要登录服务中心网站进行证书注册安装(Certficateenrollment)。服务中心网站的URL和随机码(challengecode)由证书服务中心的邮件告知,此邮件称为“证书安装链接邮件”。3.证书更新(a)(证书服务中心生成新密钥对申请方式)--首先由证书服务中心发送“更新提醒通知邮件”,提醒用户证书的有效期限,告知用户更新申请的截至时间。之后的操作与证书申请(a)相似,最后向用户发送“证书寄送邮件”。4.证书更新(b)(用户自行生成新密钥对申请方式)--首先由证书服务中心发送“更新提醒通知邮件”,提醒用户证书的有效期限,告知用户更新申请的截至时间。其余操作与证书申请(b)相似,最后向用户发送“证书安装链接邮件”。5.证书撤销--指定证书被撤销成功后,无论是否由证书持有者本身提出撤销申请还是由LRA根据用户信息的变化情况提出撤销申请,其余须由证书服务中心向证书持有者发送撤销成功的证书信息以及具体的撤销时间等,此邮件称为“撤销结果告知邮件”。6.其他--当证书服务中心因维护而需要暂停服务时,须提前向用户发送通知,如“暂停服务通知邮件”。当服务内容或流程发生变化时,证书服务中心也须向实体用户告知。3基于Linux的web证书服务的实现3.1证书服务中心的实现在2.3.1节中提到,证书服务中心的组成主要包括证书服务接口、分发模块、CA模块、数据存储模块、实体用户服务模块。具体实现中,对应如下:证书服务接口对应实现为WebService的服务端(Skeleton)功能模块,Skeleton用Java语言实现;分发模块与其他如检查功能和数据类型转换功能,并入一起,在DynamicWebProject(Java语言)中实现;CA模块的主要业务逻辑封装为EJB来实现。DynamicWebProject中的分发模块将业务申请分发到对应的EJB,对应的会话EJB将作为数据集成层中那些实体EJB的会话外观,如图2-1所示。图3-1证书服务系统组件中的会话外观数据存储模块,按照2.3.1的设计,分为数据层与数据集成层。数据层中的持久数据源可以使用关系型数据库实现,这里选择了Oracle10g数据库系统。5个数据表分别存储了申请信息(包括更新申请)、证书信息、撤销列表、密钥对以及系统日志。数据集成层中的申请信息(包括更新申请)、证书信息、撤销列表、密钥对、日志五个模块可以使用实体EJB实现,这五个实体EJB分别与数据层中的五个数据表形成对象-关系映射。结合上述对应,证书服务中心具体采用J2EE与WebService等技术实现,具体实现如图3-2所示:图3-2证书服务中心的实现CA业务逻辑和数据集成的EJB,分发模块等的实现—DynamicWebProject,数据存储模块,以及服务接口—WebServiceskeleton,都是在IBMWebspere3.2泛RA服务模块的实现如2.3.2节的设计,泛RA分为特殊RA、LRA用户系统接口、审批中心网站。这三块内容相互独立,都是一边以WebService与证书服务中心通信,另一边是RA的注册审批管理业务系统。其实现分别为:特殊RA的操作、管理和维护人员都由证书服务中心指派,实际上是作为证书服务中心的一个延伸部分,特殊RA模块的实现为了可适应于不同平台,采用JavaApplication的形式,如图3-3所示:图3-3特殊RA的实现特殊RA模块的注册审批管理中包括用户注册、申请管理、审批记录三个主要业务。这三个内容的操作对应有相应的界面、逻辑类和数据类。与证书服务通信的接口为WebService的客户端(Stub),实现可使用一些自上而下(Top-Down)的WebService代码生成工具(如IBMRAD的WSDK,或Axis2的Wsdl2java等),这里使用的是在IBMRAD中由WSDL文件建立WebService的客户端,完成相应设定后生成Stub。数据存储采用MySQL数据库,数据库中主要包括用户注册信息、申请管理信息、审批记录信息和日志这四个表。LRA用户系统接口,是用于LRA机构用户自建(或整合)系统与证书服务中心的通信。本文的研究中对LRA用户的自建系统也做了示例性的实现,如图3-4所示:图3-4示例LRA自建系统的实现为更好地体现WebService跨平台、与实现语言无关的特点,这个示例LRA自建系统是在.NetFramework1.1上进行开发和整合的。LRA机构用户的待整合系统与数据分别为.Net架构的人事管理系统和使用SQLSever2000的数据。将注册审批管理模块作与人事管理系统进行整合,注册审批管理的数据存储也使用原来的SQLSever,同时在用户注册时,调用人事管理系统信息,此外LRA通过认识管理系统的信息变动情况,在必要时向证书服务中心提交证书撤销申请等。审批中心网站,采用B/S架构,LRA机构用户通过浏览器登陆审批中心网站执行职能。审批中心网站的实现使用了TomcatServer和MySQL数据库,如图3-5所示:图3-5审批中心网站的实现JSP为表示层,负责与用户的交互。主要业务逻辑在Servlet中,其中的注册审批管理模块,与特殊RA的实现相似。WebService的Stub,采用了Axis2的wsdl2java工具。3.3实体用户服务模块的实现在2.3.3节中提到的,实体用户服务模块,主要负责与证书实体用户的交互,结构上主要包括Email系统和用户服务中心网站(如图3-2中所示)。Email系统:首先由于系统运行于Linux上,Email系统的使用了SendMail作为邮件服务器,SquirrelMail作为Webmail进行实现。SendMail为Linux上非常流行的开源的邮件服务器。Sendmail的配置步骤为:1..打开imap服务,编辑/etc/xinetd.d/imap文件将“disable=yes”改为“disable=no”后重新启动xinetd:命令为“servicexinetdrestart”。2.配置sendmail服务器备份默认的配置文件使用命令:#cp–R/etc/mail/etc/mail.bak编辑/etc/mail/sendmail.mc文件,将下面一行:dnldefine(`SMART_HOST',`vider')改为:define('SMART_HOST','')(注意:用自己的合法的域名代替)。然后运行M4程序,生成SendMail配置文件,命令为:#m4/etc/mail/sendmail.mc>/etc/mail/sendmail.cf编辑上一步生成的sendmail.cf文件,将:ODaemonPortOptions=Port=smtp,Addr=,Name=MTA改为:ODaemonPortOptions=Port=smtp,Addr=8,Name=MTA最后为能解析本地主机名,将主机域名加到/etc/mail/local-host-names文件中。Squirrelmail是比较流行的Webmail开源程序,使用php4开发,可以作为Web收发邮件收发界面。用户服务中心网站:在2.3.3节中的设计提到,实体用户服务中心网站的主要功能包括证书申请对应的证书注册安装、证书更新对应的证书注册安装、公钥证书查询/下载、信息发布等内容。由于此模块为证书服务中心的一部分,因此共用资源—
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件设计师考试技巧分享试题与答案
- 各类网络设备的功能特点试题及答案
- 阿里java内推面试题及答案
- 标志建筑面试题及答案
- 软件设计师考试准备工作指导试题及答案
- 投资政策的吸引力与保障措施试题及答案
- 项目成功关键因素识别试题及答案
- 项目管理中的数字化工具应用试题及答案
- 探讨西方政治制度对社会稳定的保障试题及答案
- 机电工程面试准备试题及答案
- 2025年小学语文毕业升学全真模拟试卷(古诗词背诵默写)历年真题回顾
- 东莞滨海湾新区管理委员会下属事业单位招聘笔试真题2024
- 2025届中考地理全真模拟卷 【江苏专用】(含解析)
- 安徽宣城郎溪开创控股集团有限公司下属子公司招聘笔试题库2025
- 2025届江苏省高三高考科研卷语文试题及参考答案
- 统编版语文六年级下册古诗词诵读考点巩固 期末复习专用课件
- 中小学期末考试总动员主题班会
- 国际人道法的实施与挑战试题及答案
- 公共组织绩效评估-形考任务一(占10%)-国开(ZJ)-参考资料
- 国家开放大学电大《水利水电工程建筑物》期末题库及答案
- TSG11-2020 锅炉安全技术规程
评论
0/150
提交评论