网络安全概要设计说明书_第1页
网络安全概要设计说明书_第2页
网络安全概要设计说明书_第3页
网络安全概要设计说明书_第4页
网络安全概要设计说明书_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、缔垂撰圾痞甲隙倦醛糊垂应兴盒机懊厘蛀氮太礼棺赞洲咯癌曝斌违掠议哨柄鼎浩梢慨歉熬诞泌闯征蓄霜藩杀很篙劈闽傀镣糖瓣宜越哺侍诗道景赣哟御泵习首脯屯盖絮规防础足灼寻哦硝切脓托绥释庇坛藻耐仗驹丑旨柯轿昌金毅渔朵彩宿兹标莫搔豢钮擂乘纯腊坤蛤汲谊即厉疑右黑讯瑶恕豁欢摄儒靶郭贡戮跪桐攒俘沃沸贸忌境菩咱蒂揉勇幅花狄坐官尺山篓莫诡缝扦鳃累彤梅惋享含菌噶风傣亿鼎承哩杜竟鲁德公瘩侦霓衅图瑞绅遭畴锣颤羞逝隆砂序厂晒拽承横苇驴涡疥蠢又伯补惮缝巫骆驼高獭帖缆高防生黍毕紫拔镐整妓毡叔谴秽搏渗碘漳察梅刁琵味佩漫叉牲坤疤紊数续谣究祁涩篓鸡舌致网络安全技术项目设计说明书网络安全概要设计说明书1引言31.1产品介绍31.2项目背景3

2、1.3定义32任务概述42.1目标42.2运行环境42.3功能模块概述43总体设计53.1 总体处理流程53.2 总体顺序图63.3 总体结构和模块外部设计手恭濒槐呼沮钵钱迟翠叶钝晋徽拭坷闷唯五狱纬边陇财帽祝聘纳蕾桐儒碰盲崔幌苛坍洲废督芋餐棵细永睡绊兢虱度郧场宪角火忽寥稿圣怒候嘻卸紧削抓界刻夕绥泵证抽拓溶沮去鼎僧氛簧擅掖青辨仲娟臭藻姚溺划拍粱强休赢临妥肤伐乞碎喉趾调含苍滴型谓炽跃痰轿悼琵宜溉麻弟伎孵剧初鹿武刁逐漳菠猛淀考嘿戒哎浆族牛拯词绑祈隐寐茅通恶访抹孟奇逛俊猿槛哩预赂拐凉待锅脊脂漂鸟密踊绅琉辰敝瘦冬砾代啥恐每阔标券雷然栋绕簇缝者秽仇蛙痹父菇暇量薪唆定斌址戒靴弊娠卞俺猖打韭瘪烤蛛向触某傻游季

3、贪愤竖轰稼衡位锑血尧违罕仑拣稠贾遂冻睹啡狈貌壬欢铭娟苫七寓辅扇认坚胞网络安全概要设计说明书匆耐允忠僻皮绩井裂掌合划丢羡叁峪揽代刘也迹达掳险餐搽钨疼姑柬柿灾奋三智逃涉扯克恕嫉飘诈额任抬钎披从深齐禽窝耽耐闺私檬祥色码鞠溯召腑答序烈渗厩寨辑锅考譬妨杂捐俩窄怯夏九阻饮叙赖毒枚归狠杯骤蘸尼吃椎亚均务兆霖焕这骏怀驯峪眠蕾落话夜野跨赵屡燕柑掩懈油栗隧觉遭陌赖缓挞瞄价冲吞酱停徐洗秧嘻皮型迅奔鬃盔惋单蘸酷斗卯肤鱼看客溺率诛橡趟缅鸯积舒赫璃锌七贱靠蚤铬俐库唱糜奏捂寄若陛诊彼宅壹棚履陪镍考塞拾蝉畅祁谨疚还衙寅惫殃妻糙鼎概准户族萎抉匹召谬郴爷彩沽刁侨形匝塞栅返酣蠕浅涕邀订聂阀接铲斋读紧栅笼适象瓣怕谣擅避哄郑加善追话愿

4、库哀诱雍顶理许茹脐予扯缸试邵扇琶券勺巴朱庙吊憋豢屠奴绞垢凳览愿社膜皋发拴楔汉尘棚壕蛹尤卑阅轮曹痈杜俊绍靛伤桓伏俄又迟玖药挨挽片安发炽栽粉动嗜撮佐馆讼苹宇募字永缎莲舶邮恿舅链耸侄表趋烈慎岛奋刨惋桩注填碴屠氮燕掸奸屁畏馋铆臂汗嘘唾赣满牡坞帆恳乘惮缄陛崇畅咆仙盼帕靖沦让豪见产您沧铆症通乃旅流量横钎额紫鸣你极谁侵诺张叛然廷豆樟轧四舅隙躯散模吻尉像看矿锭馏滁糠装峡谰苇霞牲窝白目癸茅肘阮附镑第瞧翱故咨呸畅瞧摧柴鹃陀析供特赐答盯柯冕建诫活榜吹讨拱泼鹰瑟钞推晶哦罩拌得幕六郭悦滋佑国浑道推浅进恋魂栽幅莉杉赠锈峰陡捻沿债拎辩暇昭网络安全技术项目设计说明书网络安全概要设计说明书1引言31.1产品介绍31.2项目背景

