您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网络安全理论与技术(第十三讲)
网络安全理论与技术网络安全理论与技术张卫东西安电子科技大学通信工程学院信息工程系E-mail:xd_zwd@yahoo.com.cn1IPSec隧道协议VPN——IP通信保护神IETF(因特网工程工作组)为IP网络层制订的安全标准。强制包含在IPv6版本,在IPv4版本可选择。2IPSec是由InternetEngineeringTaskForce(IETF)设计的作为基于IP通信环境下一种端到端的保证数据设计的作为基于IP通信环境下一种端到端的保证数据安全的机制。IPSec不是一个单独的协议,而是一组协议,整个IPSec结构由一系列的RFC文档定义,主要有RFCs2401~2412,1826和1827。IPSec包含两个安全协议和一个密钥管理协议。IPSec协议的定义文件包括12个RFC文件和几十个Internet草案个Internet草案。IPSec协议已经成为工业标准的网络安全协议。3IPSec保证了支持IPSec协议的所有产品之间的互操作性。IPSec协议以标准加密技术为的互操作性。IPSec协议以标准加密技术为基础,例如IPSec使用:(1)DES和其它分组加密算法来加密数据;(2)键值哈希算法(HMACMD5SHA)来认证数据包;(2)键值哈希算法(HMAC,MD5,SHA)来认证数据包;(3)验证公钥有效性的数字证书技术。4IPSec协议IPSec是一套开放的,基于标准的安全体系结构(htt//itf)它提供大量系结构(),它提供了大量的安全特性,如:●提供认证,加密,数据完整性和抗重放保护;●加密密钥的安全产生和自动更新;●使用强加密算法来保证安全性;●支持基于证书的认证;●支持基于证书的认证;●支持下一代加密算法和密钥交换协议;●为L2TP和PPTP远程接入隧道协议提供安全性5●为L2TP和PPTP远程接入隧道协议提供安全性。IPSec安全体系结构体现了很好的互操作能力。只要实现得当,它并不会影响那些不支持力。只要实现得当,它并不会影响那些不支持VPN的网络或主机。IPSec使用当今最好的加密算法我们通常IPSec使用当今最好的加密算法。我们通常称IPSec协议所使用的特定算法实现为一个变换(Transform)例如ESP协议所使用的DES算法(Transform)。例如,ESP协议所使用的DES算法称为ESPDES–CBC变换。这些变换以及协议由系列的RFC和互联网草案定义和发布由一系列的RFC和互联网草案定义和发布。(详见)6IPSec体系结构IPSec安全体系ESP协议AH协议加密算法验证算法解释域(DOI)IKE协议(密钥管理)7IPSec不是一个单独的协议,而是一套协议包包括个基本协议协议包,包括三个基本协议:9AH协议提供信息源验证和完整性保证;9AH协议提供信息源验证和完整性保证;9ESP协议提供信息源验证、机密性和完整性保证性保证;9密钥管理协议(ISAKMP)提供双方交流时的共享安全信息时的共享安全信息。8认证报头协议(AuthenticationHeader,AH)AH为IP数据包提供如下3种服务:无连接的数据完整性验证数据源身份认证和防重放攻击性验证、数据源身份认证和防重放攻击。该协议提供了数据源认证以及无连接的数据完整性检查功能不提供数据保密性功能AH使用个键值哈希查功能。不提供数据保密性功能。AH使用一个键值哈希(keyed-hash)函数而不是数字签名,因为数字签名太慢,将大大降低网络吞吐率。大大降低网络吞吐率。数据完整性验证通过哈希函数(如MD5)产生的校验来保证;数据源身份认证通过在计算验证码时加入一个共算享密钥来实现;AH报头中的序列号可以防止重放攻击。9封装安全有效载荷协议(EncapsulatingSecurityPayload,ESP)该协议提供了数据保密性、无连接完整性和数据源认证能力。如果使用ESP来验证数据完整性,那么ESP不包含IP报头中固定字段的认证。ESP除了为IP数据包提供AH已有的3种服务外,还提供另外两种服务:数据包加密、数据流加密。加密是ESP的基本功能,而数据源身份认证、数据完整性验证以及防重放攻击都是可选的。数据包加密是指对一个IP包进行加密,可以是对整个IP包,也可以只加密IP包的载荷部分,一般用于客户端计算机;数据流加密一般用于支持IPSec的路由器,源端路由器并不关心IP包的内容,对整个IP包进行加密后传输,目的端路由器将该包解密后将原始包继续转发。AH和ESP可以单独使用,也可以嵌套使用。通过这些组合方式,单可以在两台主机、两台安全网关(防火墙和路由器),或者主机与安全网关之间使用。10因特网密钥交换协议(InternetKeyExchangeProtocol,IKE协议)该协议协商AH和ESP协议所使用的加密算法。IKE协议负责密钥管定通信实体间进IKE协议负责密钥管理,定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法IKE将密钥协商的结果保留在安全联密钥的方法。IKE将密钥协商的结果保留在安全联盟(SA)中,供AH和ESP以后通信时使用。上图中解释域(DOI)为使用IKE进行协商上图中,解释域(DOI)为使用IKE进行协商SA的协议统一分配标识符。共享一个DOI的协议从一个共同的命名空间中选择安全协议和变换、共个共同的命名空间中选择安全协议和变换、共享密码以及交换协议的标识符等,DOI将IPSec的这些RFC文档联系到一起。11IPSec安全功能作为一个隧道协议实现了VPN通信;数据起源地验证(保证数据来源可靠)数据起源地验证;(保证数据来源可靠)无连接数据的完整性验证;数据内容的机密性;抗重播保护;有限的数据流机密性保证。12安全联盟和安全联盟数据库安全联盟(SecurityAssociation)两台IPSec计算机在交换数据之前,必须首先建立某种约定,这种约定,称为“安全联盟或安全关联,指双方需要就如何保护信息、交换信息等公用的安全设置达成一致,更重要何保护信息、交换信息等公用的安全设置达成致,更重要的是,必须有一种方法,使那两台计算机安全地交换一套密钥,以便在它们的连接中使用。13IPSec提供了多种选项来完成网络加密和认证。每个IPSec连接都能够提供加密完整性和认证当中每个IPSec连接都能够提供加密,完整性和认证当中的一种或者两种。一旦确定了所需的安全服务那么通信节点双一旦确定了所需的安全服务,那么通信节点双方必须明确规定需要使用的算法(例如,DES或IDEA用来加密;MD5或SHA用于完整性服务)。在确定了用来密;或用于完整性务)在确定了算法以后,双方必须共享会话密钥。正如我们后面将看到的,这需要管理大量的信我需息,而安全联盟正是IPSec用于跟踪某一个特定IPSec通信会话所涉及的细节问题的一种方法。14IPSec安全联盟15一个安全联盟描述了两个或者多个实体如何使用安全服务来实现安全通信实体如何使用安全服务来实现安全通信。由于其它协议也使用该术语,例如IKESA描述了两个IKE设备使用的安全参数,所以在后续的讨论中,将明确指定某个所在后续的讨论中,将明确指定某个SA是IPSecSA(如上图所示)还是IKESA。16安全联盟是单向的,这也就意味着每一对通信系统连接都至少需要两个安全联盟:一个是个是是从A到B,而另外一个是从B到A。比如:主机A需要有一个SA(out)用来处理外发的数据包;另需要个用数外还需要有一个不同的SA(in)用来处理进入的数据包。相对应的主机B的两个安全联盟分别是SB(in)和SB(out)。主机A的SA(out)和主机B的SB(in)将共享相同的加密参数(比如密钥)。类似地主机A的SA(in)和主机B的SB(out)也会共享相同的加类似地,主机A的SA(in)和主机B的SB(out)也会共享相同的加密参数。由于SA是单向的,所以针对外发和进入处理使用的SA,分别17由是单向的所以针对外发进处使用的分别需要维护一张单独的(数据)表。每个安全联盟可以由一个三元组惟一确定:SPI源/目的IP地址IPSec协议SPI,源/目的IP地址,IPSec协议¾安全参数索引(SecurityParameterIndex,SPI)(是一个随机选取的惟一字符串):安全协议识别码(区分AH还是ESP);标识同一个目的地的SA。¾源/目的IP地址。表示对方IP地址,对于外出数据包,指目的地址;对于进入IP包,指源地址。¾IPSec协议:采用AH或ESP。18当一个系统需要对发送的包使用IPSec实施保护时它查询数据库中的安全联盟根据其护时,它查询数据库中的安全联盟,根据其相关内容进行特定处理,然后将安全连接的SPI插入到IPSec报头SPI插入到IPSec报头。当对等接收方收到数据包时,就利用SPI和目的IP地址从网络数据库中查询相对应的安的IP地址,从网络数据库中查询相对应的安全联盟,之后根据安全联盟的内容对数据包作相关的安全处总之安全联盟是通信作相关的安全处理。总之,安全联盟是通信设备双方所协商的安全策略的一种描述。19SA管理的两大主要任务就是创建和删除。SA管理有以下两种方式:1)手工管理:SA的内容由手工指定、手工维护。2)IKE自动管理:通过一个Internet标准密钥管理协议来完成。为了进行SA的管理要求用户应用程序的个接同为了进行SA的管理,要求用户应用程序的一个接口同IPSec内核通信,以便实现对SA数据库的管理。SA的创建分两步进行——先协商SA参数,再用SA更新SAD(安全联盟数据库)。安全联盟数据库包含了每个SA的参数信息,如AH和ESP的算法和密钥、序列号、协议模式和有效期等。20的算法和密钥序列号协模式和有效期等人工密钥协商是必须支持的,在IPSec的早期开发及测试过程中这种方式曾得到广泛的期开发及测试过程中,这种方式曾得到广泛的应用。在人工密钥协商过程中,通信双方都需要离线同意SA的各项参数。要离线同意SA的各项参数。所谓“人工”协商,不外乎通过电话或电子邮件的方式SPI的分配参数的选择都是人子邮件的方式,SPI的分配、参数的选择都是人工进行的。但是非常明显,这个过程非常容易出错既麻烦又不安全同时也只能以人工方出错,既麻烦又不安全。同时也只能以人工方式删除,SA没有周期限制,一旦建立这些SA永远不会过期21远不会过期。在已经配置好的IPSec环境中,SA的建立可以通过因特网标准密钥管理协议(比如IKE)来可以通过因特网标准密钥管理协议(比如IKE)来完成。如果安全策略要求建立安全保密的连接如果安全策略要求建立安全、保密的连接,但却找不到相应的SA,IPSec的内核便会自动调用IKEIKE会与目标主机或者途中的主机/路由用IKE。IKE会与目标主机或者途中的主机/路由器协商具体的SA;SA创建好且加入SAD数据库后在两个主机间正常流动的数据包便会采用后,在两个主机间正常流动的数据包便会采用SA参数实现相应的安全服务。22可能有很多方面的理由需要删除SA。例如:●存活时间过期;●密钥已遭破解;●使用SA加密/解密或验证的字节数已超过策略设定的●使用SA加密/解密或验证的字节数已超过策略设定的某一个阈值;●另一端要求删除这个SA。●另一端要求删除这个SA。23SAD(SecurityAssociationDatabase,安全联盟数据库)是常意“库”是并不是通常意义上的“数据库”,而是将所有的SA以某种数据结构集中存储的一个列表。对于外出的流量如果需要使用IPSec处理对于外出的流量,如果需要使用IPSec处理,然而相应的SA不存在,则IPSec将启动IKE来协商出一个SA,并存储到SAD中。商出个,并存储到中对于进入的流量,如果需要进行IPSec处理,IPSec将从IP包中得到三元组,并利用这个三元在SAD中查个SA组在SAD中查找一个SA。24安全策略和安全策略数据库SP(Securi
本文标题:网络安全理论与技术(第十三讲)
链接地址:https://www.777doc.com/doc-1268347 .html