掌桥专利:专业的专利平台
掌桥专利
首页

基于可信计算的软件定义边界身份认证密钥管理方法

文献发布时间:2023-06-19 19:28:50


基于可信计算的软件定义边界身份认证密钥管理方法

技术领域

本发明涉及电通信技术领域,尤其涉及一种基于可信计算的软件定义边界身份认证密钥管理方法。

背景技术

软件定义边界(Software-defined-perimeter,SDP)作为基于零信任(ZeroTrust)理念的新一代网络安全模型,以动态的方式保护现代网络。该框架遵循“先认证,后连接”的访问方式。客户端在访问网关之前,要先到控制端进行身份认证,控制端是通过判断客户端是否拥有与自己相同的用户认证密钥来识别合法的客户端。当前SDP,客户端初始的身份认证密钥采用离线或在线协议来交付,之后的身份认证密钥由前一次的密钥产生。

采用上述方式,用户认证的对称密钥是明文存放在客户端,很容易被泄露后篡改。

发明内容

本发明的目的在于提供一种基于可信计算的软件定义边界身份认证密钥管理方法,旨在解决用户认证的对称密钥是明文存放在客户端,容易被泄露后篡改的问题。

为实现上述目的,本发明提供了一种基于可信计算的软件定义边界身份认证密钥管理方法,包括以下步骤:

客户端创建用户认证密钥;

所述客户端将所述用户认证密钥复制,得到复制数据;

所述控制端对所述复制数据进行完整性校验,校验通过,完成所述用户认证密钥的共享;

所述控制端部署防火墙;

所述客户端使用所述用户认证密钥与所述控制端进行身份认证,认证通过,所述控制端在所述防火墙添加指定端口与所述客户端建立双向连接。

其中,所述客户端创建用户认证密钥的具体方式为:

客户端对可信平台模块进行初始化工作;

初始化后的所述可信平台模块进行自检;

所述客户端使用自检通过的所述可信平台模块基于用户认证密钥提供模板结构生成用户认证密钥。

其中,所述客户端使用自检通过的所述可信平台模块基于用户认证密钥提供模板结构生成用户认证密钥的具体方式为:

所述客户端使用自检通过的所述可信平台模块基于用户认证密钥提供模板结构使用密钥生成器产生对称密钥,并将所述对称密钥返回给用户;

所述可信平台模块通过存储父密钥的密钥种子采用对称加密方法对所述对称密钥进行加密保护,得到用户认证密钥。

其中,所述客户端将所述用户认证密钥复制,得到复制数据的具体方式为:

所述客户端调用复制数据生成接口将所述用户认证密钥的密钥句柄复制,得到复制数据。

其中,所述客户端调用复制数据生成接口将所述用户认证密钥的密钥句柄复制,得到复制数据的具体方式为:

所述客户端调用复制数据生成接口对所述用户认证密钥进行检验;

判断检验通过的所述用户认证密钥的新父密钥句柄,得到判断结果;

基于所述判断结果,用加密密钥对所述用户认证密钥的隐私部分进行加密和哈希计算,得到第一计算结果;

用所述密钥种子生成种子加密密钥和HMAC密钥分别对所述第一计算结果进行处理,得到复制数据。

其中,所述用所述密钥种子生成种子加密密钥和HMAC密钥分别对所述第一计算结果进行处理,得到复制数据的具体方式为:

用所述密钥种子生成种子加密密钥和HMAC密钥;

使用所述种子加密密钥对所述第一计算结果进行加密,得到第二计算结果;

使用所述HMAC密钥对所述第一计算结果进行HMAC运算,得到运算结果;

将所述第一计算结果、所述运算结果、所述新父密钥句柄、所述加密密钥和所述密钥种子打包,得到复制数据。

其中,所述控制端对复制的所述用户认证密钥进行完整性校验,校验通过,完成所述用户认证密钥的共享的具体方式为:

所述控制端调用密钥导入接口将所述复制数据载入;

对所述复制数据的所述新父密钥句柄、所述加密密钥和所述密钥种子进行检验;

将检验通过所述密钥种子和所述新父密钥句柄恢复所述HAMC密钥,同时对所述第二计算结果进行验证,验证通过,对所述第二计算结果进行解密,得到所述第一计算结果;

基于所述第一计算结果得到所述用户认证密钥,并对所述用户认证密钥进行完整性校验,校验通过,完成所述用户认证密钥的共享。

其中,所述客户端使用所述用户认证密钥与所述控制端进行身份认证,认证通过,所述控制端在所述防火墙添加指定端口与所述客户端建立双向连接的具体方式为:

