基于SRv6协议的对称密钥生成与身份认证机制研究

2023-05-24 10:13王伟闯
无线互联科技 2023年5期
关键词:身份认证

王伟闯

摘要:对称加解密是保障传输数据安全的重要机制。对称加密技术具有高速、计算复杂度低的优点,但是安全性低于非对称加密机制。因此,在现代的数据安全传输过程中,一般使用非对称加解密与对称加解密相结合的来实现效率与安全性的均衡。但是,同时使用两种加密机制会带来密钥生成、分发与管理方面的问题。对此,文章提出一种基于SRv6协议实现的对称密钥生成和分发机制,该机制利用SRv6的路由机制来实现消息路由节点共同协商生成密钥,由此可以实现一次性对称加密密钥协商生成、分发与身份认证功能。相对于现有的机制,文章所提方案在安全性、便捷性方面具有突出优点。

关键词:SRv6;对称密钥;数据加解密;身份认证

中图分类号:TP399文献标志码:A

0 引言

数据的安全传输一直是信息安全的基本保障。数据安全传输的解决方案不外乎是使用加解密技术来实现。现有的数据加解密技术总体上可以分成两类:对称加密技术与非对称加密技术[1-2]。非对称加密技术计算复杂度高,效率低但是安全性高。相对而言,对称加密技术的计算复杂低,效率高但是安全性比较低。所以目前数据安全传输在传输过程中,主要使用对称加密技术。但是采用一次一密的方式,即在每次数据传输前,使用非对称加密技术实现对称加密密钥的协商生成,再使用新生成的对称密钥实现本次的数据传输加解密。

1 数据安全传输方式存在的问题

一次一密的数据安全传输方式存在以下问题。

(1)服务器端计算压力比较大:服务器端对外开放服务,具有高并发的特点。因此在协商生成对称加密密钥时,服务器使用非对称加密技术与并发的客戶端协商,对于服务器造成一定的计算压力,也限制了服务器的并发服务能力。

(2)服务器端存储压力比较大:在高并发的情况下,服务器要存储不同客户端的临时加密密钥,同时监控这些密钥的时效,对于服务器的内存与计算资源造成压力。

(3)协商过程复杂:如前所述,数据安全传输需要经过两轮加密协商,协商过程比较复杂。上述的过程还不涉及身份认证,如果再增加数据传输双方的身份认证,其过程就会更加的复杂。

由此,本文提出一种基于SRv6协议实现的对称密钥生成协商机制,同时该机制也包含有身份认证的功能。该机制主要使用了SRv6路由协议来实现,客户端向服务端发出请求,在请求转发的路径中,各路由节点对数据包中五元组进行随机映射生成一个随机数,并压到SRv6头部同时记录下转发的路径。经过多步路由之后,到达服务器。服务器将收到的多个SRv6路由节点生成的随机数作为对称加密密钥,并发回到客户端,同时完成身份的验证。

本文所提的机制优点在于尽量减少非对称加密运算,而且密钥的生成与分发一次性完成,不需要通过两轮加密协商,对称加密密钥的协商过程较现有的方式更为简化,对服务器端的计算、存储压力也相对较轻,从而能进一步提高服务器的服务能力。

2 SRv6可编程网络综述

基于IPv6的段路由(Segment Routing IPv6,SRv6)是一种新型的IP承载协议,其基于IPv6数据平面,在对IPv6数据包结构进行扩展,并支持可编程能力可定义各种路由指令与扩展操作。SRv6协议并没有破坏IPv6报头的结构,只是扩展。所以,SRv6数据包可以在普通的IPv6网络中传输,一旦SRv6数据包进到SRv6域中,则可以通过数据包中定义的路由扩展头SRH(Segment Routing Header,段路由头部)进行路由转发。一个SRv6数据包可以压入多个SRH,指示数据包的转发方式,从而在SRv6网络域中实现类似于MPLS的转发过程。

