(陆军参谋部,北京 100144)
身份认证技术作为信息安全防护的常用技术手段,已广泛应用于各类信息系统,确保接入用户的数字与物理身份相符合,防止非法接入。随着新技术的发展,各种攻击手段呈现多元化,对于身份认证技术也带来新的挑战。
传统身份认证技术大多基于操作系统在软件层面实现,通过身份认证软件和数字证书,实现用户的身份认证。由于其依赖操作系统的特点,传统身份认证技术存在以下局限和缺点:
(1)传统的身份认证技术缺乏在用户客户端平台硬件启动阶段对客户端进行身份认证,存在非授权客户端平台接入网络的现象,为用户网络带来潜在威胁。
(2)传统的身份认证技术依赖于操作系统,采用数字证书的软件认证方式,容易受到病毒、木马、身份仿冒等恶意攻击,且存在被旁路绕过的风险。
针对上述问题,将客户端平台身份认证进一步前置,在客户端硬件平台上电启动伊始,通过网络对其进行可信身份认证,只有身份合法的用户平台可以接入网络,实现客户端的安全准入控制,从而提高网络的安全性。
UEFI 技术是一种基于标准接口的计算机固件技术,具有跨平台、功能扩展方便的特点。同时,UEFI BIOS 内置了完善的网络协议栈,支持UDP、TCP、FTP 等网络协议,可以在启动阶段提供完善的网络应用。除此之外,UEFI BIOS 还支持启动阶段从硬盘等存储器件中获取相关文件资源,这就为身份认证在底层实现和在启动阶段实现提供了基础。同时,利用可信计算的可信密码模块(Trusted Cryptography Module,TCM),能够为平台提供加密和认证功能。
综上所述,结合运用UEFI 技术和可信技术,能够在启动阶段,利用UEFI BIOS 和操作系统之间的隔离性,在系统启动操作系统前,与认证服务器相互配合,实现设备的远程入网身份认证,同时利用TCM 的加密功能,确保认证数据的传输安全。因此,研究基于UEFI 的网络可信身份认证,能有效确保客户端平台的入网可控,同时摆脱认证过程对操作系统的依赖,避免木马、病毒等恶意软件的攻击。
基于UEFI 的远程可信身份认证方案系统架构如图1 所示。
图1 基于UEFI 的远程可信身份认证方案系统架构
系统由用户客户端平台和服务器端平台构成。客户端平台在启动过程中,由UEFI 固件收集平台信息,通过TCM 模块,结合加密、认证功能,请求进行身份认证。服务器端平台对认证数据进行合法性判别,并将身份认证结果反馈给客户端,在启动阶段完成远程身份认证、入网控制。
客户端平台UEFI可信增强设计包括四个部分。
(1)认证发起。
当客户端平台开机启动时,UEFI 主动向认证服务器发出请求,包含证书和认证两部分,将用户身份、设备身份等认证信息发送给认证服务器进行认证。
(2)TCM 调用。
调用TCM 密码模块,进行对称密码运算和非对称密码运算,实现签名、验签、数据加密等密码功能。
(3)信息帧处理。
实现数字信封的封装和解封装。数字信封使用的数字签名验签算法由TCM 模块提供。
(4)证书管理。
对认证服务器颁发的身份安全证书进行加密存储和本地管理,其中TCM 模块完成加密存储。
服务器端平台对客户端平台进行远程注册、认证,为各客户端平台生成对应的身份安全证书并颁发给对应客户端。服务器端平台将针对身份认证数据开展合法性比对,并对客户端平台进行远程身份认证。服务器端平台包括五个部分。
(1)网络通信协议栈。
通过网络接收认证请求,与客户端平台通信。
(2)信息帧处理。
实现数字信封的封装和解封装。数字信封使用的数字签名验签算法可以由软件算法实现也可以由专门的密码卡实现。
(3)身份安全证书生成。
对客户端平台进行注册审核,为通过审核的客户端平台生成安全的身份证书,并对身份证书中的随机数进行更新,确保安全、可靠。同时实现身份证书的存储与销毁操作。
(4)身份认证模块。
对客户端进行身份认证,将接收数字信封形式的身份认证信息通过解封装解密恢复出的原始数据,并与存储的客户端身份认证数据进行比对,完成用户身份合法性校验,将认证结果回复给用户。
(5)用户数据管理。
对客户端的信息进行存储和管理,支持增减、修改、查询身份信息。
身份认证流程包括了身份信息注册和身份认证两个步骤。
在身份注册步骤,客户端平台利用数字签名保护身份信息,确保信息正确及完整。客户端的平台身份密钥(Platform identity key,PIK)由TCM 模块生成,其本质是一个公钥密钥算法密钥组合,客户端的身份信息可通过PIK 私钥完成数字签名,将签名、身份信息发送给认证服务器。认证服务器存储有客户端平台相应的PIK 证书(及用户PIK 公钥),服务器端利用PIK 公钥验证客户端发送的数字签名信息,核准平台身份并颁发身份安全证书(安全证书中包含服务器公钥信息)。
身份信息注册阶段流程如下:
(1)客户端平台发送设备注册信息,客户端平台对设备信息使用自身的PIK 私钥进行数字签名,通过网络将数字签名、设备信息的组合数据发送给认证服务器。
(2)认证服务器接收注册信息后,将客户端设备信息、数字签名解析出来后,使用数据库中匹配的客户端设备PIK 公钥,完成数字签名验签,通过校验设备信息完成验证。若客户端平台合法,则通过验证,给出合法客户的身份安全证书,并将其数据信息存储在数据库中。
(3)认证服务器颁发证书,将身份安全证书通过客户端平台PIK 公钥进行加密,发送给客户端。
(4)客户端平台通过PIK 私钥对收到的身份安全证书进行解密。通过身份安全证书中携带的认证服务器公钥,验证证书签名合法性,并获取证书中的随机数。
身份信息注册阶段流程如图2 所示。
图2 身份信息注册阶段流程
在身份认证阶段,由于客户端平台和认证服务器相互获取了对方的公钥,在客户端和服务器端利用数字信封的方式对传输的信息进行加密,提高认证的安全性。身份认证的流程如下:
(1)客户端平台上电开机,可信UEFI 固件程序启动,在进入操作系统之前,UEFI 固件通过证书管理模块对身份安全证书中的认证随机数和身份安全证书公钥信息进行查询。
(2)客户端平台发送身份认证请求给认证服务器,通过身份安全证书公钥以及随机数加密得到密文信息,生成数字信封并发送至认证服务器。
(3)认证服务器端开展身份认证,并对身份安全证书进行更新。首先,认证服务器对客户端平台数字信封进行解封装,使用相应客户端的PIK 公钥来进行签名验证,然后使用身份安全证书私钥进行解密运算,恢复数字信封中的认证随机数。比对解密得到的认证随机数和数据库中存储的随机数,判断身份是否合法。如身份合法,认证服务器对身份安全证书中的随机数进行更新,并记录至数据库中,供下一次身份验证使用;如果身份非法,则禁止客户端平台入网,从而保护网络安全。
(4)认证服务器端对新证书中的认证随机进行封装,通过身份安全证书的私钥进行数字签名,发送给客户端平台。
(5)客户端平台收到数字信封数据,进行解密,得到数字信封中更新的认证随机数,供下一次认证使用。
身份信息认证流程如图3 所示。
图3 身份信息认证流程
基于UEFI 的远程可信身份认证能够有效防护常见的恶意攻击。
(1)针对重放攻击,采用身份安全证书更新机制,每次认证均会进行更新,攻击者无法利用以往的数据对认证服务器进行欺骗,可有效提高安全性。
(2)针对中间人攻击,采用了TCM 对认证数据进行加密,身份安全证书数据被中间人获取,但证书数据无法被攻击者破译,认证服务器不会被欺骗,可有效避免中间人攻击。
(3)针对旁路攻击,TCM 对密码运算和身份认证数据进行加密存储,可有效抵御旁路攻击。
基于UEFI 固件的可信身份认证,能在固件层实现载入操作系统前对接入终端平台进行身份认证,通过UEFI BIOS 与操作系统具有隔离性,确保身份认证过程安全性,抵抗操作系统中的恶意代码攻击。同时,利用TCM 等技术提高安全性,保证认证数据的安全性。