8.2.2 SSL的安全功能

作者:佚名    文章来源:不详    点击数:    更新时间:2008-8-17
8.2.2  SSL的安全功能
1.SSL安全概述
SSL是一种用于Web的安全通信标准,可以把它理解成分层体系结构中的一层,位于应用层和传输层之间,建立用户与服务器之间的加密通信,确保信息传递的安全性。数据经过它流出的时候被加密,再往TCP/IP送,而数据从TCP/IP流入之后先进入它这一层被解密,同时它也能够验证网络连接两端的身份。SSL可以对各种应用数据进行加密,如HTTP, POP, FTP等。SSL提供的安全机制可以保证应用层数据在传输时不被监听、伪造和篡改。
SSL工作在公共密钥和私人密钥基础上,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。使用SSL安全机制时,首先客户端与服务器端建立连接,服务器端把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个安全通道。
Web客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型Web服务器在一个与标准HTTP请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,知道SSL会话过期。SSL创建一个会话,在此期间,握手必须只发生过一次。
SSL协议的优点是它提供了连接安全性,具有以下3个基本属性。
1)连接的私有性:在初始握手定义了一个会话密钥后,使用会话密钥进行加密通信。对数据的加密采用了对称加密技术,如DES和RC4等。
2)连接的认证性:通过密码技术(如RSA和DSS)来验证对等实体的身份。
3)连接的可靠性:消息传输使用一个带密钥的MAC(消息认证码),包括了消息完整性检查。其中MAC是通过把密钥和消息一起经安全哈希函数(如SHA和MD5)处理后得到的。
2.SSL中使用的加密技术
在SSL中,分别采用了对称密码、公钥密码和公钥密码中的数字签名技术。公钥密码技术用于初始化SSL连接,对称密码技术用于SSL连接后的安全通信。
使用SSL的Web服务器持有私钥和带有公钥信息的证书。当Web浏览器请求获取Web服务器上的服务时,一个初始化SSL连接的过程便开始了,这个初始化过程如下: 
1)客户端通过HTTPS向Web服务器发出对某个页面的请求。
2)Web服务器把含有服务器公钥的证书发送给客户端。
3)客户端进行一系列的检查,包括,
① 证书是否过期;
② 签发此证书的CA(安全认证中心)是否存在于浏览器的可信任CA列表中;
③ Web服务器的FQDN(Fully QualifIEd Domain Name)是否和证书中的CN(Common Name)匹配。
如果各项检查都通过,SSL连接的初始化工作就完成了,SSL连接被建立,否则SSL连接失败。对于客户端的第二项检查,当CA不在信任列表中时也可以建立连接,只不过浏览器会提示你说这个证书来自不可信任的机构,是否继续等,这时只要选择“是”即可。
当SSL连接建立后,使用对称密钥用于实际的数据传输,因为使用相同的密钥加密和解密会节省系统资源。这个密钥是在SSL连接初始化过程中由客户端指定,并通过公钥密码技术与服务器端协商确定。
3.证书的申请和签发
从上面的SSL工作过程可以发现,对Web系统的加密离不开密钥对的产生和证书的签发。CA(安全认证中心)完成证书签发。
公/私密钥对的产生有两种方式。一种方式是由用户在自己的机器上生成密钥对,在这种方式下,用户向CA申请证书时只传递公钥,私钥自己保留,因此安全性高;另一种方式是由可信任的第三方,即CA机械地为客户生成密钥对。
在第一种方式中,用户在生成密钥对后,可以花钱让CA签署证书,这时用户要生成一个证书请求上传给CA,在这个证书请求中包括密钥对的公钥部分,等待CA的签发。如果用户是为了测试用,可以自己建立CA并签发证书。
一般情况下,Web应用中数据经过简单的由上到下的几次封装,就进入网络,如果这些包被截获的话,那么可以很容易地根据网络协议得到里面的数据,包括登录用户名/密码等信息。用类似Sniffer这样的监听工具可以很容易地做到这一点。SSL可以作为对策之一,帮助我们提高Web系统的安全性。


  • 上一篇文章:
  • 下一篇文章: