用SSL和JSSE API创建安全的网络应用程序.doc

用SSL和JSSE API创建安全的网络应用程序.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用SSL和JSSE API创建安全的网络应用程序

用SSL和JSSE API创建安全的网络应用程序 李清勇 2002-6-10 14:12:30 一、SSL概述 我们从各式各样的文章中得知,SSL可以用于保密的传输,这样我们与web server之间传输的消息便是“安全的”。但是这种“安全”究竟是怎么实现的,最终又能实现哪些保密功能?让我们先简单学习一下SSL的相关内容。 1.1 SSL的整体结构 SSL是一个用来保证安全传输文件的协议。这种由Netscape公司开发的协议是通过在浏览器软件(比如Internet Explorer、Netacpe Navigator)和WWW服务器建立一条安全通道,从而实现在internet中传输保密的文件。 在TCP/IP协议族中,SSL位于TCP层之上,应用层之下。这使它可以独立与应用层,从而使应用层协议可以直接建立在SSL上。其大致位置如下: 如果利用SSL协议来访问网页,其步骤如下: 用户:在浏览器的地址栏里输入 HTTP层:将用户需求翻译成HTTP请求,如 GET /index.htm HTTP/1.1 Host SSL层: 借助下层协议的的信道安全的协商出一份加密密钥,并用此密钥来加密HTTP请求。 TCP层:与web server的443端口建立连接,传递SSL处理后的数据。 接收端与此过程相反(具体过程表述略)。 SSL在TCP之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到保密的效果。 1.2 SSL协议的组成和协商过程 SSL协议分为两部分:Handshake Protocol和Record Protocol。其中Handshake Protocol用来协商密钥,协议的大部分内容就是通信双方如何利用它来安全的协商出一份密钥,SSL握手协议准许服务器端与客户端在开始传输数据前,能够通过特定的加密算法相互鉴别。 Record Protocol则定义了传输的格式。 在SSL层的协商过程中,SSL缺省只进行server端的认证,客户端的认证是可选的。以下是其流程图(摘自TLS协议): 简单的说便是:SSL客户端(也是TCP的客户端)在TCP链接建立之后,发出一个ClientHello来发起握手,这个消息里面包含了自己可实现的算法列表和其它一些需要的消息,SSL的服务器端会回应一个ServerHello,这里面确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。Client在收到这个消息后会生成一个秘密消息,用SSL服务器的公钥加密后传过去,SSL服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了。 1.3 SSL协议的功能 SSL主要解决以下三个安全性方面的重要论题: 提供认证服务,认证服务保证会话实体身份的合法性。 提供加密服务,SSL保证第三方不能破译在两个实体之间的通讯内容。 保证数据的完整性。SSL使用MAC (message authentication code)保证两个实体之间的通讯内容没有被第三方篡改。 SSL主要依靠公钥加密方法和私钥加密方法,它用私钥加密方法对应用程序之间的大块通讯内容进行加密。SSL提供理想的方案,因为私钥加密方法既安全又速度快。公钥加密比私钥加密速度要慢,但是对于认证和钥匙交换来说是更好的选择。 二、JSSE API 学习了SSL协议的主要内容后,读者自然会问我们怎样实现SSL协议的复杂功能?下面我们就来学习怎样用JSSE在我们的应用程序中添加SSL技术。 JSSE提供在你的应用程序上添加SSL的所有必要技术。它包括RSA (Rivest-Shamir-Adleman)加密支持,RSA加密技术是因特网上事实上的安全标准。它还实现了SSL 3.0 (当前的SSL标准)以及TLS (Transport Layer Security) 1.0-它是SSL的下一代版本。JSSE当然还提供创建和使用安全套接字的API集。 JAVA安全框架主要使用工厂(Factory)设计模式。Factory设计模式使用一个特殊的factory 对象构造实例,而不是直接调用他们的构造函数。 在JSSE中,什么事情都是从工厂(Factory) 开始;这里有SSL套接字的工厂(Factory)和SSL 服务器套接字工厂(Factory)。因为通用套接字和服务器套接字是JAVA网络程序设计的基础,本文假定读者对这两个类很熟悉,知道它们的用途和区别。如果你不熟悉或是说没有概念的话,我建议你找一本关于Java网络编程的书籍学习一下再看本文。 2.1 SSLSocketFactory .ssl.SSLSocketFactory类中的方法主要有三类。第一类包括一个静态方法,它返回缺省的SSL套接字工厂:static SocketFactory get

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档