所述客户端使用所述用户认证密钥生成敲门包发送给所述控制端;

所述控制端使用所述用户认证密钥基于所述敲门包对用户的身份进行认证,认证通过,所述控制端在所述防火墙添加指定端口;

所述客户端和所述控制端通过所述指定窗口建立双向连接。

其中,在步骤所述客户端使用所述用户认证密钥与所述控制端进行身份认证,认证通过,所述控制端在所述防火墙添加指定端口与所述客户端建立双向连接之后,所述方法还包括:

所述客户端通过所述用户认证密钥进行密钥更新,得到更新密钥,并将所述更新密钥迁徙至所述控制端后进行身份认证建立双向连接。

其中,所述客户端通过所述用户认证密钥进行密钥更新,得到更新密钥,并将所述更新密钥迁徙至所述控制端后进行身份认证建立双向连接的具体方式为:

所述客户端在可信平台模块调用所述用户认证密钥,对所述用户认证密钥进行初始化,然后对初始化后的所述用户认证密钥进行计算,得到更新密钥;

所述客户端将所述更新密钥迁徙至所述控制端后进行身份认证建立双向连接。

本发明的一种基于可信计算的软件定义边界身份认证密钥管理方法,通过客户端创建用户认证密钥;所述客户端将所述用户认证密钥复制,得到复制数据;所述控制端对所述复制数据进行完整性校验,校验通过,完成所述用户认证密钥的共享;所述控制端部署防火墙;所述客户端使用所述用户认证密钥与所述控制端进行身份认证,认证通过,所述控制端在所述防火墙添加指定端口与所述客户端建立双向连接,本发明通过创建用户认证密钥实现对对称密钥的加密后进行身份认证,解决了用户认证的对称密钥是明文存放在客户端,容易被泄露后篡改的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是客户端与控制端认证流程图。

图2是用户、客户端和控制端的构架图。

图3是用户认证密钥提供模板结构图。

图4是用户认证密钥生成。

图5是TPM2_Create实现的流程图。

图6是用户认证密钥复制流程图。

图7是TPM2_Duplicate()实现的流程图。

图8TPM2_Import()实现的流程图。

图9是身份认证密钥由前一次的密钥生成的具体算法流程图。

图10是生成用户认证密钥。

图11是客户端TPM执行流程图。

图12是用户认证密钥迁移流程图。

图13是客户端验证图。

图14是客户端与控制器认证结果图。

图15是本发明提供的一种基于可信计算的软件定义边界身份认证密钥管理方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

请参阅图1至图15,本发明提供一种基于可信计算的软件定义边界身份认证密钥管理方法,包括以下步骤:

S1客户端创建用户认证密钥;

具体的,SDP客户端的获取用于身份认证的用户认证密钥,该密钥在SDP客户端与控制端的认证过程中发挥作用。用户认证密钥由SDP客户端采用离线复制或者在线协议方式共享到控制端,这组密钥会用于后续的身份验证,对于SDP的“安全通信和身份验证”是特别重要的。

采用可信平台模块(TPM)2.0,为密钥的有效存取、密钥迁移和密钥存储提供安全方法。

具体方式为:

S11客户端对可信平台模块进行初始化工作;

具体的,当组件需要生成用户认证密钥时,首先TPM2_Init执行初始化工作。

S12初始化后的所述可信平台模块进行自检;

具体的,执行TPM2_Startup启动TPM,执行TPM的自检命令TPM2_Selftestfull,检查TPM是否正常工作;

所述TPM-Init:为初始化操作指令,是一种初始化TPM的方法,告知TPM平台正在运行启动程序。

所述TPM2_Startup():其中,TPM初始化指令,将TPM从初始化状态转换为操作状态。该命令在所述TPM_Init之后运行,包含来自平台的信息,用于通知所述TPM平台的运行状态。

所述TPM-SelfTestFull:为测试指令,测试所述TPM的所有性能,总是不断地执行测试,然后返回成功或失败。

S13所述客户端使用自检通过的所述可信平台模块基于用户认证密钥提供模板结构生成用户认证密钥。

具体方式为:

S131所述客户端使用自检通过的所述可信平台模块基于用户认证密钥提供模板结构使用密钥生成器产生对称密钥,并将所述对称密钥返回给用户;

具体的,使用TPM2_Createprimary创建TPM主密钥(SRK)。TPM创建会话和authHandle,并生成nonces和sharedSecret。TPM发送authHandle和相关的nonces给用户。用户根据收到的数据生成sharedSecret,将命令TPM_Create发送至TPM。TPM验证请求命令,若验证通过,由密钥生成器产生新的对称密钥,将新密钥返回给用户;

