基于SM3和SM4的Ukey全链路国密加密通信方法与流程

摘要: 本发明涉及通信加密,具体为基于sm3和sm4的ukey全链路国密加密通信方法。背景技术:1、基于ukey的身份认证与加密通信是信息安全领域广泛应用的技术手段。在...
基于SM3和SM4的Ukey全链路国密加密通信方法与流程

本发明涉及通信加密,具体为基于sm3和sm4的ukey全链路国密加密通信方法。

背景技术:

1、基于ukey的身份认证与加密通信是信息安全领域广泛应用的技术手段。在现有ukey通信方案中,初始密钥的生成通常依赖于存储在设备内部的静态种子或预置密钥,这种静态密钥绑定方式存在因芯片内数据被读出或复制而导致的设备仿冒风险。同时,密钥派生过程依赖的熵源质量不高,容易造成密钥可预测性,降低通信链路的整体安全性的问题。

2、在会话密钥协商完成后,现有技术通常仅对通信载荷开展对称加密,缺乏对传输数据完整性的持续验证机制。攻击者可能通过对密文进行篡改或重放攻击破坏通信内容的完整性和会话的同步状态,而单纯依赖对称加密算法无法有效检测此类篡改行为。另外,在服务器对客户端进行身份验证时,常规的挑战应答机制往往直接在网络中传输明文随机数或简单变换值,这为中间人攻击和重放攻击留下了可利用的通道,服务器难以确认通信对端是否为合法的物理设备实体。

3、针对现有技术中密钥与设备物理特征绑定不紧密造成仿冒风险,以及会话链路中数据完整性保护和挑战应答机制存在安全隐患的问题,需要一种能够将密钥派生与芯片物理唯一特征深度绑定,并在通信全过程中同时对载荷开展加密保护和完整性校验的解决方案。

技术实现思路

1、本发明目的在于提供基于sm3和sm4的ukey全链路国密加密通信方法,以解决现有技术中密钥与设备物理特征绑定不紧密造成的仿冒风险,以及会话链路中数据完整性保护和挑战应答机制存在安全隐患的问题。

2、为了实现上述目的,本发明提供如下技术方案:本发明提供一种基于sm3和sm4的ukey全链路国密加密通信方法,该方法利用物理不可克隆函数与国密算法相结合,在ukey客户端与服务器之间建立高安全性的加密通道。具体而言,获取ukey客户端的物理不可克隆函数输出值,并对该物理不可克隆函数输出值进行sm3哈希运算得到设备指纹;以该设备指纹作为熵源,输入至sm4密钥派生函数生成初始会话密钥,由此实现会话密钥与具体物理器件的不可分割绑定,杜绝了密钥在非授权设备上复制的可能。ukey客户端使用所述初始会话密钥对身份认证请求进行sm4加密得到加密认证请求,服务器接收后以相同的初始会话密钥解密得到身份认证请求,并从预置的密钥库中检索与该请求所携带信息对应的预存设备指纹进行一致性比对,从而完成对ukey身份的初步校验。

3、服务器生成随机数,对该随机数进行sm3哈希得到挑战值,再使用初始会话密钥对挑战值进行sm4加密得到加密挑战值并发送至ukey客户端。ukey客户端接收所述加密挑战值后,使用初始会话密钥解密得到挑战值,并对本地存储的相应随机数进行sm3哈希得到本地哈希值,将解密挑战值与本地哈希值进行逐字节比较;若比较一致,则确认会话密钥有效,同时证明双方持有相同的熵源信息,完成双向身份认证。此过程以国密哈希和分组密码的组合构建挑战应答机制,有效防御中间人攻击与重放攻击。

4、密钥确认后,ukey客户端与服务器之间的后续所有通信载荷均以所述初始会话密钥作为工作密钥进行sm4加密,并对每个数据包附加sm3哈希摘要。由于工作密钥与设备指纹强关联,即使通信量被截获,在缺乏相同物理芯片的前提下无法解密通信内容;包摘要的附加使接收方能够及时校验数据完整性,防篡改、防抵赖。

5、作为优选的实施方式,获取ukey客户端的物理不可克隆函数输出值时,向ukey芯片内的物理不可克隆函数电路施加预设激励信号,采集电路输出的模拟响应经模数转换得到原始响应序列,再将该原始响应序列与ukey芯片的唯一标识码拼接,组成具有唯一性和不可预测性的物理不可克隆函数输出值。该混合输出使设备指纹携带更多物理特征,增强了指纹的区分度与安全强度。

6、在本发明的一个技术方案中,以设备指纹为熵源生成初始会话密钥的过程包括:将设备指纹与ukey客户端生成的第一随机数拼接后输入sm4加密算法的扩展轮函数,以所述扩展轮函数输出的128比特中间值作为初始会话密钥。该派生方式引入随机因子,即便同一设备多次协商也能生成不同的会话密钥,满足前向安全性要求。

