APP下载

基于TPCM 可信根的可信网络连接设计与实现*

2021-04-20

网络安全与数据管理 2021年4期
关键词:网络连接度量终端

夏 攀

(北京可信华泰信息技术有限公司,北京100195)

0 引言

新版国家网络安全等级保护标准《GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求》《GB/T 25070-2019 信息安全技术 网络安全等级保护安全设计技术要求》《GB/T 28448-2019 信息安全技术 网络安全等级保护测评要求》于2019 年12月正式发布并实施,在基本要求中对计算环境安全、物联网安全、云安全、网络通信的“可信验证”要求进行了明确的描述[1-3]。 可信连接作为可信计算的重要组成部分,其设计与实现也成为热门讨论的话题。从事可信计算的各个研究组织或机构都提出了各自的可信计算标准[4-7],在标准中针对可信连接也提出了不同的要求[8-9]。

可信连接通过验证访问网络的终端完整性,来决定访问的终端是否能够接入网络。参与通信的可信终端将自身的可信状态传递到网络,保证网络的可信。

2004 年,TCG 组织最早开始研究制定可信网络连接相关的架构和标准,制定了可信网络连接的系统结构——可信连接(Trusted Network Connection,TNC),实现了与微软的网络访问保护之间的互操作。 TNC架构分为三层(度量层、评估层、访问层)、三个实体(访问请求者、策略执行、策略决策)和接口组件,网络通信的两端实现了相互的完整性度量、身份验证和策略判定。 在TCG 的基础上,我国提出了自己的可信连接架构(Trusted Connection Architecture,TCA)。TCA 基于三元对等架构,解决了TNC 无法主动对网络请求者进行验证的问题。TCA 要求网络的请求者、访问控制器、策略管理器三者在通信过程中拥有同等的获取对方身份认证和平台可信度量的权利[7-8,10]。

在TCA 的模型中有两个主要问题:

(1)TCA 并没有明确可信状态的评估方法及标准;

(2)在TCA 中将可信第三方仲裁机构作为策略管理器,为通信终端提供双向认证,但是终端和可信第三方仲裁机构之间的身份和状态认证并没有明确。

本文的可信连接参照我国自主制定的TCA 标准来设计,在该标准中设计的策略管理器在本方案中将由一个独立的安全策略管理平台来实现,该平台收集各个终端上报的可信状态报告,根据用户制定的仲裁规则结合可信状态报告中的数据来判定终端是否可信。 可信报告由可信根生成,可信根通过硬件形态的可信平台控制模块(Trusted Platform Control Module,TPCM)来实现,TPCM 在网络通信中参与可信状态报告生成、身份校验、密码协商等工作,通过内置的可信密码模块(Trusted Cryptography Module,TCM)来标识终端的身份[10-12],保证交互过程中的数据保密性和安全性。

在可信连接的功能流程设计上,通信双方在进行通信之前,需要获取双方当前的可信状态报告,通过可信状态来决定是否允许通信。 可信状态的判断和访问资源的控制,需要通过策略判定机制来实现,策略判定机制可以由多个条件来综合判定。

在防护功能实现上,对网络访问请求的监控和拦截通过Linux 的LSM 机制来实现,只有可信状态达到策略要求的连接才能建立,数据才能正常发送和接收。

图1 可信连接总体架构

1 总体架构

如图1 所示,终端A 作为网络连接的发起方,终端B 作为被访问方。通信的双方在硬件层都配置了TPCM 卡,用于标识身份、密码运算和启动度量等功能;在系统层安装部署了可信软件基(Trusted Software Base,TSB),主要完成对用户行为的拦截、度量、策略管理等功能;安全管理平台实现了策略管理、存储、身份认证、策略仲裁等功能[7-8]。

在终端A 与终端B 建立连接之前,两个终端定时将自己的可信状态报告上报至安全管理平台。 安全管理平台在收到报告后,使用终端的证书(在终端部署的时候导入到管理平台系统中)进行验签,验签通过后采集报告中记录的启动度量、静态度量、错误日志等信息,再结合策略判定条件对终端的可信状态进行评估得出可信状态值,并将其保存在数据库中。

两个终端定时向安全管理平台发出同步其他终端可信状态信息的请求,安全管理平台在收到请求后,校验发送请求的终端是否为合法终端,回复其管理的所有终端的状态信息。 在返回状态信息时,管理平台使用自身的TPCM 中的平台密钥对信息进行加密并签名。终端收到可信状态信息后,首先对状态信息进行验签,判断信息的来源合法性,再更新策略库中保存的终端状态列表。

终端在建立网络连接之前,需要根据本地保存的可信终端状态列表来判断对端的可信状态,再决定是否允许建立连接。

可信连接的建立流程如图2 所示。 终端A 启动任意一个网络应用,需要与网络中的终端B 建立网络连接。 可信软件基通过Linux 的LSM 中的网络钩子点获取到此网络行为,并将网络IP、端口等信息通知可信认证服务程序,可信认证服务程序判断终端B 的可信状态。 如果终端B 的可信状态满足条件,则允许连接建立。 终端B 在收到终端A 的网络连接请求后,也采用相同的机制通过可信认证程序判断终端A 的可信状态,如果满足条件,则允许终端A 接入。

