浅谈TCP/IP协议栈中的安全协议及使用

正如崔健在《不是我不明白》中唱的那样,“不是我不明白,这世界变化快。”尽管人们和各厂家仍遵循这个层次划分来设计和实现各种协议和技术,但在网络技术日新月异地飞速发展与普及下,如今应用的TCP/IP协议已和最初的设计大相径庭。在没有假设攻击者存在的情况下设计的TCP/IP协议早已千疮百孔,不得不打上各种“安全补丁”,同时安全人员也必须考虑要在哪一个层次对自己的产品进行防护。

在网络通信中,攻击者可以使用包括监听、中断、篡改和伪造等方式进行网络攻击。监听是一种被动攻击模式,其目的是获取网络通信双方的通信内容;中断、篡改和伪造都属于主动攻击模式,中断的目标是使正常的网络通信和会话无法继续,篡改则可以到达通信另一方的数据进行未授权的修改,致使对方接收到虚假的信息,伪造会使通信的一方接收到虚假的自称来自另一方的信息,进而执行某种操作。常见的攻击有ICMP重定向、ARP欺骗、DoS(Denial of Service,拒绝服务)、DNS欺骗、网页木马和网页钓鱼等。这些攻击在不同程度上破坏了信息的机密性、完整性、可用性、可控性、真实性等属性。

按照TCP/IP协议的划分,可以将攻击划分为对链路层、网络层、传输层和应用层的攻击。网络层的基础协议包括IP、ARP等,往往也将ICMP、BGP等协议归为网络层协议。IP协议的首要安全问题在于在进行分组交换时只根据目的地址进行转发,而不检查源地址是否有效,缺乏对IP地址的身份认证,容易遭到不需要收到响应包的攻击或序列号猜测攻击等,进而造成拒绝服务或会话劫持。IP协议存在其他的安全问题还包括IP分片重组缺陷等。ARP协议的基本功能是通过IP地址查询目标设备的MAC地址,以保证通信的正常进行。ARP协议通过广播进行问询,并在每台主机上维护一个ARP缓存表,保存MAC-IP的映射。而这种设计未对映射关系的真实性进行验证,未对问询响应来源进行验证,很容易造成ARP欺骗。

传输层协议主要有TCP和UDP。TCP建立会话后的连接过程中,仅靠IP地址、端口和序列号确认号来对通信对方进行身份验证,很容易遭到伪造或欺骗等攻击。攻击者可以直接伪造TCP RST报文中断会话过程,或者进行其他中间人攻击等。此外,TCP的三次握手过程中的设计缺陷,容易造成SYN Flood攻击,利用少量资源即可消耗服务器端大量资源,进而导致拒绝服务。UDP协议作为一种无连接传输协议,一般只用来传输数据,针对UDP的攻击很少见,常见的有UDP Flood,通过滥用UDP协议消耗目标网络带宽,造成拒绝服务。

应用层协议比较多,常见的有HTTP、SMTP、FTP、DNS等,大多数采用明文传输,因此很可能被监听、欺骗和篡改等。一些常见的Web攻击经常结合应用层的弱点来实施,利用网络数据的明文传输,进行如流量劫持、数据窃听等攻击。一些SMTP服务提供商在用户发送邮件时不对用户声称的来源进行确认,导致用户冒名发送电子邮件,进而对邮件接收者进行欺骗。DNS劫持可以成为开展中间人攻击的一个重要手段,而DNS屡次成为DDoS攻击的目标,从而导致大面积断网事件的发生。

纵观TCP/IP协议栈,我们可以发现,这些安全隐患大多都是由于缺乏对用户的身份认证、数据的未加密传输和传输的数据未进行认证造成的。对此,前人把密码学引入计算机网络中来,在各协议层设计了一些安全传输方案(协议),由此保证信息的机密性、完整性、可用性、可控性、真实性和不可否认性等。

