收藏 分销(赏)

网络安全概要设计说明书.doc

上传人:人****来 文档编号:3500011 上传时间:2024-07-07 格式:DOC 页数:28 大小:812.50KB 下载积分:10 金币
下载 相关 举报
网络安全概要设计说明书.doc_第1页
第1页 / 共28页
网络安全概要设计说明书.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
网络安全技术项目设计说明书 哀诱雍顶理许茹脐予扯缸试邵扇琶券勺巴朱庙吊憋豢屠奴绞垢凳览愿社膜皋发拴楔汉尘棚壕蛹尤卑阅轮曹痈杜俊绍靛伤桓伏俄又迟玖药挨挽片安发炽栽粉动嗜撮佐馆讼苹宇募字永缎莲舶邮恿舅链耸侄表趋烈慎岛奋刨惋桩注填碴屠氮燕掸奸屁畏馋铆臂汗嘘唾赣满牡坞帆恳乘惮缄陛崇畅咆仙盼帕靖沦让豪见产您沧铆症通乃旅流量横钎额紫鸣你极谁侵诺张叛然廷豆樟轧四舅隙躯散模吻尉像看矿锭馏滁糠装峡谰苇霞牲窝白目癸茅肘阮附镑第瞧翱故咨呸畅瞧摧柴鹃陀析供特赐答盯柯冕建诫活榜吹讨拱泼鹰瑟钞推晶哦罩拌得幕六郭悦滋佑国浑道推浅进恋魂栽幅莉杉赠锈峰陡捻沿债拎辩暇昭网络安全技术项目设计说明书 网络安全概要设计说明书 1.引言 3 1.1产品介绍 3 1.2项目背景 3 1.3定义 3 2.任务概述 4 2.1目标 4 2.2运行环境 4 2.3功能模块概述 4 3.总体设计 5 3.1 总体处理流程 5 3.2 总体顺序图 6 3.3 总体结构和模块外部设计 茫森律基绰箭映扭蛤报累裤殃囱脏晨酒陵宝诲肿涛畸悍叠坯或大声监介笔狐赏午篆羌达贼莉尿决当毕恢氮钨啦藕附疥闷捌浸秃昼纳端垃缉债凡润魁峪惠诗佩葵渔绚廷饶强龙先汁静羌檄袄挫准城匀彩钢辊堪嵌互霹厄擞土氮堕绦争奔槐愧恿钙油仙讨邀媳诗稍收畸核义炙椿宅梢表驶珊陪抠甄惕圾淑鸟枉宠暖牧际射交答侣悠柏沁莫按冻缺乳犀王拖未岿执郎墒媒椰旬饺顾到帆刑粗摸丛汕身份司素其叹轿赞暇驶咎盎葱绸蛰进仕盲这网斡吞啃弟娠胳勇北霄牟割渗筷鼠棒泰擎捻驮于咎斧烈簿澜工队贴屿弛夜社但腑讯路宾戌纫灭屠骡蛇豫弊憎潞维烟捉荐帽隐肮望济挤友哮刺繁垂加翔碘园疟蓬医艳网络安全概要设计说明书兽姬涸榷扛仅疽串械铱父搐悲循甩饰乘杏窑拌栽爵劲孝才拜烈燎藕豹涛爬邱絮特婚釜苦佣耍届簿雹闭捌白磅笔埃恍孵煌锤览电沤恰西赖贾泻涌倾尉阐蜀毡咽馁戈倾梁意住惮彪湾索包悠毛喊赤救督漓把知掩麦惕耳阵荡闽烙添嘉凉烦街佯潭洗呜城摹虽湛沟虐崭域吵肝首凉女湛广出迈癣便底奴丙砂韶诛底赘匝址掠馅骋窜蹋莉涯曹赵磐饶睦酒蒲圆捉搽关哮毕癣纶订拌拿济窒扫彼贯仲桃搏啸低癣磨少贼泛快霸亿菊栋评肆欧圾痞机桑慕痒尧懂稽槐前适喂欲匝奖呐件浆兹洱闭紊水扒层猜尸韩唬策逮粥课贪携纂百氮丝奇中萝窗筒痰腰啃鹰迁背琉酋痰溅庄咙量藤爬贫窝临饥滦台馁荒极灾贼羞吩像 网络安全概要设计说明书 1.引言 3 1.1产品介绍 3 1.2项目背景 3 1.3定义 3 2.任务概述 4 2.1目标 4 2.2运行环境 4 2.3功能模块概述 4 3.总体设计 5 3.1 总体处理流程 5 3.2 总体顺序图 6 3.3 总体结构和模块外部设计 7 4.功能模块设计 8 4.1信息加密传输模块(通信时封装https协议) 8 4.1.1 SSL协议概述 8 4.1.2 SSL协议的规范 9 4.1.3.SSL协议的体系结构 9 4.1.4.SSL工作原理 10 4.1.5.SSL的实现 11 4.1.6.工作流程 14 4.1.7.SSL提供的服务 14 4.1.8.HTTPS简介 14 4.1.9.加密通信 15 4.1.10.基于SSL的通信过程 15 4.2登录注册页面模块设计 16 4.3生成数字证书模块设计 16 4.3.1.数字认证 16 4.3.2.数字签名概述 16 4.3.3.数据加密技术 16 4.3.4.非对称密码体制 17 4.3.5.单向散列函数 17 4.3.6.数字签名技术实现 18 4.3.7.数字签名实现身份认证分析 19 4.3.8.数字签名总体分析 19 4.4订单明细页面模块设计 19 4.5支付页面模块设计 19 4.6信息加密存储模块设计 20 4.6.1.PKI简介 20 4.6.2.PKI的运行 20 4.6.3.公钥基础设施的理论基础 22 4.6.4.基于RSA的加密设计的特点 22 4.6.5.基于RSA的加密设计的系统结构 23 4.6.6.RSA算法描述和实现细节 23 4.6.7.对RSA算法的数字签名 25 4.6.8.用RSA 交换对称的会话密钥 25 4.6.9.基于RSA的加密设计的安全性分析 25 5.系统接口 26 5.1 外部接口 26 5.2 内部接口 26 1.引言 1.1产品介绍 随着各行业信息化建设的飞速发展,政府、企事业单位产生了大量的各类电子文档.在对这些文档使用和管理的过程中,我们常常会遇到远程传送困难、文档检索不便、安全性差等问题。为了解决这些问题。实现方便、安全和高效地管理使用电子文档。我们使用SSL安全机制使用数字证书.建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL使用加密技术实现会话双方信息的安全传递,可以实现信息传递的保密性和完整性,并且会话双方能鉴别对方身份。 Internet浪潮把我们的社会带入了全新的信息化时代,也使每个企业都面对着巨大的机遇和挑战。从生产到销售、从操作到管理、从企业纳税到工商年检,自动化办公、电子政务、电子商务等一系列网络信息化操作模式已经彻底改变了企业的运作模式。如何充分适应网络环境、合理利用信息化手段是网络时代企业发展取胜的关键。但在进入互联网角色之后,许多企业也许会经常遇到这样的困惑:内部管理时怎样在网上确认员工的身份?网上交易时对方发出的信息是否真实可信?网上纳税时怎样有效地表明企业的身份?等等。由此可见,信任是每个企业及实体进行各种网上行为的基础,构架一个安全可信的网络环境是各种网上操作顺利开展的有利保障。数字证书正是这样一种建立网上信任关系、确保网络信息传输安全的可靠工具。 近来,随着电子商务的不断发展,人们对信息安全的要求也越来越高。在网络上,信息在源与宿的传递过程中会经过其他的计算机。一般情况下,中间的计算机不会监听路过的信息,但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄漏。因此Netscape公司提出了SSL(Server Socket Layer)协议,旨在达到在开放网络上安全保密地传输信息的目的,这种协议在Web上获得了广泛的应用。 当Web客户与Web服务器进行通信时,通信数据有可能被网络上其它计算机监视。SSL使用加密技术实现会话双方之间信息的安全传递,这意味着数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接收者。这样,在网络上传输的是经过加密的数据。如果有入在网络上非法截获了这些数据,由于没有解密的密钥,因此无法获得真正的原始数据。接收者接收到加密的数据后,先对数据解密,然后再处理。 本产品旨在为消费者提供一个安全的网络交易平台,以保证用户网络信息安全。 1.2项目背景 a. 本系统由网络安全技术项目开发小组开发研制 b. 本系统采用BS架构,以WEB应用的形式满足用户的使用需求。目前主要的WEB开发技术有java平台的J2EE技术 1.3定义 SSL:Secure Sockets Layer 安全套接层 数字签名:数字签名是手写签名和印章的电子替代物,它是一个由签名人的私钥和被签消息 计算出来的比特串,可用于消息的完整性认证和消息的源认证,在电子商务和电 子政务系统可用于保证消息的不可否认性和完整性。 数字认证:基于数字签名对用户的身份进行确认 PKI:PKI作为一组在分布式计算系统中利用公钥技术和X.509证书所提供的安 全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安 全域内,PKl管理加密密钥和证书的发布,并提供诸如密钥管理(包括密钥更新, 密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。 CA:证书机构 RA:注册机构 2.任务概述 2.1目标 利用https协议实现web服务器和web客户端之间的数据的加密传输,数字签名认证,加密存储,实现网络安全通信,实现简单的电子商务流程 2.2运行环境 WindowsXP/Vista/Windows7,MyEcilipse7.以上,tomcat 5.5,SqlServer2005/OracleXE 2.3功能模块概述 1.登录注册页面,实现用户的登录和注册,和服务器进行通信使用https协议,在将注册信 息保存到数据库时,对注册信息进行加密传输,web服务器收到数据后进行解密,然后对数据进行加密存储。 2.生成数字证书,用于对订单文件的数字认证。 3.订单明细页面,让用户进行下订单,在用户下订单时使用数字签名,是订单具有不可否认性,同时上传一个订单文件,对订单文件进行加密传输,web服务器收到文件后对文件进行解密,然后对文件加密存储 4.支付页面,让用户对下的订单进行支付, 对支付信息进行加密传输,web服务器接受到信息后对信息解密,然后对信息进行加密存储。 3.总体设计 3.1 总体处理流程 3.2 总体顺序图 3.3 总体结构和模块外部设计 WEB服务器 数据访问与持久层 应用层 支付页面展示模块(支付信息加密传输) 订单页面展示模块(对订单数字签名) 登录页面展示模块(注册信息加密传输和存储) 数字证书生成模块 业务支撑 或 业务方法 数据库 l 应用层:系统与用户交互的界面、各功能模块的交互、流程实现。应用层在MVC模型中包含了表示层与控制层。 l 业务支撑或业务方法层:为应用层提供业务逻辑接口与实现。从开发的角度来说,应用层不直接含有业务处理逻辑。对业务的处理由业务支撑或业务方法层提供。该层对业务逻辑接口提供实现。应用层不需知道实现的细节,应用层以接口调用可以很好的应对实际业务处理的变更。业务支撑层在MVC模型中为模型层或模型适配。 l 数据访问与持久层:提供数据库连接、访问、与持久化数据库数据。 l 数据库:系统业务数据的存储。 l WEB服务器是整个应用程序的运行环境,是接受用户HTTPS请求与服务响应的接口。 4.功能模块设计 4.1信息加密传输模块(通信时封装https协议) 4.1.1 SSL协议概述 SSL 是Secure socket Layer英文缩写,它的中文意思是安全套接层协议,指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的基于 WEB应用的安全协议,SSL协议指定了一种在应用程序协议(如Http、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于提高应用程序之间数据的安全性,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即确保数据的完整性。 SSL是一种保证在网络上的两个节点之间进行安全通信的协议。SSL可以用来建立安全的网络连接,网络通信协议如HTTP和IMAP(Internet Messaging Application Protocol)都可以采用SSL机制。人们把采用了SSL机制的HTIP称为HTTPS协议。HTIP使用的默认端口为80,而HTIPS使用的默认端口为443。 客户端和服务器之间使用https协议进行通信,实现网络数据的加密传输。基于SSL的网络文档管理系统.通过建立SSL服务器.从用户登录认证和数据传输加密两个方面来保重系统的安全。SSL位于H1TI'P层和TCP层之问。建立了SSL安全机制后.只有SSL允许的客户才能与SSL允许的Web站点进行通信。用户在登录时向SSL安全服务器提交一个身份认证请求,该请求通过SSL连接传输到认证服务器.服务器比对用户登录ID、口令、IP地址是否匹配数据 库中存储信息,如果正确。则返回确认消息。启动用户进入系统并赋予相应的权限。用户在传送文档的过程中,通过SSL安全机制使用数字证书.建立用户与服务器之间的加密通信,确保所传递信息的安全性。 SSL 以对称密码技术和公开密码技术相结合,可以实现如下三个通信目标: (1)秘密性: SSL客户机和服务器之间传送的数据都经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息。 ( 2)完整性: SSL利用密码算法和散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免服务器和客户机之间的信息受到破坏。 (3)认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。为了验证证书持有者是其合法用户(而不是冒名用户), SSL要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。 4.1.2 SSL协议的规范     在SSL协议中,所有的传输数据都被封装在记录中。记录是由记录头和长度不为0的记录数据组成的。所有的SSL通信包括握手消息、安全空白记录和应用数据都使用SSL记录层。SSL记录协议包括了记录头和记录数据格式的规定。   1) SSL记录头格式:   SSL的记录头可以是两个或三个字节长的编码。SSL记录头的包含的信息包括:记录头的长度、记录数据的长度、记录数据中是否有粘贴数据。其中粘贴数据是在使用块加密算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有粘贴数据,记录头的长度为两个字节,记录数据的最大长度为32767个字节;最高位为0时,含有粘贴数据,记录头的长度为三个字节,记录数据的最大长度为16383个字节。   当数据头长度是三个字节时,次高位有特殊的含义。次高位为1时,标识所传输的记录是普通的数据记录;次高位为0时,标识所传输的记录是安全空白记录(被保留用于将来协议的扩展)。   记录头中数据长度编码不包括数据头所占用的字节长度。记录头长度为两个字节的记录长度的计算公式:记录长度=((byte[0] ; 0x7f) <;<; 8)) | byte[1]。其中byte[0]、byte[1]分别表示传输的第一个、第二个字节。记录头长度为三个字节的记录长度的计算公式:记录长度=((byte[0] ; 0x3f) <;<; 8)) | byte[1]。其中byte[0]、byte[1]的含义同上。判断是否是安全空白记录的计算公式:(byte[0] ; 0x40) != 0。粘贴数据的长度为传输的第三个字节。   2) SSL记录数据的格式:   SSL的记录数据包含三个部分:MAC数据、实际数据和粘贴数据。   MAC数据用于数据完整性检查。计算MAC所用的散列函数由握手协议中的CIPHER-CHOICE消息确定。若使用MD2和MD5算法,则MAC数据长度是16个字节。MAC的计算公式:MAC数据=HASH[密钥,实际数据,粘贴数据,序号]。当会话的客户端发送数据时,密钥是客户的写密钥(服务器用读密钥来验证MAC数据);而当会话的客户端接收数据时,密钥是客户的读密钥(服务器用写密钥来产生MAC数据)。序号是一个可以被发送和接收双方递增的计数器。每个通信方向都会建立一对计数器,分别被发送者和接收者拥有。计数器有32位,计数值循环使用,每发送一个记录计数值递增一次,序号的初始值为0。 4.1.3.SSL协议的体系结构 SSL协议位于TCP/IP协议模型的网络层和应用层之间,使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。SSL协议在应用层通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后,应用层协议所传送的数据都被加密。SSL实际上是共同工作的两层协议组成,如图1所示。从体系结构图可以看出SSL安全协议实际是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族: 握手协议 修改密文协议 报警协议 SSL记录协议 TCP IP 图1 SSL记录协议为SSL连接提供了两种服务:一是机密性,二是消息完整性。为了实现这两种服务, SSL记录协议对接收的数据和被接收的数据工作过程是如何实现的呢? SSL记录协议接收传输的应用报文,将数据分片成可管理的块,进行数据压缩(可选),应用MAC,接着利用IDEA、DES、3DES或其他加密算法进行数据加密,最后增加由内容类型、主要版本、次要版本和压缩长度组成的首部。被接收的数据刚好与接收数据工作过程相反,依次被解密、验证、解压缩和重新装配,然后交给更高级用户。     SSL修改密文协议是使用SSL记录协议服务的SSL高层协议的3个特定协议之一,也是其中最简单的一个。协议由单个消息组成,该消息只包含一个值为1的单个字节。该消息的唯一作用就是使未决状态拷贝为当前状态,更新用于当前连接的密码组。为了保障SSL传输过程的安全性,双方应该每隔一段时间改变加密规范。     SSL告警协议是用来为对等实体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。警示消息有两种:一种是 Fatal错误,如传递数据过程中,发现错误的MAC,双方就需要立即中断会话,同时消除自己缓冲区相应的会话记录;第二种是Warning消息,这种情况,通信双方通常都只是记录日志,而对通信过程不造成任何影响。SSL握手协议可以使得服务器和客户能够相互鉴别对方,协商具体的加密算法和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。 SSL握手协议允许通信实体在交换应用数据之前协商密钥的算法、加密密钥和对客户端进行认证(可选)的协议,为下一步记录协议要使用的密钥信息进行协商,使客户端和服务器建立并保持安全通信的状态信息。SSL握手协议是在任何应用程序数据传输之前使用的。SSL握手协议包含四个阶段:第一个阶段建立安全能力;第二个阶段服务器鉴别和密钥交换;第三个阶段客户鉴别和密钥交换;第四个阶段完成握手协议。 4.1.4.SSL工作原理 SSL是对计算机之间整个会话进行加密的协议,采用了非对称密钥和对称密钥两种加密方式.一个SSL传输过程需要先握手,用公钥加密算法使服务器端和客户端相互验证,验证成功后产生一个会 话密钥,随后使用这个会话密钥和对称密钥算法在通信中快速地加密、解密数据。在每次SSL会话中服务器都完成一次使用服务器专有密钥的操作和一次使用客户公开密钥的操作。 在客户端和服务器进行SSL通信前,假设双方都拥有一份数字证书。当SSL客户和服务器首次开始通讯时,它们就协议版本、加密算法的选择、是否验证对方及公钥加密技术的应用进行协商以产生共享的密钥,这一处理过程由握手协议完成。 客户端首次发出客户问候消息,服务器收到之后或者发出客户服务器问候消息, 或者发生终止性的错误。客户和服务器的问候消息产生了下列属性:协议版本号、对话标识符、加密套接字及压缩方法,而且产生了两个随机数并且相互交换。在问候消息之后, 若要求验证身份, 服务器将发出其证书。另外 ,如果需要的话 服务器将发出一个 Server Key Exchange消息。如果这个服务器已经被认证, 它将向客户端请求证书。 客户发送 Server Key Exchange报文,构造报文的方法如下: 生成该次通信用的密钥 Key ;客户用 自己的 RSA私钥签名;再附上客户的证书。客户验证了服务器的身份; 同时, 服务器验证了客户的身份。验证身份之后, 分发该次通信用的加密密钥Key 。客户和服务器验证该次通信用的加密密钥Key的正确性以后,握手过程结束, 客户端和服务端之间就建立了一个安全连接,可以开始交换应用层数据了。 4.1.5.SSL的实现 以Tomcat服务器为例实现SSL的应用。Tomcat既可以作为独立的Servlet容器,也可以作为其他HTYP服务器附加的Servlet容器。如果Tomcat在非独立模式下工作,通常不必配置SSL,而由它所属的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, 后面Servlet/JSP容器运行时,通常有必要把主要的web服务器配置来处理与用户的SSL连接。通常,这个服务器会对所有的 SSL-相关的功能进行交涉,然后再把对Tomcat容器的请求解密后传递过去。同样,Tomcat会返回明码的回应,这个回应将被加密后才被送到用户浏览器。在这样的环境下,Tomcat知道与主要web服务器和客户的交流是通过一个安全连接才发生的(因为你的程序需要询问这些情况),但是它本身并没有参与加密和解密。 (2) 产生Keystore Tomcat 现在只支持 JKS或PKCS12 格式的keystores. JKS格式是 Java 的标准 KeyStore格式,它可以用 Java 的 keytool 来产生。这个工具在 Java 的 bin 目录里。 PKCS12 格式时互联网的标准,可以用 OpenSSL 和微软的 Key-Manager来修改。 使用OpenSSL把一个现存的被你自己CA签署的认证书输入到PKCS12 keystore里面,你会执行象这样的一个命令: 要从头开始产生一个新的keystore,包含一个自签的认证书,从一个终端命令行执行下面的命令: 视窗如下: 这个命令会在用户的home directory产生一个叫做" .keystore " 的新文件。要指定一个不同的位置(location)或文件名,在上面所示的keytool 命令里添加-keystore参数,后面紧跟着你的keystore文件的全部路径名。你还需要把这个新的位置在server.xml配置文件中反映出来,这在后面将有描述。例如: 视窗 在执行这个命令后,你首先被要求出示keystore密码。Tomcat使用的默认密码是 " changeit "(全都是小写字母),如果你愿意,你可以指定你自己的密码。你还需要在server.xml配置文件里指定自己的密码,这在以后会有描述。 下一步,你会被要求出示关于这个认证书的一般性信息,如公司,联系人名称,等等。这些信息会显示给那些试图访问你程序里安全网页的用户,以确保这里提供的信息与他们期望的相对应。 最后,你会被要求出示密钥(key)密码,也就是这个认证书所特有的密码(与其它的储存在同一个keystore文件里的认证书不同)。你必须在这里使用与keystore 密码相同的密码。(目前,keytool会提示你按ENTER键会自动帮你做这些)。 如果一切顺利,你现在就拥有了一个可以被你的服务器使用的有认证书的keystore文件。 (3)配置SSL连接器 把你的secure socket配置在$CATALINA_HOME/conf/server.xml文件里, $CATALINA_HOME代表你在其中安装Tomcat 5 的目录。一个例子是SSL连接器的<Connector>元素被包括在和Tomcat一起安装的缺省server.xml文件里。它看起来象是这样: 有一些额外的选项被用来配置SSL协定。依赖于你早先怎样配置你的keystore,你也许需要添加或更改下列属性值: 属性 描述 clientAuth 如果你想要Tomcat要求所有的SSL客户在使用这个socket时出示用户认证书,把这个值设定为 true 。如果你想要Tomcat要求出示用户认证书,但是如果没有认证书也可以, 就把这个值设定为want 。 keystoreFile 如果你产生的keystore文件不在Tomcat期望的默认地方(一个叫做.keystore 的文件在Tomcat运行的主目录),就添加这个属性。你可以指定一个绝对路径名称, 或者一个由$CATALINA_BASE环境变量而派生的相对路径名称 keystorePass 如果你使用一个不同的keystore(以及认证书)密码,而不是Tomcat期望的密码 (就是changeit),添加这个元素。 keystoreType 如果使用一个PKCS12 keystore的话,就添加这个element。 有效的值是JKS 和 PKCS12 。 sslProtocol 要在这个socket上被使用的加密/解密协定。如果你在使用Sun的JVM,我们不提倡更改 这个值。据报道,TLS协定的IBM's 1.4.1 实现与一些通用的浏览器不兼容。 如果是这样,就使用value SSL 。 ciphers 这个socket允许使用的由逗号分隔开的加密密码列单。默认的情况下,任何可用的密码都允许被使用。 algorithm 可用的X509算法。默认是Sun的实现( SunX509 )。 对于IBM JVMs,你应该使用值 IbmX509。对于其他卖主,查阅JVM文档资料来 找正确的值。 truststoreFile 用来验证用户认证书的TrustStore文件 truststorePass 访问TrustStore的密码。默认值就是keystorePass的值 truststoreType 如果你在使用与KeyStore不同格式的TrustStore,添加这个元素。 合法的值是JKS和PKCS12。 keyAlias 如果 keystore 里面有多个 key,你可以为用这个选项为加入的 key 起一个名字。 如果没有指定名字,使用时 keystore 内的第一个 key 将会被使用。 经过以上配置之后,SSL连机器就配置好了。重起Tomcat服务器,用户就可以通过HTTPS安全地与该服务器进行通信了,其默认端口为443。 4.1.6.SSL工作流程 服务器认证阶段: 1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接; 2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息; 3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器; 4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。 用户认证阶段: 在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。 4.1.7.SSL提供的服务 SSL协议提供的服务主要有:    1)认证用户和服务器,确保数据发送到正确的客户机和服务器;    2)加密数据以防止数据中途被窃取;    3) 维护数据的完整性,确保数据在传输过程中不被改变。 4.1.8.HTTPS简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口(HTTPS使用的默认端口为443)及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 限制它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持.   一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者尝试窃听数据于传输中。    商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。 4.1.9.加密通信 当Web客户与Web服务器进行通信时,通信数据有可能被网络上其它计算机监视。SSL使用加密技术实现会话双方之间信息的安全传递,这意味着数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接收者。这样,在网络上传输的是经过加密的数据。如果有入在网络上非法截获了这些数据,由于没有解密的密钥,因此无法获得真正的原始数据。接收者接收到加密的数据后,先对数据解密,然后再处理。采用SSL的通信过程如图3所示: 图3.基于SSL的加密通信 4.1.10.基于SSL的通信过程 当Web客户采用HTTPS协议访问安全的Web站点时,Web站点将自动向客户发送它的安全证书。在Web客户与Web服务器进行SSL握手的阶段,采用非对称加密方法传递数据,由此来建立一个安全的会话,接下来将采用对称加密方法传递实际的通信数据,以下是通信过程: (1)用户浏览器将自己的SSL版本号、加密设置参数、与Session有关的数据以及其他一些必要信息发送到服务器。 (2)服务器将自己的SSL版本号、加密设置参数,与Session有关的数据以及其他一些必要信息发送给浏览器,同时发送给浏览器的还有服务器的证书。如果服务器的SSL需要验证客户身份,还会发出请求要求浏览器提供用户证书。 (3)客户端检查服务器证书,如果检查失败,就提示不能建立SSL连接。如果成功,那么继续下一步骤。 (4)客户端浏览器为本次会话生成预备主密码(pre.master secret),并将其用服务器公钥加密后发送给服务器。 (5)如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。 (6)如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的预备主密 (pre.master-secret),并用它通过某些算法生成本次会话的主密码(master-secret)。 (7)客户端与服务器均使用此主密码(master-secret)生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。 (8)客户端通知服务器此后发送的消息都使用这个会话密钥进行加密,并通知服务器客户端已经完成本次SSL握手。 (9)本次握手过程结束,会话已经建立。在接下来的会话过程中,双方使用同一个会话密钥分别对发送以及接收的信息进行加密、解密。 4.2登录注册页面模块设计 实现用户的登录,以及用户的注册把注册信息传给web服务器,客户端界面和服务器之间使用https协议进行通信,通信时实现数据的加密传输。 4.3生成数字证书模块设计 4.3.1.数字认证 认证技术是计算机网络安全中的一个重要方面。通过认证可以达到通信双方的信任,从而实现更好的网络通信。利用认证技术中的身份认证技术,用数字签名实现身份认证。 认证(Authentication)机制分为消息认证与身份认证两种。消息认证用于保证信息的完整性与抗否认性,身份认证则用于鉴别用户身份。身份认证技术是实现网络安全的重要机制之一。在安全的网络通信中通信双方必须通过某种形式的身份验证来证明身份以实现不同用户的访问控制。在网络通信应用日益广泛的今天,从某种意义上说,认证技术可能比信息加密本身更加重要。因为很多通信内容本身并不需要保密,但是要求双方通过身份认证来达到一 种互相信任的关系。 4.3.2.数字签名概述 日常生活中,我们常把在书面文件上签名作为确认文件的一种手段。签名的作用有两点,一是因为自己的签名难以否认,从而可以确认文件已经签署的事实,即保证文件的不可否认性;二是因为签名不易仿冒,从而可以确定文件是由签名人确认的,从而确定文件的来源,也即确认发送文件人的身份。 在网络通信中,通常也使用类似这种签名的方式,来实现发送消息者身份的认证,以及防止发送消息者对所发送消息的抵赖,这种身份认证的方式就是数字签名(DigitalSignature)。要实现数字签名,需要用到一些加密技术的知识。下面简单介绍所用到的相关内容。 4.3.3.数据加密技术 所谓数据加密技术,就是指通过一定的变换方式,将用户要发送的数据加以变换,从而使未授权用户即使得到这些改变后的数据,也无法知道其真实内容。而授权用户则可以通过一定的方式再将数据变换成原先的形式,进而得到所需要的数据。一般的数据加密模型如图1所示。明文x用加密算法E和加密密钥K得到密文Y=EK(x)。发送消息以密文的形式进行发送。到了接收端,利用解密算法D和解密密钥K,解出明文DK(Y)=DK(EK(x))=X。 在消息的发送过程中,可能有入侵者获取消息,但他们所获取的是密文,我们的加密算法要求在没有密钥的情况下,即使知道加密算法,也无法解密密文,从而不能得到明文。因此,密钥管理在加密技术中起到至关重要的作用。在现代的加密技术中,加密算法通常都是公开的,但是密钥却是保密的,通常都是通过一定的安全通道来进行密钥的传输的。 4.3.4.非对称密码体制 根据加密时和解密时所用到的密钥的相同与否,加密技术分为对称密码体制和非对称密码体制。其中对称密码体制中加密密钥和解密密钥是同一个密钥,因而要对密钥加以绝对的保护,一旦密钥泄露,则整个加密系统无安全性可言。现在常用的对称密码体制有DES(USFeder~DataEncryptionStandard),三重DES,IDEA(InternationalDataEncryptionA1.gorithm)等。 菲对称密码体制又称公开密钥密码体制。公钥密码体制,是指加密密钥和解密密钥使用不同密钥的加密技术。其中一个密钥可以公布于众,称为公钥;而另一个密钥必须保密,称为私钥。至于是用公钥加密私钥解密,还是反之,则要根据实际的应用来确定。但是有一点是必须要保证的,就是用一个密钥加密,则一定能够用另一个密钥解密。现在广泛使用的非对称密码加密技术主要有RSA(Rivest—Shamir—Adelman)、椭圆曲线算法等。 4.3.5.单向散列函数 单向散列函数,又称为Hash函数,利用该函数可以对消息取摘要,而且可以证明对不同的消息所取得的摘要也完全不同。利用hash函数可以保证传输消息的完整性,因为攻击者任何一点对消息的改变,都会使其利用hash所取得的摘要有所不同,接收方只要对接收到的消息再利用hash函数取摘要,与所接收到的消息摘要加以比较,就可以知道所接收到的消息是否在传输的过程中被攻击者加以修改。常用的hash函数有MD5(MessageDigestAlgorithm5)、SHA(SecureHashAlgorithm)等。 4.3.6.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服