需求:IPSec在×××对等体设备实现数据的机密性,数据的完整性,数据验证等。经历了IKE阶段1和IKE阶段2的协商建立过程

实现的效果:可以对公网上传输的数据进行加密,即使***通过某种窃听工具截获数据也无法了解数据信息的含义,也可以实现数据传输双方的身份验证,避免***伪装成网络中的合法用户***网络资源。

理论知识:

    ×××的定义

        ×××虚拟专用网就是在两个网络实体之间建立的一种受保护的连接,两个实体可以通过点到点的链路直接相连。

            受保护:

                通过使用加密技术防止数据被窃听

                通过数据完整性验证验证防止数据被破坏,篡改

                通过认证机制实现通信双方身份验证,防止通信数据被截获和回放

            ×××定义了:

                何种流量需要被保户

                数据被保护的机制

                数据的封装过程

        ×××的模式与类型

            传输模式:整个×××的传输过程中,ip包头并没有被封装进去,意味这从源端到目的端数据始终使用原有的ip地址进行通信。传输的实际数据载荷被封装在×××报文中。大多数×××传输而言,×××的报文封装过程就是数据的加密过程。***者截获数据后将无法破解数据内容,却可以清晰地知道通信双方的地址信息。传输模式封装结构相对简单,传输效率较高,多用于通信双方在同一个局域网内的情况。

            隧道模式:×××设备将整个三层数据报文封装在×××数据内,再为封装后的数据报文添加新的ip包头。由于新ip包头封装的是×××设备的IP地址信息,***者截获数据后,无法了解实际载荷数据的内容,也不知道实际通信双方的地址。

        ×××的类型

            站点到站点:通过隧道模式在×××网关之间保护两个或更多的站点之间的数据流量,站点间的流量通常是值局域网之间(L2L)的通信流量。L2L ×××多用于总公司与分公司,分公司之间在公网上传输重要业务数据。

            两个局域网的终端用户来说,在×××网关中间的网络是透明的,比如就像两个路由器连接两个局域网,路由器之间连接。总公司的终端设备通过×××连接访问分公司的网络资源,数据包封装的ip地址都是公司内网地址,而×××网关对数据包进行的再次封装,客户端全然不知。

            远程访问×××:通常用于单用户设备与×××网关之间的通信连接,单用户设备一般为一台PC或小型办公网络。想要实现隧道模式的通信,需要给远程客户端分配两个1ip地址:一个是他指定MIC地址,另一个内网地址。远程客户端在×××建立的过程中同时充当×××网关(使用NIC地址)和终端用户(内网地址)

    ×××技术

        加密算法:加密就是将一种数据转换成另一种形式的过程。这用这些算法可以实现数据加密,数据完整性验证,身份验证等×××的基本功能。

            对称加密算法:使用同一密钥对信息提供安全保护。发送方和接收方共享密钥。发送方的×××网关通过加密函数将明文数据加密为密文数据,接收方的×××网关通过解密函数将数据还原为明文数据。常见的对称加密算法有DES(IBM研发产品,密钥长度为64位,8位用于奇偶校验,所以实际长度未56位),3DES(理论上是DES算法的增强版本,同时使用三个不同的56位密钥,产生了168位有效密钥长度),AES(该算法比3DES更安全,支持128,192,256位密钥长度,有效的密钥长度可达上千位,此算法采用更高效的编写方法,对CPU的占有率较少)

            非对称加密算法:使用公钥和私钥两个不同的密钥进行加密和解密。一个密钥加密的数据仅能被另一个密钥解密,且不能从一个密钥推导出另一个密钥。通信双方交换公钥,发送方的×××网关通过公钥将明文数据加密成为密文数据,接收方×××网关通过自己的私钥解密数据。这个过程私钥始终没有在网络中传输。优点:安全性。缺点:计算效率要比对称加密算法低得多(大约要慢1500倍)。常见的非对称加密算法有RSA,DH(一般被用来实现IPSec中internet密钥交换IKE协议。通信双方交换公钥后,会用自己的密钥和对方的公钥通过DH算法计算出一个共享密钥,然后双方会使用这个共享密钥加密传输数据,原理上看DH算法将对称和非对称加密算法综合在一起。DH算法支持可变的密钥长度,公钥和私钥的长度不同,通过DH算法计算出的共享密钥的有效长度也就不同,通过DH算法的密钥组定义的)这两种常用于验证功能。

                密钥交换技术就是通过非对称加密算法加密对称加密算法的密钥,再用对称加密算法加密实际要传输的数据。

        数据报文验证(数据来源验证和报文完整性验证)

            HMAC(散列消息验证码)功能实现验证功能

                用来处理数据即数据包相关的验证,使用一个共享的对称密钥来固定的输出结果---数字签名,属于单向散列验证的一个子集,散列算法不可逆。加密后的数据无法还原。传统的散列算法保障数据安全性有缺陷,即网上的窃听者可以截获传输的数据,然后篡改数据内容,并通过散列算法得到固定的输出,接收方就不可能指定有人篡改过数据而HMAC功能让共享密钥成为散列函数其中的一个变量,通过计算得到固定的输出--数字签名,这样即使窃听者截获数据,没有共享密钥,无法在篡改数据后得到正确的数字签名,所以HAMC可以防篡改。共享密钥只是真正的通信双方具有,HAMC功能也能实现身份验证。HAMC算法原理:双方共享执行HAsh算法的密钥,发送方路由器的用户数据与共享密钥通过hash算法得到数字签名发送方路由器将数字签名和用户数据一同传送给接收方路由器,接收方路由器执行相同的算法过程得到数字签名,然后对比数字签名是否一致。如果过程中被篡改或损坏,接收方通过hash算法计算出来的数字签名就就会和发送方的数字签名不一样,就得知在传输过程中篡改。同理如果***想要冒充其中一个通信方,虽然可以伪造通信方的身份信息,但无法伪造共享密钥计算后的数字签名。

            MD5和SHA

                MD5(信息摘要算法)创建了一个128位的签名,之前的RIPv2.OSPF等很多路由选择协议都使用该算法做验证

                SHA(安全散列算法)可以产生160位的签名(20字节长度)

    IPSec ×××

        IPSec连接

            流量触发IPSec:是由对等体之间发送的流量触发的。一旦有×××流量经过×××网关,连接便建立

            建立管理连接:IPSec使用ISAKMP/IKE阶段一来构建一个安全的管理连接。只是一个准备工作,并不进行用来传输实际数据,此阶段应明确设备如果实现验证,通过何种加密即认证算法,使用哪种DH组等。

            建立数据连接:IPSec基于安全的管理连接协商建立安全的数据连接,而ISAKMP/IKE阶段2就是用来完成这个。数据连接用于传输真正的用户数据。此步骤前,需明确使用何种安全协议,针对具体的安全协议应使用加密或验证算法,及数据的传输模式等

    ISAKMP/IKE阶段1

        IKE是一个混合型协议,定义了密钥的产生,共享,管理。IKE使用UDP端口500,ISAKMP/IKE阶段1交换过程有两个模式:主动模式和积极模式,积极模式比较快,但是不安全。

        需要完成三次任务

            协商采用何种建立管理

            通过DH算法共享密钥信息

            对等体彼此进行身份验证

            在主模式中,这三个任务是通过六个数据报文完成:前两个数据包用于协商对等体间的管理连接使用何种安全策略,中间两个数据包通过DH算法产生并加密算法和HMAC功能所需的密钥,最后两个数据包使用预共享密钥等方式执行对等体间的身份验证。前四个报文为明文传输,从第五个报文开始为密文传输,前四个数据包通过各种算法最终产生的密钥用于第五,第六个数据包及后续数据加密。

            ISAMKP/IKE建立过程

                LSAKMP/IKE传输集就是一组用来保护管理连接的安全措施。主要包括加密算法:DES,3DES,AES。HMAC功能:MD5,SHA-1。设备验证类型:预共享密钥(使用RSA签名方法)。Differ-Hellman密钥组:Cisco支持1.2.5.7(cisco路由器不支持密钥组7)。管理连接的生存周期。

                    设备可能有不止一个传输集,如果设备发起连接,会将传输集列表发送到远端对等体设备进行依次比对,直到找到匹配结果。如果没有发现匹配的传输集,管理连接无法建立IPSec连接失败。如果使用sisco产品实现×××连接,在KSAKMP/IKE传输集中除了生存周期,其他项必须匹配才能建立连接。会使用双方对等体数值较小的一个

                第一步只是协商管理连接的安全策略,而共享密钥的产生与交换要通过Differ-Hellman来实现。DH算法属于非对称加密算法,将产生的公钥/私钥对的组合,且彼此共享公钥×××对等体用对方的公钥和自己的私钥通过一种功能运算产生一个安全的共享密钥。即使有人截获也无法推导出共享密钥。

                设备身份验证最常用的方法就是预共享密钥,在对等体之间通过带外的方式共享密钥,并存储在设备的本地。设备验证的过程可以通过加密算法或HMAC功能两种方法实现,而加密算法很少用于身份验证,多数情况都会通过HMAC功能实现。

    KSAMKP/IKE阶段2

        阶段2主要是两个IPSec对等体间建立数据连接:需要完成以下任务:

            定义对等体间需要保护何种流量

            定义用来保护数据的安全协议

            定义传输模式

            定义数据连接的生存周期集密钥刷新方式

            IPSec对等体一般是通过ACL来匹配那些需要加密传输的×××流量。

            LSAMKP/IKE阶段2的建立过程

                IPSec需在两个对等体之间建立一条逻辑连接,就要使用一个被称为安全关联的心灵令协议,因为IPSec需要无连接的ip协议在安全运行之前要成为面向连接的协议。SA的连接是源点和终点之间的单向连接,如果需要双向俩节,就需要两个SA连接,每个方向一个。SA连接有三个要素定义:安全参数索引(SPL):用于唯一标识每条SA连接。安全协议的类型,即AH和ESP。目的IP地址。ISAKMP/IKE的数据连接实际是通过两个单向连接建立的,而两个连接采用的加密或认证方式都是相同的,就使ISAKMP/IKE阶段2的特性不被观察到。

                ISAKMP/IKE阶段2的两个传输集。定义了数据连接是如何被保护的,与管理连接的传输集类似,对等体设备可以保存一个或多个传输集,但其具体内容却完全不同

                        安全协议:AH协议,ESP协议

                        连接模式:隧道模式,传输模式

                        加密方式:对于ESP而言,有DES,3DES,AES-128,AES-192,AES-256或不使用加密算法

                        验证方式:MD5或SHA-1

                IPSec的数据连接看通过安全协议实现对数据连接的保护:AH协议和ESP协议。可以通过其中的一个协议来实现数据的加密和验证,如使用ESP协议,可以使用两个协议一起来实现。AH使用IP协议号51,ESP使用IP协议号50。AH协议提供了数据完整性服务,数据验证,保护数据回放***。AH协议保护整个数据报文,但易变的字段除外,如IP包头中的TTL和TOS字段。