问:我经常听人们说SSL位于网络层和应用层之间,这是什么意思?

  专家答:这是一个非常好的问题。我想回答这个问题的最好方法是从检查协议的目的开始。在计算机领域,协议是管理数据在两个端点之间传输的一套规则。这套规则包括连接、通讯和实时数据交换的句法、语义和同步执行。然而,大多数通讯和网络协议都不是单独发挥作用的,这些协议在一个称作协议堆栈的地方分层次地放在一起。协议堆栈是需要共同合作的协议的具体结合,在这个协议堆栈中的每一个协议都执行专门的任务。SSL(安全套接层)是一个基于标准的加密协议,提供加密和身份识别服务。SSL广泛应用于在互联网上提供加密的通讯。SSL最普通的应用是在网络浏览器中通过HTTPS实现的。然而,SSL是一种透明的协议,对用户基本上是不可见的,它可应用于任何基于TCP/IP的应用程序。

  正如你想象的那样,设法保证一个协议栈能够完成其预定的任务和保证不同的协议都在一起工作是非常复杂的。为了帮助工程师概念化协议栈,人们开发了各种模型,每一种模型都提供一个网络协议应该如何工作的简要说明。OSI(开放系统互连)模型可能是最被广泛应用的,它使用7层结构把各种协议以及服务组织在一起。早期的TCP/IP模型使用4层或者5层。这两种模型接近最上面的层在逻辑上更接近用户,接近最下面的层在逻辑上更接近数据的物理传输。

  根据OSI模型,应用层(7层)为应用程序处理提供普通的应用服务。网络层(3层)解决把数据包从网络的一个地方传送到另一个地方的问题。SSL是一种不同寻常的协议,它不只在一个层上工作。SSL既不是网络层协议也不是应用层协议,它是位于这两层之间的一种协议。

  由于SSL所处的位置,SSL能够向客户机提供有选择地保护单一应用程序的能力,而不是对整个一组应用程序进行加密。这个过程能够在不用担心3层(网络层)的情况下完成。由于这些原因,当使用SSL对网络通讯进行加密的时候,实际上只加密了应用层数据。这与IPsec协议不同。IPsec协议在网络层工作,加密在IP层中的所有通讯数据。