基于国密IPSec的数据备份传输加密保护研究
2022-11-11王森
王森
(国家信息中心 信息与网络安全部 北京市 100045)
近来进行数据破坏、篡改的网络攻击频发,例如勒索病毒进行恶意加密,破坏了数据的可用性。因此,数据备份是重要的安全手段,尤其在重要信息系统中,应建立异地备份防范火灾、水灾、地震等灾难性安全事件。
为防止数据异地备份过程中被黑客截获,需要采用专用线路或虚拟专线。但是租用专线费用较高,为此常采用VPN虚拟专网,建立IPSec隧道[1],实现不安全网络区域的通信保护,为重要数据传输提供安全保护[2]。本文结合网络管理、IKE和IPSec配置、出口路由配置、密码算法和数字证书认证等多方面技术,研究纵深体系下数据备份场景中IPSec相关技术,对灾备系统方案设计和开展数据安全管理工作具有较高参考价值,满足等级保护三级以上系统密码应用安全评估的相关要求[3][4]。
1 数据备份通信加密的需求分析
生产系统数据库和灾备中心数据库建立网络连接,按策略进行同步,将数据从生产系统传递到灾备中心[5]。
与一般的点对点、站点对站点模式不一样,数据库通常位于生产系统网络的内部,应考虑从内部到外打通隧道,并应满足三方面需求。
(1)网络拓扑调整影响。通常生产系统网络采用了纵深防御的体系,包括出口路由器、防火墙、核心交换机、接入交换机、访问控制防火墙等,这些网络设备重新规划和调整的难度非常大。建立灾备通道方案时,应充分考虑对现有拓扑改变少、对业务系统影响小、回撤方案简单易行等需求。
(2)数据传输过程中“非加密传输距离”。在大型网络中,通常设置了数据服务安全区,在安全区边界采用防火墙进行访问控制,在网络设备上设置VLAN进行通信隔离。传输备份数据时应保证原始明文数据在交换路由中,不会被其他节点截获,为此安全传输的端点应距离数据库越近越好。
(3)VPN密码设备的选用。为了不让传输加密给数据库服务器带来额外的运算负担,通常采用“外挂式”设备,部署VPN硬件实现通道、加密数据、校验完整性等操作。按照等级保护要求和密码应用要求等,密码算法、密码协议和密钥管理应符合相关国家标准或密码行业标准的要求,为此应采用经密码产品认证检测机构认证的商密设备。
将IPSec VPN设备部署在接入交换机后、数据库服务器前,采用透明工作模式的方案能够满足以上要求。
2 IPSec VPN工作原理
2.1 IPSec应用工作模式
IPSec VPN的两种工作场景:
(1)两个或多个子网通过隧道打通。
(2)点对点方式建立安全连接[6]。
2.1.1 多网打通场景
通过IPSec VPN通道,将多个远程隔离子网联成一个网络,并且子网之间的数据通信采用认证、加密等安全防护。
部署方式。IPSec设备部署在网络边界处,具有内、外网两个网口,分别于内、外网相联。IPSec设备之间进行相互认证,并对传递的数据进行加密保护。
地址分配。通常每个子网分配不同的网段,例如子网A的网段为192.168.1.0/24,子网B的网段为192.168.2.0/24。
建立隧道。网关内网口IP地址设为内网的网关地址,将IPSecA的内网口设192.168.1.254。子网A节点访问子网B时,原始数据报经IPSecA判断,如果目的地址属于子网192.168.2.0/24,则满足“进入隧道”条件,数据报进入IPSecA和IPSecB之间隧道,到达IPSecB后,由IPSecB内网口将原始数据发送到子网B中。
多网路由。当有多个子网时,IPSec节点需要建立路由表。路由表记录对端子网和对端IPSec节点地址,根据目的网络地址选择对端IPSec节点建立的隧道,通过隧道传递至对端子网。
2.1.2 点对点场景
“点对点”可以看作是两台主机之间建立安全通道。例如,互联网上的Alice想使用类似“飞鸽传书”的软件给Bob发送一些照片,同时不希望照片在网络上以明文方式传输,为此Alice和Bob都使用IPSec客户端,约定认证方式建立了连接,那么Alice和Bob之间的通信将被保护。
以上场景都是基于IPSec的两种安全协议ESP和AH提供支持,ESP实现了加密、防篡改功能,AH协议仅实现了防篡改功能。采用隧道模式在原始数据报前会加上一个新IP报头,源地址和目的地址分别为起点和终点的IPSec设备的IP地址。传输模式在原有数据报原始IP头后添加了AH或ESP报头。
2.2 VPN穿越NAT问题
透传模式[8]的特点是设备采用串联方式接入到网络中。以防火墙透传模式为例,该方案优点是不需要网络路由的配置,每一个数据报都必然经过防火墙。相较于边界防火墙,采用透传方式的防火墙配置更简单,仅需要包过滤功能,对网络拓扑改动较小。透传模式IPSec部署方式相似,都是采用串行方式,当通过IPSec节点的数据流不符合隧道保护条件时,不做任何操作,像普通二层网络设备进行数据转发,因此对网络改动也较小。
如图1所示,出口路由器实现了网络接入,路由器的外网口是公网,内网口是私网。透明模式IPSec VPN,保护生产数据库与备份数据库之间通信[7]。
图1:跨NAT穿透的透明模式示意图
NAT将内部地址映射成公网地址,包括静态、动态和端口复用等类型。
(1)静态NAT实现了私网地址与公网地址固定的一对一映射。
(2)动态NAT采用非固定的一对一映射,适用于发起NAT转换的主机不确定,例如拨号。
(3)为解决公网地址数量有限难题,产生了端口复用的NAT,采用内网地址+端口映射成外网地址+端口的方式。
端口复用技术又包括源NAT、目的NAT。源NAT用于内网地址访问外网,数据包经过路由器时,将内网地址+传输端口用外网地址(固定)+外网端口映射替换。目的NAT用于将内网地址作为服务地址发布,将内网地址(固定)和端口(固定)映射成外网地址(固定)和端口(固定)。图2举例说明,R1配置了源NAT,R2配置了目的NAT。发起方内网地址通过路由器源地址转换成公网地址,到达对端目的路由器后目的地址转成内网地址。通过转化操作,实现两个私网地址的数据通信。
图2:NAT模式示意图
当IPSec部署在路由器内部,如图3所示,并且进行了端口复用NAT转化时,会遇到相关问题。
图3:跨NAT的IPSec
当采用IPSec进行隧道保护时,数据报TCP、UDP协议已经被IPSec进行了封装,此时已没有传输层协议端口,路由器无法根据NAT进行端口映射。
如果选用AH协议,NAT地址转换后,数据报中IP字段会被修改,此时数据报中的认证校验不通过。
2.3 IPSec穿越NAT的解决方案NAT-T
AH协议需要认证IP头信息,因此只能选用ESP协议,此时对IP头中的地址信息不进行认证。NAT-T在ESP数据报IP头和ESP头之间插入一个UDP头,实现NAT穿越,如图4所示。
图4:NAT-T数据格式
修改IP头协议信息,将ESP修改为UDP,添加UDP头,包含源端口、目的端口等信息。源端口在源NAT转换时会替换成外端口,当对端IPSec节点收到NAT-T的数据报,将去掉UDP头,重新组装成ESP数据报。RFC3948中规定NAT-T中UDP 端口使用IKE协商时的端口号4500。
2.4 安全联盟SA及相关国产密码应用
2.4.1 安全联盟SA
安全联盟SA是IPSec VPN的基础,包括了两方(多方),联盟之间享受联盟外不具备的优厚待遇。IPSec中发起方和响应方,通过认证协议建立联盟,并采用加密、认证等安全技术,实现联盟对象间的安全通信。通常说的AH协议和ESP协议属于安全联盟执行协议。
SA的建立有两种方式:手工方式和IKE协议方式。手工方式在IPSec设备上配置所需全部的参数,包括封装模式、安全协议、认证方法、加密和哈希算法,以及认证密钥、加密密钥和SPI(Security Parameter)。建立SA之后,由一个三元组(SPI、目的IP地址、安全协议)来作为唯一标识。一个SA信息只描述从发起者与响应者建立的连接,IPSec在2个节点之间搭建数据通道时,需要双向建立,即两个SA。
2.4.2 IKE协议
IKE协议采用动态协商产生建立SA的必要参数,包括相关的随机数,IPSec通信时需要的认证密钥、加密密钥都是在IKE协商过程中计算生成的。因此,又可以将IKE协商过程看成是“信令通道”建立,之后数据信道正式建立即IPSec隧道建立,并通过隧道传递信息。
IKE协商过程分成2个阶段,第一阶段主模式和第二阶段快速模式。
第一阶段主模式。进行身份验证、交换随机数。按照GB/T 36968-2018《信息安全技术 IPSec VPN技术规范》要求,双方应采用国产密码SM2的字证书进行身份验证[7]。发起方i向响应方交换的数据内容如下:
XCHi=Asymmetric_Encrypt(SKi,pub_r) | Symmetric_Encrypt(Ni,SKi) | Symmetric_Encrypt(IDi,SKi) | CERT_sig_i | CERT_enc_i
发送方i发送了Ni、IDi和证书信息。其中Ni代表i产生随机数;SKi为对称加密密钥;IDi为数字证书中的DN字段的值,类型为ID_DER_ASN1_DN;CERT_sig_i和CERT_enc_i为发送方的签名证书和加密证书[10]。
根据双方发送的信息,计算工作密钥。下面公式中的PRF(key,msg)代表使用密钥key对消息msg进行数据摘要运算,CYK-I为ISAKMP头中的cookie。
SKEYID = PRF(HASH(Ni|Nr),CYK-I|CYK-R)
SKEYID_d=PRF(SKEYID ,CYK-I | CYK-R | 0)
SKEYID_a=PRF(SKEYID ,SKEYID_d|CYK-I | CYK-R | 1)
SKEYID_e=PRF(SKEYID ,SKEYID_a|CYK-I | CYK-R | 2)
SKEYID_e是保护机密性使用的工作密钥,SKEYID_a是验证消息完整性的工作密钥,SKEYID_d用于后续会话密钥的产生。
经过6个数据报文的交换,第一阶段所需的信息已交换完毕,在第二阶段,交换建立IPSec所需要的配置信息,包括模式(隧道、传输)、协议(AH、ESP)、SPI等信息,并生成相应工作密钥。该阶段信息采用SKEYID_d进行加密。该阶段安全提议除安全协议、密码算法、工作模式,还包括SPI信息,生产IPSec会话密钥生成公式如下,其中Ni、Nr为1、2两阶段传递的随机数。
KEYMAT=PRF(SKEYID_d,protocol | SPI | Ni | Nr)
在IKE协议鉴别过程中,发起方可将响应方NAT出口IP作为目的IP地址,只根据IDr信息进行判断,不涉及目的IP,因此建立IKE过程不受NAT影响。
3 数据备份场景及通信保护方案
3.1 网络地址分配策略
本方案的网络地址分配策略需要考虑安全域划分、数据服务和应用服务分离、IPSec隧道模式及跨NAT转化相关网络地址配置。数据备份场景如图5所示。
图5:数据备份网络规划
安全域划分。在网络中应进行安全域划分,并采用防火墙、交换机等进行访问控制。因此划分成数据安全域、应用安全域、安全管理域等安全域,不同的安全域分配不同的子网地址。
IPSec隧道模式的网络地址配置。IPSec两个节点分别位于应用中心和数据备份中心,根据隧道模式VPN的设置要求,应用中心和数据备份中心的网段应不同网段。即不能采用“镜像”方式,否则无法实现多点打通隧道模式,详细分析见3.1部分。
跨NAT转化网络地址配置。IPSec位于串行链路上,对经过的流量进行控制,此时可采用手工方式建立SA,即配置具体的安全参数,包括对等体地址、封装模式、安全协议、认证算法和加密算法,出入方向的认证密钥和加密密钥,出入方向的SPI等。采用手工方式不需要协商生成参数,实现了固定的点对点加密链路。但手工方式建立SA的安全性较低,存在密钥固定、不支持在线数字证书认证、长期有效无法自动失效等问题。因此需要采用IKE模式,此时两个节点必须经源NAT和目的NAT后才能够通信。并且SA具有出/入双向性,两个端点都必须能够作为目的地址,即两个端点都需要NAT映射到外网。边界路由器需要将IPSec UDP 4500端口映射到出口地址UDP 4500端口。
3.2 密码算法和数字证书认证配置
根据我国商用密码相关技术标准,IPSec节点的数字证书认证功能应支持符合GB/T 20518-2018证书格式,应支持LDAP、OCSP等在线认证方式,支持自动下载CRL,能够实现在线或离线验证证书有效性。
4 结束语
透明模式的VPN难点在于IPSec协议实现了网络层数据加密保护,保护信息被加密封装在IP报头后载荷,载荷的解封装依赖安全协议及相关密钥,但经NAT转换后,IP地址被替换、传输层协议被封装,使普通IPSec无法跨越NAT。本文介绍了VPN工作场景、IKE、NAT穿越等相关技术,进行整合统一形成了解决方案,满足数据备份通信加密保护和穿透NAT两方面要求,对开展数据备份实践工作具有参考价值。