




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
客户端ssl安全代理的设计与实现摘要:就在公共网络上传输重要信息的安全性问题,本文介绍了客户端ssl安全代理的设计与实现。该代理为浏览器提供高强度(128位以上)的数据加密能力以及身份认证功能等,提高了传输信息的安全性。关键字:ssl协议;身份认证;数字签名;传输加密 the design and implement of ssl secure proxy on client sideabstract: it is not secure to transmit the important information using www via public network. the thesis presents the design and implement of ssl secure proxy on client side. this proxy in the form of web proxy provides high strength (with key of 128bit upwards) encrypted transmission between the secure web server and proxy. it improves the security for transmitting information.key words: ssl; identity authentication; digital signature; transmission encryption1 引言由于美国对密码强度的出口进行限制,大多数web浏览器如internet explorer, netscape navigator的国际版本只支持56位以下的弱加密算法,这使我们在公共网络上利用www传输重要信息没有安全性可言,我国电子商务、电子政务的发展迫切需要具有自主知识产权的安全增强软件。客户端ssl通讯安全代理正是为满足这一需求而开发的,其实现基于openssl0.9.6。客户端ssl安全代理(以下简称“安全代理”)以web通讯代理(web proxy)的形式,为浏览器提供128位以上高强度的数据加密传输能力。具体功能如下:(1)身份认证 在连接上ssl安全代理服务器后,接受服务器的证书以核实服务器的身份,代表客户端向服务器发送客户证书,并协商该次传输采用的加密算法及相关的对称密钥。在此过程中,任何可能的错误都会导致连接取消,以保证数据安全。(2)加密功能 用户应用程序发送给网络服务器的数据流,在通过ssl安全代理客户端时被加密转换成ssl协议下的密文。(3)解密功能 从ssl安全代理服务器出来的加密数据流,首先被ssl安全代理解密,用户应用程序收到的仍是明文。(4)证书管理 提供方便、美观的图形界面管理ca和用户的证书,能够添加、删除、查看证书。2 设计与实现2.1总体设计安全代理与web浏览器安装在同一台计算机上。当浏览器要与远端web服务器建立连接时,首先与代理连接,用connect方法说明要连接的主机名和端口号,然后由安全代理负责与远端web服务器建立连接。连接建立后,经过身份认证,浏览器与服务器之间的数据传输由安全代理转发完成。其中,浏览器与安全代理之间的数据传输使用浏览器本身支持的弱加密算法,安全代理与远端web服务器之间的数据传输则使用高强度的数据加密算法。图1 ssl安全代理设计思想fig.1 the design of ssl secure proxy2.2 建立ssl连接当代理https协议时,安全代理作为中介处理服务器与客户端之间所有的安全访问请求与响应。客户端连接到代理后用connect方法说明要连接的主机名和端口号(host:port),然后是http版本号字符串和行结束符标志。在行结束处,connect文本方法包括0或更多的http请求头域行,每个头域行或者以crlf或者以单个换行符结束。空行仅仅是另外一种crlf对或另一种单个换行符。如果建立连接的通话成功,ssl数据从空行开始传送。下面的例子显示了试图连接安全服务器的一些信息:connect :443 http/1.0user-agent: mozilla/1.1n在空行请求后,客户等待一个来自代理的响应。代理审查这个请求,确信请求的有效性和检查用户请求这个连接的权限。如果代理判断请求各方面都是正确的,代理将与目标服务器建立连接,若成功则返回一个“200 connection established”的信息给用户,返回的信号遵循http/1.1协议,因此返回的信息以协议规定的行开始,然后是0和更多的响应头域及遵循每个响应头域的一些空行组成。下面显示了客户成功连接后服务器可能产生的响应:http/1.0 200 connection establishedproxy-agent: hacker-proxy/1.1在这些空行后,代理开始将数据从客户端连接传送到远程服务器连接上,数据任何时候都可能从一个连接上传送过来,代理将这些数据立刻传送到另一方,并终止另一方的连接。整个建立ssl连接的过程如图2所示。clientserverproxyconnect()accept()connect some-server:443accept()connect()http/1.0 200 okssl_connect()ssl_accept()图2 ssl连接建立的过程fig.2 the process of establishing the ssl connection2.3 身份认证技术2.3.1认证模块认证是指验证一个最终用户或设备(例如客户机、服务器、交换机、路由器、防火墙等)的声明身份的过程。大体上,认证方法分为“本地认证”方法和通过“可信任的第三方”一个可信任的权威机构提供认证确认的方法。本文采用后者,将被认证方的身份标识x.509证书发送给权威机构(ca)验证其合法性。采用实时认证方法,创建网络套接字连接到ca服务器的指定端口,使用ca提供的认证服务并等待接收ca服务器返回的认证消息码。认证的原理基于签名机制。所谓数字签名是指用户用自己的私钥对原始数据的哈希摘要进行加密所得的数据。在每一个x509证书中都有签名这一字段,它覆盖了证书中所有其他的字段,包含了用ca的私钥加密的其他字段的哈希码,在认证时,首先用ca自己的公钥解密签名信息得到证书其他字段的摘要值,再对证书其他字段计算哈希值,比较两者是否相等,如果相等则说明此证书格式为合法,接着对证书中各个字段的内容进行合法性检查,否则返回出错码。2.3.2服务器端/客户端认证在ssl通信的过程中,安全代理管理客户端的个人证书和一系列被客户端所信任的ca证书。在服务器端,当服务器接受一个ssl连接请求的时候,如果需要对客户进行认证,即调用认证模块,与ca服务器建立连接,发送客户证书要求ca进行认证,并等待认证结果,如果证书合法,ssl连接建立成功,否则返回出错信息,ssl连接建立失败。在客户端,我们将动态认证功能加入到安全代理中,当客户第一次连接一个安全服务器,即创建一个ssl会话的时候,我们在接收到服务器证书后,即调用认证模块,传递服务器证书给ca进行认证,原理同服务器端。2.4传输加密技术internet的设计者没有在协议里面提供任何的安全事务处理,tcp/ip和http都不能提供保护个人传送信息的加密方法,在internet上传输的信息全是明文,很容易被第三者窃听。为此,在传输重要信息(如财政数据、金融数据)时我们需要采用传输加密技术来保护我们传输的内容(如图3所示)。各地市州网络图3安全传输信道示意图fig.3 secure channel for transmissionip加密机传输前加密接收前解密通过公用网络传输采用ssl协议的公开实现openssl0.9.6提供安全的传输机制,应用程序数据的传输过程为:1. 程序把应用数据提交给本地的ssl;2. 发送端的ssl先用对应连接的散列算法对应用数据进行散列,得到一个应用数据的散列值;3. 散列值和应用数据一起用加密算法加密;4. 密文通过网络传给对方;5. 接收方的ssl用相同的算法对密文解密,得到明文;6. 接收方的ssl用相同的散列算法对明文中的应用数据散列;7. 计算得到的散列值与明文中的散列值比较;8. 如果一致,明文中的应用数据有效,ssl把应用数据上交给接收方的应用层;否则就丢弃数据,并向对方发出报警信息。严重的错误有可能引起再次的协商或连接中断。 25 ssl协议安全套接层(ssl,secure socket layer)起源于netscape,现在被广泛地用于internet上的身份认证和web服务器与客户端浏览器之间的数据安全通讯。ssl建立在可靠的传输层协议(如:tcp)之上,与应用层协议(如:http,ftp,telnet)独立无关,它可以有效地避免网上信息的偷听、篡改、以及信息的伪造。ssl协议在应用层协议通信之前完成加密算法、通信密钥的协商以及服务器认证工作,应用层协议传送加密数据,从而保证通信的私密性。通过以上叙述,ssl协议提供的安全信道有以下三个特性:(1) 数据保密:连接是保密安全的。在初始化握手协议协商加密密钥之后传输的消息均为加密的消息。加密的算法为单钥加密算法如des、rc4、idea等。(2) 身份认证:通信双方的身份是可以通过公钥加密算法如rsa、dss等签名来验证,杜绝假冒。(3) 数据完整性:hash函数例如sha、md5等被用来产生消息摘要mac。所传输的消息均包含数字签名,以保证消息的完整性。这保证连接是可靠的。26 系统结构本系统由建立ssl连接、身份认证、传输加密、证书管理四个功能模块构成,总体结构如图4所示。ssl安全代理建立ssl连接身份认证传输加密证书管理可信任ca证书个人证书图4 ssl安全代理系统结构fig.4 the structure of ssl secure proxy3结束语为了解决internet/intranet的安全问题,国内外各方面对网络安全的关键技术和安全协议进行了多年的研究,到目前为止初步形成了以公钥密码体系结构(pki)为基础的完整的安全解决方案。本文利用ssl的公开实现openssl0.9.6及ms vc 6.0实现了客户端的安全代理软件,可在代理与安全web服务器之间提供高强度的加密传输及身份认证功能,解决目前只能使用国外产品如internet explorer、netscape navigator所提供的低强度加密传输信道的困境。参 考 文 献1 william stallings 著 潇湘工作室译,网络安全要素应用与标准m, 人民邮电出版社,2000,9.2 carlisle adams steve lloyd 著 冯登国 等 译,公开密钥基础设施概念、标准和实施m,人民邮电出版社,2000,1.3 merike kaeo 著,网络安全性设计m,人民邮电出版社,2000.4 冷丽琴,安全web网站网站的一种实现模型swmd,硕士论文.作者简介:任静(1978),女,硕士研究生,研究方向:计算机网络与互联网;李涛(1965),男,教授,博士生导师,研究方向:计算机网络安全,人工智能与神经网络;伍良富(1943),男,研究员,研究方向:计算机网络与互联网;张巍(1977),男,硕士研究生,研究方向:计算机网络安全;鲜婷(1977),女,硕士研究
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学土木工程施工实习个人工作总结
- 地震应急演练工作总结
- 小儿白细胞减少课件
- 三伏天课件教学课件
- 体育校企合作合同协议书
- 期货从业资格之《期货法律法规》练习题(一)附答案详解【夺分金卷】
- 小儿推拿复式手法课件
- 买卖出售机械合同协议书
- 小儿心肌损害课件
- 期货从业资格之《期货法律法规》通关测试卷含答案详解【新】
- 海上风电回顾与展望2025年
- GB/T 45911-2025人工影响天气作业用弹药存储安全要求
- 神经内科业务学习体系
- 2025年甘肃省高考地理试卷真题(含答案解析)
- DB42∕T 2272-2024 微粒化岩沥青改性沥青路面施工技术规范
- 护理执行医嘱制度
- 2025年6月22日四川省市直事业单位遴选笔试真题及答案解析
- 肺动脉高压的麻醉管理
- 品牌扩和品类延伸策略
- 客车运输公司安全生产风险辨识分级表
- 电动门合同协议书
评论
0/150
提交评论