从图1所示的SRv6数据报的头部结构可以看出,SRH使用了IPv6协议中定义的可选internet层信息,存储在IPv6扩展头(Extension Header)中。SRH可以由多个SRv6 Segment组成,构成了转发的路由。SRv6 Segment又称为SRv6 SID或SID,为了兼容数据包在IPv6路由层转发,SID也同样定义为一个128 bits的IPv6地址。

在SRv6路由过程中,每经过一个SRv6路由节点,该节点将读取SRH中的信息,执行相关的SID指令,将当前的Segment List拷贝到标准头中的目的地址,同时将SL(SID计数)字段减1,同时更新相关的指针,最后进行IPv6转发。

SRv6的扩展能力主要来自SRH,从图2可以看出,SID由Locator和Function两部分组成,Function部分还可以包含参数段(可选)。因此,SID可以由三元组来表示:

其中:Locator是实现SRv6路由功能的字段,其在SRv6域内是唯一的,SRv6网络里其他节点通过Locator网段路由来寻址和定位SRv6的路由节点。而Function则代表SRv6的指令,这也是SRv6可编程网络的来由,SRv6中预定义了各种指令,如:End.DX6 SID等,主要是用于指示SRv6的节点进行相应的数据操作。SRv6协议中定义的指令集很丰富也很灵活,包括:插入新的SID、连续弹出或复制SID指令等。因此,SRv6之所以称为可编程网络,也是因为通过定义SID序列,可以实现网络路由节点对数据包的不同操作与路由变化。这也是本文所提对称密钥生成机制与身份认证的基础。

3 基于SRv6的对称密钥协商机制

3.1 基本的应用场景定义

在提出本文的密钥协商机制之前,首先给出本文密钥协商机制的应用场景,如图3所示。

从图3中可以看出,假设A为请求客户端,而B为服务器端,则本文的密钥协商机制假定客户端与服务端需要同处于一个SRv6域中。SRv6域与IPv6路由网络相对的概念,因为SRv6本身是兼容IPv6,既可以在SRv6域中使用Segment来转发数据包,也可以直接使用IPv6路由协议来转发数据包。SRv6域指的是使用SID路由机制的一个网络段,这个段中所有的SID都从同一SID Space中分配,具有相同的前缀。

SRv6域包括3种类型的节点:第一种是源节点,是指接收数据包进到SRv6域的路由节点;第二种是中转节点,是根据SRv6协议转发数据的路由节点;第三种是端节点,最后接收数据包,或者将数据包从SRv6路由转换成标准IPv6路由,发送至IPv6网络的节点。因此,源节点和端节点可以看到SRv6域的边缘路由节点,数据包从这两类节点进入或发出。

为了简化本文机制考虑的范围,假定本文机制的应用场景限定于同一个SRv6域中,在该域中只使用SID路由,客户端与服务器端分别直接连接SRv6域的源节点或端节点,不考虑IPv6路由存在的情况下,经过多步SID路由后达到对方。

3.2 对称密钥协商机制

本文所提的对称密钥协商机制执行步骤如表1所示。

在上述的密钥生成机制中,nonce是使用客户端请求节点生成的随机数作为对称加密密钥,对生成的会话对称密钥进行加密,因此nonce随机数的长度对于该数据的安全具有重要的影响,必须要在机制中约定。此外,rand0,…, randN序列生成会话密钥的方法是采用序列回绕来生成。即将随机数序列按约定的会话密钥长度进行回环折叠排列,若最后一段不够会话密钥长度,则后面补零对齐密钥长度后,对N段二进制序列使用异或生成最终的会话密钥。

在客户端获取本次会话生成会话密钥之后,即使用SSKEY对双方传输的数据进行对称加密后沿请求路径转发至服务器端。而该经由一个SRv6中转节点转发时,该节点将在SHR头中先获取本次会话的nonce,从节点映射表中,取出nonce对应的rand,再压到SHR头部中,逐级转发到服务器端。