其中,TPM2_Createprimary:密钥创建命令,用于创建主密钥;

authHandle:授权会话句柄,用于KeyHandle认证。keyHandle指已加载的ECC密钥;

nonces:随机数,会话用到的随机数;

sharedSecret:共享秘密,想要在双方之间建立机密通信,那么双方就必须约定一个共享的秘密——sharedSecret;

TPM_Create:密钥创建命令,按需设置密钥,本专利使用该命令创建用户认证密钥;

S132所述可信平台模块通过存储父密钥的密钥种子采用对称加密方法对所述对称密钥进行加密保护,得到用户认证密钥。

具体的,执行TPM2_Create在TPM外部生成加密密钥(vMK),在TPM2.0密钥树中,生成的密钥由存储父密钥SRK采用对称加密方法保护,加密密钥由父密钥的密钥种子seed-Value产生,加密算法由父密钥的nameAlg指定,加密方法为AES,密钥迁移性类型为可迁移密钥(Migratable Key)。执行TPM2_Load装载vMK,并使用TPM2_Evictcontrol做持久化存储;

其中,seed_Value:密钥种子,父密钥的密钥种子;

nameAlg:密码算法类型,此密钥支持的密码算法;

AES:对称密钥算法;

TPM2_Load:加载命令,该命令用于将对象加载到TPM中;

TPM2_Evictcontrol:持久化存储命令,将一个密钥从易失性空间移存到非易失性空间中,这样在每次加电重启后,它就可以保持已被加载(持久保存),这个命令允许某些瞬时对象被持久化或一个持久化对象被移除;

S2所述客户端将所述用户认证密钥复制,得到复制数据;

具体的,所述客户端调用复制数据生成接口将所述用户认证密钥的密钥句柄复制,得到复制数据。

具体方式为:

S21所述客户端调用复制数据生成接口对所述用户认证密钥进行检验;

具体的,客户端调用密钥复制接口TPM_Duplicate,检验复制对象的fixedTPM和fixedParent是否均为0,为0则执行下一步;

其中,TPM_Duplicate:密钥复制接口,这个命令复制一个加载的对象,以便它可以在不同的层次结构中使用;

fixedTPM,fixedParent:迁移密钥对象的复制属性;

S22判断检验通过的所述用户认证密钥的新父密钥句柄,得到判断结果;

具体的,判断新父密钥句柄的值,如果为TPM_RH_NULL则结束;否则转到步骤S22;若等于0,则转到步骤S24;

其中,TPM_RH_NULL:TPM被用作密码协处理器时会用到这个组织架构。它的授权值和policy都是空的。这个临时的组织架构本身是永久存在的,不能被删除,但是它在TPM的每个上电周期里会自动清除。

S23基于所述判断结果,用加密密钥对所述用户认证密钥的隐私部分进行加密和哈希计算,得到第一计算结果;

具体的,执行innerwrap,用innerwrap加密密钥对密钥的隐私部分进行加密和哈希计算,生成encSensitive(第一计算结果)。

其中,innerwrap:复制密钥内封装;

encSensitive:隐私加密,innerwrap过程中对迁移密钥的隐私部分进行加密和哈希运算的结果;

S24用所述密钥种子生成种子加密密钥和HMAC密钥分别对所述第一计算结果进行处理,得到复制数据。

具体方式为:

S241用所述密钥种子生成种子加密密钥和HMAC密钥;

具体的,执行outerwrap,用密钥种子seed生成加密密钥和HMAC密钥。

S242使用所述种子加密密钥对所述第一计算结果进行加密,得到第二计算结果(dupSensitive);

S243使用所述HMAC密钥对所述第一计算结果进行HMAC运算,得到运算结果(outerHMAC);

其中,outerwrap:复制密钥外封装;

Seed:密钥种子;

HMAC:单向散列函数构造的消息认证码,HMAC密钥为消息认证密钥;

dupSensitive:隐私外部加密,对迁移密钥的隐私部分进行加密和哈希运算后再加密结果;

outerHMAC:消息码;

S244将所述第一计算结果、所述运算结果、所述新父密钥句柄、所述加密密钥和所述密钥种子打包,得到复制数据。

S3所述控制端对所述复制数据进行完整性校验,校验通过,完成所述用户认证密钥的共享;

具体方式为:

S31所述控制端调用密钥导入接口将所述复制数据载入;

具体的,控制端调用密钥导入接口TPM2_Import;