在系统运行过程中,终端A 和终端B 在定时上报自己的可信状态的同时,也从安全管理平台更新网络中所有终端的可信状态。 当通信双方中某一方的状态发生变化时,可以采取应急措施。 应急措施方式有多种,比如:可以联动Linux 系统中的防火墙机制,来控制终端数据包的发送和接收;也可以通过TSB 在LSM 中的进程钩子点, 来直接中断问题程序的运行。

图2 可信连接流程

2 关键部件

2.1 TPCM 可信根

TPCM 是可信计算架构的核心部件,负责对计算节点进行可信度量和防护,并生成日志和可信报告数据。 TPCM 包括可信硬件资源、可信操作系统、内置TCM。

TPCM 硬件资源包括一套专用的逻辑控制CPU、存储单元、密码单元、IO 设备以及可能通过外接扩展的TCM 模块。 通过TPCM 的CPU 提供的隔离、保护和交互机制,可以对TPCM 的硬件资源进行隔离和保护,并实现计算节点和可信节点相互通信。

TPCM 提供启动信任链的构建、可信状态记录、可信状态报告生成、密码资源的访问接口等功能。终端的TPCM 定时生成可信状态报告并通过TCM中的平台密钥进行签名,防止可信报告被伪造。 可信软件基定期将TPCM 生成的可信状态报告上报到安全管理平台,安全管理平台维护所有终端的可信状态,并提供查询服务[13-15]。

2.2 可信软件基

可信软件基TSB 由基本信任基、主动监控机制(包括控制机制、度量机制、判断机制)、可信基准库、支撑机制组成。

可信基准库提供可信基准值(包括基准对象和基准内容等信息)存储、查询和更新等功能。 基准库提供实时的基准信息,方便快速查询,基准信息一般存放在内存中。

TSB 主动监控机制拦截应用的系统调用,在TPCM 支撑下实现对系统调用相关的主体、客体、操作和环境进行主动度量和控制。 TSB 通过支撑机制实现对TPCM 资源的访问;通过协作机制实现与可信安全管理平台的策略和审计信息交互,以及与其他计算平台TSB 之间的可信协作。

TSB 的主动监控机制通过在Linux 的LSM 框架中获取用户的网络行为和其他行为,并通过控制机制、度量机制、判断机制来决定是否合法[9,13-16]。

2.3 安全管理平台

可信安全管理平台统一建设集中化的管理机制,统一完成对各区域、各层面的安全机制的执行与管理。 从系统管理、安全管理和审计管理角度出发,通过对应用系统的计算分析从而建立起集中统一的安全管理机制[15]。

安全管理平台对所管理区域中的可信状态进行集中管理,对终端上报的可信状态报告进行验签,保证报告的来源可信,并与各个终端定时同步当前维护的可信状态。 安全管理平台提供用户定制可信状态的判断标准,增加判定因素的接口。

3 可信连接技术实现

3.1 功能模块组成

可信连接的功能模块由三个部分组成,如图3所示,分别为安全管理平台、可信软件基和TPCM。

安全管理平台对终端上报的状态进行集中管理,对终端部署过程中上报来的可信状态报告进行验签。 用户可以通过用户交互接口自定义可信状态的评估策略,对终端上报的状态进行评分。

终端通过加密信道从安全管理平台获取系统内所有其他终端的可信状态信息,同时将本终端的可信状态信息上报到安全管理平台,并定期下载网络控制策略。 可信软件基应用态和内核态之间通过Netlink 协议进行数据通信,建立的通信通道可以传输策略、日志、可信状态报告等信息。

当用户需要访问网络时,可信软件基的内核态系统首先根据策略和目标终端的可信状态进行评估,不符合条件的拒绝进行通信,反之允许通信。用户行为的判定同时包含网络行为的判定。 用户行为同时也包含其他状态的判定,如程序运行、文件访问等。判定结果需要配置到TPCM 中,由TPCM 的平台配置寄存器(Platform Configuration Register,PCR)来存储判定的状态,在生成可信状态报告后上报到安全管理平台。

3.2 Linux 终端技术实现

Linux 终端实现可信网络连接的技术架构如图4所示,应用程序在运行过程中如果调用了系统的网络接口,可信软件基将通过LSM 框架在“文件系统”、“程序执行”、“网络通信”等位置部署的hook 点获取到网络信息。 网络信息包括源IP、目的IP、源端口、目的端口。 可信软件基通过目的主机的IP 信息在可信状态库中查找其可信状态,再结合策略来判定是否允许发送或接收数据。

