(系统工程专业论文)基于JCE的安全文件系统研究.pdf_第1页
(系统工程专业论文)基于JCE的安全文件系统研究.pdf_第2页
(系统工程专业论文)基于JCE的安全文件系统研究.pdf_第3页
(系统工程专业论文)基于JCE的安全文件系统研究.pdf_第4页
(系统工程专业论文)基于JCE的安全文件系统研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(系统工程专业论文)基于JCE的安全文件系统研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 随着计算机网络的迅速发展,信息安全的保障越来越重要,对于实施办公 自动化的企业更是如此。j c e 是信息安全领域近几年才出现的新技术,本论文 以j b u i l d e r6 0 为工具,利用多种通用标准算法,开发了一套基于j c e 的可实 一现多种标准安全服务的安全文件系统。该系统具有强固性、面向网络性、可扩 展性、可移植性等多种优良性能。 本论文首先通过需求分析阐述了安全文件系统的高层逻辑模型,然后详细 讨论了该系统的方案设计与软件实现过程,最后说明了系统的应用模式和使用 方法。论文阐述了系统所使用的通用标准算法基本原理和j c e 相关技术,并重 点说明了以下两条功能的实现:第一是怎样设计j c e 3 格式的文件,并由此实现 对文件的签名和验证功能;第二是怎样设计j c e 2 格式的文件,并由此实现对文 件同时加密和签名以及同时解密和验证的功能。在对系统开发的改进思路中, 论文还提出了一个针对安全文件的跨平台的企业级解决方案模型,该模型将基 于j c e 的安全技术融合到j 2 e e 体系结构中,与目前一般的安全系统比较有非常 明显的诸多优点。 国内基于j c e 技术的产品目前还不多见;本系统经过测试达到了实用要求, 并已经在国内企业中投入使用。本论文对j c e 技术的研究和对基于j c e 的安全 文件系统的编程实现,为企事业单位的信息安全保障方法进行了有益的探索。 关键词;信息安全;j c e ;j 2 e e :j c a 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t w i t ht h e r a p i d l yd e v e l o p m e n t o f c o m p u t e rn e t w o r k ,i t s m o r e i m p o r t a n t t oe n s u r et h es e c u r i t yo f i n f o r m a t i o n ,e s p e c i a l l y t ot h e e n t e r p r i s e w h i c hu s e so f f i c ea u t o m a t i o ni n r u n n i n g , i c e i san e w t e c h n o l o g y w h i c h a p p e a r e d i ns e v e r a l y e a r s ,w i t h t h e p l a t f o r m o f j b u i l d e r 6 0 ,b a s e d o ns o m es t a n d a r ds e c u r i t ya l g o r i t h m s ,as e c u r ef i l e s y s t e mb a s e do nj c ew h i c hc a ns u p p l ys e v e r a ls t a n d a r ds e c u r i t ys e r v i c e s i sd e v e l o p e d t h es y s t e mh a ss u c hm e r i t sa sr o b u s t 、n e t w o r k o r i e n t e d 、 e x t e n s i b l ea n dt r a n s d l a n t a b l e t h et h e s i st a l k so v e rt h er e q u i r e m e n ta n a l y s i s 、d e s i g n 、i m p l e m e n t a n da p p l i c a t i o no ft h es e c u r ef i l es y s t e m ,a n dm o r e ,t h et h e s i sd i s c u s s e s t h ep r i n c i p l eo fs o m es t a n d a r ds e c u r i t ya l g o r i t h m sa n ds o m et e c h n o l o g i e s a b o u tj c ea n dj 2 e e t h et h e s i se x p a t i a t e so nt h e f o l l o w i n g t w o q u e s t i o n s :f i r s t l y ,h o wt od e s i g nt h ej c e 3f i l ef o r m a ta n dt oi m p l e m e n t t h es i g na n dv e r i f yo ff i l e s :s e c o n d l y ,h o wt od e s i g nt h ej c e 2f i l ef o r m a t a n dt oi m p l e m e n t s i g nw h e ne n c r y p t i n go f f i l e so rv e r i f yw h e nd e c r y p t i n g o ff il e s w h e nt a l k i n ga b o u th o wt ob e t t e r m e n tt h es y s t e m ,w es e to u ta e n t e r p r i s e l e v e l s o l u t i o nm o d e lt ot h es e c u r ef i l e s y s t e mb a s e do n j c e t h em o d e lc o m b i n e s :i c ea n dj 2 e e ,a n di th a ss o m ed i s t i n c tm e r i t st o t h eo r d i n a r ys e c u r es y s t e m t h r o u g ht h ee x p e r i e n c et h i ss y s t e mc a nb eu s e di nr e a l i t y ,a n di th a s b e e n u s e di na n b i ge n t e r p r i s e t h er e a s e a r c ha n dr e a l i t yu s i n gt h e t e c h n o l o g yo fj c ei sag o o ge x p l o r e rt oo u re n t e r p r i s e si n f o r m a t i o n s e c u r i t ye n s u r i n g k e yw o r d s :i n f o r m a t i o ns e c u r i t y :i c e :j 2 e e :j c a 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 1 问题的提出 随着通讯技术和因特网的迅猛发展,越来越多的企业加入了信息化的大潮 中,也由此引发了企业对信息安全的需求。一方面,企业的各种信息大量地存 在于企业的内部网络和计算机中,如何对企业的服务器和员工的身份进行识别、 如何保证企业员工之间通讯秘密性和可靠性都变得越来越重要;另一方面,在 企业对外事务中,如何保证电子业务涉及的大量保密信息在公开网络的传输过 程中不被窃取,如何保证所传输的交易信息不被中途篡改,如何保证交易双方 身份的正确性,如何保证交易的任何一方无法否认已发生的交易,都成为企业 亟待解决的问题川。 本文基于j c e ( j a v ac r y p t o g r a p h ye x t e n s i o n ) 技术,设计并实现了一套 可保证企业内部办公和企业对外事务中信息安全的文件系统。它已经在国内企 业单位中投入使用并实现了o s i 规定的以下几种标准安全服务o ”: 数据保密服务保证信息在存储和传输的过程中的机密性 数据完整性服务保证收到的信息的确是最初的原始数据,而没有被第三 者篡改或伪造 对象认证安全服务发送和接收信息者的身份是可以确认的,发送信息者只 将信息发送给确认的接收者,而不是第三者 防止抵赖安全服务保证事务处理后双方都不能否认其行为 本文研究的最终目的,是要实现跨平台的企业级安全文件解决方案;针对此 目的,本文提出了该解决方案的一种逻辑模型。在该模型框架下实现的企业级 安全业务系统将能在企业内跨平台地移植,将具有严格可靠的代码实现,并将 能与其它各产商的产品严密配合。我们希望本论文的研究和本系统的开发能对 国内企业的信息安全保障工作有一定的参考价值。 西南交通大学硕士研究生学位论文第2 页 1 2 国内外现状 1 2 1 一般性安全需求与业务 一个典型的企业网络系统,一般有比较重要的业务应用和关键的数据服务 器,有多个具有少量桌面系统的局域网,有i n t e r n e t 出口,提供拨号接入服务, 同时有与合作伙伴的外部连接嘲,这样的企业网络在安全方面有着强烈的需求, 具体表现在以下几个方面睁8 】: 不能存在弱点漏洞与不当的系统配置。 网络系统能阻止来自外部的攻击行为和防止内部职工的违规操作行为。 企业网络系统和外界的网络系统具有安全隔离,以及良好的安全边界。 企业广域网无论是租用电信部门的线路,还是使用i n t e r n e t 网络,其通信 过程是安全的。 企业的敏感信息、包括技术专利等信息,要实行有效监控不能被内部员工转 移。 希望大量的工作桌面系统是安全的。 希望安全系统是可管理的。 要全面满足以上安全系统的需求,我们必须制定统一的安全策略,使用可 靠的安全机制与安全技术及管理才能解决。此时,一般需要使用的安全技术有 1 9 “1 0 : 安全操作系统技术 包过滤代理服务应用网关状态检测技术( 防火墙) 安全协议密码算法技术 基于策略的弱点漏洞分析技术和基于策略的错误配置分析技术 入侵检测系统 信息监控与取证系统 本文主要利用上面的安全协议密码算法技术来实现企业内的安全文件系 统。我c f n 用该技术在应用层上实施各种安全功能处理,这样,凡是在应用层 上的应用都能受到保护,即能保护在应用层上的所有数据。 西南交通大学硕士研究生学位论文第3 页 1 2 2 国内外的安全文件系统 首先要说明的是,本文所说的安全“文件“,并非专指一般的计算机文件, 它包括企业内的各种电子信息,如公文、报表以及公司内外传递的邮件等。 在网络安全产品包括安全文件产品方面,我国同国外的差距至少有5 一1 0 年 1 1 1 ;虽然如此,我国信息安全技术发展仍很迅速,与国际先进国家的差距正在 缩小。我国从8 0 年代中期开始研究计算机网络的安全保密系统,并在各信息系 统中陆续推广应用;其中有些技术已赶上或超过了国际同类产品,从而把我国 的信息安全保密技术推进到新的水平。从9 0 年代中期开始,我国进入了互联网 发展时期,其发展势头十分迅猛,孕育了对信息安全技术的新需求。 目前国内外已经实现的安全文件系统较多,而且它们实现了越来越强的功 能,但一般都具有如下缺点 6 , t 2 - 1 3 1 : 安装配置复杂:现在的安全系统一般都是基于c s 模式的,它们的安装与配 置非常复杂,容易出错 可移植性差:由于标准安全算法用c c + + 语言实现的较多,而且由于安全系 统程序均需要较灵活的编码技巧,现在的安全系统一般多用v c + + 实现,所 以导致产品的跨平台性能可移植性能较差 功能分散:现在的安全系统一般只能实现特定的部分功能,它们与其它产品 的结合性较差 1 2 3 本系统的特色 按上面的分析可知,要实现针对安全文件的跨平台的企业级解决方案,用目 前已经实现的系统是不可行的。我们需要使用容易满足跨平台特性的语言和工 具,所以本文选择了网络程序设计语言j a v a 。 从语言角度来看,本系统相对于目前的安全系统具有下列特色l : 简单可靠j a v a 继承了c c + + 的语法,丢弃了其中不常用又容易引起混淆 的功能,特别是非面向对象的内容,增加了垃圾收集等简化程序复杂度的功 能。因此完成同样工作的c c + + 程序与j a v a 程序相比要庞大得多。 面向网络j a v a 对网络有非常强大的支持。i n t e r n e t 让j a v a 声名大噪, 使之成为一种广为人知的计算机语言。 西南交通大学硕士研究生学位论文第4 页 强固性j a v a 是一种非常注重形态转换的语言,所以在编译时期就会做形 态转换检查,在执行时期,j a v a 也会做一些形态上的检查。由于j a v a 解释 器会做自动的垃圾收集( g a r b a g ec o l l e c t i o n ) ,所以程序设计者不需费心, 内存会被自动地管理f 2 7 i 。 安全性j a v a 设计时对系统的安全,特别是网络安全做了周密的考虑。通 过字节码验证、内存调用方式、资源使用权限等进行多层次的安全管理。j a v a 被认为是在任何系统上最安全的应用程序之一。 本系统是基于j c e 来实现的;在本文结束时提出了将本系统扩展于j 2 e e 的针 对安全文件的跨平台的企业级解决方案模型。所以本系统相对于目前已经存在 的系统有下列优点5 。1 : 跨平台的可移植性 单用户的安装与配置很简单 与其它产品的可结合性强 由于任何一个国家对国外的商用密码产品进入本国销售的监管较对其它产 品的监管严格很多,所以国外的商用密码产品很难进入国内,军用密码产品更 加不可能,所以我们很难在国内看到国外的基于j c e 的安全产品。虽然如此, 但我们可以很明显的看出,国外j c e 的提供者产商较国内多【1 8 - 2 1 】,国内的基于 j c e 技术的产品已经大大落后于国外【2 3 “2 4 1 。目前,在国内除了金蝶软件开发的 a p u s i c j c e ,还没有发现其它的j c e 提供者;基于j c e 的成型的安全产品就更加 少见口2 i 。我们希望本论文和本安全系统能为国内的相关软件行业的发展贡献自 己的力量。 1 3 研究背景与研究内容 为了更有效地利用信息、提高办公效率、增强竞争能力,政府部门及其它 各行业通过网络和现代办公设施,构建办公自动化系统,推进办公网络化、自 动化、电子化,实现信息共享、协同工作和决策支持,已是大势所趋。 四川省水利水电勘测设计研究院( 以下简称省水利院) 为了充分利用计算 机网络信息、提高院内工作人员工作效率,希望能有一套功能全面的管理信息 系统来满足以下需求:第一,能实现省水利院对外宣传和w e b 管理,称为 w e b 管理予系统:第二,能实现全套的安全办公自动化功能,称为安全办公自 西南交通大学硕士研究生学位论文第5 页 动化子系统。 在金老师和谭老师的指导和周燕、陈石等同学的帮助下,我们设计并实现 了省水利院安全办公自动化系统;该系统又分为b s 模式的o a 子系统和基于 j c e 的安全文件子系统两大模块。作者负责基于j c e 的安全文件系统,它实现 安全办公自动化系统的安全功能;它可与o a 子系统结合使用,并且也可单独 应用于企业内部网。基于j c e 的安全文件系统已经在省水利院投入使用,它的 特点如下: 对多种操作系统的适应性:本系统采用j a v a 开发,现用于w i n d o w s 系列操作 系统上;该系统只须对文件目录部分修改或扩充,就可用于u n i x l i n u x 操作 系统。 对多种信任模型的适应性:本系统可使用于网状信任模型和树状信任模型 下。本系统设计为在企业内部网中使用,在给予数据管理员一定的权限和责 任的情况下,不用另外的c a 中心也能保证业务的安全。 对用户操作界面的友好性:本系统使用简单,可理解性强;对用户进行简单 培训就能在企业全面使用。 本文共分为六章: 第一章:绪论。介绍目前一般的安全文件系统存在的问题,分析了本系统 的特色,说明了本文的研发背景和论文组织结构。 第二章:安全文件系统需求分析。阐述了本系统要达到的目的,分析了本 系统要实现的总体功能和要达到的性能。 第三章:安全文件系统总体设计。阐述了本系统的设计原则、方案选择以 及软件的概要设计,介绍了本文研究内容的相关基础知识。 第四章:安全文件系统详细设计。详尽分析和说明本系统各个组成模块的 功能设计思想。 第五章:安全文件系统软件实现。将与j c e 相关的模块作为重点,分析了 几个主要模块的软件实现。 第六章:安全文件系统的应用。对本系统在企业内部网中的应用作了简单 介绍,并阐述了将本系统扩展为针对安全文件的跨平台的企业级解决方案所要 做的工作。 西南交通大学硕士研究生学位论文第6 页 在结束语中,总结全文,指出作者论文期间所做的工作以及产品需要进一 步改进的地方。 1 西南交通大学硕士研究生学位论文 第7 页 第2 章安全文件系统需求分析 2 1 密码学基础 2 1 1 常规密码体制 一般的安全软件都要实现对称加解密,它采用对称算法,即加密密钥与解 密密钥是相同的。其加密方案如图2 - i 所示。常规加密有两个安全要求:一是 需要强大的加密算法,二是发送方和接收方必须用安全的方式来获得保密密钥 的副本 2 5 - 2 6 】。 明文 加密密文解密明文 图2 1 常规加密 用户在操作时要选择数据加密算法,加密时用此算法,再用一个密钥对明 文进行加密,得到了密文。解密时的密钥仍然是上次用的同一个密钥,用它对 明文进行解密,得到明文,此时就可以读取数据了。 2 1 2 公开密钥密码体制 公开密钥密码体制采用不对称型的算法,即加密和解密使用不同的密钥, 每个用户保存着一对密钥:公开密钥p k 和秘密密钥s k ,因此,这种体制又称 为双钥或非对称密钥密码体制1 2 5 - 2 6 1 。 西南交通大学硕士研究生学位论文第8 页 在这种体制中,p k 是公开信息,用作加密密钥,而s k 需要由用户自己保 密,用作解密密钥。加密算法e 和解密算法d 也都是公开的。虽然s k 与p k 是 成对出现,但却不能根据p k 计算出s k 。加密方案如图2 - 2 所示: 公钥私钥 明文加密密文 解密明文 图2 2 公钥加密 2 2 系统规格说明 2 2 1 系统的功能要求 本系统要实现的功能,就是一般的安全系统要实现的功能:对称式加解密: 非对称式加解密;数字签名;及以上功能的杂合等。本系统只需实现安全的核 心功能,处理结果全部以文件的形式存放;而在网络环境下的数据通信由o a 系 统实现。 本系统提供了可以用于邮件和文件的保密与鉴别服务,选择最可靠的加密 算法作为系统的构造模块,且将这些算法集成到一个通用的应用程序中,该程 序独立于操作系统和处理器,且基于一个使用方便的小命令集。 本软件可对邮件加密以防止被非授权者阅读,它还能对邮件加上数字签名, 从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。r s a 公匙体 西南交通大学硕士研究生学位论文第9 页 系的特点使它非常适合用来满足上述两个要求:保密性和认证性。 本系统还可以只签名而不加密,这适用于公开发表声明时,声明人为了证 实自己的身份,可以用自己的私钥签名。这样就可以让收件人能确认发信人的 身份,也可以防止发信人抵赖自己的声明,同时还可以防止信件在途中篡改。 2 2 2 系统的性能要求 由于本系统是为企业内部网环境设计的,所以在使用系统时,基本是每天 启动本系统1 2 次,期间要多次使用。由此得出,系统的响应时间主要对功能 实现时有较高要求:系统的储存容量要求一般的计算机能够存储:对系统的其 它方面没有特别要求。 2 2 3 系统的运行要求 本系统要求运行在w i n d o w s 系列操作系统下,内存容量为3 2 m 以上。考 虑到系统的扩展性,设计和实现时选择了j a v a 语言,以便于系统向其它平台扩 展。 2 3 系统的高层逻辑模型 按上面的分析,得出本软件的系统流程图1 2 8 】如图2 3 所示。 当用户要实现安全功能时,安全文件系统主功能实现程序读取密钥文件对 原文件进行处理,并将结果写入安全文件目录中;然后由安全文件系统结果报 告程序将处理结果报告给用户。 西南交通大学硕士研究生学位论文 第10 页 ,用户的操作 l 一一 早 上 结果报告 图2 - 3 安全文件系统的系统流程图 西南交通大学硕士研究生学位论文 第11 页 第3 章安全文件系统总体设计 3 1 系统设计原则 本系统的设计原则类同于一般的计算机软件系统f 2 ”,具体分析如下: 功能完备性:要求实现用户需要的所有功能,如对称式加解密数字签名与 验证等。 操作简便性:本系统的使用人员是一般的非计算机专业的工作人员,所以就 要求本系统使用时可理解性强,操作简单。 平台移植性:本系统一般应用于企业内部网,而企业内可能有多种操作系统: 9 8 n t 2 0 0 0 l i n u x 等:所以就要求本系统基于w i n d o w s 平台,而且在需要时 能向其它平台扩展。 费用低廉性:系统要在各企业获得广泛应用,成本就不能太高。 3 2 系统方案设计 3 2 1 可选择的合理方案 鉴于上述的系统分析和设计原则,我们有以下三种方案可供选择: 从底层到高层完全由自己来实现。 基于一些平台专有的开发包来实现。常用的开发包如微软的c s p ( c r y p t o g r a p h i cs e r v i c ep r o v i d e r ) 等。 基于一些平台通用的开发包来实现。 第一种方案,因为所要开发的系统涉及的标准和草案非常多并且复杂,而 且又有时间的限制,从头开始编码,要实现上面提到的功能,几乎是不可行的。 第二种方案是使用平台专有的工具包,这一方面如微软的c s p ( c r y p t o g r a p h i cs e r v i c ep r o v i d e r ) 应用比较多【”1 。c s p 是w i n d o w s 存放用户密钥 的容器,每个c s p l 拘c r y p t oa p i 提供了产生密钥对、数字签名等的a p i 函数,一 般它们是不能应用于除w i n d o w s 以外的操作系统的,对于本系统这显然是不可 行的。 第三种方案,使用平台通用的开发包,对本系统是可行的,它能满足本系 西南交通大学硕士研究生学位论文第12 页 统的所有设计原则。 通过以上对比,显然,第三种方案是最佳的;它不但可以节省我们的开发 时间,避免不必要的错误:而且也可以使我们集中精力来开发系统,使之能够 符合我们设计的需要。 3 。2 。2 推荐最佳方案 对于以上的第三种方案,仍可有多种选择,如下: 可选择o p e n s s l 软件包来开发 3 3 - 3 4 】; 可选择j c a ( j a v ac r y p t o g r a p h ya r c h i t e c t u r e ) 来开发; 可选择j c e ( j a v ac r y p t o g r a p h ye x t e n s i o n ) 来开发; 第一种选择:利用开放的源代码o p e n s s l 提供的应用程序接口来开发。 s s l ( 安全套接层) 协议是由n e t s c a p e 公司研究制定的安全协议,该协议向基于 t c p i p 的客户服务器应用程序提供了客户端和服务器的鉴别、数据完整性及信 息机密性等安全措施。o p e n s s l 是一个开放源代码的软件包,已经有较多的机构 和学者对它进行了深入研究。但本系统是与另外的b s 模式的m i s 子系统并行 的,而该m i s 子系统采用j a 、,a 来开发,所以本系统不采用基于c 语言的 o p e n s s l 。 第二种选择:利用j c a 来开发 2 3 - 2 4 1 。j c a 提供了用j a v a 平台进行基本加解密 功能的工具,但它对本系统的实现来说,功能略显不够。j c a 和j a v a 2 安全体系 结构核心一样,是内置j a v a 安全包的组件,它是在美国对加密技术的出口限制 之外的,安全功能不够,所以本系统不采用基于j c a 的开发方式。 第三种选择:利用j c e 来开发1 2 ”。s u n 公司把j c e 作为j a v a 平台的扩展, 主要是因为美国对加密技术的出口限制;由于j c e 的加解密算法的强度较高,在 美国是限制出口的。如果把j c e 放在j a v a 平台的核心部分,则j a 、,a 平台本身的 出口就会受到限制。j c e 提供了标准服务提供者和应用程序接口模型,本系统采 用b o u n c y c a s t l ej c e 来实现所有功能。 3 3j c e 基础 3 3 1j a v a 安全体系结构分析 图3 1 显示了j a v a 安全体系结构的标准组件。在图的下半部分,是j a v a 2 安 西南交通大学硕士研究生学位论文 第13 页 全体系结构的核心和j 筒,a 加密体系结构( j c a ,j a v a c r y p t o g r a p h y a r c h i t e c t u r e ) , 两者构成j 烈,a 2 平台所带的j a v a 2 安全平台。在图的上半部分,是独立于弘:v a 2 平台而又与j a v a 2 平台的不同方面相关的j 越,a 安全扩展1 。 等 j a v a 加密扩 展( j c e ) j a v a 安全体系 结构核心 j a v a 加密体系 结构( j c a ) j a v a 2 安全平台 图3 - 1j a v a 安全体系结构的标准组件 本文采用b o u n c y c a s t l ej c e 来开发,它包括如下三个包; j a v a x c r y p t o 提供1 4 个类,1 个接口和4 个异常。 a v a x e r y p t o i n t e r f a c e s 提供3 个接口,支持d - h 密钥。 j a v a x c r ) 忧o s p e c 提供几个类,定义密钥规范和算法参数规范。 3 3 2j c e 与j c a 安全的核心是数据加密,j a v a 平台为安全和加密服务提供了两组a p i :j c a 和j c e 。j c a ( j a v ac r y p t o g r a p h ya r c h i t e c t u r e ) 提供基本的加密框架,如证 书、数字签名、消息摘要和密钥对产生器:j c e 在j c a 的基础上作了扩展,包括 加密算法、密钥交换、密钥产生和消息鉴别服务等接口。 j c a j c e 并不执行各种算法,它们只是连接应用和实际算法实现程序的一组 接口。软件开发商根据j c e 接口,将各种算法实现后。打包成一个p r o v i d e r ,可 西南交通大学硕士研究生学位论文第14 页 以动态地加到j a v a 运行环境中。由于美国出口控制规定,j c a 是可出口的( j c a 和一个s u n 的默认实现包括在j a v a 2 中) 。但是j c e 对部分国家是限制出口的。因 此,要实现一个完整的安全结构,就需要个或多个第三方厂商提供的j c e 产品, 称为j c ep r o v i d e r 。 象j a v a 平台的其它部分一样,j c e 扩展包也允许第三方实现。但是,j c e 扩 展包的许多通用算法都是有专利的,这也将限制其使用。如r s a 数据安全公司在 美国拥有许多算法的专利,包括r s a 的加密和数字签名算法;瑞士的a s c o m s y s t e m 公司拥有美国和欧洲的i d e a 2 b 密方法专利。 所以,我们在选用j a v a 安全扩展包的时候,应该首先查看产品供应商的有 关限制说明。因为b o u n c y c a s t l e 已经与r s a 等公司达成协议,可以使用这些公司 的有专利的算法,所以本系统选用b o u n c y c a s t l e 公司的j c e 扩展包1 2 3 、2 4 1 。 图3 2j c e 的引擎作用结构 j c e 的所有操作的结构都如图3 2 所示。该图的核,0 是算法本身,即引擎。 引擎接收一组输入数据,以及某种密钥。另外,并非所有的引擎都对称地产生 输出数据,而且输出数据量的大小往往与输入数据量的大小不同。 3 3 3j c e 的提供者选择 j a v a h h 密扩展现在已经成为j a v as d k1 4 的核心组成部分。j c e 基本上是一 组提供加密框架和实现、密钥生成和协商以及消息认证代码( m a c ) 算法的j a v a 包。虽然j c e 目前是j a v as d k1 4 核心组成包,不过它在j a v as d k1 2 或者更高 版本进行配置后都能使用。 安全供应者就是承担特定安全机制的实现。有些供应者是完全免费的,而 另一些供应者则需要付费。提供安全供应者的公司有i b m 、b o u n c yc a s t l e 和r s a 等。我们将使用b o u n c yc a s t l e 实现本系统。s u n 提供了如何实现开发者自己的 西南交通大学硕士研究生学位论文 第l5 页 供应者的细节。 , 要使n j c e ,首先要安装它。现在已经有很多j c e 的实现,它们通常都带有 一个实现了不同算法的提供者,一般的选择如表3 1 所示【l 刚1 : 表3 1j c e 的选择 提供者 u r l特征 b o u n c yc a s t l eh t t p :w w w b o u n c y c a s t l e o r g 最完全,可以从j c e 提供者免费获得 b e e j c eh t t p :w w w v i r t u a l u n l i m i t e d 。e o m 不支持r s a 0 p e n j c e s u n j c e 支持j c e l 2a p i 不能与其它j c e 协 调工作,不支持r s a 很多人的第一个本能反应是下载和使用s u n 的j c e ,我们强烈反对这么做, 除非有特定的需求指定使用它。为了获得提供者的可引出性,s u n 在j c e 中加入 了一些代码,使得安装了它的j c g 后,其它提供者的j c e 就不能使用。也就是说, 在使用s u n 的算法的同时,不能使用其它j c e 的算法。而s u n 的算法并不多,尤其 是它不支持r s a t ”1 。由于本系统多处使用了r s a 算法,所以本系统采用b o u n c y c a s t l e 的j c e 。 3 3 4j c e 的安装与配置 安装j c e 应该按照如下步骤: 1 ) 下载提供者 如上,b o u n c y c a s t l e 可以从w w w b o u n e y e a s t l e o r g 下载,下载后请将它解 压缩。 2 ) 将j a r 文件拷贝到适当位置 如果想让j c e 类可以被所有的j a v a 应用程序使用,我们需要把j a r 文件 安装为一个扩展。b o u n c y c a s t l e 提供者没有用于安装为扩展的j a r 文件,但它 西南交通大学硕士研究生学位论文 第16 页 容易构建。首先将下载的文件展开到d k 的c l a s s e s 目录下,然后运行下面的命 令将这些文件打包: c :p j a rc v f b o u n c y c a s t l e j a r j a v a xo r g 在w i n d o w s 中,j a v a 通常安装在两个目录下。一个目录用于开发,包括所 有的j d k 工具,另一个仅仅是运行环境。j d k 本身通常位于c :j d k l 3 这样的目 录下,而j d k 运行环境通常位于c :p r o g r a mf i l e s j a v a s o f t j r e l 3 这样的目 录下,它们都有库的扩展目录。分别是:e :j d k l 3 1 l i b e x t 和c :p r o g r a m f i l e s j a v a s o f t j r e 1 3 1 i b e x t ,把所要的j a r 文件放于对应的目录下。 3 ) 配置安全属性文件 安全属性文件j a v a s e c u r i t y 位于和l i b e x t 平行的另一个目录 l i b s e c u r i t y 下,它定义了当前可以使用的加密提供者。如您看到下面的语 句: s e c u r i t y p r o v i d e r 1 = s u n s e c u r i t y p r o v i d e r s u n s e c u r i t y p r o v i d e r 2 = t o m s u n r s a j c a p r o v i d e r 它表明本虚拟机有两个加密提供者以及他们的优先级和访问时使用的名 称。当需要用到一个加密算法时,虚拟机会依次访问这里列出的提供者,寻找 想要的算法,并按这里的优先级顺序使用第一个找到的算法。 我们应该在文件中插入如下行,把新的提供者加入进去: s e c u r i t y p r o v i d e r 3 = o r g b o u n c y c a s t l e j c e p r o v i d e r b o u n c y c a s t l e p r o v i d e r 4 ) 测试安装好的程序 我们可以自己写一个测试程序,来判断我们的安装是否成功。 3 3 5j c e 工作原理 j c e 为使用密码算法提供了一个接口,并且允许不同的提供者程序对某个算 法有不同的实现方式。如图3 3 所示i ”l 。 用户代码不需要了解任何提供者程序的存在。j c e 将所有对密码函数的请求 委托给那些提供者程序的类。这就要求我们通过修改j a v a s e c u r i t y 文件来对 v m ( v i r t u a lm a c h i n e ) 进行配置,如上面的j c e 安装时的步骤所示。 西南交通大学硕士研究生学位论文第17 页 图3 - 3 用户代码与j c e 提供者 j a v a c r y p t o 类会为那些密码函数提供一个框架。提供对s p i ( s e r v e r p r o v i d e ri n t e r f a c e ,服务提供者接口) 的抽象类进行扩展,j c e 提供者可以创 建多种算法的实现。这些抽象类为加密和签名操作提供了一个框架。如图3 - 4 所示。 引擎类是提供者类的子类,它们都是抽象类。开发商的提供者程序必须将 提供者类扩展为一个新的具体的类,来实现真正的安全功能。 3 4j o e 安全提供者研究 3 4 1 安全提供者体系结构 安全提供者实现了两个基本概念:引擎和算法。这里的“引擎”可理解为 操作,安全提供者实现的这些操作就叫“引擎”。算法则定义了操作如何执行。 一个算法可理解为一个引擎的具体实现。 图3 - 4j c e 工作原理 例如,j a v a 安全软件包能够实现消息摘要,消息摘要就是一个引擎,它是 西南交通大学硕士研究生学位论文第l8 页 程序的一个操作。而消息摘要的思想与如何计算消息摘要是无关的。所有的消 息摘要都具有同样的特性,将这些特性抽象为一个接口的类即可称为引擎。 消息摘要可由某个算法实现,如m d 5 或s h a 。而算法通常由一个具体的类 提供,该类继承了抽象的引擎类,并完成具体的类定义。但是,提供某些特定 算法的类可能不只一种,例如,可以使用j a v a 平台所带的s h a 类,也可以用第 三方提供的s h a 类。无论哪个类都可以实现同样的功能,但它们的内部实现是 完全不同的。 可以把安全提供者理解为是一种“粘合剂”,用来管理安全软件包中的各种 引擎以及引擎对应的算法。安全提供者接口的目的就是提供一个简单的机制, 从而可以很方便地改变或替换算法及其实现。例如,安全提供者理容许我们修 改正在使用的s h a 摘要算法实现,并引入一种新的算法来生成摘要。 因此,我们只需使用引擎类实现特定的操作,而不需要关心实际进行运算 的类是哪个。引擎类为安全软件包提供了基本接口,同时,我们需要了解提供 者类的名字,这样才能确定当前使用的提供者类是否正确。 安全提供者体系结构包括以下组件1 2 3 - 2 4 1 : 引擎类:他们是一组抽象类。 算法类:针对每一种引擎,都有一组类实现相关的算法。它们提供一个或多 个算法来实现相应的引擎。 提供者类:开发商所提供的每组算法类是利用提供者类的一个实例进行管理 的。提供者将把算法与实现操作的具体类对应起来。 安全类:安全类保存提供者类的列表,可以逐一查看每个提供者类所支持的 操作。 3 4 2 安全提供者的算法独立性 我们必须知道如何使用引擎类来完成所需的操作。每个引擎类都有一个公 共接口,其中定义了该引擎能够实现的操作。在设计引擎时要保证用户能够应 用第三方的安全提供者。所以,安全提供者的设计特性之一是要支持算法独立 性。 安全提供者的算法独立性的好处,是由此可以用其它算法扩展j c e 的公用框 架。例如,有些包可以用硬件或自然代码实现,加速算法的响应时间,而有些 西南交通大学硕士研究生学位论文第19 页 可以用平台独立方式实现,保证应用的广泛性。由此。加密技术开发人员可以 选择最符合要求的算法和提供者。 加密应用程序可以查询j a v a 运行环境,确定哪些提供者是静态安装的,然 后动态安装应用程序所需的新提供者。此外,还可以按照优先顺序安装提供者。 这样就使得当有多个提供者支持特定算法时,应用程序可以选择某个提供者。 3 4 3 实现自己的安全提供者 在下面的些情况下,我们希望自己来实现提供者程序: 需要一个当前大多数的j c e 中都没有包含的算法,例如椭圆监线算法等。 需要能够对提供者程序进行修改或重新分发,而且找不到一个有适当的许可 证和已经实现的提供者程序 为了研究和讨论j c e 的工作原理 按照前面的分析,s u nj c e 最新的版本只提供了对r s a 签名的支持,而不包 括对r s a 非对称加解密的支持。所以我们选用 b o u n c y c a s t l ej c e ,实际上,我 们可以自己实现r s a 算法的非对称加解密功能。下面分析开发自己的安全提供 者所需的步骤: 首先要获得一个测试j c e 签名证书。对j c e 安全提供者进行签名时需要用到 某个证书,而该证书必须由某个特定的证书授权机构签发。j t l l i b m 提供了此 类证书,可以通过在线方式应用证书。 然后要编写自己的安全提供者和引擎类。 之后要将提供者和引擎类打包到一个j o j 文件中,提供下载的测试j c e 签名证 书,并利用j a r s i g n e r i 具对此j a r 文件进行签名。 在线申请一个完全的j c e 签名证书。 用新证书对j a r 文件进行签名,并保存签名的j 8 r 文件。 3 5 安全文件系统软件结构设计 本软件的体系结构按自顶向下方式【3 6 j ,对各个层次的过程细节和数据细节 逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体 系结构。 本软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立 西南交通大学硕士研究生学位论文第20 页 的目标系统的模型出发,对整个问题进行分割,使其每一部分用一个或几个软 件成分加以解决,从而解决整个问题。 软件系统的层次结构正是模块化的具体体现m j 。将整个软件划分成若干单 独命名和可编址的部分,即模块。本系统设计中,根据前面的系统需求分析, 将这些模块组装起来以满足整个问题的需求。如果把一个大而复杂的问题分解 成一些易于处理的小问题后,解决起来就会容易得多。这是模块化的依据,也 是本系统开发时采用的方法。 本系统各模块是相互独立的,当模块变得越小,每个模块的内部结构就 变得越简单,花费的工作量也越低【3 8 】。本系统的模块划分比较简单,总体上划 分为系统管理模块和功能实现模块。本系统的软件结构图按层次图格式画出【3 9 】, 如图3 5 所示。为了便于维护和管理,以下的各个模块之间都是相互独立设计 和编码,这样如果在以后的升级中,添加新的模块功能,或者是修改模块功能, 其他模块都可以不需要改变其源代码。 图3 - 5 系统软件结构图 西南交通大学硕士研究生学位论文第21 页 第4 章安全文件系统详细设计 4 1 用户管理模块设计 在本模块中,主要是实现“增加新用户”功能。 由于本系统没有使用i c 卡和c p u 卡,所以,当在单机上使用本系统时,不 应该有多个用户。但因为客户要求实现单机多用户功能,所以本系统采用的多 用户方案原则如下: 同一计算机上各用户是平等的; 每个用户均用软盘将自己的密钥和安全文件保存另外存放; 一台计算机上的现有用户有权限增加新用户; 每台计算机上的默认用户号为9 9 : 从实际使用角度考虑,推荐使用单机单用户模式; 客户采用多用户方式产生的其它问题由管理办法来解决。 该模块的流程图如图4 一l 所示。在该图中,口令文件所在的目录为”c :安 全文件i + u s e r + ”对称口令密文”,其中u s e r 表示取到的用户号。用户号和口令 长度均固定,对口令用程序中固定的密钥使用d e s 算法加密。 4 2 口令管理模块设计 本模块有两部分:第一部分是口令登录子模块,第二部分是口令修改子模 块。 口令登录子模块是进入系统的必经步骤。对不同的用户,到不同的目录下 的口令文件中读取口令,判断用户是否合法。系统默认的用户是9 9 ,对应的默 认口令是1 2 3 4 5 6 ,默认用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论