岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 高级技术 >> JavaSecurity >> Java正文
安全连接方式SSL
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 18:13:39

  安全连接方式SSL
  通常的连接方式中,通信是以非加密的形式在网络上传播的,这就有可能被非法窃听到,尤其是用于认证的口令信息。为了避免这个安全漏洞,就必须对传输过程进行加密。对HTTP传输进行加密的协议为HTTPS,它是通过SSL(Secure socket layer)进行HTTP传输的协议,不但通过公用密钥的算法进行加密保证传输的安全性,而且还可以通过获得认证证书CA,保证客户连接的服务器没有被假冒。
  使用公用密钥的方式可以保证数据传输没有问题,但如果浏览器客户访问的站点被假冒,这也是一个严重的安全问题。这个问题不属于加密本身,而是要保证密钥本身的正确性问题。要保证所获得的其他站点公用密钥为其正确的密钥,而非假冒站点的密钥,就必须通过一个认证机制,能对站点的密钥进行认证。当然即使没有经过认证,仍然可以保证信息传输安全,只是客户不能确信访问的服务器没有被假冒。如果不是为了提供电子商务等方面对安全性要求很高的服务,一般不需要如此严格的考虑。
  下面我们就分几节来谈到如何在Apache服务器上实现SSL。
  
  第一节SSL
  SSL除了可以用在Web服务器与浏览器之间信息交换以外,还可以支持其他我们所熟识的网络应用。以TCP/IP网络层来看,SSL是定位在网络层之上的应用协议,如图:
  HTTPFTPSMTP
  Secure Socket Layer
  TCP层
  IP层
  任何以TCP/IP层以上的网络协议SSL都可以支持,因此HTTP、FTP、SMTP等等皆是SSL的保护范围。SSL协议一共包含两个部分:SSL Handshake协议和SSL Record协议。前者是负责通信前的一些参数协商,后者则是定义SSL的内部数据格式。
  SSL Handshake协议
   SSL中Handshake协议可以说是SSL的前置步骤,就好象初次见面的两个人回先自我介绍一番再开始谈话一样。通信的饿双方(商店的服务器与客户计算机)先进行“沟通”与“协调”有关SSL通信的参数设置,其中包括:
  ※通信中所使用的SSL版本。※信息加密用的算法 ※客户端的身份验证要求 ※所使用的公开金钥算法
  这个协议的饿大致步骤如下:
  (1)Client Hello:首先,由客户端计算机向服务器Say Hello,并同时将客户端计算机所能支持的安全模块告诉对方,以便沟通。信息内容包括:SSL协议版本、本次联机的饿识别码以及加密模块等。
  (2)Server Hello:这时商店端服务器在收到这个信息后,立即送出包含以下信息的响应信息给客户端: ※服务器的数字证书,让客户端可以检查服务器的身份。
  ※如果服务器要求双方相互认证的话,则送出“认证请求”的饿信息。要求客户端也提出识别身份的数字证书。
  ※服务器用来加密的金钥。
  (3)加解密参数:当客户端收到服务器的信息后,就可根据要求来响应,并且也将客户端的公用金钥也送给对方,作为后续信息的加解密之用。到这个阶段为止,通信双方都已经达成了共识,并准备传送真正的信息内容。
  (4)HTTP数据流:协调的工作已经大功告成了!这时双方就可以HTTP协议来进行数据交换了。
  SSL Record协议
  顾名思义Record协议,是在描述SSL信息交换的过程中的记录格式。SSL协议是介于应用层和网络层之间,因此它回接收来自应用层的信息,并加以包装后交由下一层(也就是网络层来传送)。
  第二节Apache上实现SSL
  虽然Apache服务器不支持SSL,但Apache服务器有两个可以自由使用的支持SSL的相关计划,一个为Apache-SSL,它集成了Apache服务器和SSL,另一个为Apache+mod_ssl,它是通过可动态加载的模块mod_ssl来支持SSL,其中后一个是由前一个分化出的,并由于使用模块,易用性很好,因此使用范围更为广泛。还有一些基于Apache并集成了SSL能力的商业Web服务器,然而使用这些商业Web服务器主要是北美,这是因为在那里SSL使用的公开密钥的算法具备专利权,不能用于商业目的,其他的国家不必考虑这个专利问题,而可以自由使用SSL。
  以下是我们安装说需要的各部分说明
  apache_1.3.11.tar.gz (服务器)
  mod_ssl-2.5.0-1.3.11.tar.gz (SSL接口模块)
  openssl-0.9.4.tar.gz (ssl安全和算法类库)
  mod_perl-1.21.tar.gz (perl接口模块)
  rsaref20.tar.Z(RSA算法包)
  perl5.005_03.tar.gz(perl环境)
  如果你的系统是从头装起的话,建议你留出一个叫/chroot的分区用来运行Apache。
  至于这个分区的大小,取决于你自已,一般来说,一个普通的网站有40M也就够了。但你的系统如果早就运行了Apache,你可以另外开辟一个分区,或者选择不用独立分区来安装,仅仅在根下面开一个目录。
  
  另外我假定你的系统已经通过了一定的安全检测——在安装Apache之前(如果有其它漏洞存在的话,你认为运行在其上的Apache会怎样,所谓覆巢之下,焉有完卵:),检测至少要包括(但不仅限于)——移除不安全的SUID程序、升级某些守护进程,去掉不必要的服务。还假定你是的WEB SERVER是运行TCP/IP而且有自己的地址。
  
  一、平台
  以下测试都在下列平台下通过: 
  1、Slackware 4.x distribution using gcc 2.7.2.3 and Perl v5.005_02
  2、Solaris 7 on Sparc using gcc v2.8.1 and Perl v5.005_03 
  3、Digital UNIX V4.0F distribution using gcc 2.7.2.3 and Perl v5.005_03 
  二、获取所需要的软件
  因为阿帕奇并没有在她的包里自己SSL,因此我们必须先下载到这些加密网页所必需的部份:
  1、Apache Web Server - http://www.apache.org/dist/
  不必多说,我们当然需要获得这个web server,现在的版本是1.3.11,阿帕奇是现在世界
  上使用最广泛的web server。
  
  2、mod_ssl - http://www.modssl.org
  这是一个为Apache1.3.x web server提供强力加密的的软件模块,它使用的是SSL v2和v3 以及TLS(Transport Layer Security)v1 协议。该软件包是在BSD的license下开发的,在非商业的情况下,你可以自由地使用它,要判断该使用哪一个版本的mod_ssl很简单,它的版本号是-格式的,也就是说,你如果用的是1.3.11
  的Apache,那么就该用2.50-1.3.11的mod_ssl。
  
  3、mod_perl - http://perl.apache.org/dist/
  Apache1.3.x 的perl接口模块
  
  4、Open SSL - http://www.openssl.org
  这一软件包提供了SSL v2/v3(Secure Sockets Layer)及TLS v1(Transport Layer Security) 协议的加密保护。
  
  5、RSAref - 用搜索引擎查找一下"rsaref20.tar.Z"应该就能找到了RSA加密算法的实现软件包
  
  6、Perl减压缩、安装(详见Perl介绍)
 

[1] [2] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:WebSyue@163.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    魔域私服 魔域私服 传奇世界私服 345天龙发布网 传奇世界私服 传奇世界私服 新开传世私服 完美世界私服 征途私服 bet365 征途私服 劲舞团私服 征途私服发布网 传世私服 传奇世界私服