Chinaunix首页 | 论坛 | 博客
  • 博客访问: 131961
  • 博文数量: 59
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 682
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-08 14:54
文章存档

2011年(2)

2010年(7)

2009年(50)

我的朋友

分类: 网络与安全

2009-06-10 09:12:49

SSL概念

网络上信息在源计算机至目的计算机的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此网景公司(Netscape)公司提出了SSL协议,旨在达到在开放Internet网络上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。

SSL(Secure Sockets Layer)安全协议又叫“安全套接层协议”。它是在网络传输层之上提供的一种基于RSA和对称加密算法的,用于浏览器和Web服务器之间的安全连接技术,用来提供两个应用之间通信的保密,可信和身份认证。它被视为 Internet 上 Web 浏览器和服务器的标准安全性措施。

SSL可以让一个客户和服务器以协商好的安全和认证级别来进行通信。当一个连接被初始化时,SSL需要协商好一个对称(symmetric )的session key和认证级别。这个对称的key是用来加密和解密数据的。在连接正在被建立的时候,还需要进行客户/服务器的认证。当协商完成后,客户和服务器可以通过加密数据,以一个安全的方式进行数据传送。

SSL协议在应用层收发数据前,协商加密算法、通讯密钥并认证通信双方,从而为应用层提供了安全的传输通道;在该通道上可透明加载任何高层应用协议(如HTTP、FTP、TELNET等)以保证应用层数据传输的安全性。

SSL协议独立于应用层协议,因此,在电子交易中被用来安全传送信用卡号码。中国目前多家银行均采用SSL协议,如在目前中国的电子商务系统中能完成实时支付,用的最多的招行一网通采用的就是SSL协议。所以,从目前实际使用的情况看,SSL还是人们最信赖的协议。

工作原理

安全套接层协议是一个保证计算机通信安全的协议,对通信对话过程进行安全保护。使用SSL协议,当一台客户机与一台主机要进行通讯时,首先是要初始化握手协议,然后才建立一个SSL对话。直到对话结束,安全套接层协议都会对整个通信过程加密,并检查其完整性。

通过握手协议,可以完成通讯双方的身份鉴定以及协商会话过程中的信息加密密钥,从而建立安全连接。SSL 完全“握手”协议如下图所示。它展示了在 SSL “握手”过程中的信息交换顺序。

图SSL “握手”协议

以上过程描述如下:

1. ClientHello:客户端将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息(如加密算法和能支持的密钥的大小等)发送到服务器。

2. ServerHello:服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器。

3. Certificate:服务器发送一个证书或一个证书链到客户端,一个证书链开始于服务器公共钥匙证书并结束于证明权威的根证书。该证书(链)用于向客户端确认服务器的身份。这个消息是可选的。如果配置服务器的SSL需要验证服务器的身份,会发送该消息。多数电子商务应用都需要服务器端身份验证。

4. Certificate Request:该消息要求客户端浏览器提供用户证书,以进行客户身份的验证。这个消息是可选的。如果配置服务器的SSL需要验证用户身份,会发送该消息。多数电子商务应用不需要客户端身份验证。不过,在支付过程中经常会需要客户端身份证明。

5. Server Key Exchange:如果服务器发送的公共密钥对加密密钥的交换不是很合适时,则发送一个服务器密钥交换消息。

6. ServerHelloDone:该消息通知客户端,服务器已经完成了交流过程的初始化。

7. Certificate:客户端发送客户端证书给服务器。仅当服务器请求客户端身份验证的时候会发送客户端证书。

8. Client Key Exchange:客户端产生一个会话密钥与服务器共享。在SSL握手协议完成后,客户端与服务器端通讯信息的加密就会使用该会话密钥。如果使用 Rivest-Shamir-Adelman (RSA) 加密算法,客户端将使用服务器的公钥将会话密钥加密之后再发送给服务器。服务器使用自己的私钥对接收到的消息进行解密以得到共享的会话密钥。这一步完成后,客户端和服务器就共享了一个已经安全分发的会话密钥。