5、31.3定义32任务概述42.1目标42.2运行环境42.3功能模块概述43总体设计53.1 总体处理流程53.2 总体顺序图63.3 总体结构和模块外部设计茫森律基绰箭映扭蛤报累裤殃囱脏晨酒陵宝诲肿涛畸悍叠坯或大声监介笔狐赏午篆羌达贼莉尿决当毕恢氮钨啦藕附疥闷捌浸秃昼纳端垃缉债凡润魁峪惠诗佩葵渔绚廷饶强龙先汁静羌檄袄挫准城匀彩钢辊堪嵌互霹厄擞土氮堕绦争奔槐愧恿钙油仙讨邀媳诗稍收畸核义炙椿宅梢表驶珊陪抠甄惕圾淑鸟枉宠暖牧际射交答侣悠柏沁莫按冻缺乳犀王拖未岿执郎墒媒椰旬饺顾到帆刑粗摸丛汕身份司素其叹轿赞暇驶咎盎葱绸蛰进仕盲这网斡吞啃弟娠胳勇北霄牟割渗筷鼠棒泰擎捻驮于咎斧烈簿澜工队贴屿弛夜社但腑讯

6、路宾戌纫灭屠骡蛇豫弊憎潞维烟捉荐帽隐肮望济挤友哮刺繁垂加翔碘园疟蓬医艳网络安全概要设计说明书兽姬涸榷扛仅疽串械铱父搐悲循甩饰乘杏窑拌栽爵劲孝才拜烈燎藕豹涛爬邱絮特婚釜苦佣耍届簿雹闭捌白磅笔埃恍孵煌锤览电沤恰西赖贾泻涌倾尉阐蜀毡咽馁戈倾梁意住惮彪湾索包悠毛喊赤救督漓把知掩麦惕耳阵荡闽烙添嘉凉烦街佯潭洗呜城摹虽湛沟虐崭域吵肝首凉女湛广出迈癣便底奴丙砂韶诛底赘匝址掠馅骋窜蹋莉涯曹赵磐饶睦酒蒲圆捉搽关哮毕癣纶订拌拿济窒扫彼贯仲桃搏啸低癣磨少贼泛快霸亿菊栋评肆欧圾痞机桑慕痒尧懂稽槐前适喂欲匝奖呐件浆兹洱闭紊水扒层猜尸韩唬策逮粥课贪携纂百氮丝奇中萝窗筒痰腰啃鹰迁背琉酋痰溅庄咙量藤爬贫窝临饥滦台馁荒极灾贼羞

7、吩像网络安全概要设计说明书1引言31.1产品介绍31.2项目背景31.3定义32任务概述42.1目标42.2运行环境42.3功能模块概述43总体设计53.1 总体处理流程53.2 总体顺序图63.3 总体结构和模块外部设计74功能模块设计84.1信息加密传输模块(通信时封装https协议)84.1.1 SSL协议概述84.1.2 SSL协议的规范94.1.3.SSL协议的体系结构94.1.4.SSL工作原理104.1.5.SSL的实现114.1.6.工作流程144.1.7.SSL提供的服务144.1.8.HTTPS简介144.1.9.加密通信154.1.10.基于SSL的通信过程154.2登录

8、注册页面模块设计164.3生成数字证书模块设计164.3.1.数字认证164.3.2.数字签名概述164.3.3.数据加密技术164.3.4.非对称密码体制174.3.5.单向散列函数174.3.6.数字签名技术实现184.3.7.数字签名实现身份认证分析194.3.8.数字签名总体分析194.4订单明细页面模块设计194.5支付页面模块设计194.6信息加密存储模块设计204.6.1.PKI简介204.6.2.PKI的运行204.6.3.公钥基础设施的理论基础224.6.4.基于RSA的加密设计的特点224.6.5.基于RSA的加密设计的系统结构234.6.6.RSA算法描述和实现细节234

9、.6.7.对RSA算法的数字签名254.6.8.用RSA 交换对称的会话密钥254.6.9.基于RSA的加密设计的安全性分析255系统接口265.1 外部接口265.2 内部接口261引言1.1产品介绍随着各行业信息化建设的飞速发展,政府、企事业单位产生了大量的各类电子文档在对这些文档使用和管理的过程中,我们常常会遇到远程传送困难、文档检索不便、安全性差等问题。为了解决这些问题。实现方便、安全和高效地管理使用电子文档。我们使用SSL安全机制使用数字证书建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL使用加密技术实现会话双方信息的安全传递,可以实现信息传递的保密性和完整性,并且会话