网络层安全协议主要有IPsec等,可以有效地保护各上层协议,并为各种安全服务提供一个统一的平台。IPsec把密码学的安全机制引入了IP协议,通过使用现代密码学的方法提供机密性和认证服务,让用户有选择的使用,并得到相应的安全服务。IPsec主要包括安全协议部分和密钥协商部分。安全协议部分包括AH协议(Authentication Header,认证头)和ESP协议(Encapsulate Security Payload,封装安全载荷)两种。AH协议提供无连接的完整性、数据源认证和抗重放的保护机制,但不提供机密性的保护服务;而ESP协议则为IP协议提供了机密性、数据源验证、抗重放及完整性等安全服务,其中机密性是基本功能,其他为可选功能。由于ESP协议是在AH协议投入使用以后才设计出来的,因此功能较少的AH将逐步退出互联网。此外,IPsec还包含了密钥协商和交换协议,负责处理通信双方的协议及算法的协商,产生并交换加密和认证密钥,以建立通信双方的安全关联(Security Association,SA)。IPsec协议支持隧道模式和传输模式。隧道模式在IP数据包的前后各添加一些相关字段,构成IPsec数据包,再在IPsec这个数据包上加一个新的IP头,这样保护了原始的IP头信息。隧道模式中的新IP头与原IP头的源地址、目的地址都不同,当需要经过网关或路由器时,需要使用隧道模式。传输模式中IPsec只对传输层数据进行封装保护,不保护IP头,一般情况下只用于两台主机之间的通信。由于工作在网络层,IPsec可以为任何网络层以上的应用提供安全保护机制,而无需网络应用再进行其他的设计与实现。由于IPsec协议不仅能提供隧道功能,还可以提供数据加密、身份认证等安全服务,因此成为应用广泛的一种VPN实施方案。IPsec能对所有来自上层的数据进行加密,还能够保护原始的IP头部,但有时人们希望能有一些更为“轻量级”的加密保护,能够提供端到端而不是主机到主机的安全防护。这时就需要有高层安全协议了。

传输层安全协议主要是TLS(Transport Layer Security),前身是SSL(Secure Socket Layer)。TLS协议在传输层上通过密码学算法,支持在互联网上进行身份认证和通信数据机密性保护,能够防止数据的监听、篡改和伪造等,为应用层的网络通信提供了安全的端到端传输服务,从而在Web浏览、电子邮件等网络应用中得到广泛使用。TLS协议分为TLS记录协议和TLS握手协议两部分,其中记录协议位于TCP之上,使用对称加密算法封装各种高层协议数据,用HMAC进行数据的完整性校验;握手协议则在应用层数据传输之前进行身份认证,并协商加密算法和加密密钥,这样记录协议就能使用该密钥进行加密了。一些厂商将TLS用于构建SSL VPN产品,与传统的IPsec VPN技术相比,TLS在防火墙和网络地址转换设备穿越方面具有内在的优势,使其在有大量远程用户访问的环境中更易使用和管理。

应用层安全协议的特点在于会针对不同应用的安全需求来设计不同的安全机制,具有较强的灵活性,如HTTPS、S/MIME等。HTTPS协议主要用于对Web数据进行加密,一般的电子商务、银行或其他涉及到账号的网站都会采用HTTPS进行连接,从而进行身份认证,保证数据的机密性和完整性等,防止被窃听、伪造等。现在使用HTTPS的网站越来越多了,已经不限于电子商务等这类网站了。S/MIME是电子邮件的加密标准,在MIME协议上加入了数字签名和加密功能,能对用户身份进行认证,同时避免了电子邮件数据的明文传输带来的风险。应用层安全协议能够根据不同应用的安全需求定制安全功能,在设计上不需要对底层协议的依赖,灵活度高,应用广泛。

安全是和易用性成反比的,同时安全的实现也要牺牲一定的效率,但随着计算机技术的发展,实现安全带来的代价越来越小,安全协议的应用越来越多。在选择要使用哪一层的安全协议之前,要先分析各协议的优缺点,结合自身的需求进行选取。正如前文中所提到的,IPsec VPN通用性强,但动态身份认证功能较弱,适合接入数量相对稳定的场景,而其功能复杂,通常需要用专用的客户端来进行连接。所以为了一些灵活性,有的单位会选择使用SSL VPN,因为其不会影响原有网络拓扑,可以基于B/S架构,无需安装客户端,而且所有的控制都是基于应用层的,可以进行内容的细分,同时其在存在大量远程用户环境中也有更好的管理性。

马克思主义唯物辩证法认为,不同的事物有不同的特点,同一事物在不同发展阶段也有不同的特点。因此在选取使用哪一层的安全协议时要根据实际应用情况,因地制宜,综合设计,全面衡量,从而达到最好的效果。

 

参考文献

[1] 谢希仁. 计算机网络(第6版)[M]. 北京:电子工业出版社,2013.

[2] 诸葛建伟. 网络攻防技术与实践[M]. 北京:电子工业出版社,2011.

[3] 崔鸿. 网络安全概论[M]. 2015.

[4] William Stallings著,刘玉珍等译. 密码编码学与网络安全——原理与实践(第五版)[M]. 北京:电子工业出版社,2012.

 

(本文为中国科学院大学2017-2018学年第一学期《网络与系统安全》课程小作业,完成时间为2017年11月24日。)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据