基于TCP/IP协议簇的安全架构
文章目录
- SNMP(简单网络管理协议)
- PGP(优良保密协议)
- MIME(多用途互联网邮件扩展类型)
- S/MIME(安全的多用途网际邮件扩充协议)
- PEM(隐私增强邮件)
- SSH(安全外壳协议)
- X.509(公钥证书的格式标准)
- S-HTTP(安全超文本传输协议)
- HTTPS(超文本传输安全协议)
- S-HTTP和HTTPS的区别
- DNSSEC(域名系统安全扩展)
- SSL(安全套接字协议)
- TLS(安全传输层协议)
- TCP(传输控制协议)
- UDP(用户数据包协议)
- IPsec(互联网安全协议)
- ICMP(Internet控制报文协议)
- PPP(点对点协议)
- PPTP(点对点隧道协议)
- L2TP(第二层隧道协议)
- L2F(第二层转发协议)
- VPN基本原理
注意上图虚线框内的隧道协议
隧道协议存在多种可能的实现方式,按照工作的层次,可分为两类:一类是二层隧道协议,用于传输二层网络(数据链路层)协议,它主要应用于构建拨号VPN(Access VPN);另一类是三层隧道协议,用于传输三层网络(网路层)协议,它主要应用于构建内部网VPN(Intranet VPN)和外联网(VPN Extranet VPN)。如IPSec属于第三层隧道协议。
SNMP(简单网络管理协议)
简单网络管理协议(Simple Network Management Protocol)是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。25端口。
SNMP
PGP(优良保密协议)
优良保密协议(Pretty Good Privacy)是一套用于消息加密、验证的应用程序。PGP加密由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成。
MIME(多用途互联网邮件扩展类型)
多用途互联网邮件扩展类型(Multipurpose Internet Mail Extensions)。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。它是一个互联网标准,扩展了电子邮件标准,使其能够支持:非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Header information)。
S/MIME(安全的多用途网际邮件扩充协议)
安全的多用途网际邮件扩充协议(Secure / Multipurpose Internet Mail Extensions)是从PEM (Privacy Enhanced Mail)和MIME(Internet邮件的附件标准)发展而来的。S/MIME是利用单向散列算法(如SHA-1、MD5等)和公钥机制的加密体系。 S/MIME的证书格式采用X.509标准格式。S/MIME的认证机制依赖于层次结构的证书认证机构,所有下一级的组织和个人的证书均由上一级的组织负 责认证,而最上一级的组织(根证书)之间相互认证,整个信任关系是树状结构的。另外,S/MIME将信件内容加密签名后作为特殊的附件传送
PEM(隐私增强邮件)
隐私增强邮件(Privacy Enhanced Mail),PEM的验证系统采用公开密钥鉴别机制。发送者利用其专用密钥对消息加上数字签名。这个数字签名还提供不可否认的特征。发送者可以使用接收者的公开密钥对整个消息进行加密以使这个消息具有信任度。然后,只有指定的接收者才能阅读这个消息。PEM的未来版本也将支持多功能Internet函件扩展标准(MIME)。OpenSSL 使用 PEM 文件格式存储证书和密钥。PEM 实质上是 Base64 编码的二进制内容,再加上开始和结束行,如证书文件的
-----BEGIN CERTIFICATE-----
和
-----END CERTIFICATE-----
。在这些标记外面可以有额外的信息,如编码内容的文字表示。文件是 ASCII 的,可以用任何文本编辑程序打开它们。
SSH(安全外壳协议)
安全外壳协议(Secure Shell),由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。22端口。
SSH
X.509(公钥证书的格式标准)
X.509是密码学里公钥证书的格式标准。 X.509 证书己应用在包括TLS/SSL在内的众多 Internet协议里。同时它也用在很多非在线应用场景里,比如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。对于一份经由可信的证书签发机构签名或者可以通过其它方式验证的证书,证书的拥有者就可以用证书及相应的私钥来创建安全的通信,对文档进行数字签名。另外除了证书本身功能,X.509还附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。
X.509
S-HTTP(安全超文本传输协议)
安全超文本传输协议(Secure hypertext transfer protocol)是应用安全套接层协议(SSL)或安全传输层协议(TLS)作为HTTP应用层子层。
HTTPS(超文本传输安全协议)
超文本传输安全协议(Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
HTTPS
S-HTTP和HTTPS的区别
S-HTTP和HTTPS都是在90年代中期所推出,由于HTTPS是由网景(Netscape)所开发,相对于S-HTTP,其更受一些主流厂家的推崇。S-HTTP和HTTPS的主要区别是在于S-HTTP 是工作于应用层的协议,而HTTPS是在传输层使用SSL的HTTP。
S-HTTP仅仅提供了数据的加密机制,比如服务页面的数据,以及用户提交的数据(比如post),其余的协议部分是和原来HTTP是一样的。因此,S-HTTP是可以和传统的HTTP(未加密)同时使用,并且采用同一个端口号的。
在HTTPS中,由于整个通信过程都是基于SSL的,即加密时在任何协议数据被传输之前就开始建立的。故HTTPS需要一个单独的端口号(比如HTTP是80,而HTTPS是443)。
DNSSEC(域名系统安全扩展)
域名系统安全扩展(Domain Name System Security Extensions)是Internet工程任务组(IETF)的对确保由域名系统 (DNS)中提供的关于互联网协议 (IP)网络使用特定类型的信息规格包。它是对DNS提供给DNS客户端(解析器)的DNS数据来源进行认证,并验证不存在性和校验数据完整性验证,但不提供或机密性和可用性。DNS用53端口。
DNSSEC
SSL(安全套接字协议)
安全套接字协议(Secure Sockets Layer),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。SSL协议比 IPSEC 协议的优势在于:实现简单、易于配置。SSL是在网络应用层和传输层之间提供加密方案的协议。 默认端口443。
SSL的体系结构中包含两个协议子层,其中底层是SSL记录协议层(SSL Record Protocol Layer);高层是SSL握手协议层(SSL HandShake Protocol Layer)。
SSL记录协议层
为 SSL 连接提供两种服务:机密性和报文完整性,所有的传输数据都被封装在记录中,记录由记录头和长度不为0的记录数据组成。
SSL握手协议层
被封装在记录协议中,其报文头包括类型、长度、内容三个字段。
SSL协议在运行过程中可分为六个阶段:
① 建立连接阶段:客户通过网络向服务商打招呼,服务商回应; ② 交换密码阶段:客户与服务商之间交换双方认可的密码; ③ 会谈密码阶段:客户与服务商之间产生彼此交谈的会谈密码; ④ 检验阶段:检验服务商取得的密码; ⑤ 客户认证阶段:验证客户的可信度; ⑥ 结束阶段:客户与服务商之间相互交换结束信息。
SSL
TLS(安全传输层协议)
安全传输层协议(Transport Layer Security)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
TLS
TCP(传输控制协议)
传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:
(1)基于流的方式;
(2)面向连接;
(3)可靠通信方式;
(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。
TCP
UDP(用户数据包协议)
用户数据包协议(User Datagram Protocol) 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。UDP传输的段(segment)有8个字节的报头和有效载荷字段构成。UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据包长度、校验值。UDP在IP报文的协议号是17。常用的UDP端口号有:53(DNS)、69(TFTP)、161(SNMP),使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP。
UDP
IPsec(互联网安全协议)
互联网安全协议(Internet Protocol Security),是一个协议簇,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族。 IPsec主要由以下协议组成:
一、认证头(AH,Authentication Header) ,为IP数据报提供无连接数据完整性、消息认证以及防重放攻击保护。AH不支持数据加密。AH常用摘要算法(单向Hash函数) MD5和SHA1实现摘要和认证,确保数据完整;
二、封装安全载荷(ESP,Encapsulated Security Payload) ,提供机密性、数据源认证、无连接完整性、防重放和有限的传输流(traffic-flow)机密性;
三、安全关联(SA,Security Association),也叫安全联盟,提供算法和数据包,提供AH、ESP操作所需的参数。在两台IPsec路由器交换数据之前就要建立一种约定,这种约定就称为SA,安全关联是单向的,在两个使用IPsec的实体(主机或路由器)间建立的逻辑连接,定义了实体间如何使用安全服务(如加密)进行通信。SA包含了安全参数索引(Security Parameter Index, SPl) 、IP目的地址、安全协议(AH或者ESP)三个部分。安全关联有两种类型:传输模式和隧道模式。传输模式安全关联是两台主机间的安全关联。隧道模式安全关联是运用于IP隧道的安全关联。
四、网络密钥交换协议(IKE,Internet key exchange),提供对称密码的钥匙的生存和交换。它属于一种混合型协议,由Internet安全关联和密钥管理协议(Internet Security Association and Key Management Protocol,ISAKMP)与两种密钥交换协议(OAKLEY与SKEME)组成,即IKE由ISAKMP框架、OAKLEY密钥交换模式以及SKEME的共享和密钥更新技术组成。IKE定义了自己的密钥交换方式(手工密钥交换和自动IKE)。注意: ISAKMP只对认证和密钥交换提出了结构框架,但没有具体定义,因此支持多种不同的密钥交换。IKE使用了两个阶段的ISAKMP: 1、协商创建一个通信信道(IKE SA)并对该信道进行验证,为双方进一步的IKE通信提供机密性、消息完整性及消息源验证服务; 2、使用已建立的IKE SA建立IPsec SA 。
图中(a)、(b)、(c )、(d)为不同类型IPSec数据包的示意图,其中(c )和(d)工作在隧道模式;(b)和(d)支持报文加密。
解析:IPSec的两种工作模式分别是传输模式和隧道模式。传输模式下AH、 ESP处理后IP头部不变,而隧道模式下AH、ESP处理后需要新封装一个新的IP头。AH只作摘要,因此只能验证数据完整性和合法性;而ESP既做摘要,也做加密,因此除了验证数据完整性和合法性之外,还能进行数据加密。
(d)详解为:
IPsec
ICMP(Internet控制报文协议)
Internet控制报文协议(Internet Control Message Protocol)。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP报文是封装在IP数据报内传输。由于IP数据报首部校验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错。
“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。(操作系统已经取消了发送ICMP数据包的大小的限制,解决了这个漏洞)此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。对于“Ping of Death”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。设置ICMP数据包处理规则的方法也有两种,一种是在操作系统上设置包过滤,另一种是在主机上安装防火墙。
PPP(点对点协议)
点对点协议(Point to Point Protocol)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。PPP具有以下功能:
(1)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
(2)PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议;
(4)无重传的机制,网络开销小,速度快。
(5)PPP具有身份验证功能。
(6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。
PPP
PPTP(点对点隧道协议)
点对点隧道协议(Point-to-Point Tunneling Protocol)是一种协议(一套通信规则),它允许企业通过私人“隧道”在公共网络上扩展自己的企业网络。是实现虚拟专用网(VPN)的方式之一。PPTP使用传输控制协议(TCP)创建控制通道来发送控制命令,以及利用通用路由封装(GRE)通道来封装点对点协议(PPP)数据包以发送数据。这个协议最早由微软等厂商主导开发,但因为它的加密方式容易被破解,微软已经不再建议使用这个协议。
PPTP
L2TP(第二层隧道协议)
第二层隧道协议(Layer 2 Tunneling Protocol)是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。L2TP的封装格式为PPP帧封装L2TP报头,再封装UDP报头,再封装IP头。他们都传输PPP帧,但PPTP只适于IP网, L2TP既适于IP网也适于非IP网。
L2TP
L2F(第二层转发协议)
第二层转发协议(Layer 2 Forwarding Protocol),创建在互联网上的虚拟专用网络连接的隧道协议。L2F协议本身并不提供加密或保密;它依赖于协议被传输以提供保密。L2F是专为隧道点对点协议(PPP)通信。
VPN基本原理
VPN的组成部分:由客户机、传输介质(采用“隧道”技术)和服务器组成。企业内部网中必须配置一台VPN服务器,一方连接企业内部专用网络,另一方面连接Internet。