服务器在收到加密的消息后,取出SHR头中SID序列和nonce,获得本地映射表中存储的nonce对应rand,再一次生成会话密钥SSKEY,对接收的加密消息解密。而服务器回复时,同样使用SSKEY对消息进行加密,再沿原请求路径发回,在回复路径上的各SRv6节点按路由直接转发即可。

4 基于SRv6的对称密钥协商机制的安全性验证

本文所述的对称密钥协商机制,可以从以下步骤来验证其安全性。

在对称密钥协商请求消息转发路径中,除服务器之外,不存在任一节点能掌握rand0, …, randN序列,也即最终协商生成的会话密钥对于请求消息转发路径中的任一节点都是不可知的。

最终生成的对称密钥协商回复消息路径中,不存在任何一节点与请求消息转发的节点重复。也即,回复消息路径中不存在任一节点掌握nonce。因此,对于<nonce>SSKEY不存在任何一节点,能够解开nonce数据获取SSKEY,因此,SSKEY是安全的。

本机制在形成对称会话密钥的同时,也完成了客户端与服务器端的双向身份验证,客户端可以从两个方面来确认会话密钥生成回复消息来自服务器端。

(1)接收到会话密钥生成消息时执行的验证操作,已经证明回复的消息是来自于服务器端;

(2)由于回复路径与请求路径中不存在重复的中转节点,因此不可能有节点掌握其他节点作为中间人发动攻击,回复虚假的生成消息;

同时,服务器端也可以在后继的会话请求中对客户端的身份做验证,原因同样在于回复路径中不存在节点掌握nonce,那么最终收到并解密出SSKEY的只可能是发送nonce的客户端。

综上所述,本文所提的基于SRv6的对称密钥协商机制的安全性是可以保障的。

5 SRv6的意义

SRv6网络编程草案至今,已经有多个商用实现和商用部署,发展迅速。在推动SRv6标准过程中,结合互联网发展历史的经验教训,对SRv6的价值和意义也有了更深层次的认知。

IPv4技术可扩展性是一个重要教训,设计之初并未想到会有如此多的设备接入IP网络,因此触发IPv6技术发展。而IPv6技术发展可兼容性又是一个教训。当时设想32比特的地址空间不够就把它扩展成128比特,但是128比特IPv6地址与32比特的IPV4地址无法兼容,因此需要全网升级支持IPv6,导致部署应用困难。SRv6可以兼容IPv6路由转发,通过Function ID兼顾了MPLS转发,保证SRv6可以从IPv6网络推进。

过去十多年IP技术取得了巨大进步,统一了网络承载,其中MPLS扮演了非常重要的地位。基于MPLS承载技术用于IP Core承载,再到城域承载、移动承载,替代了帧中继、ATM、TDM等多种网络技术,实现了网络承载技术统一。MPLS成功依赖3个重要特性:TE,VPN,FRR,因此SRv6技术发展要把这3个特性优势继承下来,这个目标已基本达成。

All IP 1.0成功的同时也带来了以下3个方面的挑战。

(1)IP承载网络的孤岛问题。虽然MPLS统一了承载网,但是IP Core承载网、移动承载网、城域承载网之间是分离的,导致端到端业务部署困难。

(2)MPLS与IPv4封装的可编程空间有限。新业务的产生需要在转发面加入封装,而IETF已经停止为IPv4制定更进一步的标准,并且MPLS标签的字段采用固定长度,标签栈提供的网络编程能力也相对受限,导致无法满足未来业务的网络编程需求。

(3)应用与网络承载的解耦,导致网络自身难以优化且难以提升价值。目前运营商面临被管道化,无法从增值应用中获得收益。应用信息的缺失导致网络调度和优化无法精细化,造成资源的浪费。例如,ATM到桌面技術。MPLS曾经试图能够入云但未成功,反而是VXLAN成为了事实标准。

