APP下载

基于物理不可克隆函数的Kerberos扩展系统及实现

2023-07-11王欣柳亚男张正李戈邱硕

电脑知识与技术 2023年15期

王欣 柳亚男 张正 李戈 邱硕

关键词:Kerberos;物理不可克隆函数;双向认证;密钥协商

1 概述

随着互联网的快速发展,针对个人或设备的网络攻击行为层出不穷,个人信息的安全防护愈发重要。安全可靠的身份认证机制,为个人或设备免遭恶意的伪造、篡改、窃听等攻击提供必要保障。

Kerberos 协议是一种基于可信第三方的安全认证协议。RFC 6113 定义了Kerberos 预认证通用框架[1],在开放式网络环境下,通过密钥系统为客户机和服务器应用程序之间提供认证服务和密钥协商。该框架基于口令认证机制和对称加密体制,因此存在口令猜测攻击、重放攻击、密钥存储等局限性。2001年,Tung等人提出PKINIT协议对标准框架进行了扩展[2],利用公钥证书在Kerberos 协议中实现初始身份验证[3],但是计算量和存储开销大大增加。2018 年,Sutradhar等人[4]提出基于门限密码和ECC的Kerberos 新版本用于解决云安全中的认证问题,相比PKINIT 降低了计算量,但仍然存在计算复杂度高、中间人攻击等威胁。

传统Kerberos协议利用的口令认证机制的安全性较弱,存在存储安全问题,攻击者可能通过入侵、半入侵及侧信道攻击等物理攻击导致密钥泄漏,最终造成整个系统崩溃。为解决目前研究中存在的问题,本文提出一种基于物理不可克隆函数(PUF,PhysicalUnclonable Function)的Kerberos扩展系统。基于PUF 的激励响应机制,利用PUF的激励响应对(CRP)代替口令或数字证书以实现认证服务器与设备的双向认证和密钥协商,解决口令猜测攻击和假冒攻击。设备端也无须预存储密钥,降低了存储开销和密钥泄漏的风险。进一步地,针对车联网中移动车辆安全接入应用服务器的场景,给出了该扩展系统的具体实现。

2 基于物理不可克隆函数的认证机制

物理不可克隆函数(Physical Unclonable Func?tion)[5]的出现与发展,为解决传统Kerberos口令认证问题提供全新的低成本和高安全性的解决方案。

在安全协议设计中,可以将PUF结构看作是单向函数的硬件等价物,并具有易于制造、不可克隆和不可预测的属性。将PUF结构看作一个黑盒的激励响应系统,针对任意激励值可产生唯一对应的响应值,而根据响应值却无法推导出激励值。利用函数P 来标识PUF的单向性:

其中,C 和R 分别是激励集合和响应集合,函数P是PUF结构的数学模型,激励值c 与对应的响应值r 称为该PUF结构P 的一个激励响应对(CRP ):(c,r )。

通过使用物理不可克隆函数产生的激励响应对来代替传统密钥,实现了不需要再以数字形式存储密钥,而是从设备电路中提取,解决了密钥的计算和存储问题[6]且消耗的硬件资源成本较低,适用于轻量级网络。

3 基于PUF 的Kerberos 扩展系统

3.1 系统流程

基于PUF提出一种Kerberos扩展系统,包括三个通信实体:客户端、服务端、密钥分配中心(KDC)。其中KDC中包括:认证服务器AS、票据授权服务器TGS 和数据库DB,流程图如图1所示。

Step1:客户端和服务器端本地生成若干随机数作为激励集合,并将每个激励输入PUF结构生成对应的响应值。将激励响应对提交给KDC注册,保存在数据库中。保存在KDC中的注册信息可以通过KDC上的接口进行查看。

Step2:需要向服务器进行身份认证的客户端通过接口向AS请求票据授权票据(TGT),AS生成客户端与TGS的会话密钥并在本地数据库随机选择一个客户端的CRP的响应作为密钥加密会话密钥,将使用TGS 主密钥通过加密算法加密的TGT,挑战值Challenge 和加密的会话密钥返回。客户端接收到TGT,并通过本地的PUF模块获取对应的响应值Re?sponse来通过解密算法解密得到会话密钥并用其加密身份信息。

Step3:客户端对TGS通过接口发送会话密钥加密的身份信息、TGT、服务器端ID来请求服务授权票据(SGT),TGS使用自身主密钥解密TGT比对用会话密钥解密的身份信息,验证TGT有效性后,从本地数据库中任选一个服务器端的Challenge,并生成客户端和服务器端的会话密钥并用TGS与客户端的会话密钥加密,将服务器端的Challenge和加密后的服务器端和客户端的会话密钥以及用Response加密的服务授权票据SGT返回给客户端。