应用程序调用网络系统的相关接口进行网络通信时,会调用内核提供的服务sock_recvmsg()和sock_sendmsg()接收和发送数据。 在可信软件基的内核模块中,将策略检查和可信状态检查的控制逻辑注册到LSM 框架对应的网络调用接口security_socket_sendmsg()和security_socket_recvmsg()上。 策略配置和可信状态更新可以采用Netlink 协议,将应用层从管理平台获取的信息配置到内核中。 为了加快查询速度,策略管理可以采用hash 表的方式建立缓存。

软件栈在系统中的体系架构如图5 所示。

在整个体系中,可信软件栈是必不可少的系统组件。 为了方便应用软件和可信软件基内核能够使用TPCM 的密码服务和获取可信度量的相关信息,必须使用软件栈作为中间媒介。 软件栈向上提供应用和内核接口,向下通过硬件驱动来使用TPCM 的计算能力和存储资源。

图3 可信连接功能模块组成

图4 Linux 终端技术实现架构

3.3 可信状态报告

可信状态报告包含启动信任链、静态度量、动态度量等系统运行状态的信息,各个部分度量的结果都保存在PCR 中。

启动信任链度量了BIOS、GRUB、Linux kernel、文件系统等信息,度量过程从TPCM 硬件开始,由前一个阶段度量后一个阶段的内容,形成一个完整的启动信任链,并将结果保存在TPCM 的PCR 中。

静态度量记录系统中程序运行、动态库加载等信息,TPCM 在度量过程中保存度量结果,在生成报告的过程中对度量结果信息进行汇总。

动态度量通过TPCM 主动定期度量程序和内核代码段在内存中的完整性,在生成报告的过程中对度量结果信息进行汇总。

TPCM 定期读取PCR 中记录的各个度量点的度量结果,使用平台密钥对度量结果进行签名发送到安全管理平台。

可信报告格式定义如下:

图5 软件栈架构

可信状态报告中可以包含多种用户数据信息,汇总多种安全措施的状态结果,在安全管理平台通过自定义的评估策略来判断终端当前的可信状态。本方案中除了加入了启动度量、静态度量、动态度量,还增加了用户的非法文件访问、网络访问等信息。

4 实验验证

在实验环境中实现并验证了本方案的主要功能和流程。 搭建了一个完整的可信网络系统,如图6 所示,在这个可信网络的基础上实现对FTP、SSH 等网络应用的控制。

图6 实验环境拓扑

该网络由多台配置了TPCM 卡的终端组成,选取其中一台部署安全管理平台软件,其他终端部署Linux 可信软件基。 在各个功能组件部署完毕后,终端可以正常将状态信息报送到管理平台,从管理平台能够配置相关策略,在终端上实现从管理中心同步其他终端的可信状态。

通过以下测试用例使终端当前的可信状态发生变化:

(1)修改grub 配置文件,导致启动度量的状态异常。

(2)篡改passwd 文件,使其运行失败。

(3)强制修改未授权文件,引起非法访问。

(4)将管理平台上的终端“不可信”状态的仲裁条件设置为【启动度量异常|文件访问失败】。

在以上测试用例下,管理中心的仲裁机制判定该终端可信状态为“不可信”,随后与该终端建立连接的终端断连,无法进行通信。

在试验中破坏终端的grub 配置文件导致启动度量失败,效果如图7 所示。 度量失败导致可信报告产生异常,如图8 所示。系统网络连接出现异常,如图9 所示。

5 结论

本方案建立了以第三方安全管理平台作为可信连接仲裁平台的架构,该架构可以为集中管理的终端安全产品的网络连接设计提供参考,为等级保护2.0 的实施提供技术基础。 相对传统的防御机制,本方案设计实现了信任链在网络中传递,降低了某台设备被攻陷后在网络内进一步横向攻击的可能性。

本方案的可信连接原型设计已在实验环境中构建完成,方案切实可行、简单易用,希望可以为相关可信产品的设计和研发提供思路和借鉴。

图7 启动信任链日志信息

图8 可信状态报告

图9 网络连接异常状态

此外,本设计中还存在一些待进一步完善之处,如需要解决在没有第三方仲裁平台参与或者离线的情况下,两台终端如何点对点建立可信网络连接。两个端点之间的可信连接设计也可以考虑使用TPCM提供的TCM 芯片,作为平台间校验的信任根。 两个终端在建立加密连接过程中的密钥交换过程,可以参考OPENSSH 的密钥交换机制,将密钥、随机数的生成等工作交给TPCM 来完成,通过密码机制来验证对方的身份,运行时的状态检测可以使用本方案的设计。 在点对点状态下安全策略的配置,需要考虑配置策略的管理员身份,对管理员身份的鉴别可以采用双因素身份认证,比如Ukey 身份认证、口令码等。

猜你喜欢

网络连接度量终端
鲍文慧《度量空间之一》
模糊度量空间的强嵌入
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
个性化设置 Win10 的网络连接信息
运动想象的大尺度动态功能网络连接
GSM-R手持终端呼叫FAS失败案例分析
地质异常的奇异性度量与隐伏源致矿异常识别
中小型网络组建技术