SRv6技术的出现,实际承担了解决这些关键问题的使命:(1)SRv6兼容IPv6路由转发,基于IP可达性实现不同网络域间的连接,不需要像MPLS那样必须引入额外信令。(2)基于SRH能够支持多种类的封装,更好地满足新业务多样化需求。(3)SRv6对于IPv6的亲和性使得它能够将IP承载网络与支持IPv6应用无缝融合,通过网络感知应用为运营商带来更多收益。

IPv6的发展里程证明,仅依靠地址空间的需求不足以支撑其规模化部署,SRv6技术可以更好地促进IPv6发展应用。

6 实验与讨论

SRv6作为新一代的路由协议,虽然目前已经有不少产品实现了SRv6路由功能,但是本文机制需要对SRv6的指令进行扩展,引入会话密钥生成指令,因此,为了实验验证上述提出的会话密钥机制,在本文中采用的P4语言与虚拟化容器技术来对上述机制搭建了如上图3的实验环境进行测试[3]。

如图3所示的网络拓扑结构,本文采用了6台SRv6路由节点,其中两台分别部署在客户端与服务器端,客户端的路由节点与图中的SRv6域的源节点对接,而部署在服务器上的路由节点,与SRv6域的端节点对接,其他4台作为SRv6域的中转节点。

路由节点使用P4实现编程,部署到Simple Switch来实现。

客户端、服务器分别使用Docker容器[4],运行部署Go语言实现的测试代码来仿真基于Linux Veth构建虚拟网卡[5],一共构建了8对虚拟网卡,分别部署到客户端,服务器端以及源节点、端节点和各中转节点。

在完成上述虚拟网络搭建后,最核心的是使用P4对Simple Switch进行拓展,编写P4代码来支持本文所述的对称密钥请求消息与回复消息的路由转发。本文的实验代码是基于已有的SRv6 P4代码的实现来完成的,主要包括:

(1)在Simple Switch中定义寄存器阵列,使用布隆过滤器来映射存储nonce对应本节点生成的随机数值;

(2)对SRv6的SHR进行扩展,引入新的Action动作,来表述在SRv6节点收到对称密钥请求消息后执行的生成随机数,压入新的SID动作;

(3)在会话消息传发过程中,根据nonce值,来查找对应寄存器中的随机数,然后按上文所述的步骤,组织新的SID压入SHR再转发。

通过上述的网络实验环境的搭建,以及SRv6 P4代码的扩展,本文完成了上述客户端服务器对称会话密钥的生成与回复以及使用会话密钥开展双方会话的过程,验证了本文所提及方案的可行性。

作为新一代的IPv6路由协议,SRv6通过对IPv6的包头扩展与基于段的转发方式给新型网络构建带来各种可能,特别是可编程的概念引发了“算网融合”等新的网络发展趋势,这也为本文所提新的会话密钥协商机制的基础。整体而言,本文所提的方案以SRv6的路由节点提供的标签路由与计算能力,在保证会话数据传输安全性的同时,还具有会议协商过程简化,能有效降低服务器在提供加密会话数据传输过程中的计算与内存压力的优点。

参考文献

[1]刘中兵Java研究室.Java高手真经(应用框架卷):Java Web核心框架[M].北京:电子工业出版社,2009.

[2]MARTY H,LARRY B.JSP核心编程[M].2版.北京:清华大学出版社,2004.

[3]郭永俏,关治洪.基于JSP技术的应用[J].情报杂志,2003(44):1-41.

[4]盧湘江,李向荣,晏子.MySQL高级配置和管理[M].北京:清华大学出版社,2011.

[5]邱加永,孙连伟.JSP基础与案例开发详解[M].北京:清华大学出版社,2014.

(编辑 傅金睿)

猜你喜欢
身份认证
云电子身份管理与认证系统中的关键技术优化改进