1. 一种基于SoC TEE技术及集成密码模块的安全密钥管理方法,其特征在于,包括进行安全密钥生成:在REE中获取用户输入的口令;发起安全密钥生成请求,以调用SMC指令切换到TEE执行指定的安全程序;通过安全程序将口令传输到集成密码模块CM中,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成安全密钥,所述一次性可编程寄存器OTP在完成片上系统密钥SOC key初始化以后关闭与CPU之间的访问通道使得仅保留集成密码模块CM的访问通道;将生成的安全密钥缓存到TEE的安全态内存中以限制仅在TEE中使用该安全密钥;所述进行加密生成安全密钥包括:集成密码模块CM首先通过哈希函数将口令散列成一个定长值,再将该定长值与一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行异或操作得到一个用于生成安全密钥的种子seed,根据种子seed使用指定的加密算法生成安全密钥;所述安全密钥管理方还包括在用户退出系统时,TEE自动清除调缓存在TEE的安全态内存中的安全密钥。
2. 根据权利要求1所述的基于SoC TEE技术及集成密码模块的安全密钥管理方法,其特征在于,还包括响应用户请求进行安全密钥更新:在REE中获取用户输入的口令,包括旧口令以及新口令;发起安全密钥更新请求,以调用SMC指令切换到TEE执行指定的安全程序;通过安全程序将旧口令传输到集成密码模块CM中,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成新的安全密钥,并利用新的安全密钥加密一段指定的消息message并传输给安全程序;安全程序尝试解密消息message,若消息message解密失败,则切换回REE中,报错并退出;否则,通过安全程序将新口令传输到集成密码模块CM中,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成安全密钥,将生成的安全密钥缓存到TEE的安全态内存中以限制仅在TEE中使用该安全密钥。
3. 根据权利要求1所述的基于SoC TEE技术及集成密码模块的安全密钥管理方法,其特征在于,还包括进行安全密钥撤销:若类型为口令暴露,则在REE中获取用户输入的口令,发起安全密钥更新请求以调用SMC指令切换到TEE执行指定的安全程序;通过安全程序将已暴露的口令传输到集成密码模块CM中,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成新的安全密钥,并利用新的安全密钥加密一段指定的消息message并传输给安全程序;安全程序尝试解密消息message,若消息message解密失败,则切换回REE中,报错并退出;否则,通过安全程序将已暴露的口令写入预设的撤销口令表中,使得安全程序在收到口令时若发现口令在撤销口令表中则不会传输到集成密码模块CM中而是直接报错并退出;若类型为密钥暴露,则在REE中获取用户输入的口令,包括旧口令以及新口令;发起安全密钥更新请求以调用SMC指令切换到TEE执行指定的安全程序;通过安全程序将已暴露的口令传输到集成密码模块CM中,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成新的安全密钥,并利用新的安全密钥加密一段指定的消息message并传输给安全程序;安全程序尝试解密消息message,若消息message解密失败,则切换回REE中,报错并退出;否则,通过安全程序将新口令传输到集成密码模块CM中,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成安全密钥,并将生成的安全密钥缓存到TEE的安全态内存中以限制仅在TEE中使用该安全密钥。
4. 根据权利要求1所述的基于SoC TEE技术及集成密码模块的安全密钥管理方法,其特征在于,所述获取用户输入的口令时,包括判断口令或新口令是否符合预设的规范,当且仅当口令符合预设的规范时继续往下执行;否则继续返回获取用户输入的口令或者退出。
5. 根据权利要求1所述的基于SoC TEE技术及集成密码模块的安全密钥管理方法,其特征在于,所述将生成的安全密钥缓存到TEE的安全态内存中时,还包括在预设的口令信息表中增加或者更新一条记录,所述记录的字段包括本次生成安全密钥所使用的口令、生成安全密钥的时间戳以及更新次数,且增加记录时更新次数为预设初始值,更新记录时更新次数自增1。
6. 根据权利要求5所述的基于SoC TEE技术及集成密码模块的安全密钥管理方法,其特征在于,所述口令信息表中记录的字段还包括生成定长值时所采用的散列次数以及是否进行随机数加盐;所述安全程序还定时或者基于预设的触发机制主动更新安全密钥:检测口令信息表中各个记录中的生成安全密钥的时间戳,若某一生成安全密钥的时间戳超过规定预设的生命周期,则通过增加生成定长值时所采用的散列次数或者是通过生成随机数加盐的方式,通过集成密码模块CM根据口令以及一次性可编程寄存器OTP中存储的片上系统密钥SOC key进行加密生成新的安全密钥,并更新口令信息表中对应记录的信息。
7. 一种基于SoC TEE技术及集成密码模块的安全密钥管理系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~6中任意一项所述基于SoC TEE技术及集成密码模块的安全密钥管理方法。
8. 一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~6中任意一项所述基于SoC TEE技术及集成密码模块的安全密钥管理方法。