Step4:客户端在本地通过与TGS的会话密钥解密得到与服务器端的会话密钥,用其作为密钥通过加密算法加密身份信息。将加密的身份信息以及服务器端的Challenge和SGT经过接口发送给服务器端来请求服务。服务器端接收到SGT后经过本地的PUF 模块得到Response进而解密SGT并得到与服务器端的会话密钥解密客户端的身份信息,將解密的SGT对比解密得到的身份信息,核验完成后允许客户端访问。

3.2 系统架构

基于PUF的Kerberos扩展系统在实现过程中采用Python+Django的MVC架构,如图2所示。系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),实现系统用户界面和业务逻辑分离,加强代码的可扩展性、可复用性、可维护性、灵活性。

模型层包括:PUF生成的激励响应对的保存类、KDC使用的会话密钥类。

控制器层包括:注册系统控制器进行注册设备的信息收集以及处理保存、认证系统控制器用于处理设备服务请求以实现身份的认证及票据的分发。

视图层包括:设备申请服务时的信息交互展示界面、通信设备查询展示界面。

3.3 接口设计

根据客户端、服务端、KDC的主要功能设计不同通信实体模块的主要接口。

客户端、服务端的主要接口如表1所示。

3.4 数据结构设计

系统采用SQLite3数据库,主要用于存放PUF生成的CRP激励对。主要的数据结构设计如表3所示。

4 系统的应用实现

在车联网的应用中,不仅仅是简单地通过网络将车与车连接起来,还有车与人、车与路、车与云平台以及车内等全方位的网络通信。主要是实现车内网络,车际网络以及车辆移动互联网的三网联合,除此以外还有像路边单元这类边缘或是桥接设备的存在。通过结合多种通信技术,不同的物理硬件和强大的网络结构来达成车联网这一概念。

由于现在社会汽车保有量的不断上升,车联网中存在着极大量的数据需要被处理,为此需要一个轻量、高效的方案来处理设备间的交互。同时汽车作为联网设备中属于存在有较多风险点且易造成高危害性的事故的接入点,使得在汽车接入互联网时需要考虑到各方面的安全性。所以在移动车辆与应用服务器的安全认证通信中迫切地需要一个安全可靠且高效率的协议来推进车联网应用的完善和升级。

而基于PUF的Kerberos扩展系统就为解决上述车联网应用所存在的难题提供了一种解决方案。

将本系统应用到车联网场景(如图3所示)中,可以很好地解决移动车辆与应用服务器之间的双向认证与密钥协商问题,从而实现车与云之间的安全通信。

在具体系统实现中,利用树莓派作为载体搭载硬件PUF模块,实现车路协同过程中的Kerberos扩展系统。通过PUF模块为小车生成唯一的激励响应对完成在云端(应用服务器)的注册,完成注册后借助路边单元RSU转发执行扩展的Kerberos协议实现安全通信,如图4所示。

在系统中通过计算机设备提供在线的KDC服务,小车的PUF模块生成激励响应对后向KDC提供相关信息实现注册。完成注册后小车在道路行驶过程中进行服务请求。

首先小车向KDC申请TGT后KDC在数据库中找到注册的激励值向小车发起身份挑战。小车则利用PUF模块将激励输出为响应值并作处理发送给KDC 以自证身份。完成认证后小车得到TGT进而向KDC 申请相应服务器所对应的SGT。KDC通过TGT验明小车身份后返回使用响应值加密的SGT。

小车获取到对应服务的SGT就可以向服务端申请服務,服务端则利用SGT中的身份信息对小车进行身份核实,验证完小车身份后为其提供服务。整个过程中通过路边单元进行转发时,小车会优先选择较近单位进行转发从而避免大量数据堆积在部分节点造成的影响。

在Kerberos协议执行过程中SGT的获取,得到了SGT后就可以申请服务器的相关服务,且保证了服务的可靠性与安全性(图5)。

5 结束语

本文提出并实现了一种基于物理不可克隆函数的Kerberos扩展系统。使用物理不可克隆函数(PUF)生成的激励响应对代替传统Kerberos协议中设备存储的主密钥,实现设备与密钥分配中心KDC之间的双向认证和密钥分配。其中利用PUF唯一性和随机性可防止设备因主密钥泄漏而引发的伪造攻击、仿冒攻击、中间人攻击等,同时克服公钥计算复杂度高、速度慢,适合资源受限的网络应用。