(通信与信息系统专业论文)web应用服务安全性研究及解决方案.pdf_第1页
(通信与信息系统专业论文)web应用服务安全性研究及解决方案.pdf_第2页
(通信与信息系统专业论文)web应用服务安全性研究及解决方案.pdf_第3页
(通信与信息系统专业论文)web应用服务安全性研究及解决方案.pdf_第4页
(通信与信息系统专业论文)web应用服务安全性研究及解决方案.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

摘要 如今w e b 应用服务已经成为非常流行的网络服务,同时也是最常遭受攻击的服务, 而且w e b 攻击造成了严重的损失。除了已知的安全漏洞之外,越来越多的w e b 应用层安 全问题暴露了出来,例如s q l 注入、参数篡改、数据库安全等等。 w e b 安全是本文研究的重点和主题,所有的研究都是以此为中心来展开的。本文以 安全基础一密码学作为切入点,阐明了要解决数据传输的安全性所应具备的要素:机密 性、完整性、真实性和抗否认性,并阐明了密码学所能解决的问题。在本论文中,首先 从网络层上分析了如何利用s s l 协议对通信的双方进行身份认证,并对数据在网络中传 输的安全性进行了加强。接着从w e b 服务器端和客户端两个层面详细研究了其中的w e b 攻击,例如s q l 注入、参数篡改等,从中总结出w e b 攻击的特点和规律,对各种安全问 题提出了相应的解决方案,并对目前的数据库加密算法提出了不足,并且增加了对数据 完整性的检查。 本文最后在对w e b 攻击的研究的基础之上设计并实现了一个基于j 2 e e 的安全w e b 应用服务系统。该系统实现了服务器和客户端的双向认证、数据的安全传输、抵抗s q l 注入攻击、数据库加密等安全功能需求,实践证明此设计方案在很大程度上提高了w e b 应用的安全性。 关键词w e b 安全,双向认证,s s l ,s q l 注入,数据库加密 a b s t r a c t w e ba p p l i c a t i o ns e r v i c eh a sb e c o m et h ep o p u l a rs e r v i c et o d a ya n di st h e m o s tv u l n e r a b l es e r v i c eo fn e t w o r k t h ea t t a c kr e s u l t si ns e v e r el o s s b e s i d e s t h ek n o w nv u l n e r a b i l i t i e s ,m o r ea p p l i c a t i o n l a y e rw e bs e c u r i t i e sh a v eb e e n e x p l o i t e dr e c e n t l y , s u c h a s s q li n j e c t i o n ,p a r a m e t e rt a m p e r i n g ,d a t a b a s e s e c u r i t ye t c w e b s e c u r i t yi st h ei m p o r t a n c ea n dt h e m eo ft h i sp a p e r , a n da l lt h es t u d i e s a r es t a r t e do ni t b a s e do nt h eb a s i so f s e c u r i t y , c r y p t o g r a p h y , a sas t a r t i n gp o i n t , w r i t e re x p l a i n ss e v e r a lf a c t o r sw h i c ha r er e q u i r e dt om a k es e c u r et r a n s m i s s i o n o fd a t a :c o n f i d e n t i a l i t y , i n t e g r i t y , a u t h e n t i c a t i o n ,a n dn o n d e n i e d ,a n ds t a t e st h a t w h i c hp r o b l e m sc a nb es o l v e db yc r y p t o g r a p h y i nt h i st h e s i s ,f i r s t l y , i ti s a n a l y z e dh o wt o m a k eu s eo fss lp r o t o c o lt oa u t h e n t i c a t eb o t hs i d e so f c o m m u n i c a t i o nf r o mt h en e t w o r kl a y e r , a n dt h es e c u r i t yo fd a t at r a n s m i s s i o ni n t h en e t w o r ki ss t r e n g t h e n e d t h e nw e ba t t a c k sa r er e s e a r c h e dd e t a i l e d l yf r o m t h es e r v e rl a y e ra n dc l i e n tl a y e r , s u c ha ss q li n j e c t i o n ,p a r a m e t e rt a m p e r i n ge t c s u m m a r i z e dc h a r a c t e r i s t i ca n dl a wo fw e ba t t a c k s ,c o r r e s p o n d i n gs o l u t i o n so f v a r i o u ss e c u r i t yp r o b l e m sh a v eb e e np u tf o r w a r d ,l a c ko fd a t a b a s ee n c r y p t i o n a l g o r i t h mi sa l s op u tf o r w a r d ,a n dd a t ai n t e g r i t yc h e c ki sa p p e n d e d a tt h ee n do ft h i st h e s i s ,aw e ba p p l i c a t i o ns e c u r i t ys y s t e mb a s e do nj 2 e e i sd e s i g n e do nt h ef o u n d a t i o no ft h er e s e a r c ho fw e ba t t a c k s ,w h i c hh a sm e t s e v e r a ls e c u r i t yf e a t u r e sd e m a n ds u c ha sb o t hs i d e sa u t h e n t i c a t i o no fs e r v e ra n d c l i e n t ,s e c u r et r a n s m i s s i o no fd a t a ,r e s i s t a n c eo fs q li n j e c t i o na t t a c k s , e n c r y p t i o no fd a t a b a s es e n s i t i v ed a t ae t c i ti sp r o v e dt h a tt h es e c u r i t yo fw e b a p p l i c a t i o nh a sb e e ni m p r o v e dt oal a r g ee x t e n tb yt h i ss c h e m e k e yw o r d sw e bs e c u r i t y , t w o - s i d ea u t h e n t i c a t i o n ,s s l ,s q li n j e c t i o n , d a t a b a s ee n c r y p t i o n 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中南 大学或其他单位的学位或证书而使用过的材料。与我共同工作的同志对本 研究所作的贡献均已在论文中作了明确的说明。 作者签名:努亟日期:二竺坠年月笪日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校有权保留 学位论文并根据国家或湖南省有关部门规定送交学位论文,允许学位论文 被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以采用复印、 缩印或其它手段保存学位论文。同时授权中国科学技术信息研究所将本学 位论文收录到中国学位论文全文数据库,并通过网络向社会公众提供信 息服务。 作者签名:遨导师签名 硕十学位论文 第一章引言 1 1 课题来源与研究背景 第一章引言 本课题来源于湖南省自然科学基金项目新一代互联网分布式信息安全存取问题的 研究( 编号0 2 j j y 2 0 9 4 ) 。 目前,全球因特网用户已达1 3 5 亿,大部分用户都会利用w e b 进行网络购物、银 行转帐支付和各种软件下载。而近年来互联网的环境发生了很大的变化,w e b 2 0 成为 互联网热门的概念,w e b2 0 相关技术和应用的发展使得在线协作、共享更加方便。但 新一代的w e b 威胁具备混合型、定向攻击和区域性爆发等特点,用户对互联网的依赖性 使得网络比以往更加容易受到攻击。正因为如此,普通的浏览网页都变成了一件带有极 大安全风险的事情,。 当w e b 最初出现在公众面前时,它仅仅被用于发布静态的页面。然后,不久之后, 有些公司就想到了将w e b 用于金融交易,比如信用卡购物、在线银行和电子股票交易。 然而w e b 应用平常用到的h t t p 协议的数据传输均为明文传输,所以满足不了这种新型 w e b 应用的安全性要求,这就急切需要一项能够保证数据在网络上安全传输的技术乜1 。 在传统的数据库系统中,数据库管理员的权力至高无上,他既负责各项系统管理工 作,例如资源分配、用户授权、系统审计等,又可以查询数据库中的一切信息。为此, 不少系统以种种手段来削弱系统管理员的权力。通过数据库加密技术将数据加密以后, 数据库管理员获得的信息无法进行正常脱密,从而保证了用户信息的安全。另外,通过 加密,数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。 由此可见,数掘库加密对于网站安全管理,是不可或缺的。 我国w e b 技术应用相对落后,电子商务起步较晚,发展程度低,目前尚停留在对安 全、保密、认证、法律等技术手段和标准规范是否成熟可靠的讨论层面上,实际应用较 少。其主要的困难是安全方面的问题以及相关法规的制定。安全问题使得许多传统行业 对w e b 技术望而却步。无论电子商务是b 2 b ( 企业到企业) 的应用还是b 2 c ( 企业到顾客) 的应用,肯定会出现很多安全问题,比如入侵网络、窃取公司财产,或者数据传输被恶 意截获等。电子政务同样也面临着安全因素的威胁。电子政务要求对放在内网上的国家 涉密机要信息,通过多种方式来防止被破坏,保证信息的保密性、完整性及准确性1 。 1 2w e b 工作原理 在分析之前我们先来看看w e b 的工作原理。 一个典型的w e b 应用程序系统有四个主要部分: 硕士学位论文 第一章引言 ( 1 ) w e b 浏览器。 ( 2 ) w e b 服务器。 ( 3 ) w e b 应用程序。 ( 4 ) 数据库服务器。 图1 - 1 显示了一个典型的w e b 应用的工作模型。 圄 圄 图1 - 1w e b 应用的工作模型 首先,我们在浏览器的地址栏里输入的网站地址叫做u r l ( u n i f o r mr e s o u r c e l o c a t i o n ,统一资源定位符) 。就像每家每户都有一个门牌地址一样,每个网页也都有 一个i n t e r n e t 地址。当你在浏览器的地址框中输入一个u r l 或是单击一个超级链接时, u r l 就确定了要浏览的地址。接着浏览器通过h t t p ( 超文本传输协议) 请求w e b 服务器 查看该网页,w e b 服务器收到请求后经过处理,然后通过h t t p 响应返回给浏览器一些 它可以识别的网页代码,最后浏览器就把这些代码转化成我们所看到的界面了。这个过 程就好像我们打电话订货一样,我们可以打电话给商家,告诉他我们需要什么规格的商 品,商家经过生产、处理、包装,最后就送货到家门口了。 ( 1 ) w e b 浏览器 w e b 浏览器,是我们访问w e b 应用必不可少的一部分。它主要负责发送h t t p 请求 给w e b 服务器,再从w e b 服务器接收响应,并最终把结果呈现给用户。目前主流的浏览 器是i e 和f i r e f o x 。 ( 2 ) w e b 服务器 w e b 服务器主要负责接受来自各种浏览器的h t t p 请求,并向它们发送h t t p 响应。 w e b 服务器一般采用多线程技术用于满足大量的请求并处理许多同时产生的连接,同时 有效利用资源并提供较高的吞吐量。这些服务器的功能一般会非常多。它们本身可能拥 有提供静态h t m l 文件或者处理某些动态脚本的能力。但是,他们本身并不具备服务整 个w e b 应用程序的能力。 根据n e t c r a f t 公司( h t t p :w w w n e t c r a f t c o m ) 最新的调查,占据市场份额前三 的w e b 服务器是n 1 : 1 ) a p a c h e 薹 硕十学位论文 第一章引言 2 ) m i c r o s o f ti i s ( i n t e r n e ti n f o r m a t i o ns e r v e r ) 3 ) g o o g l e ( 3 ) w e b 应用程序 w e b 应用程序执行环境是一个编写自定义应用程序的平台。这些程序接收来自h t m l 表单或者u r l 的输入,并动态的产生输出。一般情况下,w e b 应用程序执行环境指的是 w e b 应用程序服务器,但是这两个术语有时候可以互换使用。w e b 应用程序执行环境或 者w e b 应用程序服务器组件可以仅仅是前端w e b 服务器中的一个扩展,也可以是一个单 独的应用程序。 和现代操作系统会附带内置的脚本语言或者解释器一样,前端w e b 服务器也包含了 一个预先打包的w e b 脚本语言组件。在a p a c h e 、ii s 或者n e t s c a p e 这样的w e b 服务器 中,一般都打了像p e r l 、a s p 、p h p 、j s p 以及其他脚本语言的处理器。 ( 4 ) 数据库服务器 w e b 应用程序系统中的数据库服务器用于提供应用程序需要的各种数据库和表。在 组成w e b 应用系统的所有组件中,数据库服务器可能是其中最成熟的一种。数据库服务 器通过本地a p i 、数据库驱动或者中间层组件与应用程序交互。所有的数据库事务都由 s q l 处理。目前主流的数据库为s q ls e r v e r 、o r a c l e 和m y s q l 等。 1 3w e b 安全的研究现状 根据图1 1 所示的w e b 应用的工作流程,一个w e b 应用系统的安全性我们可以从三 个方面束考虑:第一是传递数据的计算机网络层,第二为存放数据资源的服务器组,包 括应用程序服务器和数据库服务器,第三为访问系统的w e b 客户端,即w e b 浏览器。w e b 浏览器和w e b 服务器虽然是一种有利的通信方式,但是很多现在开发的w e b 应用系统都 没有很好地解决安全问题,例如,对模块的安全性、对安全的传输数据和用户认证等方 面的考虑微乎其微。 1 3 1 国内外研究现状 目前w e b 应用安全性研究主要集中在以下几个方面: ( 1 ) 身份认证。在普通的w e b 应用当中,攻击者可以扮演合法的用户或者服务器进 行“合法 的操作以达到其非法的目的。而身份认证就是通过数字证书对其身份进行认 证,来防止非法读取信息或执行非法操作。数字证书是在虚拟的网络中标志网络用户身 份的一系列数据,用来在网络通信中识别通信各方的身份,就如同现实中我们每一个人 都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。 硕七学位论文第一章引言 目前的身份认证技术是基于p k i c a 认证中心,即一个可信的,承担安全信息交换和传 输,能签发数字证书并能确认用户身份的第三方认证机构。 ( 2 ) 数据的机密传输。通信双方的数据都是在网络中进行传输的,由于系统或网络 设计的安全缺陷,这些常常被非法用户读取。为了保证数据的机密传输,通常采用的解 决办法是先对需要传输的数据利用协商好的散列算法( 通常是m d 5 ) 进行散列运算,这个 散列值附加在所传输数据的尾部,称之为消息认证码,再使用协商好的对称加密算法对 数据和消息认证码进行加密,再通过t c p 连接传输出去。这样我们就可以保证数据传输 的保密性和数据的完整性啼1 。 ( 3 ) 请求过滤。在w e b 应用中一般通过链接或表单来控制用户的权限,但用户可能 通过直接输入地址及篡改参数来访问其权限外的页面,例如s o l 注入、参数篡改、跨站 脚本攻击等,此类攻击是通过s q l 关键字、特殊参数值以及h t m l 语法进行的,所以解 决办法通常是通过监视用户的请求,判断用户请求是否具有攻击特征,如果是则中止请 求并跳至警告页面,如果否则继续处理请求哺3 。 ( 4 ) 数据库加密。数据通常是保存在数据库中,如果数据库端的操作系统被攻陷或 者数据库管理员本身有着不良企图,导致数据信息丢失,则会带来严重的后果。数据库 加密是防止数据库中数据存储和传输中失密的有效手段。加密的基本思想是根据一定的 算法将原始数据加密成为不可直接识别的格式,数据以密文的方式存储和传播。加密算 法是数据加密的核心,目前数据库加密算法主要有: 1 ) 对称加密算法 2 ) m d 5 、a e s 和r s a 混合加密算法 3 ) 三重d e s 和r s a 混合加密算法 以上的几种算法都各有优缺点,具体选择哪一种我们应该根据实际应用情况来权 衡。 1 3 2w e b 安全研究中待解决的问题 虽然国内外已经开始注重w e b 应用的安全研究,但研究力度还不够,其中还存在着 一些问题以待解决: ( 1 ) 身份认证技术在w e b 服务中没有得到普遍的应用,或者只是对服务器端的单向 认证,其安全性能没有保证,如须进一步提高w e b 应用的安全性,必须对通信的双方即 服务器和客户端同时进行身份认证。 ( 2 ) 由于浏览器的设计缺陷,可能导致数据机密传输中加密所使用的密钥丢失,数 据传输的保密性无法保证。 ( 3 ) s q l 注入、参数篡改、跨站脚本攻击等攻击手段没有引起重视,在国内的很多 w e b 应用系统中都忽略了这个问题。 4 硕士学位论文第一章引言 ( 4 ) 目前采用的数据库加密算法中有些算法存在着缺陷,有被破解的可能性,而且 目前的加密算法没有考虑到数据的完整性,这样数据如果被篡改了,我们也不得而知。 1 4 本论文的主要研究工作 因特网和w e b 技术的飞速发展,使得资源共享和信息传输更加便捷。无论是政府、 企业,还是个人都需要通过网络、通过w e b 应用来发布信息、提供服务。但是,因特网 及其传输协议在设计之初基本上没有考虑安全方面的问题,这使得网络上存在许多不安 全的因素,数据在网络中的传输无所不在,破坏者往往通过一些简单的工具就能获取网 络中传输的数据,如果数据中包含了一些私有、机密的信息,如用户密码或信用卡号码 等,后果将不堪设想。在电子商务中,还要考虑数据在传输过程中的完整性和不可抵赖 性,这更加复杂。如何提高w e b 应用的安全性能呢? 本文从多个层次入手,把w e b 应用 安全隐患降低到最小的程度。 本文的主要研究内容是: ( 1 ) 密码学基础。密码学是一门比较博大精深的学科,它是一切安全应用的基础。 本文介绍了密码学的基础知识,包括对称密码学,非对称密码学以及数字证书和数字签 名等等,对其概念和原理作了精简的表述。 ( 2 ) 数据传输的安全问题分析。本章主要分析了数据传输的安全问题,介绍了h t t p s 协议和s s l 协议,详细分析了如何利用s s l 协议对服务器和客户端进行双向认证,并如 何安全地传输数据,提出了几点s s l 协议在应用中存在的不足。 ( 3 ) w e b 应用服务的安全问题分析。本文讨论了w e b 应用服务中存在的安全问题, 其中包括服务器端和客户端存在的安全隐患,例如s o l 注入、篡改参数、数据库安全等。 通过分析上述的安全问题,我们知道了安全问题的由来及其原理,这样我们在设计w e b 应用系统的时候可以更好地避免这些问题的出现。 ( 4 ) 安全w e b 应用服务系统设计与实现。本文中先介绍了j 2 e e 以及相关技术,最 后在对w e b 攻击的研究的基础之上设计并实现了一个基于j 2 e e 的安全w e b 应用服务系 统,该系统解决了以下的几个安全问题- 1 ) 服务器端和客户端的双向身份认证。 2 ) 数据传输过程中的加密、解密以及完整性检查。 3 ) 抵抗s o l 注入攻击和其他问题。 4 ) 数据库中敏感数据的加密。 ( 5 ) 最后在论文的结尾,讨论了本论文所解决问题的特点和不足,并对w e b 应用前 景进行了展望。 硕士学位论文第二章密码学理论基础 第二章密码学理论基础 密码学是安全问题及其解决办法的基础,了解密码学的有关知识,有助于我们了解 w e b 应用中存在的安全隐患,更为稍后提出来的解决方案提供了理论基础和依据。 在数字世界中,数据安全的一个特征是保密性( p r i v a c y ) ,它意味着攻击者不能够 读取或读懂被攻击者的敏感数据,这可以通过加密来实现。另一个特征是数据完整性 ( d a t ai n t e g r i t y ) ,它指的是一种机制,当某些合法数据被攻击者改变时,它可以告诉 被攻击者,这相当于现实生活中的警报器。认证( a u t h e n t i c a t i o n ) 用来验证实体的身份, 这可以比作从银行账户中提取钱时所需的身份i d 。最后,第三特征是非否认性 ( n o n r e p u d i a t i o n ) 可使人们必须遵守承诺,迫使人们对自己的行为负责,具有法律效力。 这些特征实现的基础就是密码学。 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于 编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破 译学,总称密码学。 待加密的消息称为明文,它经过一个以密钥为参数的函数变换,这个过程称为加密, 输出的结果称为密文,然后,密文被传送出去。我们假设敌人或者入侵者听到了完整的 密文,并且将密文精确地复制下来。然而,与目标接受者不同的是,他不知道解密密钥 是什么,所以它无法很轻易地对密文进行解密。 用一种合适的标记法将明文、密文和密钥的关系体现出来,这往往会非常有用。我 们将使用c = e 。( p ) 来表示用密钥k 加密明文p 得到密文c 。类似地,p = d 。( c ) 代表了 解密c 得到明文p 的过程。由此可以得到: d 。( e 。( p ) ) = p( 2 1 ) 这种标记法也说明了e 和d 只是数学函数,事实上也确实是这样。唯一值得特别注 意的地方是,它们都是带两个参数的函数,但是我们将其中一个参数( 密钥) 写成下标 的形式,而不写成实参的形式,从而将它与消息本身区别开来旧1 。在上面那个公式中, 我们假定使用了对称密钥密码。 2 1 对称密钥密码学 对称密钥算法就是指用加密数据使用的密钥,可以计算出用于解密数据的密钥,或 者两个密钥是一样的,反之办然。对称加密算法要求通信双方在建立安全信道之前,约 定好所使用的密钥。对于好的对称加密算法,其安全性完全决定于密钥的安全,算法本 身是可以公丌的,因此一旦密钥泄漏就等于泄漏了被加密的信息。图2 - i 展示了对称加 密解密的原理。 6 硕士学位论文第二章密码学理论基础 , 图2 - 1 对称加解密示意图 目前常见的对称算法主要有d e s 算法、三重d e s 和a e s 算法。 d e s 算法的基本结构见图2 2 。明文按6 4 位数据块的单元被加密,生成6 4 位的密 文。d e s 算法带一个5 6 位密钥作为参数,它共有1 9 个步骤。第一步是一个与密钥无关 的转置操作,它直接作用在6 4 位明文上。最后一步正好是这个转置的逆操作。最后一 步之前的上一步骤是交换左3 2 位和右3 2 位。剩下的1 6 步在功能上是完全相同的,但 使用了原始密钥的不同函数作为参数阳1 。 图2 - 2d e s 的基本结构 a e s ( a d v a n c e de n c r y p t i o ns t a n d a r d ,高级加密标准) 是新的数据加密标准。2 0 0 0 年1 0 月,n i s t 经过一场密码学比赛后宣布胜出的算法r i j n d a e l 作为新的a e s 。r i j n d a e l 的名字是由两位作者姓氏v i n c e n tr i j m e n 和j o a nd a e m e n 合成的,算法的原型是s q u a r e 算法,它的设计策略是宽轨迹策略。r i j n d a e l 是一个迭代型分组密码,其分组长度和 密钥长度都可以变化,各自可以独立地指定为1 2 8 比特、1 9 2 比特和2 5 6 比特n 引。 a e s 加密算法的输入分组和解密算法的输出分组均为1 2 8 位。输入分组用个以字节 为单位的正方形矩阵来描述,该分组被复制到一个状态数组s t a t e 中。a e s 算法的加密 和解密流程如下: ( 1 ) 字节代换变( s u b b y t e s ) 。a e s 定义了一个s 盒( s b o x ) ,字节代换的正向变换就 是一个在s b o x 中的查表操作。字节代换的逆向变换相应地在一个逆s 盒( i n v s b o x ) 中进 行查表操作。 ( 2 ) 行移位变换( s h i f t r o w s ) 。行移位的操作比较简单,在正向行移位变换中,s t a t e 7 硕十学位论文第二章密码学理论基础 的第一行保持不变,第二行、第三行和第四行分别循环左移1 个字节、2 个字节和3 个 字节。逆向行移位变换执行相反方向的移位操作。 ( 3 ) 列混淆变换( m i x c o l u m n s ) 。列混淆变换较为复杂,正向列混淆变换对每列独立 地进行操作,每列中的每个字节被映射为个新值,这个变换基于s t a t e 的矩阵乘法。逆 向列混淆变换( i n v m i x c o l u m n s ) 为正矩阵变换的逆变换。 ( 4 ) 轮密钥加变换( a d d r o u n d k e y ) 。轮密钥加的正向和逆向变换相同,都是用1 2 8 位 的s t a t e 按位与1 2 8 位的密钥x o r 。 ( 5 ) 密钥扩展算法( k e y e x p a n s i o n ) 。a e s 密钥扩展算法输入4 字( 1 6 字节) 密钥,输 出值是一个4 4 字( 1 5 6 字节) 的一个线性数组,每4 个字组成一组用于算法中初始轮密 钥加和另外1 0 轮中每轮的密钥加操作。 a e s 算法的加密和解密框图见图2 3 。 1 2 8 位数据分组 上 与扩展密钥的异或运算 t j 扩展密钥的异或) 上 s 盒变换 上 行变换 0 与扩展密钥的异或 0 输出12 8 位数据1 2 8 位数据分组上 与扩展密钥的异或运算 心扩展密钥的异盛夕 (、墨型奎垫)反行变换上反列变换 上 与扩展密钥的异或 输出12 8 位数据 图2 - 3a e s 的加密与解密框图 对称密钥算法的优点是加密效率高,速度快,但是密钥的分发却是该加密体系中的 最薄弱的一个环节。由于加解密双方都要使用相同的密钥,因此在发送和接收密文之前, 必须完成密钥的分发。各种基本的手段均很难保障安全、高效地完成此项工作。在对称 加密算法中,尽管由于密钥强度增强,跟踪找出规律破获密钥的机会大大减小了,但密 8 硕士学位论文第二章密码学理论基础 钥分发的困难问题几乎无法解决。 2 2 公开密钥密码学 在历史上,分发密钥往往是绝大多数密码系统中最薄弱的环节。不管一个密码系统 有多强,如果入侵者能够偷取到密钥,则整个系统就毫无价值了。密码学家总是认为加 密密钥和解密密钥是一样的( 或者很容易从一个推导出另一个) 。但是,这个密钥必须 要被分发给一个系统的所有用户。因此,看起来这里存在一个本身固有的问题:密钥必 须被保护起来,以防被盗,但是它们又必须被分发出去,所以它们不可能仅仅被锁在银 行的保险柜中。 为了从根本上克服传统密码在密钥管理上的困难,公钥密码学被提出。1 9 7 6 年美 国斯坦福大学的博士生w d i f f i e 和他的导师m e h e l l m a n 教授发表了密码学新方 向的论文,第一次提出公开密钥密码的概念阳1 。 2 2 1 公开密钥密码概述 在d i f f i e 和h e l l m a n 提出的密码系统中,加密密钥和解密密钥并不相同,而且不 可能很轻易地从加密密钥推导出解密密钥。在他们的提案中,( 受密钥控制的) 加密算 法e 和解密算法d 必须满足三个要求。这三个要求可以简述如下: ( 1 ) d ( e ( p ) ) = p 。 ( 2 ) 从e 推断出d 极其困难。 ( 3 ) 用选择明文攻击不可能破解e 。 第一个要求是说,如果我们将d 作用在一条被加密的消息e ( p ) 上,则可以恢复 原来的明文消息p 。如果没有这个特性的话,则合法的接收者就无法解密密文了。第二 个要求不言自明。第三个要求是必要的,因为入侵者有可能用此算法对他们的核心内容 进行试验。具备了这些条件以后,加密密钥就有理由可以被公开了。 在公钥体制中,加密密钥不同于解密密钥,将加密密钥公之于众,谁都可以使用, 而解密密钥只有解密人自己知道。它们分别称为公开密钥( p u b l i ck e y ) 和秘密密钥 ( s e c r e tk e y ) 。传统的对称加密算法遇到了密钥分发管理的难题,最优秀的算法,如果 密钥在分发、传发时泄漏,则整个安全体系毁于一旦。非对称加密算法有效地避免了分 发管理密钥的难题引。 2 2 2 公开密钥密码的工作方式 公开密钥密码的基本工作方式如下所述。有一个人,比如说用户a ,希望接收秘密 的消息,他首先设计了两个满足以上要求的算法。然后,加密算法和用户a 的密钥都被 9 硕士学位论文第二章密码学理论基础 公开。我们将使用标记e 来表示以用户a 的公开密钥作为参数的加密算法。类似地,以 用户a 的似有密钥作为参数的解密算法被标记为d 。用户b 也做同样的事情,即公开 e b ,但是保密d 。 用户a 要把数据p 安全保密地传送给用户b ,有以下三种工作方式: ( 1 ) 确保数据的秘密性 加密过程: 1 ) a 查到以b 的公开密钥作为参数的加密算法e b 。 - 2 ) a 用e b 加密p 得到c : 。 c = e 。( p ) ( 2 2 ) 3 ) a 发送c 给b 。 解密过程: 1 ) b 接收c 。 2 ) b 用自己的保密的密钥解密c ,得到明文p = d 。( c ) 。 由于只有用户b 才拥有保密的密钥,而且由公开的密钥在计算上不能推出保密的密 钥,所以只有用户b 才能获得明文p ,其他任何人都不能获得明文p ,从而确保了数据 的秘密性。 然而这一工作方式却不能确保数据的真实性。这是因为任何人都可以查到b 的公开 的密钥,因此任何人都可以冒充a 通过发送假密文c7 = e 。( p7 ) 来发送假数据p7 给b , 而b 不能发现。 为了确保数据的真实性,可采用下面的工作方式。 ( 2 ) 确保数据的真实性 加密过程o 1 ) a 首先用自己的保密的密钥加密p ,得到密文c : c = d ( p )( 2 3 ) 2 ) a 发送c 给b 。 解密过程: 1 ) b 接收c 。 2 ) b 查到以用户a 的公开密钥作为参数的加密算法e 。 3 ) b 解密c 得到p = e ( c ) 。 由于只有用户a 才拥有保密的密钥,而且由公开的密钥在计算上不能推出保密的密 钥,所以只有用户ay j 能发送数据p 。其他任何人都不能冒充a 发送数据p ,从而确保 了数据的真实性。 然而这一工作方式却不能确保数据的秘密性。这是因为任何人都可以查到a 的公开 的密钥,因此任何人都可以获得数据p 。 l o 硕十学位论文第二章密码学理论基础 ( 3 ) 为了同时确保数据的秘密性和真实性,可将以上两个方式结合起来,采用如 下的工作方式。 加密过程: 1 ) a 首先用自己的保密的密钥加密p ,得到中间密文x : x = d ( p )( 2 4 ) 2 ) a 查到以b 的公开密钥作为参数的加密算法e 。 3 ) a 用e b 加密x 得到c : c = e 。( x )( 2 5 ) 4 ) a 发送c 给b 。 解密过程: b 接收c 。 2 ) b 用自己的保密的密钥解密c ,得到中间密文x = d b ( c ) 。 3 ) b 查到以用户a 的公开密钥作为参数的加密算法e ,解密x 得到p = e ( x ) 。 此协议能够同时确保数据的秘密性和真实性。只有用户a 才拥有保密的密钥,而且 由公丌的密钥在计算上不能推出保密的密钥,所以只有用户a 才能进行加密时的第1 ) 步操作,才能发送数据p 。其它任何入都不能冒充a 发送数据p ,从而确保了数据的真 实性。又由于只有用户b 才拥有保密的密钥,所以只有用户b 才能进行解密时的第2 ) 步操作,才能获得明文p ,其它人都不能获得明文p ,从而确保了数据的秘密性3 。1 引。 2 2 3r s a 公开密钥算法 r s a 公开密钥算法是在1 9 7 8 年由美国麻省理工大学的三名密码学者r i v e s t 、s h a m i r 和a d l e m a n 提出了一种基于大合数素因子分解困难性的公开密钥密码,其名字依次是三 位作者名字的首字母。r s a 密码风格简单优雅,即可用于加密,又可用于数字签名,安 全、易懂。迄今为止的所有公钥密码体系中,r s a 密码系统是最著名、使用最广泛的一 种。r s a 算法实现过程如下: ( 1 ) 选择两个大素数p 和q 。 ( 2 ) 计算n = p * g 。 ( 3 ) 计算z = ( p 一1 ) :i :( q 一1 ) 。 ( 4 ) 选取一个整数e ,使1 e 0 h t t p :w w w 木木木木c o m a b c j s p ? p = 8a n d ( s e l e c tc o u n t ( 木) f r o mm s y s o b j e c t s ) o 这个方法能够在不允许w e b 服务器返回错误提示的情况下仍然能判断是否是s o l s e r v e r 还是a c c e s s 。 如果数据库是s q ls e r v e r ,那么第一个网址的页面与原页面 h t t p :w w w 木料木c o m a b c j s p ? p = 8 是大致相同的,而第二个网址,由于找不到表 m s y s o b j e c t s ,会提示出错,就算程序有容错处理,页面也与原页面完全不同。 如果数据库用的是a c c e s s ,那么情况就有所不同,第一个网址的页面与原页面完 全不同:第二个网址,则要看数据库设置是否允许读该系统表,一般来说是不允许的, 所以与原网址也是完全不同。大多数情况下,用第一个网址就可以得知系统所用的数据 库类型,第二个网址只作为开启错误提示时的验证。 ( 2 ) 取得表名。 h t t p :w w w 木木木木c o m a b c j s p ? p = 8a n d ( s e l e c tc o u n t ( 木) f r o ma d m i n ) = 0 如果页面与原先的页面相同,说明附加条件成立,即表a d m i n 存在,反之,即不存 在。 ( 3 ) 取得字段名。 方法1 ) 猜解法 此方法就是根据个人的经验猜字段名,一般来说,用户名字段的名称常 用 :u s e r n a m e ,n a m e ,u s e r ,a c c o u n t等 。而密码字段的名称常 用:p a s s w o r d ,p a s s ,p w d ,p a s s w d 等。并通过语句“h t t p :w w w 术:i :爿c ,l c c o m a b c j s p ? p = 8 a n d ( s e l e c tc o u n t ( 字段名) f r o ma d m i n ) 0 进行判断,“s e l e c tc o u n t ( 字段名) f r o m a d m i n ”语句得到表的行数,所以若字段名存在,则a b c j s p 工作正常,否则异常。如 此循环,直到猜到两个字段的名称。 硕士学位论文第四章w e b 服务的安全问题分析 方法2 ) 读取法 基本的实现方法是“h t t p :w w w 术木料c o m a b c j s p ? p = 8a n d ( s e l e c tt o p 1 c o l n a m e ( o b j e c t i d ( a d m i n ) ,1 ) f r o m s y s o

温馨提示

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

评论

0/150

提交评论