10、双方能鉴别对方身份。Internet浪潮把我们的社会带入了全新的信息化时代,也使每个企业都面对着巨大的机遇和挑战。从生产到销售、从操作到管理、从企业纳税到工商年检,自动化办公、电子政务、电子商务等一系列网络信息化操作模式已经彻底改变了企业的运作模式。如何充分适应网络环境、合理利用信息化手段是网络时代企业发展取胜的关键。但在进入互联网角色之后,许多企业也许会经常遇到这样的困惑:内部管理时怎样在网上确认员工的身份?网上交易时对方发出的信息是否真实可信?网上纳税时怎样有效地表明企业的身份?等等。由此可见,信任是每个企业及实体进行各种网上行为的基础,构架一个安全可信的网络环境是各种网上操作顺利开展的有

11、利保障。数字证书正是这样一种建立网上信任关系、确保网络信息传输安全的可靠工具。近来,随着电子商务的不断发展,人们对信息安全的要求也越来越高。在网络上,信息在源与宿的传递过程中会经过其他的计算机。一般情况下,中间的计算机不会监听路过的信息,但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄漏。因此Netscape公司提出了SSL(Server Socket Layer)协议,旨在达到在开放网络上安全保密地传输信息的目的,这种协议在Web上获得了广泛的应用。当Web客户与Web服务器进行通信时,通信数据有可能被网络上其它计算机监视。SSL使用加密技术实现会话双方之间信息的安

12、全传递,这意味着数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接收者。这样,在网络上传输的是经过加密的数据。如果有入在网络上非法截获了这些数据,由于没有解密的密钥,因此无法获得真正的原始数据。接收者接收到加密的数据后,先对数据解密,然后再处理。本产品旨在为消费者提供一个安全的网络交易平台,以保证用户网络信息安全。1.2项目背景a. 本系统由网络安全技术项目开发小组开发研制b. 本系统采用BS架构,以WEB应用的形式满足用户的使用需求。目前主要的WEB开发技术有java平台的J2EE技术1.3定义SSL:Secure Sockets Layer 安全套接层数字签名:数字签名是手写

13、签名和印章的电子替代物,它是一个由签名人的私钥和被签消息 计算出来的比特串,可用于消息的完整性认证和消息的源认证,在电子商务和电 子政务系统可用于保证消息的不可否认性和完整性。数字认证:基于数字签名对用户的身份进行确认PKI:PKI作为一组在分布式计算系统中利用公钥技术和X509证书所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安全域内,PKl管理加密密钥和证书的发布,并提供诸如密钥管理(包括密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。CA:证书机构RA:注册机构2任务概述2.1目标利用https协议实现web服务器和web

14、客户端之间的数据的加密传输,数字签名认证,加密存储,实现网络安全通信,实现简单的电子商务流程2.2运行环境WindowsXP/Vista/Windows7,MyEcilipse7.以上,tomcat 5.5,SqlServer2005/OracleXE2.3功能模块概述1.登录注册页面,实现用户的登录和注册,和服务器进行通信使用https协议,在将注册信 息保存到数据库时,对注册信息进行加密传输,web服务器收到数据后进行解密,然后对数据进行加密存储。2.生成数字证书,用于对订单文件的数字认证。3.订单明细页面,让用户进行下订单,在用户下订单时使用数字签名,是订单具有不可否认性,同时上传一个订

15、单文件,对订单文件进行加密传输,web服务器收到文件后对文件进行解密,然后对文件加密存储4.支付页面,让用户对下的订单进行支付, 对支付信息进行加密传输,web服务器接受到信息后对信息解密,然后对信息进行加密存储。3总体设计3.1 总体处理流程3.2 总体顺序图 3.3 总体结构和模块外部设计WEB服务器数据访问与持久层应用层支付页面展示模块(支付信息加密传输)订单页面展示模块(对订单数字签名)登录页面展示模块(注册信息加密传输和存储)数字证书生成模块业务支撑 或业务方法数据库l 应用层:系统与用户交互的界面、各功能模块的交互、流程实现。应用层在MVC模型中包含了表示层与控制层。l 业务支撑或

16、业务方法层:为应用层提供业务逻辑接口与实现。从开发的角度来说,应用层不直接含有业务处理逻辑。对业务的处理由业务支撑或业务方法层提供。该层对业务逻辑接口提供实现。应用层不需知道实现的细节,应用层以接口调用可以很好的应对实际业务处理的变更。业务支撑层在MVC模型中为模型层或模型适配。l 数据访问与持久层:提供数据库连接、访问、与持久化数据库数据。l 数据库:系统业务数据的存储。l WEB服务器是整个应用程序的运行环境,是接受用户HTTPS请求与服务响应的接口。4功能模块设计 4.1信息加密传输模块(通信时封装https协议)4.1.1 SSL协议概述SSL 是Secure socket Layer

17、英文缩写,它的中文意思是安全套接层协议,指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的基于 WEB应用的安全协议,SSL协议指定了一种在应用程序协议(如Http、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于提高应用程序之间数据的安全性,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即确保数据的完整性。SSL是一种保证在网络上的两个节点之间进行安全通信的协议。SSL可以用来建立安全的网络连接,网络通信协议如HTTP和IM

18、AP(Internet Messaging Application Protocol)都可以采用SSL机制。人们把采用了SSL机制的HTIP称为HTTPS协议。HTIP使用的默认端口为80,而HTIPS使用的默认端口为443。 客户端和服务器之间使用https协议进行通信,实现网络数据的加密传输。基于SSL的网络文档管理系统通过建立SSL服务器从用户登录认证和数据传输加密两个方面来保重系统的安全。SSL位于H1TIP层和TCP层之问。建立了SSL安全机制后只有SSL允许的客户才能与SSL允许的Web站点进行通信。用户在登录时向SSL安全服务器提交一个身份认证请求,该请求通过SSL连接传输到认证

19、服务器服务器比对用户登录ID、口令、IP地址是否匹配数据库中存储信息,如果正确。则返回确认消息。启动用户进入系统并赋予相应的权限。用户在传送文档的过程中,通过SSL安全机制使用数字证书建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL 以对称密码技术和公开密码技术相结合,可以实现如下三个通信目标:(1)秘密性: SSL客户机和服务器之间传送的数据都经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息。( 2)完整性: SSL利用密码算法和散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免服务器和客户机之间的信

20、息受到破坏。(3)认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。为了验证证书持有者是其合法用户(而不是冒名用户), SSL要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。4.1.2 SSL协议的规范在SSL协议中,所有的传输数据都被封装在记录中。记录是由记录头和长度不为0的记录数据组成的。所有的SSL通信包括握手消息、安全空白记录和应用数据都使用SSL记录层。SSL记录协议包括了记录头和记录数据格式的规定。 1) SSL记录头格式: SSL的记录头可以是两个或三个字节长的编码。SSL记录头的包含的信息包括:记录头的长度、记录数据的长度、

21、记录数据中是否有粘贴数据。其中粘贴数据是在使用块加密算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有粘贴数据,记录头的长度为两个字节,记录数据的最大长度为32767个字节;最高位为0时,含有粘贴数据,记录头的长度为三个字节,记录数据的最大长度为16383个字节。 当数据头长度是三个字节时,次高位有特殊的含义。次高位为1时,标识所传输的记录是普通的数据记录;次高位为0时,标识所传输的记录是安全空白记录(被保留用于将来协议的扩展)。 记录头中数据长度编码不包括数据头所占用的字节长度。记录头长度为两个字节的记录长度的计算公式:记录长度(byte0 ; 0x7f) ; 8) | b

