2.3 TCP/IP参考模型及其安全体系
2.3.1 TCP/IP参考模型
根据OSI参考模型可以说明构成TCP/IP协议簇的协议。TCP/IP参考模型与OSI参考模型的对应关系如图2-3所示。在OSI参考模型中,TCP/IP参考模型中的网络接口层和应用层被进一步划分,用于说明这些协议层需要实现的详细功能。
TCP/IP协议簇在网络接口层并没有指定通过物理介质传输时使用的协议,而只是描述了从Internet层到物理网络协议的传递。而OSI参考模型第1层和第2层则论述了接入介质所需的步骤以及通过网络发送数据的物理手段。
这两个网络模型之间主要的相似之处在于它们的第3层和第4层。OSI参考模型第3层是网络层,几乎全部用于论述和记录发生在所有数据网络中的用于编址并在网际网络中路由消息的过程。Internet协议(IP)是TCP/IP协议簇中包含第3层所述功能的协议。
OSI参考模型的第4层是传输层,通常用于描述管理源主机和目的主机之间各个会话的一般服务或功能。这些功能包括确认、错误恢复和定序。传输控制协议(TCP)和用户数据报协议(UDP)这两个TCP/IP提供了这一层需要的功能。
图2-3 TCP/IP参考模型与OSI参考模型的对应关系
TCP/IP参考模型的应用层包括许多协议,为各种最终用户应用程序提供特定功能。OSI参考模型第5层、第6层和第7层供应用程序软件开发人员和厂商参考,用于生产需要访问网络进行通信的产品。
TCP/IP参考模型中各层功能如下。
1)应用层:是用户访问网络的界面。包括一些向用户提供的常用应用程序,如电子邮件、Web浏览器、文件传输、远程登录等,也包括用户在传输层之上建立的自己的应用程序。
2)传输层:负责实现源主机和目的主机上的实体之间的通信。它提供了两种服务:一种是可靠的、面向连接的服务(TCP);一种是无连接的数据报服务(UDP)。为了实现可靠传输,要在会话时建立连接,对数据包进行校验和收发确认,通信完成后再拆除连接。
3)网际层:负责数据包的路由选择,保证数据包能顺利到达指定的目的地。一个报文的不同分组可能通过不同的路径到达目的地,因此要对报文分组加一个顺序标识符,以使目标主机接收到所有分组后,可以按序号将分组装配起来,恢复原报文。
4)网络接口层:负责接收IP数据包并通过网络传输介质发送数据包。
2.3.2 TCP/IP参考模型的安全体系
1.网络接口层安全
对于OSI参考模型的物理层,可以在通信线路上采用某些防窃听技术使得搭线窃听变得不可能或者不容易被窃听者检测到;数据链路层上,点对点的链路可以采用硬件实现方案,使用通信保密设备进行加密和解密。网络接口层安全主要是针对数据链路层安全的。
基于数据链路层在网络通信中所处的位置,它不可能提供真正的终端用户级认证,也不能在合理成本下提供网络内的用户间的保密性,仅提供网络接口层安全机制对终端用户来说还是不安全的。例如,限制设备的信息流等防火墙之类的功能,应在数据链路层加密机制之前加入。
数据链路层保护有着一定的局限性,但有些保护机制和高层相比更容易在此层实现。第一种是通信安全机制,如防范MAC地址泛洪攻击、针对STP的攻击等,就必须采用这种安全机制;第二种是高层不拥有的安全机制,如针对隐通道方面的安全机制,隐通道是指系统的一个用户以违反系统安全策略的方式传送信息给另外一个用户的机制。任何利用非正常的通信手段在网络中传递信息,从而突破网络安全机制的通道都可以称作隐通道。在TCP/IP协议族中,在设计上有些安全方面的缺陷,由于这些缺陷的存在,网络隐通道才能够建立成功。在协议中,有很多设计得不严密的地方,可以用来秘密地隐藏信息,这就给建立隐通道秘密传输信息提供了场所。隐通道的存在会对网络的安全构成威胁,数据包中任何字节的改变或传输参数的任何变化都是潜在的隐通道。数据链路层保护可以有效地取出诸如传输信息长度、时间以及地址的隐通道。
除此之外,数据链路层系统设计较为简单,与其他层相比更容易达到预期目标。
2.网际层安全
网际层安全主要是为了保证IP数据包能够正确地发往目的地,攻击者可能通过修改网络的操作以达到他们的攻击目的,数据包有可能被路由器发往错误的地方。
网络中的路由器对路由表的维护一般采用的是动态路由机制,它依赖路由器的两个最基本的功能:一是路由表的维护;另一个是路由器之间适时的路由信息的交换。因此,路由表和路由信息的准确性和完整性对IP网络来说是相当关键的,路由表的完整正确与否直接关系到能否连接到目的设备并有效使用网络资源。
保证路由器间的更新信息完整性也很重要。路由器更新信息是由路由协议来实现的,常见的路由协议有RIPv2、OSPF、EIGRP等。无论采取何种协议,都要确保路由更新信息在网络上传送时不会被修改。同时,路由器的内部也需要完整性机制。路由器可以采用设置不同级别的访问并授予相应的权限等方式以防止非授权用户的非法修改,确保路由表信息的准确性。另外,还需要认证机制,以确保非授权的路由更新信息插入网络。
在新一代的互联网协议IPv6包头设计中,对原IPv4包头所做的一项重要改进就是将所有可选字段移出IPv6包头,置于扩展头中。由于除Hop-by-Hop选项扩展头外,其他扩展头不受中转路由器检查或处理,这样就能提高路由器处理包含选项的IPv6分组的性能。通常,一个典型的IPv6包,没有扩展头。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。
目前,RFC2460中定义了6个IPv6扩展头,其中认证包头提供数据源认证、数据完整性检查和反重播保护。ESP(Encapsulating Security Payload)协议包头提供加密服务。当认证和加密两者都需要时,可以将它们结合起来使用。
网际层安全性的主要特点是它的透明性,对同一目的地址的数据包,按照同样的加密密钥和访问控制策略来处理。也就是说,对属于不同进程的包不做区别。网际层非常适合提供基于主机的安全服务。
3.传输层安全
传输层提供TCP和UDP两种服务,TCP提供可靠的面向连接的服务,UDP提供无连接的服务。传输层的安全主要针对端对端的数据传输。确保传输层安全的相应协议有SSL、TLS、SOCKS、WTLS等。
由于在TCP/IP中没有加密、安全认证等安全机制,所以Netscape研发了SSL(Secure SocketLayer)协议,用以保障在Internet上数据传输的安全。SSL协议位于TCP与应用层协议之间,为数据通信提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持;SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际的数据传输开始前,对通信双方进行身份认证、协商加密算法、交换加密密钥等。
TLS(Transport Layer Security)协议包括两个协议组——TLS记录协议和TLS握手协议。TLS记录协议是一种分层协议,每一层中的信息可能包含长度、描述和内容等字段。TLS记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用MAC、加密以及传输结果等;对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机。TLS握手协议由3个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、协商安全参数、互相报告出错条件。
相对于网络层的安全机制,传输层安全机制是基于进程和进程之间的安全服务和加密传输信道,它不具备透明性。只要应用到传输层安全协议(如SSL),就必定要对其他层次进行若干修改,以增加相应的功能,并使用稍微不同的进程间通信界面。它的实现涉及公钥体系,安全强度高,支持用户选择的加密算法。缺点是它所涉及的公钥和私钥用户很难记忆,需要通过其他方式加以保存。
4.应用层安全
应用层是直接面向用户的,TCP/IP的应用层协议很多,常见的运行在网络层的安全协议有Telnet、FTP、SMTP和HTTP等。正是这些应用层协议将TCP/IP的优势发挥出来,使Internet的内容丰富多彩。而网络接口层与网络层是无法对所传送的不同内容的安全要求予以区别对待的。如果确实想区分具体文件的不同安全性要求,就必须在应用层采用安全机制。例如,Internet蠕虫和Melissa病毒利用了邮件服务器不检查传送邮件信息内容,容易被大量的请求导致正常请求不能响应的弱点。面对这样的一些威胁,低层的协议安全功能一般达不到对安全的要求,只有应用层是唯一能够提供这种安全服务的层次,以下是有关应用层安全的相关实例。
(1)利用其他软件实现对已有应用层协议安全功能的扩展
如PEM(PrivacyEnhancedMail,增强保密的邮件),用户使用本地PEM软件以及PSE环境信息生成PEM邮件,然后通过基于SMTP的报文传递代理(MTA)发送给对方。接收方在自身的PSE中将报文解密,并通过目录检索其证件,查阅证件注销表以核实证件的有效性。
(2)提供文件级别的安全机制
S-HTTP(Secure Hypertext Transfer Protocol)是Web上使用的超文本传输协议(HTTP)的安全增强版本,它与HTTP相兼容,但是要实现S-HTTP的安全特性,必须是服务器与客户机同时使用S-HTTP。S-HTTP提供了完整且灵活的加密算法、模态及相关参数。使用S-HTTP,敏感的数据信息不会以明文形式在网络上发送。
(3)提供多种安全服务的安全协议
SET(Secure Electronic Transaction)协议,被称为安全电子交易协议,是由MasterCard和Visa联合Netscape、Microsoft等公司,推出的一种新的电子支付模型。SET协议是B2C上基于信用卡支付模式而设计的,它保证了开放网络上使用信用卡进行在线购物的安全。SET协议主要是为了解决消费者、商家、银行之间通过信用卡的交易而设计的,由于SET协议提供了消费者、商家和银行之间的认证,确保了交易数据的安全性、完整可靠性和交易的不可否认性,特别是保证不将消费者银行卡号暴露给商家等优点,因此它成为目前公认的信用卡/借记卡的网上交易的国际安全标准。