9. Certificate Verify:如果服务器请求验证客户端,这个消息允许服务器完成验证过程。

10. Change Cipher Spec:客户端要求服务器在后续的通讯中使用加密模式。

11. Finished:客户端告诉服务器它已经准备好安全通信了。

12. Change Cipher Spec:服务器要求客户端在后续的通讯中使用加密模式。

13. Finished:服务器告诉客户端它已经准备好安全通信了。这是 SSL “握手”完成的标志。

14. Encrypted Data:客户端和服务器现在可以开始在安全通信通道上进行加密信息的交流了。

当上述动作完成之后,两者间的资料传送就会加密。发送时信息用会话密钥加密形成一个数据包A,对称密钥用非对称算法加密形成另一个数据包B,再把两个包绑在一起传送过去。接收的过程与发送正好相反,先用非对称算法打开有对称密钥的加密包B,获得会话密钥。然后再用会话密钥解密数据包A,获取发送来的信息原文。即使盗窃者在网络上取得编码后的资料,如果没有会话加密密钥,也不能获得可读的有用资料。

SSL提供的安全性

SSL技术提供了身份认证服务、信息加密服务和数据的完整性服务三项服务以达到高安全性。

  • 用户和服务器的合法性认证

认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。客户机和服务器都是有各自的识别号,这些识别号由公开密钥进行编号,为了验证用户是否合法,安全套接层协议要求在握手交换数据进行数字认证,以此来确保用户的合法性。

  • 加密数据以隐藏被传送的数据

安全套接层协议所采用的加密技术既有对称密钥加密技术,也有非对称密钥加密技术。在客户机与服务器进行数据交换之前,交换SSL初始握手信息,在SSL握手过程中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。

  • 保护数据的完整性

安全套接层协议采用Hash函数和机密共享的方法来提供信息的完整性服务,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整准确无误地到达目的地。

SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用的方式来访问。

SSL对数字证书的使用

SSL协议在做用户和服务器的身份认证时,使用的是数字证书。在本章前面已经就数字证书做了专题说明。前面介绍过,数字证书有个人证书、服务器证书以及软件开发者证书三类。在使用SSL协议进行通信时,通常客户端持有客户证书(即个人证书),而服务器端持有服务器证书。

服务器证书:一个服务器证书是企业服务器的一个电子ID,它可让企业服务器执行两个重要的功能来确保通信的安全:为用户标识自己和加密传送到这些用户的信息。SSL加密需要一个服务器证书被绑定到企业网站中。该证书包含有“Keys”,在企业网站和请求安全信息的用户间建立一个安全连接时,需要用到这些keys。

客户证书:客户端的证书和服务端的是等价的。客户证书是一个数字ID,该ID是用来向企业Web服务器标识一个客户的,并且可让企业服务器使用客户证书映射。客户证书映射将一个客户的证书映射为一个Windows用户帐号,并且可以自动认证和允许带有这些证书和正确帐号的用户进行访问。

例如,一个称为Vicky的用户拥有一个客户证书,她点击了一个到该公司网站的雇员信息部分的连接,她的浏览器就会将其证书信息放到其服务器请求的头部,服务器就会检索该证书的一个映射。如果用户的证书是正确的,并且映射到一个有效的Windows用户帐号,而且该帐号允许访问这些内容,Vicky就会被自动地认证,请求的数据也会出现在她的浏览器中。

认证可以是单向的,这是在一方确认对方的身份,或者是双向的,这时双方都需要确认对方的身份。SSL协议可以使用在多种应用中。例如:网上交易,Web Service(Web 服务)。通常,在网上交易的支付过程中,会使用双向认证。在Web Service 中,可使用客户证书来验证Web服务请求者身份,这样,就可以Web请求者访问位于解决不同平台的应用时的身份认证的问题。要求每个Web服务请求都拥有客户证书。证书映射到用户帐户,而帐户被 IIS 用于授予对 Web 服务的访问权。尽管目前数字证书的使用尚不普及,但对于 Internet 方案是一个可行的选项。
阅读(644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~