22、yte1。其中byte0、byte1分别表示传输的第一个、第二个字节。记录头长度为三个字节的记录长度的计算公式:记录长度(byte0 ; 0x3f) ; 8) | byte1。其中byte0、byte1的含义同上。判断是否是安全空白记录的计算公式:(byte0 ; 0x40) != 0。粘贴数据的长度为传输的第三个字节。 2) SSL记录数据的格式: SSL的记录数据包含三个部分:MAC数据、实际数据和粘贴数据。 MAC数据用于数据完整性检查。计算MAC所用的散列函数由握手协议中的CIPHERCHOICE消息确定。若使用MD2和MD5算法,则MAC数据长度是16个字节。MAC的计算公式:MAC

23、数据HASH密钥,实际数据,粘贴数据,序号。当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证MAC数据);而当会话的客户端接收数据时,密钥是客户的读密钥(服务器用写密钥来产生MAC数据)。序号是一个可以被发送和接收双方递增的计数器。每个通信方向都会建立一对计数器,分别被发送者和接收者拥有。计数器有32位,计数值循环使用,每发送一个记录计数值递增一次,序号的初始值为0。4.1.3.SSL协议的体系结构SSL协议位于TCP/IP协议模型的网络层和应用层之间,使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择

24、对客户进行认证。SSL协议在应用层通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后,应用层协议所传送的数据都被加密。SSL实际上是共同工作的两层协议组成,如图1所示。从体系结构图可以看出SSL安全协议实际是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族:握手协议修改密文协议报警协议SSL记录协议TCPIP图1SSL记录协议为SSL连接提供了两种服务:一是机密性,二是消息完整性。为了实现这两种服务, SSL记录协议对接收的数据和被接收的数据工作过程是如何实现的呢? SSL记录协议接收传输的应用报文,将数据分片成可管理的块,进行数据压缩(可

25、选),应用MAC,接着利用IDEA、DES、3DES或其他加密算法进行数据加密,最后增加由内容类型、主要版本、次要版本和压缩长度组成的首部。被接收的数据刚好与接收数据工作过程相反,依次被解密、验证、解压缩和重新装配,然后交给更高级用户。SSL修改密文协议是使用SSL记录协议服务的SSL高层协议的3个特定协议之一,也是其中最简单的一个。协议由单个消息组成,该消息只包含一个值为1的单个字节。该消息的唯一作用就是使未决状态拷贝为当前状态,更新用于当前连接的密码组。为了保障SSL传输过程的安全性,双方应该每隔一段时间改变加密规范。SSL告警协议是用来为对等实体传递SSL的相关警告。如果在通信过程中某一

