|
众所周知,不同主机之间的网络数据传输主要是通过TCP/IP网络协议来完成的。无论是企业局域网数据传输,还是互联网上的数据传输,都是如此。但是,令人想不通的是,在当初TCP/IP协议的设计过程中,并没有提供任何安全性。也就是说,光凭TCP/IP协议,并不能过保障数据在网络中的安全与稳定的传输。为此,数据在网络中的安全性要依赖于高层的应用程序。互联网技术发展到现在,已经有不少提高网络运输稳定与安全的解决方案。今天谈谈如何通过SSL来实现这个需求。
SSL中文名字叫做安全套接层协议,他使用TCP/IP为高层协议建立安全连接。它运行在TCP/IP和高层协议之上,提供数据传输的安全性。SSL协议其包括两个分支,分别为SSL纪录协议与SSL握手协议。
一、三步完成SSL纪录协议
SSL纪录协议相对来说,比较简单。它定义了数据在网络中传输的格式,并对此采取加密处理。同时还提供了一些验证手段,防止在传输过程中数据被人为的破坏,从而影响数据传输的稳定性。要实现这些目的,只需要简单的三步即可。
第一步:分块。当上层的数据被转移到SSL协议所在的层之后,数据将会被分块。从上层传递下来的数据往往是以明文形式传送的。通常情况下,分块过后的数据不会超过214字节。分块的时候,一般不会考虑数据的内容形式,而只考虑大小。即具有同样类型的不同纪录消息会被组合为一个纪录;而如果一个纪录容量比较大的话,也会被分割为多个块。
第二步:压缩并加密。分块之后,SSL协议就会对要传输的数据使用压缩算法进行压缩,并且在压缩过程中同时进行加密处理。压缩算法必须保证数据在压缩后不会被丢失。当另外一端接收到数据之后,就会采用对应的解压算法对数据进行解压缩,同时完成数据的解密过程。
第三步:纪录有效载荷的保护。在数据传输过程中,另外一个需要关注的问题,就是传输数据的稳定性。也就是说,传输的数据有没有被意外的更改等等。SSL协议也提供这方面的保护。当完成对数据压缩与加密之后,SSL纪录协议会计算出完整的校验值,也就是所谓的消息鉴别码。在传输数据的时候,这个消息鉴别码会随同上面的块一同被加密传送。在接收端,数据被解密、解压缩;然后也会重新计算着消息鉴别码,以验证数据是否在传输过程中被意外修改。
二、SSL握手协议
SSL纪录协议只是在单机上对信息进行重新分块并进行压缩与加密,而没有涉及到网络连接。SSL握手协议则主要用来解决主机之间的连接问题。SSL握手协议使用SSL纪录协议,在两台支持SSL的设备之间通过交换一系列信息,以建立SSL连接。SSL握手协议在建立连接的过程中,主要完成对服务器与客户之间的相互鉴别、确定所要采用的加密算法、通过使用公开密钥加密技术产生共享的加密信息、建立加密的SSL连接等等。
建立一个SSL会话要比SSL纪录协议复杂的多,往往需要通过多个步骤才能够完成。这里出于篇幅的限制,也就不再展开了。大家若有需要可以去参考相关的书籍。这里主要对几个容易搞混的地方做一些说明,以便于大家应用SSL协议。
一是加密方法的选择。在SSL建立会话传递数据的过程中,要确保其路过的每一个网络设备都支持SSL协议。否则的话,就会出现数据传输上的问题。而现在的网络设备,大部分已经都支持SSL协议。但是,SSL协议所采用的加密方法有上十种。虽然现在的网络设备基本都支持SSL协议,可是不一定会支持所有的加密算法。为此,SSL协议会在建立会话的过程中,选择大家都支持的一种加密算法。在对于一些安全性级别要求比较高的场合中,网络管理员要对其具体采用的加密算法进行监控。若无法满足企业的安全性需求,则要及时的更换设备或者对设备进行升级,以满足比较高的加密算法以及安全性需求。
二是要注意加密并不等于不能够破解。SSL的连接是加密的。在客户机、服务器之间的所有传送数据通过SSL协议处理之后,都是加密的,这为数据传输提供了很高的机密性。SSL协议在确定了所使用的加密算法之后,一个初始化的握手过程会产生密钥,加密算法就会采用这个密钥。但是,要值得注意的就是,并不是说加密之后的数据就不能够被破解。而只是说,增加了这个破译的难度。而这个难度系数到底达到多少,又是由这个加密算法说决定的。虽然说在SSL会话过程中,SSL协议会自主选择一个大家都支持的加密算法。 |
【收藏】【打印】【进入论坛】 |
|
|
|
|
|
|
|