7、优选的,对身份认证请求的加密采用sm4电子密码本模式,将身份认证请求数据按128比特分块加密后拼接,并在载荷末尾附加使用初始会话密钥保护的消息认证码,认证码通过对载荷摘要进行sm4加密获得。这样,服务器在解密的同时能够校验认证请求的完整性和来源真实性。

8、服务器对加密认证请求的处理优选为:使用初始会话密钥对密文部分进行sm4解密得到明文身份认证请求,提取明文中的ukey标识字段,在服务器预置的密钥库中查找与该标识关联的预存设备指纹,并比对预存设备指纹与从解密信息中得到的设备指纹哈希值是否一致。此环节将设备指纹的验证与常规标识查询融合,减少了额外协商开销。

9、在生成挑战值时,服务器调用硬件随机数发生器产生256比特的第二随机数,采用sm3算法对第二随机数进行哈希运算得到第一哈希值,以该第一哈希值作为挑战值,再以初始会话密钥在反馈链接模式下进行sm4加密,得到加密挑战值。利用硬件随机数保障了挑战的随机性,反馈链接模式则提高了密文对明文统计特征的掩盖能力。

10、相应的,ukey客户端解密挑战值时,以初始会话密钥对加密挑战值在反馈链接模式下进行sm4解密得到解密挑战值,提取本地存储的第二随机数进行sm3哈希得到本地哈希值,然后将解密挑战值与本地哈希值从首字节开始依次比较,全部相等则返回验证成功标志。逐字节比较避免了时序侧信道差异带来的信息泄露。

11、当挑战应答验证通过后,ukey客户端向服务器发送使用初始会话密钥加密的确认消息,服务器将初始会话密钥标记为有效工作密钥。后续每个数据包传输时,先使用工作密钥对载荷数据进行sm4加密得到密文,再使用sm3对密文与数据包序号拼接后的字节流进行哈希得到包摘要,将包摘要附加在密文之后发送。该包级完整性保护机制使得任何密文或顺序的篡改都会导致摘要不匹配,提升了全链路的安全性。

12、进一步地,对载荷数据的sm4加密引入了密文分组链接模式:对载荷数据按128比特分块,每块使用工作密钥加密时,以前一块密文作为反馈参数参与当前块加密;对于不足128比特的尾块,采用pkcs7填充方式补齐后再加密。链接模式使相同明文块产生不同密文,抵御分析攻击。

13、对于包摘要的生成,将数据包序号转换为8字节大端序表示,与密文字节流拼接形成待哈希数据,调用sm3哈希函数对待哈希数据进行迭代压缩得到256比特摘要,再截取前128比特作为包摘要,嵌入数据包尾部固定位置。该设计在保证校验强度的同时缩减附加长度,兼顾安全与传输效率。

14、在上述技术方案中,本发明提供的技术效果和优点:

15、获取ukey客户端的物理不可克隆函数输出值,并对该输出值进行sm3哈希运算得到设备指纹,以设备指纹为熵源输入至sm4密钥派生函数生成初始会话密钥。利用物理不可克隆函数电路输出的模拟响应经模数转换后得到原始响应序列,将其与芯片唯一标识码拼接作为输出值,使设备指纹直接产生于芯片制造过程中不可控的物理随机差异。该差异不可克隆、不可预测且无法从芯片中读出完整模拟响应特征,任何尝试探测的行为都会改变物理特性。以该设备指纹作为sm4密钥派生函数的唯一熵源,使生成的初始会话密钥与当前特定物理芯片唯一绑定。不同ukey芯片即使标号相同,因其物理不可克隆函数输出不同,派生的初始会话密钥也完全不同,攻击者无法通过复制芯片内静态数据或提取固件代码获得有效会话密钥。

16、ukey客户端通过使用本地存储的第二随机数进行sm3哈希生成本地哈希值,与解密得到的挑战值从首字节开始逐字节比较来确认会话密钥有效性。服务器和客户端双方均使用相同的第二随机数作为挑战应答的基点,该随机数仅在初始化阶段于本地生成并存储,不在网络中直接传输。传输路径中仅出现经初始会话密钥加密后的sm3哈希值,即加密挑战值,即使攻击者截获该密文,因无法获得设备物理唯一特征派生的初始会话密钥,不能解密出挑战值明文。逐字节完全一致才返回验证成功标志的比较方式,杜绝了基于哈希碰撞的中间人攻击在验证环节通过部分匹配混入会话的可能性。确认会话密钥有效后,对每个数据包使用工作密钥进行sm4加密,并采用sm3对密文与数据包序号拼接后的字节流进行哈希得到包摘要附加在密文之后发送。包摘要的计算将密文与顺序化数据包序号耦合,接收方可独立验证每个数据包的加密数据是否完整以及包序号是否连续,任何对密文的篡改或对数据包顺序的重放均会导致摘要验证失败,实现了全链路逐包的数据完整性保护。