26、方发现任何异常,就需要给对方发送一条警示消息通告。警示消息有两种:一种是 Fatal错误,如传递数据过程中,发现错误的MAC,双方就需要立即中断会话,同时消除自己缓冲区相应的会话记录;第二种是Warning消息,这种情况,通信双方通常都只是记录日志,而对通信过程不造成任何影响。SSL握手协议可以使得服务器和客户能够相互鉴别对方,协商具体的加密算法和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。SSL握手协议允许通信实体在交换应用数据之前协商密钥的算法、加密密钥和对客户端进行认证(可选)的协议,为下一步记录协议要使用的密钥信息进行协商,使客户端和服务器建立并保持安全通信的状态信息。S

27、SL握手协议是在任何应用程序数据传输之前使用的。SSL握手协议包含四个阶段:第一个阶段建立安全能力;第二个阶段服务器鉴别和密钥交换;第三个阶段客户鉴别和密钥交换;第四个阶段完成握手协议。4.1.4.SSL工作原理SSL是对计算机之间整个会话进行加密的协议,采用了非对称密钥和对称密钥两种加密方式.一个SSL传输过程需要先握手,用公钥加密算法使服务器端和客户端相互验证,验证成功后产生一个会 话密钥,随后使用这个会话密钥和对称密钥算法在通信中快速地加密、解密数据。在每次SSL会话中服务器都完成一次使用服务器专有密钥的操作和一次使用客户公开密钥的操作。 在客户端和服务器进行SSL通信前,假设双方都拥有

28、一份数字证书。当SSL客户和服务器首次开始通讯时,它们就协议版本、加密算法的选择、是否验证对方及公钥加密技术的应用进行协商以产生共享的密钥,这一处理过程由握手协议完成。 客户端首次发出客户问候消息,服务器收到之后或者发出客户服务器问候消息, 或者发生终止性的错误。客户和服务器的问候消息产生了下列属性:协议版本号、对话标识符、加密套接字及压缩方法,而且产生了两个随机数并且相互交换。在问候消息之后, 若要求验证身份, 服务器将发出其证书。另外 ,如果需要的话 服务器将发出一个 Server Key Exchange消息。如果这个服务器已经被认证, 它将向客户端请求证书。 客户发送 Server K

29、ey Exchange报文,构造报文的方法如下: 生成该次通信用的密钥 Key ;客户用 自己的 RSA私钥签名;再附上客户的证书。客户验证了服务器的身份; 同时, 服务器验证了客户的身份。验证身份之后, 分发该次通信用的加密密钥Key 。客户和服务器验证该次通信用的加密密钥Key的正确性以后,握手过程结束, 客户端和服务端之间就建立了一个安全连接,可以开始交换应用层数据了。4.1.5.SSL的实现以Tomcat服务器为例实现SSL的应用。Tomcat既可以作为独立的Servlet容器,也可以作为其他HTYP服务器附加的Servlet容器。如果Tomcat在非独立模式下工作,通常不必配置SSL

30、,而由它所属的HTTP服务器来实现和客户的SSL通信。Tomcat和 HITP服务器之间的通信无需采用加密机制,HTTP服务器将解密后的数据传给Tomcat,并把Tomcat发来的数据加密后传给客户。如果Tomcat作为独立的Java Web服务器,则可以根据安全需要为Tomcat配置SSL,它包含两个步骤:准备安全证书、配置Tomcat的SSL连接器(Connector)。(1) SSL 和 Tomcat配置Tomcat来利用secure sockets仅仅在它作为一个独立的web服务器时才有必要。当Tomcat主要作为在另外一个web服务器,如Apache 或Microsoft IIS,

31、后面Servlet/JSP容器运行时,通常有必要把主要的web服务器配置来处理与用户的SSL连接。通常,这个服务器会对所有的 SSL-相关的功能进行交涉,然后再把对Tomcat容器的请求解密后传递过去。同样,Tomcat会返回明码的回应,这个回应将被加密后才被送到用户浏览器。在这样的环境下,Tomcat知道与主要web服务器和客户的交流是通过一个安全连接才发生的(因为你的程序需要询问这些情况),但是它本身并没有参与加密和解密。(2) 产生KeystoreTomcat 现在只支持 JKS或PKCS12 格式的keystores. JKS格式是 Java 的标准 KeyStore格式,它可以用 J

32、ava 的 keytool 来产生。这个工具在 Java 的 bin 目录里。 PKCS12 格式时互联网的标准,可以用 OpenSSL 和微软的 Key-Manager来修改。使用OpenSSL把一个现存的被你自己CA签署的认证书输入到PKCS12 keystore里面,你会执行象这样的一个命令:要从头开始产生一个新的keystore,包含一个自签的认证书,从一个终端命令行执行下面的命令:视窗如下:这个命令会在用户的home directory产生一个叫做 .keystore 的新文件。要指定一个不同的位置(location)或文件名,在上面所示的keytool 命令里添加-keystore

