CN113918975A - 一种可信计算软件白名单管理方法及系统 - Google Patents
一种可信计算软件白名单管理方法及系统 Download PDFInfo
- Publication number
- CN113918975A CN113918975A CN202111227203.0A CN202111227203A CN113918975A CN 113918975 A CN113918975 A CN 113918975A CN 202111227203 A CN202111227203 A CN 202111227203A CN 113918975 A CN113918975 A CN 113918975A
- Authority
- CN
- China
- Prior art keywords
- white list
- software package
- management
- software
- terminal equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种可信计算软件白名单管理方法与系统,本系统采用C/S架构,部署简便,局域网、互联网都可适用,包括白名单管理后台、终端设备,所述白名单管理后台部署于服务器端,包括Web服务、文件服务子系统、软件包管理子系统、终端设备管理子系统;所述终端设备包括安全客户端、TEE、TCM。本发明整个白名单生成无需软件包开发者介入,零侵入修改原始软件包数据;白名单只与文件HASH有关,与软件路径无关,修改软件安装路径或文件名称不影响白名单;操作数据整个签名,有中间人攻击时,被篡改的数据无法通过签名验证;操作包含软件包整个依赖链的白名单数据,不同终端软件环境不一致仍可使用。打包格式能同时支持deb、rpm、tar、zip。
Description
技术领域
本发明涉及涉及计算机安全技术领域,特别是涉及一种可信计算软件白名单管理方法及系统。
背景技术
Linux系统中,程序是以可执行文件的形式存放在磁盘上的,可执行文件既包括被执行函数的目标代码,也包括这些函数所使用的数据。随着安全问题数量的激增,单纯的杀毒软件、防火墙等被动防御已不足以保护计算机不受安全漏洞的影响,而随着数字资产的重要性的增加,出现安全事故所导致的损失也越来越大,为此在保护计算机中的数字资产方面软件白名单是一种更适宜的主动防御方案。
为实现目标网络中终端设备所安装软件的管理,通常在终端设备上部署客户端检测软件。利用白名单技术,客户端检测软件将可信、安全的应用程序添加到白名单中,并实时监控终端设备上安装和运行的软件,只有白名单内的应用程序才能运行,白名单以外的应用程序均不能在终端设备上运行。
传统的软件白名单主要是针对Windows设备的单机设备但是,现有常见的白名单管理系统存在如下问题:
1.采用后台主动连接终端模式,部署不方便,或只能应用在局域网;
2.白名单有路径限制,同一个软件更换路径后即无法使用;
3.无法解决终端已安装的软件环境存在差异,需要安装同一个软件包时的依赖不同问题;
4.白名单下发方式存在中间人攻击的风险;
5.白名单的生成需要应用软件开发介入,增加应用软件开发工作量;
6.打包格式支持有限,不能同时支持deb、rpm、tar、zip;
7.白名单数据存储在SPI Flash中,与BIOS公用存储空间,存储容量小。
发明内容
基于此,本专利基于Linux系统(包括国产Linux系统)中提供一种软件白名单管理方法及系统,通过本系统可对接入系统的所有终端设备提供白名单管理服务。
一种可信计算软件白名单管理系统,包括白名单管理后台、终端设备,所述白名单管理后台部署于服务器端,包括Web服务、文件服务子系统、软件包管理子系统、终端设备管理子系统;所述终端设备包括安全客户端、TEE、TCM。
Web服务用于提供Web管理界面,通过Web浏览器,用户可访问Web页面进行各项操作;文件服务子系统用于存储白名单文件;软件包管理子系统包含白名单生成工具,自动生成白名单,存储软件包,下发软件包;终端设备管理子系统包括终端接入验证,终端信息管理;后台提供HTTPS接口,与DevOps集成,支持白名单的生成过程集成到DevOps系统中。
一种可信计算软件白名单管理方法,包括所述系统,其特征在于,包括以下步骤:
S1.白名单生成过程;
S2.终端连接过程;
S3.白名单下发过程;
S4.安全客户端更新白名单过程。
所述S1步骤中,用户打开Web页面,通过双因子认证登录白名单管理后台,进入软件包管理;通过Web页面将已开发好的软件包上传至后台,这里软件包格式可以是deb、rpm、tar或zip;软件包管理子系统调用白名单生成工具扫描软件包生成白名单,并使用SM2私钥对其进行签名,白名单生成方法参考下文白名单生成方法;白名单生成完成后,软件包管理子系统将白名单及其签名文件发送至文件服务子系统;根据软件包格式将其上传至相应的软件源,完成后,软件包管理子系统将生成一个软件包条目,用于白名单下发。
白名单生成方法包括:(1)使用国密SM2算法生成非对称公私钥对,公钥置于终端的TCM中,用于白名单及操作验签;私钥置于服务器用于白名单及操作的签名;(2)白名单签名工具判断软件包格式,调用对应格式的解压命令解压软件包到一个临时目录中;(3)查找目录中的ELF文件、可执行文件、脚本文件,通过国密SM3算法计算器HASH值,生成一个HASH列表,将该HASH列表存储到指定文件中,该文件即为白名单数据文件,使用SM2私钥对白名单数据文件进行签名,该HASH列表文件及其签名构成该软件的白名单;删除存放解压文件的临时目录。
所述S2步骤中,用户根据终端设备型号/用途创建设备类型,得到ClassID;在设备类型下安装终端设备数量添加设备,得到每个终端设备的SecretID;将ClassID及SecretID配置到终端设备中的安全客户端中;安全客户端通过MQTT协议使用ClassID和SecretID连接白名单管理后台;白名单管理后台终端管理子系统处理MQTT验证ClassID及SecretID;终端管理子系统更新终端设备状态。
所述S3步骤中,选择一个需要下发的软件包条目;选择需要下发的终端设备类型或终端设备,执行下发,下发操作可以是添加或删除白名单白名单管理后台将软件包名及其版本信息通过MQTT发送给终端设备;终端设备安全客户端处理消息,解析软件包的本地依赖信息,将依赖包列表回传至白名单管理后台;白名单管理后台根据依赖信息检索软件包条目。
所述白名单管理后台根据依赖信息检索软件包条目结果包括:①依赖不满足则返回错误;②依赖满足则封装白名单操作数据,并使用SM2私钥对数据进行签名,采用白名单下发方式。
所述白名单下发方式包括白名单操作数据携带软件包依赖链的白名单信息,并进行签名。
所述S4步骤中,安全客户端接收到白名单操作数据后,将操作数据通过TEE-CA提供的D-Bus接口传递给TEE-TA;TEE-TA在安全态下调用TCM验证白名单操作数据签名,返回验签结果给安全客户端。
返回验签结果包括:①验签通过安全客户端则根据操作数据中的白名单下载地址下载白名单及其签名文件;②验签失败,安全客户端返回状态给白名单管理后台。
本发明的有益效果如下:上述一种软件白名单管理方法及系统,采用C/S架构,部署简便,局域网、互联网都可适用;整个白名单生成无需软件包开发者介入,零侵入修改原始软件包数据;白名单只与文件HASH有关,与软件路径无关,修改软件安装路径或文件名称不影响白名单;操作数据整个签名,有中间人攻击时,被篡改的数据无法通过签名验证;操作包含软件包整个依赖链的白名单数据,不同终端软件环境不一致仍可使用。打包格式能同时支持deb、rpm、tar、zip。
附图说明
图1为白名单管理系统构成图;
图2为系统运行流程图;
图3为白名单更新过程图;
图4为白名单操作数据构成图;
图5为白名单缓存图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本发明的公开内容理解的更加透彻全面。
一种可信计算软件白名单管理系统,本系统采用C/S架构,部署简便,局域网、互联网都可适用,系统构成如图1所示,包括白名单管理后台、终端设备,所述白名单管理后台部署于服务器端,包括Web服务、文件服务子系统、软件包管理子系统、终端设备管理子系统;所述终端设备包括安全客户端、TEE(可信执行环境)、TCM(可信密码模块)。
进一步地,Web服务:提供Web管理界面,通过Web浏览器,用户可访问Web页面进行各项操作;文件服务子系统用于存储白名单文件;软件包管理子系统包含白名单生成工具,自动生成白名单,存储软件包,下发软件包;终端设备管理子系统包括终端接入验证,终端信息管理;后台提供HTTPS接口,与DevOps集成,支持白名单的生成过程集成到DevOps系统中。
进一步地,安全客户端运行于Linux系统中,接入白名单管理后台,相应后台消息,下载白名单文件;TEE,即可信执行环境,存储白名单文件数据,提供白名单验证服务,依托TCM提供签名验签服务;TCM即可信密码模块,保存密钥,提供密钥签名验签服务。
一种可信计算软件白名单管理方法,如附图2所示,包括以下步骤:
S1.白名单生成过程;
S2.终端连接过程;
S3.白名单下发过程;
S4.安全客户端更新白名单过程。
进一步地,所述S1步骤中,用户打开Web页面,通过双因子认证登录白名单管理后台,进入软件包管理;通过Web页面将已开发好的软件包上传至后台,这里软件包格式可以是deb、rpm、tar或zip;软件包管理子系统调用白名单生成工具扫描软件包生成白名单,并使用SM2私钥对其进行签名,白名单生成方法参考下文白名单生成方法;白名单生成完成后,软件包管理子系统将白名单及其签名文件发送至文件服务子系统;根据软件包格式将其上传至相应的软件源,如deb包上传至apt源,rpm包上传至yum源,tar及zip上传至sftp;完成后,软件包管理子系统将生成一个软件包条目,用于白名单下发。
进一步地,所述S2步骤中,用户打开Web页面,通过双因子认证登录白名单管理后台,进入终端管理;用户根据终端设备型号/用途创建设备类型,得到ClassID;在设备类型下安装终端设备数量添加设备,得到每个终端设备的SecretID;将ClassID及SecretID配置到终端设备中的安全客户端中;安全客户端通过MQTT(TLS)协议使用ClassID和SecretID连接白名单管理后台;白名单管理后台终端管理子系统处理MQTT(TLS)验证ClassID及SecretID;终端管理子系统更新终端设备状态。
进一步地,所述S3步骤中,用户打开Web页面,通过双因子认证登录白名单管理后台,进入软件包管理;选择一个需要下发的软件包条目;选择需要下发的终端设备类型或终端设备,执行下发,下发操作可以是添加或删除白名单白名单管理后台将软件包名及其版本信息通过MQTT(TLS)发送给终端设备;终端设备安全客户端处理消息,解析软件包的本地依赖信息,将依赖包列表回传至白名单管理后台;白名单管理后台根据依赖信息检索软件包条目:
1)依赖不满足则返回错误;
2)依赖满足则封装白名单操作数据,并使用SM2私钥对数据进行签名,格式参考下文白名单下发方法。
进一步地,所述S4步骤中,安全客户端接收到白名单操作数据后,将操作数据通过TEE-CA提供的D-Bus接口传递给TEE-TA;TEE-TA在安全态下调用TCM验证白名单操作数据签名,返回验签结果给安全客户端:
1)验签通过安全客户端则根据操作数据中的白名单下载地址下载白名单及其签名文件
2)验签失败,安全客户端返回状态给白名单管理后台
安全客户端下载白名单完成后,通过TEE-CA的D-Bus通知TEE-TA;TEE-TA读取白名单,并跟上一步获取到的操作数据进行SM3摘要比对,比对通过则更新白名单,并通过TEE-CA返回更新结果给安全客户端;安全客户端反馈结果给白名单管理后台。
进一步地,上述白名单生成方法指软件包上传到白名单管理后台之后,白名单生成工具生成软件包的过程,包括如下步骤:
(1)使用国密SM2算法生成非对称公私钥对,公钥置于终端的TCM中,用于白名单及操作验签;私钥置于服务器用于白名单及操作的签名。
(2)白名单签名工具判断软件包格式,调用对应格式的解压命令解压软件包到一个临时目录中
(3)查找目录中的ELF文件、可执行文件、脚本文件,通过国密SM3算法计算器HASH值,生成一个HASH列表,将该HASH列表存储到指定文件中,该文件即为白名单数据文件,使用SM2私钥对白名单数据文件进行签名,该HASH列表文件及其签名构成该软件的白名单;
(4)删除存放解压文件的临时目录。
本方法优点:
①整个白名单生成无需软件包开发者介入,零侵入修改原始软件包数据;
②白名单只与文件HASH有关,与软件路径无关,修改软件安装路径或文件名称不影响白名单。
进一步地,如图4所示,上述白名单下发方法包括:白名单操作数据携带软件包依赖链的白名单信息,并进行签名;
白名单操作数据构成:①操作类型:添加、删除;②软件包数量:即本条消息中包含的“软件包信息”的条数;③签名长度:“操作数据签名”的字节数;④软件包信息:软件包及其依赖包的白名单信息,每个包一条;⑤操作签名数据:针对操作类型、软件包数量、签名长度、软件包信息[1...n]进行SM2签名;
单个软件包信息的构成:
①软件包名:包含名称、版本、平台架构、包格式
②HASH长度:白名单数据文件的HASH值字节数
③白名单文件HASH值:白名单数据文件的HASH值
本方法优点:
①操作数据的整个签名,当有中间人攻击时,被篡改的数据无法通过签名验证;
②操作包含软件包整个依赖链的白名单数据,不同终端软件环境不一致仍可使用。
如图5所示,本方法用到的白名单存储方法包括以下步骤:
①白名单通过TEE-TA加密存储在REE的文件系统中,相对无存储容量限制;
②白名单的存储是一个典型的大量读少量写的应用场景,为应对大量白名单存储查找的情况,在TEE-TA启动时将白名单数据加载到内存中缓存;
③缓存方法:
构建一个长度255的查找表,每个表元素都会一个指向HASH列表的指针;
如查找表[00]指向一个HASH列表,将以“00”开始的HASH值存储在该表中,不含“00”,子表只保存“00”之后的值;
④当需要验证HASH是否在白名单中时,以待验证的HASH值首字节为index,该index即为hash_prefix_table下标,从hash_prefix_table[index]指向的列表中循环比较,减少了比较量,极端情况下只有1/256的比较量;
⑤白名单有更新时,同步更新缓存表及存储文件,数据完整缓存在内存中,可高速比较。
白名单更新之后,TEE通过提供REE驱动及库,可支持REE中的各个应用软件基于白名单进行各种应用安全管理。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种可信计算软件白名单管理系统,其特征在于,包括白名单管理后台、终端设备,所述白名单管理后台部署于服务器端,包括Web服务、文件服务子系统、软件包管理子系统、终端设备管理子系统;所述终端设备包括安全客户端、TEE、TCM。
2.根据权利要求1所述的可信计算软件白名单管理系统,其特征在于,Web服务用于提供Web管理界面,通过Web浏览器,用户可访问Web页面进行各项操作;文件服务子系统用于存储白名单文件;软件包管理子系统包含白名单生成工具,自动生成白名单,存储软件包,下发软件包;终端设备管理子系统包括终端接入验证,终端信息管理;后台提供HTTPS接口,与DevOps集成,支持白名单的生成过程集成到DevOps系统中。
3.一种可信计算软件白名单管理方法,包括权利要求1或2任一项所述系统,其特征在于,包括以下步骤:
S1.白名单生成过程;
S2.终端连接过程;
S3.白名单下发过程;
S4.安全客户端更新白名单过程。
4.根据权利要求3所述的方法,其特征在于,所述S1步骤中,用户打开Web页面,通过双因子认证登录白名单管理后台,进入软件包管理;通过Web页面将已开发好的软件包上传至后台,软件包格式是deb、rpm、tar或zip任一种;软件包管理子系统调用白名单生成工具扫描软件包生成白名单,并使用SM2私钥对其进行签名。
5.根据权利要求4所述的方法,其特征在于,白名单生成方法包括:①使用国密SM2算法生成非对称公私钥对,公钥置于终端的TCM中,用于白名单及操作验签;私钥置于服务器用于白名单及操作的签名;②白名单签名工具判断软件包格式,调用对应格式的解压命令解压软件包到一个临时目录中;③查找目录中的ELF文件、可执行文件、脚本文件,通过国密SM3算法计算器HASH值,生成一个HASH列表,将该HASH列表存储到指定文件中,该文件即为白名单数据文件,使用SM2私钥对白名单数据文件进行签名,该HASH列表文件及其签名构成该软件的白名单;删除存放解压文件的临时目录。
6.根据权利要求3所述的方法,其特征在于,所述S2步骤中,用户根据终端设备型号或用途创建设备类型,得到ClassID;在设备类型下安装终端设备数量添加设备,得到每个终端设备的SecretID;将ClassID及SecretID配置到终端设备中的安全客户端中;安全客户端通过MQTT协议使用ClassID和SecretID连接白名单管理后台;白名单管理后台终端管理子系统处理MQTT验证ClassID及SecretID;终端管理子系统更新终端设备状态。
7.根据权利要求3所述的方法,其特征在于,所述S3步骤中,选择一个需要下发的软件包条目;选择需要下发的终端设备类型或终端设备,执行下发,下发操作可以是添加或删除白名单白名单管理后台将软件包名及其版本信息通过MQTT发送给终端设备;终端设备安全客户端处理消息,解析软件包的本地依赖信息,将依赖包列表回传至白名单管理后台;白名单管理后台根据依赖信息检索软件包条目。
8.根据权利要求7所述的方法,其特征在于,所述白名单管理后台根据依赖信息检索软件包条目结果包括:①依赖不满足则返回错误;②依赖满足则封装白名单操作数据,并使用SM2私钥对数据进行签名,采用白名单下发方式。
9.根据权利要求8所述的方法,其特征在于,所述白名单下发方式包括白名单操作数据携带软件包依赖链的白名单信息,并进行签名。
10.根据权利要求3所述的方法,其特征在于,所述S4步骤中,安全客户端接收到白名单操作数据后,将操作数据通过TEE-CA提供的D-Bus接口传递给TEE-TA;TEE-TA在安全态下调用TCM验证白名单操作数据签名,返回验签结果给安全客户端。
11.根据权利要求10所述的方法,其特征在于,返回验签结果包括:①验签通过安全客户端则根据操作数据中的白名单下载地址下载白名单及其签名文件;②验签失败,安全客户端返回状态给白名单管理后台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111227203.0A CN113918975A (zh) | 2021-10-21 | 2021-10-21 | 一种可信计算软件白名单管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111227203.0A CN113918975A (zh) | 2021-10-21 | 2021-10-21 | 一种可信计算软件白名单管理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918975A true CN113918975A (zh) | 2022-01-11 |
Family
ID=79242321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111227203.0A Pending CN113918975A (zh) | 2021-10-21 | 2021-10-21 | 一种可信计算软件白名单管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918975A (zh) |
-
2021
- 2021-10-21 CN CN202111227203.0A patent/CN113918975A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102830992B (zh) | 插件加载方法及系统 | |
US8230415B1 (en) | On-demand advertising of software packages | |
US6367012B1 (en) | Embedding certifications in executable files for network transmission | |
US7577848B2 (en) | Systems and methods for validating executable file integrity using partial image hashes | |
EP2748751B1 (en) | System and method for day-zero authentication of activex controls | |
US8667487B1 (en) | Web browser extensions | |
US8254568B2 (en) | Secure booting a computing device | |
US11115201B2 (en) | Downloading of data to secure devices | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN108363580A (zh) | 应用程序安装方法、装置、计算机设备和存储介质 | |
WO2014150478A1 (en) | System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware | |
CN110555293A (zh) | 用于保护数据的方法、装置、电子设备和计算机可读介质 | |
CN104486086A (zh) | 数字签名方法及移动终端和服务器 | |
CN112241298A (zh) | 页面显示方法及装置、存储介质、电子装置 | |
CN115248919A (zh) | 一种函数接口的调用方法、装置、电子设备及存储介质 | |
CN116235174A (zh) | 用于执行加密算法的设备和方法 | |
JP7439067B2 (ja) | ファイルシステムの検証とインストール | |
CN112416395A (zh) | 一种热修复更新方法和装置 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
CN113918975A (zh) | 一种可信计算软件白名单管理方法及系统 | |
CN112163224A (zh) | 一种安卓软件完整性校验方法和装置 | |
CN104484198A (zh) | 一种安装应用程序的方法和装置 | |
US11764968B2 (en) | Verification of valid client library binary file on connecting to server system | |
CN114297679B (zh) | 一种镜像加密传输与升级的方法 | |
CN109829285A (zh) | 一种数字签名方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |