TCP/IP各分层的安全协议

一.数据链路层安全协议
数据链路层的PPP协议定义了一种在链路层对多协议分组进行点到点传输的方法,但不提供对其所封装的数据进行完整性和机密性保护。针对此安全隐患,设计了MPPE(点到点加密)协议和DESE(DES Encryption)协议,用于在PPP链接的两端进行数据加密保护,从而为PPP通信提供机密性保护。其中,MPPE协议采用固定的RSARC4算法,支持密钥长度为128位、56位和40位的加密强度;DESE协议采用DES算法,密钥长度为56位、在PPP链接的两端进行DES-CBC数据加密保护。
对这些经过加密处理的数据,还可以采用链路层隧道封装技术,使其能够通过IP网络传输。数据链路层的隧道封装技术有PPTP、L2F、L2TP等。
1.PPTP(Point to Point Tunneling Protocol)协议用于将PPP分组通过IP网络封装传输。
2.L2F协议要求ISP的NAS(Network Access Server)和总部的本地网关HGW(Home Gateway)都安装有L2F服务,对远程用户和本地主机,拨号的虚拟连接是透明的。缺点:对于远程用户而言,其PPP分组经过L2F封装后还要经过NAS和HGW之间建立的L2F隧道传输回总部。与PPTP协议只能使用IP网络作为其隧道的传输媒体不同,L2F只要求传输媒体提供面向分组的点到点连接。
3.L2TP(Layer2 Tunneling Protocol)将PPP分组进行L2TP隧道封装并使之可以在不同的传输媒体如IP网络,帧中继/ATM上传输。
二.网络层安全协议
网络层存在的安全隐患主要是IP协议不能为数据提供完整性、机密性保护,容易遭到IP地址欺骗攻击,缺少基于IP地址的身份鉴别机制,还存在针对IP协议和TPC/IP其他协议的各种攻击,如DoS攻击(Denial_of_Service Attach)、重放攻击(Replay Attach)等。为了在IP层抵抗这些攻击,保证数据的完整性和机密性,设计了IPSec协议。
lPSec是一组协议套件,包括鉴别首部AH、封装安全载荷ESP及Internet密钥交换IKE3部分内容。其中,AH协议为包提供信息源鉴别和数据完整性服务,ESP协议可以实现通信内容的保密性并可选地提供鉴别服务,而IKE则解决密钥的安全交换。
三.传输层安全协议
传输层中的安全解决方案是采用安全套接层(Security Socket Layer,SSL)或Internet的传输层安全(Transport Layer Security,TLS)标准。
在SSL的体系结构中包括两个协议子层,其中底层是SSL记录协议层(SSL Record Protocol Layer),高层是SSL握手协议层(SSL Handshake Protocol Layer)。SSL记录协议层的作用是为高层提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输能够在SSL上运行。SSL记录协议层封装各种高层协议,具体实施压缩、解压缩,加密﹑解密、计算和校验MAC等与安全有关的操作。
SSL握手协议包括SSL握手协议(SSL Handshake Protocol)、SSL密码参数修改协议(SSL Change CipherSpec Protocol)、应用数据协议(Application Data Protocol)和SSL报警协议(SSL Alert Protocol)。握手协议层的这些协议用于SSL管理信息的交换,允许应用协议在传送数据之前相互验证、协商加密算法和生成密钥等。
四.应用层安全协议
直接面对最终用户的TCP/IP网络应用层上的网络应用和服务种类多样,实现差异很大,每一种应用都有各自特定的安全性问题。其中,WEB应用是Internet上最重要的应用。
WEB采用HTTP协议,最初设计目标是使用户能够访问静态的超文本文档。
针对WEB安全,在应用层可以采用S-HTTP(Secure-HTTP)方案。S-HTTP是构造在HTTP协议之上的高层协议,它采用多种方式对信息进行封装,封装的内容包括加密、签名和基于MAC的认证、并支持一个消息被反复封装加密。此外,S-HTTP还定义了包头信息来进行密钥传输、认证传输和相似的管理功能。S-HTTP可支持多种加密算法,但它并不依赖于特定的密钥鉴别系统。S-HTTP支持RSA和Kerberos密钥交换,并为程序员提供了灵活的编程环境。
此外,还有针对特定应用提出的安全协议,如电子邮件的扩展PEM、MIME的扩展S/MIME和保护Internet上信用卡交易的SET(security Electronic Transaction,SET)等。

上一篇:linux:firewall-cmd开放端口时出现bad port (most likely missing protocol)的解决方法


下一篇:第五篇:Django之视图层