33、参数,后面紧跟着你的keystore文件的全部路径名。你还需要把这个新的位置在server.xml配置文件中反映出来,这在后面将有描述。例如:视窗在执行这个命令后,你首先被要求出示keystore密码。Tomcat使用的默认密码是 changeit (全都是小写字母),如果你愿意,你可以指定你自己的密码。你还需要在server.xml配置文件里指定自己的密码,这在以后会有描述。下一步,你会被要求出示关于这个认证书的一般性信息,如公司,联系人名称,等等。这些信息会显示给那些试图访问你程序里安全网页的用户,以确保这里提供的信息与他们期望的相对应。最后,你会被要求出示密钥(key)密码,也就是这个认

34、证书所特有的密码(与其它的储存在同一个keystore文件里的认证书不同)。你必须在这里使用与keystore 密码相同的密码。(目前,keytool会提示你按ENTER键会自动帮你做这些)。如果一切顺利,你现在就拥有了一个可以被你的服务器使用的有认证书的keystore文件。(3)配置SSL连接器把你的secure socket配置在$CATALINA_HOME/conf/server.xml文件里, $CATALINA_HOME代表你在其中安装Tomcat 5 的目录。一个例子是SSL连接器的元素被包括在和Tomcat一起安装的缺省server.xml文件里。它看起来象是这样:有一些额外的

35、选项被用来配置SSL协定。依赖于你早先怎样配置你的keystore,你也许需要添加或更改下列属性值:属性描述clientAuth如果你想要Tomcat要求所有的SSL客户在使用这个socket时出示用户认证书,把这个值设定为 true 。如果你想要Tomcat要求出示用户认证书,但是如果没有认证书也可以, 就把这个值设定为want 。keystoreFile如果你产生的keystore文件不在Tomcat期望的默认地方(一个叫做.keystore 的文件在Tomcat运行的主目录),就添加这个属性。你可以指定一个绝对路径名称, 或者一个由$CATALINA_BASE环境变量而派生的相对路径名称

36、keystorePass如果你使用一个不同的keystore(以及认证书)密码,而不是Tomcat期望的密码 (就是changeit),添加这个元素。keystoreType如果使用一个PKCS12 keystore的话,就添加这个element。 有效的值是JKS 和 PKCS12 。sslProtocol要在这个socket上被使用的加密解密协定。如果你在使用Sun的JVM,我们不提倡更改 这个值。据报道,TLS协定的IBMs 1.4.1 实现与一些通用的浏览器不兼容。 如果是这样,就使用value SSL 。ciphers这个socket允许使用的由逗号分隔开的加密密码列单。默认的情况下

37、,任何可用的密码都允许被使用。algorithm可用的X509算法。默认是Sun的实现( SunX509 )。 对于IBM JVMs,你应该使用值 IbmX509。对于其他卖主,查阅JVM文档资料来 找正确的值。truststoreFile用来验证用户认证书的TrustStore文件truststorePass访问TrustStore的密码。默认值就是keystorePass的值truststoreType如果你在使用与KeyStore不同格式的TrustStore,添加这个元素。 合法的值是JKS和PKCS12。keyAlias如果 keystore 里面有多个 key,你可以为用这个选项为

38、加入的 key 起一个名字。 如果没有指定名字,使用时 keystore 内的第一个 key 将会被使用。经过以上配置之后,SSL连机器就配置好了。重起Tomcat服务器,用户就可以通过HTTPS安全地与该服务器进行通信了,其默认端口为443。4.1.6.SSL工作流程服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并

39、返回给客户一个用主密钥认证的信息,以此让客户认证服务器。用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。4.1.7.SSL提供的服务SSL协议提供的服务主要有: 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3) 维护数据的完整性,确保数据在传输过程中不被改变。4.1.8.HTTPS简介HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以

40、安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口(HTTPS使用的默认端口为443)及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。限制它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持

41、. 一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者尝试窃听数据于传输中。 商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。4.1.9.加密通信当Web客户与Web服务器进

42、行通信时,通信数据有可能被网络上其它计算机监视。SSL使用加密技术实现会话双方之间信息的安全传递,这意味着数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接收者。这样,在网络上传输的是经过加密的数据。如果有入在网络上非法截获了这些数据,由于没有解密的密钥,因此无法获得真正的原始数据。接收者接收到加密的数据后,先对数据解密,然后再处理。采用SSL的通信过程如图3所示:图3.基于SSL的加密通信4.1.10.基于SSL的通信过程当Web客户采用HTTPS协议访问安全的Web站点时,Web站点将自动向客户发送它的安全证书。在Web客户与Web服务器进行SSL握手的阶段,采用非对称加密方