S32对所述复制数据的所述新父密钥句柄、所述加密密钥和所述密钥种子进行检验;

具体的,首先需要检验目的父密钥为存储密钥。检验innerwrap的加密密钥和outerwrap的密钥种子。

S33将检验通过所述密钥种子和所述新父密钥句柄恢复所述HAMC密钥,同时对所述第二计算结果进行验证,验证通过,对所述第二计算结果进行解密,得到所述第一计算结果;

具体的,由密钥种子和新父密钥句柄恢复出HAMC密钥,通过outerHAMC验证dupsensitive及name的真实性和完整性。然后再恢复出outerwrap的对称密钥,对dupsensitive解密得到encsensitive。

S34基于所述第一计算结果得到所述用户认证密钥,并对所述用户认证密钥进行完整性校验,校验通过,完成所述用户认证密钥的共享。

具体的,用encryptionKey对encsensitive进行解密得到被复制密钥的sensitive;并对sensitive及name进行完整性校验。

具体的,校验通过后,所述客户端和所述控制端各自将对应的所述用户认证密钥存放在本地。

S4所述控制端部署防火墙;

具体的,控制端部署防火墙规则为deny all,即关闭所有端口,拒绝一切连接,只有接收到了客户端发出的SPA包,验证合法之后,才对该客户端的IP开放指定端口。

S5所述客户端使用所述用户认证密钥与所述控制端进行身份认证,认证通过,所述控制端在所述防火墙添加指定端口与所述客户端建立双向连接。

具体方式为:

S51所述客户端使用所述用户认证密钥生成敲门包发送给所述控制端;

具体的,客户端利用用户认证密钥生成“敲门”的SPA数据包,发送至控制端。

S52所述控制端使用所述用户认证密钥基于所述敲门包对用户的身份进行认证,认证通过,所述控制端在所述防火墙添加指定端口;

具体的,控制端收到客户端的敲门包之后,利用用户认证密钥验证用户身份合法性。首先验证消息摘要,确保SPA数据包不是重放攻击。然后对SPA数据包已加密内容进行解密,与接收到的哈希值进行对比。如果该客户端为合法用户,在防火墙中添加一条规则——允许来自这个用户的IP的流量访问一个指定端口。

S53所述客户端和所述控制端通过所述指定窗口建立双向连接。

具体的,客户端与控制端建立双向TLS连接。

连接密文与明文如下:

表1 SPA连接密文与明文

通过上述方式,本发明解决了在SDP系统中,现有用户认证密钥安全存在两个问题:(1)由于用户认证密钥是在部署默认丢弃策略的防火墙之前用在线发送方式或者线下交付方式复制到控制器中,这一过程容易造成密钥被非法分子盗取或篡改,使得合法客户端无法完成身份认证,从而不能访问资源。(2)用户认证密钥明文存放在用户加密文件中,如果用户认证密钥的明文被篡改,客户端将不能完成身份认证连接。

S6所述客户端通过所述用户认证密钥进行密钥更新,得到更新密钥,并将所述更新密钥迁徙至所述控制端后进行身份认证建立双向连接。

具体方式为:

S61所述客户端在可信平台模块调用所述用户认证密钥,对所述用户认证密钥进行初始化,然后对初始化后的所述用户认证密钥依次进行SHA1计算、newKEY的计算、哈希计算和User_key′的计算,得到更新密钥;

其中,SHA1:安全散列算法1;

newKEY:用户认证密钥,TPM中最新的用户认证密钥,用于密钥更新;

User_key′:用户认证密钥,更新后的用户认证密钥;

具体的,在该方案中要生成用户认证密钥,首先需要进行初始化:然后通过计算在TPM中创建主密钥和父密钥,最后基于所述主密钥和所述父密钥生成用户认证密钥的密钥树,得到更新密钥。

S62所述客户端将所述更新密钥迁徙至所述控制端后进行身份认证建立双向连接。

具体的,密钥迁移,主要根据TPM2.0规范进行密钥迁移实验,迁移阶段的主要功能是将客户端TPM中的密钥迁移到控制端TPM下。

SPA包接收,在客户端与控制端交付用户认证密钥之后,开启单包授权验证,客户端对控制端进行敲门,客户端使用SPA包发起身份认证,控制端接收包并使用用户认证密钥进行身份验证。

以上所揭露的仅为本发明一种基于可信计算的软件定义边界身份认证密钥管理方法较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

相关技术
  • 一种基于可信计算的配电终端密钥管理方法
  • 一种基于可信计算的配电终端密钥管理方法
技术分类

06120115921792