CN114047948B - 可重构的可信密码模块模拟器、实现方法及模拟重构方法 - Google Patents

可重构的可信密码模块模拟器、实现方法及模拟重构方法 Download PDF

Info

Publication number
CN114047948B
CN114047948B CN202111313466.3A CN202111313466A CN114047948B CN 114047948 B CN114047948 B CN 114047948B CN 202111313466 A CN202111313466 A CN 202111313466A CN 114047948 B CN114047948 B CN 114047948B
Authority
CN
China
Prior art keywords
simulator
forming
message
module
command
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.)
Active
Application number
CN202111313466.3A
Other languages
English (en)
Other versions
CN114047948A (zh
Inventor
胡俊
蔡鹏�
刘赢
叶林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trusted Computing Technology Wuxi Co ltd
Original Assignee
Trusted Computing Technology Wuxi Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Trusted Computing Technology Wuxi Co ltd filed Critical Trusted Computing Technology Wuxi Co ltd
Priority to CN202111313466.3A priority Critical patent/CN114047948B/zh
Publication of CN114047948A publication Critical patent/CN114047948A/zh
Application granted granted Critical
Publication of CN114047948B publication Critical patent/CN114047948B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种可重构的可信密码模块模拟器、实现方法及模拟重构方法,解决现有模拟器无法针对应用场景进行功能拓展和功能调整的技术问题。实现方法包括形成加解密过程中核心算法的功能子模块的集合;形成功能子模块的关联信息的可定义存储结构;根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程。该方法基于消息驱动模式,将模拟器拆分为可重组与替换的功能模块集合,并通过软件定义数据结构的方法,提供对模拟器内部数据结构的配置数据模板化处理能力,模拟器的内部结构、命令格式均可以软件定义方式实现和修改,保证了模拟器具有良好的兼容性和拓展性。

Description

可重构的可信密码模块模拟器、实现方法及模拟重构方法
技术领域
本发明涉及加密技术领域,具体涉及一种可重构的可信密码模块模拟器、实现方法及模拟重构方法。
背景技术
可信计算是信息系统可信运行的安全保障,以密码学为基础,以可信芯片为可信源头,通过可信链条来保障信息系统的可信性。国家标准规定可信系统的信任起点为具备可信密码功能的可信密码模块(TCM)。在国际标准中的可信平台模块(TPM)在功能方面也可满足TCM的需求。
为方便可信密码功能的开发和测试,可信密码模块模拟器一般为模拟特定标准的可信密码模块而设计,其内部功能基本固化。目前可信密码模块有TCM、TCM2.0、TPM和TPM2.0等多种不同类型,基于可信密码模块的科研、教学和开发对可信密码模块模拟器具有广泛需求,同时云计算、物联网等特殊场景还对于可信密码模块有特殊的需求。现有的可信密码模块模拟器在兼容性和扩展性上还不能满足应用的灵活性。现有技术中,一种TPM-Emulator可信密码模块模拟器实现了硬件TPM的功能模拟,并且提供命令(或指令)流兼容TCG的TPM标准[2],但其内部结构固化,不易进行拓展。一种swTPM(Software TPM)可信密码模块模拟器具备一种TPM proxy机制,使其可以在模拟器与真实TPM之间切换,但模拟器依赖大量的外部库导致其缺乏独立性,且swTPM的内部实现缺少结构化方法,拓展功能需要较大的工作量。而可信密码模块模拟器方案,可独立编译,有较好的可移植性,但模拟器本身没有清晰的模块结构,不利于功能拓展。
发明内容
鉴于上述问题,本发明实施例提供一种可重构的可信密码模块模拟器、实现方法及模拟重构方法,解决现有模拟器无法针对应用场景进行功能拓展和功能调整的技术问题。
本发明实施例的可重构的可信密码模块模拟器实现方法,包括:
形成加解密过程中核心算法的功能子模块的集合;
形成功能子模块的关联信息的可定义存储结构;
根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程。
本发明一实施例中,所述形成加解密过程中核心算法的功能子模块的集合包括:
形成接口子模块,以驱动程序在内核运行响应调用程序请求,形成调用程序方向与模拟器方向的数据报文双向传输通道;
形成消息预处理子模块,以建立模拟器方向的命令消息转化通道和调用程序方向的数据流转化通道;
形成功能子模块集合,以匹配命令消息形成专用功能的数据处理过程。
本发明一实施例中,所述形成功能子模块的关联信息的可定义存储结构包括:
通过键-值对形成可定义存储结构;
通过可定义存储结构建立模拟器内部数据的结构化存储;
通过可定义存储结构建立模拟器内部命令函数的处理逻辑的结构化存储。
本发明一实施例中,所述根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程包括:
接收用户空间的调用命令形成二进制数据;
将二进制数据转换为消息格式;
根据消息传递路由将命令消息发往目标功能子模块以实现命令分流;
目标功能子模块将消息反序列化为数据结构格式,并调用对应命令处理函数,若命令无需授权,则直接进行命令处理;若命令需要授权,函数进行输入校验后进行功能处理;
得到处理结果后再进行输出校验;
处理结果序列化后以消息格式返回并将消息转换为二进制数据发送用户空间。
本发明一实施例中,还包括:
若命令对模拟器内部数据结构有修改,复制命令消息进行存储,完成存储文件的更新。
本发明实施例的可重构的可信密码模块模拟器实现系统,包括:
存储器,用于存储上述的可重构的可信密码模块模拟器实现方法的处理过程的程序代码;
处理器,用于执行所述程序代码。
本发明实施例的可重构的可信密码模块模拟器实现系统,包括:
功能组件形成装置,用于形成加解密过程中核心算法的功能子模块的集合;
数据结构形成装置,用于形成功能子模块的关联信息的可定义存储结构;
消息路由配置装置,用于根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程。
本发明实施例的可重构的可信密码模块模拟器,利用上述的可重构的可信密码模块模拟器实现方法形成。
本发明实施例的模拟重构方法,利用上述可信密码模块模拟器,至少包括以下一种模拟重构过程:
对模拟器组成模块进行替换;
对模拟器进行功能模块扩展;
对模拟器现有数据结构进行更新。
本发明实施例的可重构的可信密码模块模拟器、实现方法及模拟重构方法提供了一种新的可信密码模块模拟器设计方法和模拟器。该方法基于消息驱动模式,将模拟器拆分为可重组与替换的功能模块集合,并通过软件定义数据结构的方法,提供对模拟器内部数据结构的配置数据模板化处理能力,模拟器的内部结构、命令格式均可以软件定义方式实现和修改,使模拟器具备了重构能力。保证了模拟器具有良好的兼容性和拓展性。模拟器可以完成对模拟器组成模块进行替换、对模拟器进行功能模块扩展和对模拟器现有数据结构进行更新的灵活重构功能。
附图说明
图1所示为本发明一实施例可重构的可信密码模块模拟器实现方法的主要流程示意图。
图2所示为本发明一实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的主要模块连接示意图。
图3所示为本发明一实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的命令处理流程示意图。
图4所示为本发明一实施例可重构的可信密码模块模拟器实现系统的架构示意图。
图5所示为本发明一实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的一种模拟重构方法中监控功能架构示意图。
图6所示为本发明一实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的一种模拟重构方法中模拟器虚拟化架构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明白,以下结合附图及具体实施方式对本发明作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例可重构的可信密码模块模拟器实现方法如图1所示。在图1中,在可信密码模块模拟器中,本实施例主要包括:
步骤100:形成加解密过程中核心算法的功能子模块的集合。
本领域技术人员可以理解,利用TCM模块的加解密过程包括加密或解密过程,核心算法通过模拟器内置的算法硬件电路和/或软件仿真电路形成。核心算法可以根据控制论原理进行功能解耦,例如,在现有计算机网络原理中可以将单一系统中的控制功能与数据转发进行解耦。
本实施例采用将核心算法解耦形成一系列基础功能的集合,在基础功能间进行有序数据传达形成加解密过程。本实施例围绕至少一个单一功能形成具有数据确定输入输出途径的功能子模块。
步骤200:形成功能子模块的关联信息的可定义存储结构。
本领域技术人员可以理解,功能子模块的功能差异必然导致功能子模块的相关数据属性和功能命令的信息复杂性。
本实施例采用可定义存储结构建立适配功能子模块的关联信息的数据属性数据结构和功能命令数据结构。基于可定义存储结构进行关联信息中例如数据属性、命令参数的识别和存储,基于可定义存储结构进行关联信息中例如数据属性和命令参数的调整。
步骤300:根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程。
本领域技术人员可以理解,消息作为关联信息的数据载体只形成数据传递不能形成控制传递。配置数据包括但不限于初始输入数据、初始属性和初始命令。确定消息序列中的消息传递方向确定功能子模块的组合序列,消息中承载传递方向上功能子模块的关联信息,关联信息包括但不限于输入数据、命令数据和功能输出数据,进而形成配置数据对应的的加解密中间过程和处理结果。
本发明实施例可重构的可信密码模块模拟器实现方法提供了一种新的可信密码模块模拟器设计方法。该方法基于消息驱动模式,将模拟器拆分为可重组与替换的功能模块集合,并通过软件定义数据结构的方法,提供对模拟器内部数据结构的配置数据模板化处理能力,模拟器的内部结构、命令格式均可以软件定义方式实现和修改,使模拟器具备了重构能力。保证了模拟器具有良好的兼容性和拓展性。
本发明一实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的主要模块连接如图2所示。结合图1所示,在本发明一实施例中,建立功能子模块的集合包括:
步骤110:形成接口子模块,以驱动程序在内核运行响应调用程序请求,形成调用程序方向与模拟器方向的数据报文双向传输通道。
接口子模块具体体现为模拟器驱动程序。在本发明一实施例中,双向传输通道以Netlink协议实现,利用Netlink套接字实现数据报文的通讯方式,建立起模拟器与调用程序间的数据通道,允许在内核与用户空间之间双向传递数据。
步骤120:形成消息预处理子模块,以建立模拟器方向的命令消息转化通道和调用程序方向的数据流转化通道。
模拟器方向的命令消息转化通道将收到的数据流转化为命令消息,在模拟器内部各功能子模块间传递完成命令处理过程,产生命令结果消息。调用程序方向的数据流转化通道将命令结果消息转化为返回的二进制数据流返回给驱动程序,由驱动程序发送给调用程序。
步骤130:形成功能子模块集合,以匹配命令消息形成专用功能的数据处理过程。
功能子模块集合包括若干功能子模块,用于实现模拟器中各命令的主体功能。在本发明一实施例中,功能子模块由模拟器各类功能通过聚类设计进行解耦而形成。不同的功能子模块将接收并处理承载不同类型命令的消息。功能子模块中包含TCM功能的集合,功能子模块包括但不限于密钥模块、PCR模块和授权模块等。
步骤140:形成存储模块,以将可信密码模块的工作更新数据写入内部的存储文件,并在模拟器重新启动时恢复。
存储模块与可信密码模块进行内部专用数据连接,实现工作更新数据的可靠存储和可靠恢复。
本发明实施例可重构的可信密码模块模拟器实现方法通过对模拟器基本功能的解耦形成单一子功能的最大化集合,并提供相应的数据输入输出和可靠存储的基本结构。为模拟器内部功能调整提供可软件重构的技术基础。
如图1所示,在本发明一实施例中,建立可定义存储结构包括:
步骤210:通过键-值对形成可定义存储结构。
本本领域技术人员可以理解,键-值对的构造特征可以形成属性类型与属性内容的对应关系。键-值对的构造特征根据键的解释模板可以形成复杂数据结构的二维结构表达形式。在本发明一实施例中,采用Cube架构提供的json格式描述可定义存储结构。
步骤220:通过可定义存储结构建立模拟器内部数据的结构化存储。
内部数据包括但不限于每个功能子模块的输入数据、属性数据、功能结果数据、输出数据、功能调节数据等。
步骤230:通过可定义存储结构建立模拟器内部命令函数的处理逻辑的结构化存储。
函数处理逻辑包括但不限于通用的结构解析、校验、格式转换等操作命令,以及通用命令的初始化处理和命令结果的返回等处理过程的逻辑描述。以及专用的消息的数据流-消息格式转换、哈希验证、哈希生成、秘钥生成、秘钥验证等操作命令,以及专用命令的初始化处理和命令结果的返回等处理过程。
本发明实施例可重构的可信密码模块模拟器实现方法为形成数据和命令的结构化存储建立可以软件定义和调整的键值存储结构,实现了数据结构与功能处理工作的隔离,数据的处理过程无需关注其原始数据结构的调整,可有效减少模拟器在重构时的工作量。
本发明一实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的命令处理流程如图3所示。结合图1所示,在本发明一实施例中,形成确定加解密功能执行过程包括:
步骤310:接收用户空间的调用命令形成二进制数据。
通过上述实施例中的接口子模块实现。
步骤320:将二进制数据转换为消息格式。
通过上述实施例中的消息预处理子模块。
步骤330:根据消息传递路由将命令消息发往目标功能子模块以实现命令分流。
结合配置数据确定的消息传递路由将命令消息发往目标功能子模块。
步骤340:目标功能子模块将消息反序列化为数据结构格式,并调用对应命令处理函数,若命令无需授权,则直接进行命令处理;若命令需要授权,函数进行输入校验后进行功能处理。
目标功能子模块通过数据结构中体现的命令处理函数进行参数设置及功能处理。
步骤350:得到处理结果后再进行输出校验。
步骤360:处理结果序列化后以消息格式返回并将消息转换为二进制数据发送用户空间。
处理结果序列化排除可能的控制行为。将消息转换为二进制数据采用上述实施例中的消息预处理子模块。通过上述实施例中的接口子模块二进制数据发送用户空间。
本发明实施例可重构的可信密码模块模拟器实现方法利用消息驱动的数据传输方法协同各个功能子模块。多个功能子模块的命令处理行为被携带命令的消息按消息路由依次触发,最终形成完整的命令处理流程。
如图1所示,在本发明一实施例中,形成确定加解密功能执行过程建立可定义存储结构还包括:
步骤370:若命令对模拟器内部数据结构有修改,复制命令消息进行存储,完成存储文件的更新。
通过上述实施例中的存储模块实现。
本发明实施例可重构的可信密码模块模拟器实现方法通过可定义存储结构实现了模拟器内部功能子模块立案信息的数据结构的调整和更新,保证了模拟器针对应用场景的扩展性和灵活性。
在实际应用中,基于本发明实施例可重构的可信密码模块模拟器实现方法形成一种可信密码模块模拟器,包括接口子模块、消息预处理子模块、功能子模块集合和存储模块,还包括可定义存储结构和基于消息的命令处理流程。
其执行效率可以接受。设置可重构可信密码模块模拟器的实验和测试环境为2.20GHz主频的Intel Xeon E5 CPU;1GB内存;Centos 7.9操作系统,Linux 3.10内核,下表为几种基本可信命令的处理速率,是每条命令循环测试1 000次并取平均值的结果:
Figure BDA0003342882890000091
可以看出,可重构可信密码模块模拟器对于基本可信命令的执行性能从用户角度讲在可接受范围内。经分析,模拟器在执行命令时性能延迟的主要原因来自于Cube架构中模块间消息传递和等待的时间。
本发明一实施例可重构的可信密码模块模拟器实现系统,包括:
存储器,用于存储上述实施例可重构的可信密码模块模拟器实现方法的处理过程的程序代码;
处理器,用于执行上述实施例可重构的可信密码模块模拟器实现方法的处理过程的程序代码。
处理器可以采用DSP(Digital Signal Processor)数字信号处理器、FPGA(Field-Programmable Gate Array)现场可编程门阵列、MCU(Microcontroller Unit)系统板、SoC(system on a chip)系统板或包括I/O的PLC(Programmable Logic Controller)最小系统。
相应可重构的可信密码模块模拟器实现方法,本发明一实施例可重构的可信密码模块模拟器实现系统如图4所示。在图4中,本实施例应用在可信密码模块模拟器中,包括:
功能组件形成装置10,用于形成加解密过程中核心算法的功能子模块的集合;
数据结构形成装置20,用于形成功能子模块的关联信息的可定义存储结构;
消息路由配置装置30,用于根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程。
如图4所示,在本发明一实施例中,功能组件形成装置10包括:
第一模块形成单元11,用于形成接口子模块,以驱动程序在内核运行响应调用程序请求,形成调用程序方向与模拟器方向的数据报文双向传输通道;
第二模块形成单元12,用于形成消息预处理子模块,以建立模拟器方向的命令消息转化通道和调用程序方向的数据流转化通道;
第三模块形成单元13,用于形成功能子模块集合,以匹配命令消息形成专用功能的数据处理过程;
第四模块形成单元14,用于形成存储模块,以将可信密码模块的工作更新数据写入内部的存储文件,并在模拟器重新启动时恢复。
如图4所示,在本发明一实施例中,数据结构形成装置20包括:
结构定义单元21,用于通过键-值对形成可定义存储结构;
数据映射单元22,用于通过可定义存储结构建立模拟器内部数据的结构化存储;
命令映射单元23,用于通过可定义存储结构建立模拟器内部命令函数的处理逻辑的结构化存储。
如图4所示,在本发明一实施例中,消息路由配置装置30包括:
数据流形成单元31,用于接收用户空间的调用命令形成二进制数据;
消息形成单元32,用于将二进制数据转换为消息格式;
消息路由单元33,用于根据消息传递路由将命令消息发往目标功能子模块以实现命令分流;
命令形成单元34,用于目标功能子模块将消息反序列化为数据结构格式,并调用对应命令处理函数。若命令无需授权,则直接进行命令处理;若命令需要授权,函数进行输入校验后进行功能处理;
结果输出单元35,用于得到处理结果后再进行输出校验;
输出反馈单元36,用于处理结果序列化后以消息格式返回并将消息转换为二进制数据发送用户空间。
如图4所示,在本发明一实施例中,消息路由配置装置30还包括:
结构更新单元37,用于若命令对模拟器内部数据结构有修改,复制命令消息进行存储,完成存储文件的更新。
基于本发明实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的一种模拟重构方法,主要包括对模拟器组成模块进行替换。在本发明一实施例中,针对在同一台机器的多个docker环境中构建不同的tcm访问示例,包括:
通过修改配置数据形成对模拟器模块配置文件和消息路由配置文件的修改;
将形成数据报文双向传输通道的Netlink通用连接模块替换为TCP通用连接模块。
本发明实施例的模拟重构方法,解决了docker环境单内核驱动的结构将导致Netlink协议无法区分多个Docker的缺陷。模拟器可以通过简单地替换接口模块来实现对docker环境的支持:原型的接口模块为支持netlink协议的通用连接模块,我们通过修改模块配置文件和消息路由配置,将其替换为TCP通用连接模块即可支持docker下的模拟器访问,模拟器中模块的替换对下层模块透明。
基于本发明实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的一种模拟重构方法,主要包括对模拟器进行功能模块扩展。在本发明一实施例中,针对现有模拟器增加监控子模块的架构如图5所示,包括:
通过修改配置数据形成对模拟器模块配置文件和消息路由配置文件的修改;
添加“复制消息到监控子模块”的复制消息路由;通过监控子模块数据结构形成监控命令处理通过复制消息路由获得的运行状态数据。
本发明实施例的模拟重构方法,用于提供监控运行状态和导出内部数据的能力,监控子模块可以实时监控模拟器处理过程,并可根据需求改变监控内容和对监控内容进行实时分析,对学习模拟器和支持tcm开发调试都有实际价值。
基于本发明实施例可重构的可信密码模块模拟器实现方法形成的可信密码模块模拟器的一种模拟重构方法,主要包括对模拟器现有数据结构进行更新,在本发明一实施例中,针对现有模拟器应用场景虚拟化的架构如图6所示,包括:
修改消息预处理子模块的数据结构,将消息中的vTCM命令头附加在转换为TCM命令消息中附加的消息扩展项中,与消息一同转发;
对应功能子模块根据消息扩展项作为选择实例的依据,并使用标准TCM命令进行功能处理。
本发明实施例的模拟重构方法,基于现有技术提出了一种虚拟TCM方案,该方案利用虚拟化软件Qemu将宿主机上可信密码模块设备映射到虚拟机中,并在宿主机的vTCM驱动程序中为标准TCM命令添加vTCM命令头以支持虚拟机与vTCM的绑定关系。本示例基于该方案,并通过可信密码模块模拟器的重构,使其提供虚拟化可信密码模块支持。
本实施例在原有模拟器基础上修改消息预处理模块,消息中的vTCM命令头将在该模块被转换为TCM命令消息中附加的消息扩展项,与消息一同转发。而功能子模块以该消息扩展项作为选择实例的依据,并使用与单机模拟器类似的流程完成TCM命令的处理。
实际应用中,由于使用Qemu提供可信密码模块虚拟化功能必须遵循TPM标准,这导致虚拟机启动过程中会产生少部分TPM标准命令,而可信密码模块模拟器原型使用TCM标准,因此在虚拟环境中应用本方案可信密码模块模拟器时存在着两种标准难以兼容的问题。为解决该问题,我们增加一个TPM命令兼容模块完成TPM命令的过滤工作。当收到TPM格式命令时,该模块将对其拦截处理并直接返回结果;当命令为TCM格式时,该模块则按照正常流程转发消息,由功能子模块执行TCM命令的处理过程。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (8)

1.一种可重构的可信密码模块模拟器实现方法,其特征在于,包括:
形成加解密过程中核心算法的功能子模块的集合;
形成功能子模块的关联信息的可定义存储结构;
根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程;
所述形成加解密过程中核心算法的功能子模块的集合包括:
形成接口子模块,以驱动程序在内核运行响应调用程序请求,形成调用程序方向与模拟器方向的数据报文双向传输通道;
形成消息预处理子模块,以建立模拟器方向的命令消息转化通道和调用程序方向的数据流转化通道;
形成功能子模块集合,以匹配命令消息形成专用功能的数据处理过程。
2.如权利要求1所述的可重构的可信密码模块模拟器实现方法,其特征在于,所述形成功能子模块的关联信息的可定义存储结构包括:
通过键-值对形成可定义存储结构;
通过可定义存储结构建立模拟器内部数据的结构化存储;
通过可定义存储结构建立模拟器内部命令函数的处理逻辑的结构化存储。
3.如权利要求1所述的可重构的可信密码模块模拟器实现方法,其特征在于,所述根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程包括:
接收用户空间的调用命令形成二进制数据;
将二进制数据转换为消息格式;
根据消息传递路由将命令消息发往目标功能子模块以实现命令分流;
目标功能子模块将消息反序列化为数据结构格式,并调用对应命令处理函数,若命令无需授权,则直接进行命令处理;若命令需要授权,函数进行输入校验后进行功能处理;
得到处理结果后再进行输出校验;
处理结果序列化后以消息格式返回并将消息转换为二进制数据发送用户空间。
4.如权利要求1所述的可重构的可信密码模块模拟器实现方法,其特征在于,还包括:
若命令对模拟器内部数据结构有修改,复制命令消息进行存储,完成存储文件的更新。
5.一种可重构的可信密码模块模拟器实现系统,其特征在于,包括:
存储器,用于存储如权利要求1至4任一所述的可重构的可信密码模块模拟器实现方法的处理过程的程序代码;
处理器,用于执行所述程序代码。
6.一种可重构的可信密码模块模拟器实现系统,其特征在于,包括:
功能组件形成装置,用于形成加解密过程中核心算法的功能子模块的集合;
数据结构形成装置,用于形成功能子模块的关联信息的可定义存储结构;
消息路由配置装置,用于根据配置数据形成确定功能子模块间的消息序列,通过消息序列形成关联信息的确定消息传递路由,通过确定消息传递路由形成确定加解密过程;
所述功能组件形成装置包括:
第一模块形成单元,用于形成接口子模块,以驱动程序在内核运行响应调用程序请求,形成调用程序方向与模拟器方向的数据报文双向传输通道;
第二模块形成单元,用于形成消息预处理子模块,以建立模拟器方向的命令消息转化通道和调用程序方向的数据流转化通道;
第三模块形成单元,用于形成功能子模块集合,以匹配命令消息形成专用功能的数据处理过程。
7.一种可重构的可信密码模块模拟器,其特征在于,利用如权利要求1至4任一所述的可重构的可信密码模块模拟器实现方法形成。
8.一种模拟重构方法,其特征在于,利用如权利要求7的可信密码模块模拟器,至少包括以下一种模拟重构过程:
对模拟器组成模块进行替换;
对模拟器进行功能模块扩展;
对模拟器现有数据结构进行更新。
CN202111313466.3A 2021-11-08 2021-11-08 可重构的可信密码模块模拟器、实现方法及模拟重构方法 Active CN114047948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111313466.3A CN114047948B (zh) 2021-11-08 2021-11-08 可重构的可信密码模块模拟器、实现方法及模拟重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111313466.3A CN114047948B (zh) 2021-11-08 2021-11-08 可重构的可信密码模块模拟器、实现方法及模拟重构方法

Publications (2)

Publication Number Publication Date
CN114047948A CN114047948A (zh) 2022-02-15
CN114047948B true CN114047948B (zh) 2022-09-16

Family

ID=80207479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111313466.3A Active CN114047948B (zh) 2021-11-08 2021-11-08 可重构的可信密码模块模拟器、实现方法及模拟重构方法

Country Status (1)

Country Link
CN (1) CN114047948B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115153A (zh) * 2012-02-20 2014-10-22 英特尔公司 进入安全系统环境的定向唤醒
CN111158906A (zh) * 2019-12-19 2020-05-15 北京可信华泰信息技术有限公司 一种主动免疫可信云系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599025B (zh) * 2009-07-07 2012-07-18 武汉大学 可信密码模块安全虚拟化方法
CN106127059B (zh) * 2016-06-30 2019-03-29 中国船舶重工集团公司第七0九研究所 一种arm平台上可信密码模块的实现和服务方法
WO2019005098A1 (en) * 2017-06-30 2019-01-03 Go Logic Decision Time, Llc METHODS AND SYSTEMS FOR PROJECTIVE ASSERTION SIMULATION
CN110737628A (zh) * 2019-10-17 2020-01-31 辰芯科技有限公司 一种可重构处理器和可重构处理器系统
CN112291237A (zh) * 2020-10-28 2021-01-29 山东超越数控电子股份有限公司 一种基于国产fpga实现软件定义的可重构对称加密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115153A (zh) * 2012-02-20 2014-10-22 英特尔公司 进入安全系统环境的定向唤醒
CN111158906A (zh) * 2019-12-19 2020-05-15 北京可信华泰信息技术有限公司 一种主动免疫可信云系统

Also Published As

Publication number Publication date
CN114047948A (zh) 2022-02-15

Similar Documents

Publication Publication Date Title
US10061731B1 (en) Selectable peripheral logic in programmable apparatus
US9348771B1 (en) Cloud-based instrument driver system
Zhang et al. NFV platforms: Taxonomy, design choices and future challenges
US10212045B2 (en) Method and system for testing and analyzing management servers
US20180285134A1 (en) Emulation of hardware components
CN116028292B (zh) 用于远程直接内存访问仿真验证的仿真验证系统及方法
CN112527647B (zh) 基于NS-3的Raft共识算法测试系统
Quraishi et al. A survey of system architectures and techniques for fpga virtualization
US20220237111A1 (en) Distributed immutable data object testing
CN111123737A (zh) 一种数字硬件虚拟仿真系统
CN103092676A (zh) 虚拟机集群的模拟输入输出方法、装置及系统
CN111459606A (zh) 一种虚拟化下快速创建虚拟机的方法及服务器
CN117032812B (zh) 服务器的管理方法、设备、装置、存储介质和电子设备
CN114047948B (zh) 可重构的可信密码模块模拟器、实现方法及模拟重构方法
CN115384526A (zh) 调试系统和调试方法
CN115202907A (zh) 一种应用程序接口的运行方法、系统、计算机设备及介质
Skalicky et al. A unified hardware/software MPSoC system construction and run-time framework
CN111221687B (zh) 一种云存储测试系统和方法
Han et al. Design of embedded remote software update system based on FPGA+ ARM
JP3504572B2 (ja) 論理回路のエミュレータ
CN112764995A (zh) 一种服务器硬件资源监控方法、装置和介质
WO2019021898A1 (ja) 開発支援装置
CN116610516B (zh) 一种基于设备数字孪生的物联网编程运维底座系统及方法
US20230289500A1 (en) Method and system for building hardware images from heterogeneous designs for eletronic systems
CN111367624B (zh) 一种SONiC系统建立仿真平台的方法和设备

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
GR01 Patent grant
GR01 Patent grant