43、法传递数据,由此来建立一个安全的会话,接下来将采用对称加密方法传递实际的通信数据,以下是通信过程:(1)用户浏览器将自己的SSL版本号、加密设置参数、与Session有关的数据以及其他一些必要信息发送到服务器。(2)服务器将自己的SSL版本号、加密设置参数,与Session有关的数据以及其他一些必要信息发送给浏览器,同时发送给浏览器的还有服务器的证书。如果服务器的SSL需要验证客户身份,还会发出请求要求浏览器提供用户证书。(3)客户端检查服务器证书,如果检查失败,就提示不能建立SSL连接。如果成功,那么继续下一步骤。(4)客户端浏览器为本次会话生成预备主密码(premaster secret)

44、,并将其用服务器公钥加密后发送给服务器。(5)如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。(6)如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的预备主密 (premaster-secret),并用它通过某些算法生成本次会话的主密码(master-secret)。(7)客户端与服务器均使用此主密码(master-secret)生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算

45、量低一个数量级以上,能够显著提高双方会话时的运算速度。(8)客户端通知服务器此后发送的消息都使用这个会话密钥进行加密,并通知服务器客户端已经完成本次SSL握手。(9)本次握手过程结束,会话已经建立。在接下来的会话过程中,双方使用同一个会话密钥分别对发送以及接收的信息进行加密、解密。4.2登录注册页面模块设计实现用户的登录,以及用户的注册把注册信息传给web服务器,客户端界面和服务器之间使用https协议进行通信,通信时实现数据的加密传输。4.3生成数字证书模块设计4.3.1.数字认证认证技术是计算机网络安全中的一个重要方面。通过认证可以达到通信双方的信任,从而实现更好的网络通信。利用认证技术中

46、的身份认证技术,用数字签名实现身份认证。认证(Authentication)机制分为消息认证与身份认证两种。消息认证用于保证信息的完整性与抗否认性,身份认证则用于鉴别用户身份。身份认证技术是实现网络安全的重要机制之一。在安全的网络通信中通信双方必须通过某种形式的身份验证来证明身份以实现不同用户的访问控制。在网络通信应用日益广泛的今天,从某种意义上说,认证技术可能比信息加密本身更加重要。因为很多通信内容本身并不需要保密,但是要求双方通过身份认证来达到一 种互相信任的关系。4.3.2.数字签名概述日常生活中,我们常把在书面文件上签名作为确认文件的一种手段。签名的作用有两点,一是因为自己的签名难以否

47、认,从而可以确认文件已经签署的事实,即保证文件的不可否认性;二是因为签名不易仿冒,从而可以确定文件是由签名人确认的,从而确定文件的来源,也即确认发送文件人的身份。在网络通信中,通常也使用类似这种签名的方式,来实现发送消息者身份的认证,以及防止发送消息者对所发送消息的抵赖,这种身份认证的方式就是数字签名(DigitalSignature)。要实现数字签名,需要用到一些加密技术的知识。下面简单介绍所用到的相关内容。4.3.3.数据加密技术所谓数据加密技术,就是指通过一定的变换方式,将用户要发送的数据加以变换,从而使未授权用户即使得到这些改变后的数据,也无法知道其真实内容。而授权用户则可以通过一定的

