




已阅读5页,还剩50页未读, 继续免费阅读
(计算机应用技术专业论文)tonglinkq消息中间件安全系统的设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
堡生坚塑塑昼生 堕塑塑盟塑塑一 论文摘要 蓑掣薹酱:计t o n 算g 机l i 应n k 用q 消息中间件的安全体系结构论文题目: 消息中日j 仟明复芏降水5 4 叫 硕士生:何洪团 导师:刘乃琦 它五2 9 9 2 4 关鼍热中间件,r c 5 ,d i f f i e h e l l m a n ,m d 5 ,密钥保存,密钥分发,本地组, 消息中间件, , 一 , ,卺钥侏仔, 譬钥万投平b 组 a c l t o n g l i n k q 消息中间件安全系统的设计和实现 a b s t r a c t s p e c i a l i t y :c o m p u t e ra p p l i c a t i o n t i t l e : s e c u r i t ys y s t e mi nm e s s a g em i d d l e w a r eo ft o n g l l n k q m s s t u d e n t :h eh o n g t u a n a d v i s o r :p r o f l i un a i o i t h i st h e s i si n t r o d u c e st h e s e c u r i t ys y s t e m i n m e s s a g em i d d l e w a r e t o n g l i n k qo ft o n g t e c hc o m p a n y i ti n c l u d e sf u n c t i o n so ft o n g l i n k q , u s i n g r c 5 e n c r y p t i o na l g o r i t h m ,m d 5m e s s a g ed i g e s t i n ga l g o r i t h m , d i f f i e h e l l m a nk e y e x c h a n g i n ga l g o r i s m t o i m p l e m e n tp o i n t t o p o i n t s e c u r i t y t h i s t h e s i sa l s oi n t r o d u c e sh o wt ou s ek e ya n dk e y t a b l e d i s t r i b u t i o ni nl o c a lg r o u pt oi m p l e m e n te n d t o e n ds e c u r i t y t h et h e s i si n t e n dt oi n t r o d u c eu s a g eo ft h es e c u r i t ya l g o r i t h m si n t o n g li n k ( ,a n dg i v et h er e a s o n st h a tw ec h o o s et h e m ,b u tn o tt og i v e a d e t a i l e dd e s c r i p t i o no ft h o s ea l g o r i t h m si nam a t h e m a t i cw a y k e yw o r d s : m e s s a g em i d d l e w a r e ,r c 5e n c r y p t i o na l g o r i t h m ,d i f f i e h e l i m a n k e y e x c h a n g i n ga l g o r i t h m ,m d 5m e s s a g ed i g e s t i n ga l g o r i t h m ,k e yp r e s e r v a t i o n , k e yd is t r i b u t i o n ,l o c a lg r o u p ,a c l t o n e l 1 n k q 消息中间件安全系统的设计和实现 第一章绪论 在全球范围内,中问件( m i d d l e w a r e ) 正在成为软件行业新的技术与经济增 长点,i n t e m e t 的蓬勃发展和网络计算的需求剧增,使位于平台( 操作系统、硬 件) 与应用程序之间的中间件产品恰逢其会,崭露头角。m m 、b e a 、o r a c l e 、 i n p r i s e ( 原b o r l a n d ) 、m i c r o s o f t 及s u n 等国外厂商早已涉足其中,而国内研究与 推广中间件产品的公司也日渐增多。 1 1 中间件的概念 顾名思义,可以把中间件理解成是处在应用软件和系统软件之间的一类软 件,或者是独立于硬件或数据库厂商( 处在他们中间,实现他们的互连) 的一类 软件,亦或是客户、服务方之1 目的连接件,或者是需要进行二次开发的中间产品。 总之中间件是在中间。但是,并不能把不能归类的软件都归到中间件的范畴。许 多组织和专家都对中间件下过定义但确实都不太精确,所以经常会有“什么是 中间件”这样的问题:这也正说明中间件正处在迅速发展之中。这里引用一个比 较流行的定义:中间件是种独立的系统软件或服务程序分布式应用软件借助 这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之 上,管理计算资源和网络通讯。从中间件的定义可以看出,中间件是一类软件, 而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作:中问件是 基于分布式处理的软件,定义中特别强调了其网络通讯功能。 中间件有以下几种:对象中间件交易管理中间件,面向消息的中间件,远 程过程调用中间件,数据访问中问件等。 1 2 消息中间件 随着网络应用的迅速发展,在基于网络本身的接e l ( 如s o c k e t 等) 开发网 络应用已不能满足业务发展的需要。并且,这样应用程序的开发也涉及到很多网 络通信的细节,而不是把其精力放在应用本身业务规则的实现上。另外,由于不 同业务所具有的特点,这种网络应用需要个实时、可靠和安全的通信支持。因 此。出现了一种称为“通信平台的中间件”,如i b m 的m q s e r i e s ,b f a 公司的 m e s s a g e q 东方通科技公司的t o n g l i n k q 就是这样的一个中间件产品。用户在 开发网络应用时,就可以使用t o n g l l h i l ( o 所提供的服务,通过一个简单的接口, 实现了应用对通信的可靠、高效、安全和实时的要求。 确保消息中间件本身的安全运行和应用程序数据传输的安全性,对于消息中 间件是十分重要的。消息中间件要实现以下几个方面的安全: 消息中阃件本身的安全:非法的用户不能修改消息中间件的核心配置; 节点认证:非法的节点不能与其他节点建立连接和传输消息; 应用程序认证:非法的应用程序不能注册到消息中间件; t o n g l i n y d q 消息中间件安全系统的设计和实现 加密解密:消息中间件之间传输的消息对于非法截取者( i n t e r c e p t o r ) 是乱码: 东方通科技公司消息中间件t o n g l i n k q4 6 0 以前的版本部只有点一点加密的 安全功能( 一级中心不能直接向三级中心传输加密消息。如果要传,必须由二级 中心把消息解密,再用三级中心的密钥加密) 。但是近年来用户对安全的要求越 来越高。所以我们在分析市场需求的基础上,研究分析了i b mm q s e r i e s 和b e a m e s s a g e q 等国外消息中间件产品的安全系统,经过一年多的开发,最后推出了 运行稳定,功能比较完善的t o n g l i n i i ( q4 6 0 版。从中国电信移动局,中国建设 银行国际业务中心,公安部等部门的运行情况看,t o n g l i n k q4 6 0 安全系统技 术先进,安全体系结构合理,非常适合我国的应用和网络实际情况。它的安全性 得到了较高的评价。 本论文五,六,七章反应了本人所作的工作。本人在近两年的时间里,完成 了u n i x 平台下t o n g l i n k q4 6 0 版安全系统的分析,设计,单元测试和最后的 总体测试等工作,并在产品的推广过程中到用户现场为用户解决问题。 6 t o n g l i n k q 消息中间件安全系统的设计和实现 第二章t o n g l i n k q 系统的功能和特点 东方通科技公司的软件产品t o n g l i n k q 属于消息传送( m e s s a g ep a s sj n g ) 中间件,它的主要功能是在应用程序之间传送消息,这些消息可以在不同的网络 协议、不同的计算机系统和不同的应用软件之间传递。 2 1 t o n g l i n k q 的功能 t o n g l i n k q 系统是一个消息传递中间件。在分布式联机事务处理系统中 充当通讯资源管理者,其主要功能如下: 提供端到端的通讯服务: 提供多种通讯机制: 保证实时高效、可靠、安全的数据传输; 实时的网络监控及管理; 、完善的日志机制; 多种管理方式支持: 多应用模式支持; 多平台支持; 多网络环境支持 2 2 术语和缩写词 可靠传输: 是t o n g l i n k q 实现的一种传输协议,类似于文件传输协议的断点续传部分。 t o n g l i n k q 可靠传输包括两个方面;一是在网络故障下保证消息传输的可靠性, 适合于同步应用类型;另一方面是保i 正在主机故障情况下,保证通信的可靠性。 适合于异步应用。 加密: t o n g l i n k q 网络结构是一个安全的网络,对于保密的通信,可以指定一个标 志或用户使用提供的a p i 来加密传输。t o n g l i n ( q 使用的算法是r c 5 。 密钥: 密钥是现代加密算法的一个概念,其特点是只要密钥保密,就可以保证数据 的安全性。对于密钥关键是对密钥的生成,管理,分发和维护。 密钥交换生成: t o n g l i n k q 采用动态密钥生成技术,密钥是在运行过程中动态产生并改变 的,具体可以通过参数配置。t o n g l i n k q 采用的密钥交换生成算法是 d i f f i e h e l l m a n ,是r f c 的基本标准。其基本思想是一个素数定理。 密钥分发: t o n g l i n i 【q 在相邻节点之间采用d i f f i e h e l l m a n 算法生成了加密所需的密 7 t o n g l i n k q 消息中间件安全系统的设计和实现 钥,但这只能实现点一点加密传输。对于端一端的加密,t o n g l i n k q 根据实际的 应用模型,提出了一种有限的密钥分发技术一就是在本地组内分发密钥,有效的 解决了端一端的加密,同时保证了整个t o n g l i n k q 网络的效率。 d e s : d a t ae n c r y p t i o ns t a n d a r d ,数据加密标准,田i b m 开发,广泛应用与于非 军事应用中。 i d e a : i n t e r n a t i o n a ld a t ae n c r y p t i o na l g o r i t a m ,由瑞士的两名科学家开发, 是目前己公开的可用的算法中最好的且安全性最强的分组密码算法。 r c 5 : 由r s a 数据安全公司的r o nr i v e s t 设计。“r c ”表示“r o n sc o d e ”,r c 5 是一种块加密算法,速度比d e s 快十倍以上,且速度与密钥长度无关。 d i f f i e h e l l m a n : 这是一种允许陌生人建立共享秘密密钥的协议。 k i ) 5 :, 皿表示消息摘要( m e s s a g ed i g e s t ) ,对输入的消息产生1 2 8 位的散列。找 到两个具有相同散列值的消息在计算上是不可行的,不存在比穷举攻击更有效的 攻击。 a c l :, a c c e s sc o n t r o ll i s t ,访问控制表,实现不同用户访问被控制对象权限的限 制。 节点: 节点是t o n g l i n k q 网络结构中的一个基本单元,t o n g l i n k o 通过节点来唯 一的区分网络中的每个通信实体。每个节点有个全局唯一的名字,它由卜2 0 个字符组成( 区分大小写) ,它构成了t o n g l i n k q 通信的地址。另外,为了实 现节点之间的通信,节点需要配置另外一些东西:建立通信连路所需的端口号; 别名;队列等。 上级节点: t o n g l i n k q 是建立在通信协议之上的一个逻辑网络平台,为了建立所需的通 信路径,t o n g l i n k q 通过上级和下级节点概念来实现的。它要求下级节点配置 与上级节点建立通信连接所需的信息,以及上级节点对下级节点的认证信息。这 样,上下级节点之间就可以建立通信的连接。 下级节点: 下级节点概念与上级节点相对应,见上级节点。 中心: 中心是一类特殊的节点,其特点是它可以配置下级节点。t o n g l i n k q 有四类 中心节点:一级中心、二级中心、三级中心和四级中心。这与实际的机构结构相 致。 说明一下,一般来说,一级中心的下级由前端和二级中心组成,也可以是其 它类型的中心,但通过中心这种层次来配置,对于管理和维护更直观和方便一些。 因此,建议在没有特殊要求的情况下,按节点的层次来配置。 前端: 前端也是一类特殊的节点。其特点是它不能配置下级节点,它可以是任何中 t o n g l i n k q 消息中间件安全系统的设计和实现 心的下级节点。 掩码: 掩码是借用t c p i p 的一个概念,也是用来定义子网和辅助路由的。由于 t o n g l i n k q 与t c p i p 所处的位置和实现的机理不同,因此掩码的含义也有所不 同。t o n g l i n k q 掩码是用来定义子网节点名特征的一个数值,表示一个子网中 所有节点名前几个字符相同、不同的子网这前几个字符必须不同。 = 3 a 0 0 a 0 1a l l a 1 2 a 1 3 图2 1 t o n g l i n k q 掩码示意图 节点a 的m a s k = 2 ,所以a 0 子网内的所有节点的前2 个字符都是a 0 卧s t e r 上级; 对于定义的多个上级节点,t o n g l i o 把第一个上级节点看作m a s t e r 上级 节点。姒s t b r 上级与其它上级的不同点在于t o n g l i n k q 之间的内部信息交换上。 比如,t o n g l n k q 网络的路由信息、密钥信息等。直观来看姒s t e r 上级可以 看到下面的所有下级节点。而其他上级只能看到该节点自己。这种方式很适合两 个系统的互联,而彼此是透明的。 本地组 如果个中心的一部分前端处于一个安全的i _ a n 中,我们可阻把这些前端看 成本她组。因此奉地组节点的特点是:内部的,可能是一些服务机或内部工作用 机。而普通节点是面向客户的,一般是客户端。对于本地组节点,由于其特殊性, 它可以共享中心的很多信息,它可以与其他节点加密通信。 一a ” a 心 i 牌 萋 t o n g l 嗍q 消息中间件安全系统的设计和实现 图2 - 2t o n g , i n k q 本地组示意图 在上图中如果b 1 和b 1 3 ,b 1 2 之间的线路是安全的( 比如在同一个局域网中) , 我们可以认为b l ,b 1 3 和b 1 2 之间传输的消息是内部消息传输,可以不用加密。 这时假设b 1 3 要传输加密消息到b ,这个消息在b 1 3 到b 1 这一段可以不用加密, 只是在b 1 到b 这一段使用b 1 的密钥加密就行了。于是所有本地组节点可以使用 自己上级节点的密钥和其他节点传输加密消息。所以b 1 3 就可以通过密钥( 密钥 表) 分发得到和b i 一样的密钥,这样它就可以和b ,b l ,b l l ,b 1 2 传输加密消息。 点一点加密 两个相邻节点问的加密解密。 端一端加密 不相邻节点间的加密解密。 2 3 t o n g l i n k q 体系结构 2 3 1t o n g l i n k q 的应用模型 一个t o n g l i n k 0 系统的基本工作示意图如图2 3 所示。应用程序分布在网 络上的大量结点上,当应用程序之间要传送消息时,应用程序只需将消息接收者 的名字和消息的内容通过t o n g l i n i ( q 提供的接口传给t o n g l i n k q ,t o n g l i n k q 便会利用网络结点上的各个t o n “i n l ( o 运行系统组成的虚拟网,将消息输送到 消息接收者所在的结点上,然后提交给消息的接收者。 1 0 t o n g i 心j i ( ,q 消息中间件安全系统的设计和实现 图2 - 3 基于t o n g l i n k q 的消息传输过程示例 2 3 2t o n g l i n k o 体系结构 t o n g l i n k q 系统的总体结构如图2 - 4 所示。 图2 - 4t o n g l i n k q 系统结构 本文将介绍的安全系统实现安全管理功能。 2 3 3t o n g l i n k q 数据包的格式 t o n g l i n l ( 口数据包和t c p i p 数据包样,都是由消息头和消息内容组成, 它的格式如下; s t r u c ts u _ d a t a l o n g m s g t y p e : 消息标识 u _ c h a rd e s t n a m e l e n : 丰目的节点名牛 s t r u c tud a t au d a t a : f t o n g l i n k q 消息中间件安全系统的设计和实现 s t r u c tud a t a 【 s t r u c tu p r o t op r o t o : u n i o nu d a t af c h a ru d a t a m a x u s e r d a t a s t r u c tu r e m o t e r e gu r e m o t e r e g a c t n o d eu c t t a b a t n u m s j : s t r u c tm s g _ p ku _ m s g : s t r u c tuf i l eu _ f i l e : s t r u c tnr o u t en r o u t e : s t r u c tnn e x t n n e x t : s t r u c tua c t n o d eua e t n o d e : e u d a t a : s t y u c tu p r o t o u n i o nu t y p et y p e : l i c h a ru d t y p e : u _ c h a rr e s ; 、s h o r tm a g i c : s h o r tp k t l e n : u c h a rd e s t n a m e l e n u _ c h a rs r c n a m e l e n : u n s i g n e dl o n gc p t i d ; u _ c h a rc p t f l a g : s h o r tc h k s u m : 序协议头$ 十用户有效小数据十 十下级向上级的注册包木 胁活动节点表 幸一般消息 文件十 路由表十 木保留术 木活动节点十 as v c 服务类,p i d 进程号 a 数据类型木 丰核心保留母 半发送方p i d 和返回接收方p i d * a 完整的包长术 掌目的节点名木 胁源节点名半 木数据是否加密木 $ 数据包头的效验和 t o n g l i n f d q 消息中间件安全系统的设计和实现 第三章t o n g l i n k q 安全系统设计报气 3 1 安全系统的目的 鉴于银行,电信系统等客户越来越关注敏感数据在网络上传输过程的安全 性有必要在t o n 删q 系统中加入安全机制,设计相应的安全子系统,构思 出比较实用的概念结构,以便进行下一步的详细设计。 3 2 安全系统的设计目标 对用户和应用来说,安全子系统应是透明和可选用的( 整个系统和某个消息 的安全都是可选的) ,这样既可保证敏感数据的安全性,又避免非敏感数据使用 安全设施产生不必要的开销。 提供各种管理功能,以便对安全子系统进行安装、浏览、优化和重建。 按模块的方法,采用分层结构进行设计、构造和建立,以保证程序的可维护 性。 3 3 加密算法的选择 加密算法从总体上可分为两类:对称密钥加密算法和公开密钥加密算法。前 者的代表性算法有d e s 、i d e a 、r c 5 等,后者有r s a 等。一般雨言,对称密钥的 加解密速度较快,适合用于对大量的敏感数据进行加密传输。而公开密钥的速度 较慢,适合用于鉴别、密钥分发和数字签名等。因此,建议采用对称密钥对传输 的敏感数据进行加密解密,用公开密钥进行对称密钥的分发。 3 3 1d e s d e s 是种块加密算法,密钥长度为5 6 比特,由于密钥长度太短,现在常使 用三重加密来有效地增加安全性,由于普遍怀疑n s a 对d e s 设计的影响,加之在 国内通信基础设施上使用时的开销不能忽略,采用d e s 是不太适宜的。 3 3 2i d e a i d e a 由瑞士的两名科学家( 其中之一为华人) 设计,所以它有可能不受n s a 的“指导”,这就避免了引入秘密的后门。该算法所依据的协议是一种“来自于 不同代数群的混合运算”,可以有效地对抗差分和线性攻击。此外,它使用1 2 8 比特的密钥,加密强度远大于d e s 。它和d e s 一样,也是一种块加密算法块长 同样是6 4 比特,性能和d e s 相似。 3 3 3r c 5 r c 5 为r s a 数据安全公司的r o nr i v e s t 设计的密钥长度可变的加密算法,可 挫败差分和线性攻击。r c 5 采用块加密,速度比d e s 快十倍以上,并且它的速度 t o n g l i n k j q 消息中间件安全系统的设计和实现 与密钥长度无关,这很适合中国国情( 通信基础设旖较差) ,推荐采用该种算法。 r c 5 算法的参数可调,包括块长、密钥长度和循环次数。典型块长可以是3 2 比 特、6 4 比特或1 2 8 比特。密钥长度可从0 比特到2 0 4 8 比特,循环次数可以从0 到2 5 5 。 r c 5 含有三种例程:密钥扩展、加密和解密。在密钥扩展例程中,将用户提 供的密钥扩展以填满一个密钥表,该表的长度取决于循环次数。随后,使用密钥 表进行加密和解密。加密解密例程包括三个原语操作:整数加、位异或和循环 移位这三个操作都可以用机器指令高效地实现,所以r c 5 的n 解密速度很快。 3 4 密钥生成 算法的安全性依赖于密钥,如果用一个弱的加密过程生成密钥,那么整个加 密体制也是弱的。好密钥是随机的比特串。因此,在安全子系统的设计中,包含 一个密钥生成器,使用一个序列生成器产生伪随机数,其周期比较大从而保证 它生成的密钥是安全的。 选定了加密算法之后,随即产生了一个问题:既然采用对称密钥算法,如何 将该密钥安全地传递给会话的双方呢? 设计安全的算法和密钥是不容易的,但确 保密钥的安全就更困难,事实上,密钥的分发问题是大多数加密系统的脆弱点。 对一个大的商业系统而言,采取人工传递密钥的办法是不现实的,必须有一种自 动分发密钥的机制这种机制通过公开密钥算法在会话双方之间传递用于会话的 对称密钥,有以下几种常用的机制。 3 4 1 固定的公开密钥交换对称密钥 最简单的方法是开发软件时选择一对固定的公开密钥私有密钥,参与会话 的一方将会话密钥( 对称密钥) 用公开密钥加密后进行传输,会话的另一方收到 加密信息后用私有密钥解密该信息,得到会话密钥,此后双方便可使用此密钥对 传输的敏感数据进行加密。 3 4 2i ) i f f i e - h e ll m a n 密钥交换 这是一种允许陌生人建立共享秘密密钥的协议。它要求会话双方同时知道两 个大的质数,n 和g ,并且( n - 1 ) 2 和( g - 1 ) 2 都是质数。这些数字都是公开的。 会话的一方( 以下称为a ) 选定一个大数x ,并将它保密。同样,会话的另一方 ( 以下称为b ) 也选定一个秘密的大数y 。a 发给b 一条包含( 1 1 - ,g ,9 1 m o dn ) 的 信息。b 发给a 一条包含r m o dn 的消息作为应答。现在a 计算出( g m o d l 3 ) 1 ,b 计算出( g im o dn ) ,根据摸的计算原理,这两个数都等于( 矿7 m o dn ) ,于是它们 便共享了同一个秘密密钥g i m o dn 。这一算法的原理是基于目前还没有发现计 算离散对数对大质数取模的实用算法。 d i f f i e h e l l m a n 算法的弱点在于,它不能抵抗中间人攻击 ( m a n i n t h e - m i d d l ea t t a c k ) ,但是,更为复杂的算法可以挫败这种攻击。此 算法能很容易地扩展到三方或多方之间进行,算法的实现简单高效,推荐采用此 算法进行密钥分发。 3 4 3 证书管理机构 目前,x 5 0 9 标准已被广泛接受。x 5 0 9 证书己用于许多网络安全应用程序, 其中包括i p 安全( i p s e c ) 、安全套接字层( s s l ) 、安全电子交易( s e t ) 、安全 多用途i n t e r n e t 邮件扩展( s m i 皿) 。x 5 0 9 方案包括密钥分配、身份认证、公 共密钥证书的管理等内容。公共密钥证书是某人的用户标识,由可信赖的第三方 t o n g l i n i g q 消息中间件安全系统的设计和实现 签名,典型的第三方即是证书管理机构c a ( c e f t i f i c a r ea u t h e n t i e a t i o n ) 。证 书是用来挫败将个密钥代替另一个的攻击。此方案较为完善。但是通过我们对 公钥基础体系p k i ( p u b li ck e yi n f r a s r u c t u f e ) 的了解知道使用证书实现 身份认证,每个节点都要保存一份证书,在建立连接前要向对方出示自己的证书, 对方节点收到证书后用公开密钥解密认证。这种认证体系要求在网络上专门有节 点负责节点的注册,证书的颁发,证书作废等工作,所以其实现过于复杂开发 周期较长,故不推荐使用。 3 5 密钥寿命 没有哪个加密密钥能无限期使用。密钥使用越久,加密的数据量越大,泄露 的机会越大,而且泄露后的损失也越大。使用r c 5 算法时,若块长为6 4 比特, 则加密2 ”个块之后应更换会话密钥。 3 6 消息摘要算法的选择 消息摘要就是使用一个单向散列函数h ( i ) 作用于一个任意长度的消息m , 它返回一固定长度的散列值h :h = h ( m ) 。其中h 的长度是m 。单向散列函数具 有以下特征: 给定m ,很容易计算h 。 给定h ,根据h = h ( m ) 计算m 很难。 给定m ,要找到其他消息m 并满足h ( m 、) = h ( m ) 很难。 。 3 6 1m d 5 m d 5 是m d 4 的改进形式。在一些初始化处理后,如5 以5 1 2 位分组来处理输 入的文本,每分组又化分为1 6 个3 2 位字分组。算法的输入由四个3 2 位分组 组成,将他们级联形成一个1 2 8 位散列值。 3 6 2s h a s h a ( s e c u r i t yh a s ha l g o r i t h m ) 首先将消息处理为5 1 2 位的整数倍。填 充的方法与肋5 一样。把5 个3 2 位变量( 彻j 仅有四个变量) 初始化,然后开 始算法的主循环。它一次处理5 1 2 位的消息,循环的次数是消息中5 1 2 位分组的 数目。最后产生1 6 0 位的散列值。 r o nr i v e s t 公开了m d 5 的设计思想,但s h a 的设计者却没有这样做。对s h a 还没有已知的密码攻击,并且由于它产生1 6 0 位数列所以它比其他摘要算法更 能有效的抵抗穷举攻击。但是s h a 算法对输入消息的长度有限( t o n g l i b 吲q 要 求可以传输大文件) ,所以推荐使用m d 5 。 m d 4 ,m d 5 ,s h a 算法的比较如图3 一l t o n g l i n g j q 消息中问件安全系统的设计和实现 m d 4s h am d 5 h a s h 值1 2 8b i t1 6 0b i t1 2 8b i t 分组处理长 5 1 2b i t 5 1 2b i t 5 1 2b i t 基本字长 3 2b i t3 2b i t3 2b i t 步数4 8 ( 3 1 6 )8 0 ( 4 * 2 0 ) + 6 4 ( 4 十1 6 ) 消息长 2 6 4b i t 2 6 4b i t不限 基本逻辑函数33 ( 2 4 轮相同)4 常数个数 34 6 4 速度大约为m d 4 的3 4大约为彻4 的l 7 3 7 认证方法的选择 保密和认证是消息传输安全要求的两个方面。认证的主要目的有二:第一, 验证消息的发送者( 接收) 是真的,而不是冒充的,此为实体认证,包括信源, 信宿等的认证和识别:第二,验证信息的完整性,此为消息认证,验证数据在传 输或存储过程中未被窜改,重放或延迟等。 3 7 1 实体认证 实体认证实现的时间可以是每次发送消息都进行身份认证,也可以是在建立 连接的时候进行认证身份,以后传输数据就不再认证。根据我国消息中间件的应 用实际( 都在一个行业应用) 和网络实际( 网络速度慢,如果每传输一个消息都 要身份认证将影响传输效率) 推荐只在建立连接的时候进行实体身份。实体认证 实现的方法可以使用数字证书,数字签名,动态密码或固定密码( 可静态配置) 等方法。从系统的简单实用考虑,推荐使用固定密码方式实现实体认证( 上级为 下级配置一个密码下级使用该密码和上级建立连接) 。 3 7 2 消息认证 消息认证可以防止被动的网络数据传输错误和主动的非法窜改数据。一般的 消息认证方式是先对消息进行摘要处理,再对摘要结果数字签名。但是这样会大 大影响数据传输的速度,而且用户也不一定需要这样高的认证要求。所以推荐使 用最简单的奇偶效验来防止被动的网络传输错误。 由于认证的方式很多,实现起来比较复杂,运行开支大。所以t o n g l i n - k j q 只 实现最简单的认证。对认证要求很高的系统可以由应用程序自己实现更复杂的认 证功能。 3 8 设计报告总结 通过上面对各种安全实现方式的比较,我们设计出的t o n g l i n k j q 安全系统 结构如图3 2 : t o n g l i n k j q 消息中间件安全系统的i 殳计和实现 图3 - 2t o n g l i n f j q 安全系统结构 安全注册使用m d 5 算法;节点认证使用固定密码方法;点一点加密( 解密) 使用d i f f i e h e l l m a n 密钥交换算法,r c 5 加密算法和密钥保存等方法;端一端 加密( 解密) 使用本地组内密钥分发和子网密钥。 t o n g l i n k q 消息中阃件安全系统的设计和实现 第四章安全基础和安全理论 数据安全采用的主要技术是对数据进行加密和对数据收发双方进行身份 认证。古典加密技术思想是采用简单保密的算法来对数据进行加密,这种技术由 于需要经常更换算法而不能在计算机上流行。现代加密技术的思想是:复杂的算 法+ 密钥来对数据进行加密,其特点是加密算法是公开的,而密钥是需要保密 的。 根据密钥的特征不同,现代加密技术主要有两种基本的分类:对称密钥 ( s y m m e t r yk e y ) 和公开密钥( p u b l i ck e y ) 两种。但无论是那种算法,现代加 密技术的安全性主要体现两个方面: 算法:算法的速度和复杂度 密钥:j 密钥的长短和密钥本身的安全性 。 4 1r c 5 加密算法 基于对一些加密算法的分析,t o n g l i n k q 中采用了r c 5 加密算法。这种算 法的特点:速度快、密钥长度可调( 0 - 2 0 4 8 字节) 。 r c 5 含有三种例程:密钥扩展、加密和解密。r c 5 算法的参数可调,包括块 长、密钥长度和循环次数。典型块长可以是3 2 比特、6 4 比特或1 2 8 比特。密钥 长度可从0 比特到2 0 4 8 比特循环次数可以从0 到2 5 5 ,循环次数越多安全性 越高。实验分析,在5 轮后的统计特性看起来非常好。在8 轮后,每一个明文位 至少影响一个循环。对5 轮的r c 5 ,差分攻击需要2 2 4 个选择明文。在6 轮后 线性分析就是安全的。 t o n g l i n l ( q 采用r c 5 - c b c 的加密算法,它使用密钥和初始向量对第一块消 息处理后,用生成的密钥作为加密下块的初始向量,并对以后的块加密处理。 最后不足一块时,填充后再加密处理。 r c 5 的加密过程:( 假设块为6 4b i t s ,加密循环次数r 为1 ,字的长度是3 2 b i t s ) 1 ) 密钥扩充;当密钥循环次数为r 时,把密钥扩充为长为2 术( r + 1 ) = 4 个 w o r d s 的密钥s ; 1 1 ) 把以b y t e 为单位的密钥移位变成以w o r d 为单位,放入le i : 1 2 ) 由固定值p w ,q w 初始化s ;s o = p w ,s i = s i - 1 = q w : 1 3 ) 扩充“ ; 定义宏r o t l ( x ,s ,3 2 ) 为x ( o :k - - ) ( a = r o t l ( s i + a + b ,3 ,3 2 ) : s i _ a : b = r o t l ( l j + a + b ,a + b ,3 2 ) : l j = b : t o n g l i n k q 消息中间件安全系统的设计和实现 2 ) 加密处理:把明文输入拆分为长为6 4b i t s 的块,加密这个块: 2 1 ) 把这个块分成两个字a ,b ,并与初始向量( 也是6 4b i t s ) 异或,生 成的密钥文作为下块的初始向量: 2 2 ) 加密计算;( x o r 是异或,r 是加密循环次数) a = a + s o : b = b + s 1 : f o r ( i = l :i = r :l + + ) f a = ax o rb : a = r o t l ( ,8 ,3 2 ) + s 2 i : b = bx o l a : b = r o t l ( b a ,3 2 ) + s 2 木i + 1 : ) 3 ) 结束处理: :当最后一块的长度不足6 4b i t s 时,计算要填充的长度n ,用n 填充 一明文再进行最后一次加密处理: 解密过程就是上面的逆运算。 t o n g l i n k q 定义的r e 5 加密算法包括下面的方法: r c 5 _ k e y _ c r e a t e0a 创建一个密钥对象木 r c 5 _ k e y _ d e s t r o y0木删除一个密钥对象木 r c 5 k e y - s e t0a 把一个用户密钥梆定到一个密钥对象木 r c 5 _ c b c _ c r e a t e ( )宰创建一个加密器对象 r c 5 _ c b c _ d e s t r o y ( )件删除一个加密器对象木 r c 5 _ c b c _ e n c r y p t i n i t0 序把一个密钥对象梆定到一个加密器 r c 5 一四c s e t l v ( ) 件设置新的初始向量 r c 5 _ c b c e n c r y p t u p d a t e0 序加密解密消息木 r c sc b c n c r y p t _ f i n a lo 章结尾处理 t o n g l i n k q 定义的r c 5 的数据结构: # d e f i n e r c 5 1 6 一r o u n d s 1 6加密循环次数 t y p e d e fs t r u c tr c 5k e ys t ( i n tr o u n d s1溶n u m b e ro fr o u n d s 卑f u n s i g n e dl o n g d a t a 2 * ( r c 5 1 6 一r o u n d s + i ) :扩充后的密钥 r c 6 3 2 j 匝y :用户密钥对象 t y p e d e fs t r u c tc i p h e rs t i n t i d : i n tb l o c ks i z e : i n t k e y l e n : i n t i v l e n : v o i d ( * i n i t ) ( ) : v o i d ( 木d o c i p h e r ) 0 v o i d 0 c l e a n u p ) 0 : c i p h e r ; 掌使用的加密器i n * 鹕琏长度车 术密钥长度 胁初始向量的长度木 a 加密初始化方法木 a 加密过程木 十结尾处理过程幸 9 t o n g l i n k q 消息中间件安全系统的设计和实现 t o n g l i n k o 缺省支持r c 5 加密器,但是从上面c i p h e r 结构可以看到,通过 加密器i d ,我们可以调用其他加密算法的方法( v o i d ( * i n i t ) 0 ,v o i d ( * d o c i p h e r ( ) ,v o i d ( 十c l e a n u p ) 0 ) t y p e d e fs t r u c tci p h e r c t x s t c i p h e r * c i p h e r : i n te n c r y p t : 木加密还是解密 i n tb u t l e nl 聿n u m b e rw eh a v el e f t 年 u n s i g n e dc h a r i v c i p h e r 一姒x i v l e n g t h : 木初始向量木 u n s i g n e dc h a rb u f c i p h e r m a x 一! v l e n g t h : 木s a v e dp a r t i a l b l o c k 丰 i n tn u n l : r c 5 3 2 一k e yr c 5 一k s ; ) c i p t e r _ c t x ;加密器对象 4 2m d 5 消息摘要算法 胁c f b o f b 模式使用 卑再产密锅卑 , 瞄消息摘要是对任意长度的消息输入,产生1 2 8 位的摘要。理论上两个不 同的消息产生相同的摘要和根据摘要推导原消息都是不可能的。所以当对方接收 到由原消息和m d 5 摘要构成的包后,可咀重新计算消息摘要,并与原消息中的摘 要对比,从而保证消息在传输过程中未被改动。可能有这样一种想法认为,如果 消息的截取者,修改消息后并重新生成摘要并把修改后的消息和摘要重新发给 消息的接收者,接收者是不是无法判断消息的正确性? 我们认为,如果消息和摘 要是明文传输的就确实存在这个问题。但实际上消息摘要和消息加密一般都是梆 定在一起的如果截取者无法解密后把消息和摘要分开,他是无法重新生成摘要 的。 4 2 1 岫5 的算法思路 根据消息的长度,在消息的后面加上填充位( 第一位是1 ,后面全是o ) ,使 消息的总长度正好是5 1 2 的整数倍。然后把消息分成5 1 2b i t s ( 1 6 个3 2 位的 u n s i g n e di n t ) 的块,根据初始向量a ,b ,c ,d 分别对每一块摘要处理,再把 本次产生的摘要a ,b ,c ,d 带入下一块,最后生成摘要a ,b ,c ,d 。m i ) 5 的算 法如图4 一l : 2 0 t o n g l i n f j q 消息中间件安全系统的设计和实现 图4 - 1m d 5 算法 4 2 2 、l i d 5 摘要的过程 1 ) 初始化6 个3 2 位的b u f f e ra ,b ,c ,d 和长度计数器n 1 ,n h ; a = o x 7 6 5 4 3 2 1 0 b = 0 盖f e d c b a 9 8 c = 0 x 8 9 a b c d e f i ) = 0 x o l 2 3 4 5 6 7 n l = 0 如0 0 0 0 0 0 0 n l = 0 x 0 0 0 0 0 0 0 0 2 ) 根据输入到b u f f e r 中消息的长度增加n 1 ,n h ; 3 ) 把b u f f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省张掖市(甘州区)博物馆讲解员招聘考前自测高频考点模拟试题及答案详解(历年真题)
- 土地承包经营权合同15篇
- 2025年工业互联网平台数据加密算法效能提升与产业应用创新研究报告
- 2025年氢能源产业链中加氢站建设成本优化与布局策略研究报告
- 2025年工业互联网平台云计算资源动态分配在智能办公自动化中的应用报告
- 2025年工业互联网平台流量整形技术在工业互联网平台创新能力提升中的应用报告001
- 2025年福建省厦门市集美区杏东中学招聘1人模拟试卷及一套答案详解
- 第48课 お荷物は私がお持ちします教学设计新版标准日本语初级下册-新版标准日本语
- 2025浙江温州交运集团选聘温州低空经济发展有限公司副总经理1人笔试参考题库附带答案详解
- 2025年青藏铁路集团有限公司招聘(172人)笔试参考题库附带答案详解
- 医院手术室质控体系构建与管理
- 喷涂基础知识培训课件
- 2025年驻外内聘考试题库
- 中铁四局工作汇报与战略规划
- 矿山测量基础知识课件
- 【《上市公司财务造假分析的国内外文献综述》5100字】
- 企业融资培训课件
- 2025年抗菌药物合理使用培训
- 杜仲种植深加工项目可行性研究报告-备案立项
- 2025年乡村文化旅游发展报告:文旅融合下的乡村旅游生态旅游规划与实施研究
- 2025-2030中国在线总有机碳(TOC)分析仪行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论