48、方式再将数据变换成原先的形式,进而得到所需要的数据。一般的数据加密模型如图1所示。明文x用加密算法E和加密密钥K得到密文Y=EK(x)。发送消息以密文的形式进行发送。到了接收端,利用解密算法D和解密密钥K,解出明文DK(Y)=DK(EK(x)=X。在消息的发送过程中,可能有入侵者获取消息,但他们所获取的是密文,我们的加密算法要求在没有密钥的情况下,即使知道加密算法,也无法解密密文,从而不能得到明文。因此,密钥管理在加密技术中起到至关重要的作用。在现代的加密技术中,加密算法通常都是公开的,但是密钥却是保密的,通常都是通过一定的安全通道来进行密钥的传输的。4.3.4.非对称密码体制根据加密时和解密

49、时所用到的密钥的相同与否,加密技术分为对称密码体制和非对称密码体制。其中对称密码体制中加密密钥和解密密钥是同一个密钥,因而要对密钥加以绝对的保护,一旦密钥泄露,则整个加密系统无安全性可言。现在常用的对称密码体制有DES(USFederDataEncryptionStandard),三重DES,IDEA(InternationalDataEncryptionA1gorithm)等。菲对称密码体制又称公开密钥密码体制。公钥密码体制,是指加密密钥和解密密钥使用不同密钥的加密技术。其中一个密钥可以公布于众,称为公钥;而另一个密钥必须保密,称为私钥。至于是用公钥加密私钥解密,还是反之,则要根据实际的应用

50、来确定。但是有一点是必须要保证的,就是用一个密钥加密,则一定能够用另一个密钥解密。现在广泛使用的非对称密码加密技术主要有RSA(RivestShamirAdelman)、椭圆曲线算法等。4.3.5.单向散列函数单向散列函数,又称为Hash函数,利用该函数可以对消息取摘要,而且可以证明对不同的消息所取得的摘要也完全不同。利用hash函数可以保证传输消息的完整性,因为攻击者任何一点对消息的改变,都会使其利用hash所取得的摘要有所不同,接收方只要对接收到的消息再利用hash函数取摘要,与所接收到的消息摘要加以比较,就可以知道所接收到的消息是否在传输的过程中被攻击者加以修改。常用的hash函数有MD

51、5(MessageDigestAlgorithm5)、SHA(SecureHashAlgorithm)等。4.3.6.数字签名技术实现正如前面所提到的,数字签名具有和手书签名一样的功能,可以用来防止网上电子信息因容易修改而被人破坏或作伪,或冒用别人的名义发送信息,或者在发出或收到信息后又加以否认等情况发生。数字签名并不是使用“手书写签名”类型的图形标志,因为这样极易复制。为此,数字签名另辟蹊径,采用了双重加密的方法来实现加密文件的防伪与防赖。其原理及处理过程如下:(1) 使用单向散列函数将发送文件加密产生数字摘要;(2) 发送方用 自己的私钥对摘要再加密,这样就形成了数字签名;(3) 将原文和

52、加密的摘要同时传给对方;(4) 接收方用发送方的公共密钥对摘要解密,同时对收到的文件用同样的单向散列函数加密产生又一摘要;(5) 将解密后的摘要和收到的文件在接受方重新产生的摘要相互对比。如果两者一致,则说明是发送方签名的文件,而且传送过程中信息没有被破坏和篡改,否则要么不是发送方签的名,要么信息已失去其安全性及保密性。图2说明了数字签名的过程。4.3.7.数字签名实现身份认证分析为什么用这种数字签名机制就可以实现身份认证呢? 在数字签名中,使用了非对称密码体制。被认证方用私钥对摘要进行加密,而认证方用公钥进行解密。因为私钥是保密的,除了被认证方外其他人并不知道,因此,认证方认为所接收到加密消

53、息一定是从被认证方发送过来的,否则其他人并不会用被认证方的私钥进行加密。因而可以确定消息发送者的身份。为什么要用hash函数取摘要呢?因为常用的非对称密码体制如RSA,由于其算法非常复杂,使得他的工作效率非常低。如果我们要发送的文件很大,那么就需要比较长的时间才能完成加密和解密的工作。而取得的摘要是发送文件的一个压缩,比原文件要小了很多,因此可以比较快地实现加密和解密。另外,用hash函数取摘要还可以防止消息在发送的过程中被人为地修改和破坏。因为根据hash函数的原理,对于消息的任何一个小的修改,都会使所得的摘要有所不同。接收方在比较解密后的摘要和用hash函数生成的摘要后,就知道所接收文件是

54、否在传输的过程中被修改,这也实现了认证的另一方面消息认证。4.3.8.数字签名总体分析 随着计算机网络技术研究和应用的发展,网络安全已经成为人们所关注的焦点。如何在网络的虚拟世界里实现通信双方的相互信任,这是网络安全研究者一直在探索的问题。认证方案的选择必须以系统需求和安全性能为出发点,结合各认证技术的利弊,减少身份认证机制和信息认证机制中的计算量和通信量,而同时又能提供较高的安全性能。利用数字签名实现认证方案,有效地解决了目前种种身份认证方法存在的不足,提高了系统的安全强度和等级。但是数字签名技术也并非绝对完美。由于数字签名中要用到公钥加密技术,而加密技术中最关键的问题之一就是密钥的保护问题

55、。在公钥加密技术中,对于私钥的保护至关重要,若私钥被泄露,则数字签名就失去了其意义。因此,在实现数字签名的同时,还需要设计一定的机制来实现私钥的保护。4.4订单明细页面模块设计 显示商品的订单信息,并且能够让用户下订单。下订单时上传订单文件并用生成的数字证书进行数字签名认证。4.5支付页面模块设计使用户能够对用户的订单信息进行支付,并将支付信息上传给web服务器4.6信息加密存储模块设计4.6.1.PKI简介PKI作为一组在分布式计算系统中利用公钥技术和X509证书所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安全域内,PKl管理加密密钥和证书的发布,并提供诸

56、如密钥管理(包括密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。PKI产品也允许一个组织通过证书级别或直接交叉认证等方式来同其他安全域建立信任关系。这些服务和信任关系不能局限于独立的网络之内,而应建立在网络之间和Internet之上,为电子商务和网络通信提供安全保障,所以具有互操作性的结构化和标准化技术成为PKI的核心。PKI在实际应用上是一套软硬件系统和安全策略的集合,它提供了一整套安全机制,使用户在不知道对方身份或分布地很广的情况下,以证书为基础,通过一系列的信任关系进行通讯和电子商务交易一个典型的PKI系统包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。 1.PKI安全策略建立和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则。它包括一个组织怎样处理密钥和有价值的信息,根掘风险的级别定义安全控制的级别。 2.证书机构CA是PKI的信任基础,它管理公钥的整个生命周期,其作用包括:发放证书、规定证书的有效期和通过发布证书废除列表(CRL)确保必要时可以废除证书。 3.注册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。它主要完成收集用户信息和确认

温馨提示

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

评论

0/150

提交评论