发明内容
针对现有技术存在的问题,本发明提供了一种芯片级透明文件加密存储系统、方法及设备。
本发明是这样实现的,一种芯片级透明文件加密存储系统,该系统包括:
云密码管理系统,使用密码机配合统一密码服务系统实现,密码机提供密钥保护、密钥生成、密码运算服务功能,统一密码服务系统连接底层专用硬件设备密码机,实现密钥的管理,并且根据设备信息生成设备需求的根密钥,并对外根据设备的信息提供密钥从密码机的调用,密码机国密算法支持SM2/3/4/9,可以生成芯片需要的各种密钥;进而实现全国密算法的支持;
透明文件加解密系统,实现在传统的Linux文件系统架构框架内,增加了基础密码算法和一套软件SDK,结合EMMC/UFS芯片内的安全存储区域,实现对上层应用无感透明的文件加密存储功能,在不改变接口的情况,应用程序几乎可以无感的操作文件加解密;
密钥分级管理系统,设备端采用密码卡(TEE/加密芯片)作为设备端的密钥管理中心(CKMC),设备安全密钥存储区域作为一个密钥管理中心(CKMC)负责设备端的根密钥的存储,密钥的扩展、密钥的分发、密钥的销毁等整个密钥生命周期的管理;
安全芯片分区加密,SACSA是在EMMC/UFS存储芯片内部开辟的一块安全访问控制的存储区域,它通过内置在存储芯片(EMMC/UFS)内部的HMAC、SHA-256算法和WriteCounter来保证保存在该区域内部的数据不被非法篡改,在实际应用中,SACSA分区通常用来保存安全相关的数据,该功能为系统提供身份验证和重放保护,提供了对重放保护模块的签名访问,并且系统以授权和重放保护的方式将数据存储到一个专门的区域,身份验证密钥存储在安全区域,调用和算法执行必须在安全的环境下执行,身份密钥用于消息验证码的生成,采用的算法是HMAC-SHA256,使用随机数生成和计数寄存器提供额外的保护防止消息重播。
进一步,所述密钥的导入导出都需要进行加密和解密,实现传输过程的加密:具体的利用公钥对根密钥进行加密,密文通过安全信道传输到密码卡,密码卡对利用私钥对加密的根密钥进行解密,解密后得到根密钥的密文,并写入设备端密钥管理中心,完成根密钥写入。
进一步,所述透明文件加解密系统加密过程具体如下:
首先使用open系统调用打开文件,open的参数中包含文件的路径名和文件名;open所返回的文件描述符作为参数,使用write写入数据;进入内核空间,调用虚拟文件系统和文件系统原有的write方法;再调用驱动层写方法之前,先调用SDK加密流程,并执行一套签名验签流程,确定合法操作,最后再通过驱动写入芯片的安全存储区域;使用完文件之后,用close系统调用关闭文件,避免资源的泄露。
进一步,所述透明文件加解密系统解密过程具体如下:
首先使用open系统调用打开文件,open的参数中包含文件的路径名和文件名;open所返回的文件描述符作为参数,使用read读出数据;进入内核空间,调用虚拟文件系统和文件系统原有的read方法;再调用驱动层的读方法之前,调用SDK签名验签流程确定合法操作后,再从芯片的安全存储区域读出数据并解密;使用完文件之后,用close系统调用关闭文件,避免资源的泄露。
进一步,所述密钥分级管理系统中密钥的扩展的方式利用真随机数作为种子通过密钥派生函数KDF生成,并输入其他标识信息、随机性信息(salt)、其他信息(例如计数器)生成对应密码算法需要的密钥长度,KDF一般采用对称密钥算法或者杂凑算法实现。
进一步,所述密钥管理的方法使用主密钥、密钥加密密钥、数据加密密钥。
主密钥:用于对系统中重要的、关键信息进行签名或加密,位于封闭系统密钥体系的最高层,数量少、周期最长、安全性要求最高;
密钥加密密钥:用于加密会话密钥的密钥,位于封闭系统的中间层,数量相对较多,有一定的使用周期,安全性要求较高;
数据加密密钥:也叫会话密钥,用于对通信内容、数据进行加密,位于密钥层次结构的底层,数量最多,安全性要求一般。
进一步,所述安全芯片分区加密引入安全的密钥生成机制和密钥管理机制,利用软硬件结合的方式实现高效处理的能力,在存储层划分安全区域结和加密芯片,实现在适配层通过开发高效的标准算法ASE、基于SHA-256的HMAC、数字签名算法、国密算法SM2/3/4,利用系统处理器调用相应加解密SDK执行加密和解密任务,加密后存储在密文存储区域。
进一步,所述加密算法通常有两个输入:密钥和明文本身;所述密钥只是一个具有预定长度的数字,理想情况下,每个密钥都是真正的随机数(TRNG),这意味着任何可能的密钥组合都是同等可能的,并且密钥无法以可预测的方式生成。
本发明实施例提供一种实施所述芯片级透明文件加密存储系统的芯片级透明文件加密存储方法,该方法包括:
(1)利用云密码管理系统,使用密码机配合统一密码服务系统实现,密码机提供密钥保护、密钥生成、密码运算服务功能,统一密码服务系统连接底层专用硬件设备密码机,实现密钥的管理,并且根据设备信息生成设备需求的根密钥,并对外根据设备的信息提供密钥从密码机的调用,密码机国密算法支持SM2/3/4/9,可以生成芯片需要的各种密钥;进而实现全国密算法的支持;
(2)利用透明文件加解密系统,实现在传统的Linux文件系统架构框架内,增加了基础密码算法和一套软件SDK,结合EMMC/UFS芯片内的安全存储区域,实现对上层应用无感透明的文件加密存储功能,在不改变接口的情况,应用程序几乎可以无感的操作文件加解密;
(3)利用密钥分级管理系统,设备端采用密码卡(TEE/加密芯片)作为设备端的密钥管理中心(CKMC),设备安全密钥存储区域作为一个密钥管理中心(CKMC)负责设备端的根密钥的存储,密钥的扩展、密钥的分发、密钥的销毁等整个密钥生命周期的管理;
(4)利用安全芯片分区加密,SACSA是在EMMC/UFS存储芯片内部开辟的一块安全访问控制的存储区域,它通过内置在存储芯片(EMMC/UFS)内部的HMAC、SHA-256算法和WriteCounter来保证保存在该区域内部的数据不被非法篡改,在实际应用中,SACSA分区通常用来保存安全相关的数据,该功能为系统提供身份验证和重放保护,提供了对重放保护模块的签名访问,并且系统以授权和重放保护的方式将数据存储到一个专门的区域,身份验证密钥存储在安全区域,调用和算法执行必须在安全的环境下执行,身份密钥用于消息验证码的生成,采用的算法是HMAC-SHA256,使用随机数生成和计数寄存器提供额外的保护防止消息重播。
本发明实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述芯片级透明文件加密存储方法的步骤。
结合上述的技术方案和解决的技术问题,本发明所要保护的技术方案所具备的优点及积极效果为:
第一、针对上述现有技术存在的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
(1)简单易用的芯片级文件加解密系统。本发明旨在芯片级实现数据的安全加解密,在eMMC/UFS存储芯片内分区,结合密钥管理机制、文件加解密等密码安全解决方案,封装复杂的算法和过程,对外仅暴露接口,便可完成复杂的文件加解密过程,简单易用,大大提升程序安全开发效率。用户(应用程序)无需参与密码管理、签名验签、加解密处理等过程,也可实现文件(数据)的加解密。
(2)全生命周期的密钥管理机制。本发明设计完备、安全的密钥管理机制,采用分层密钥管理机制和密钥派生算法结合,实现根密钥的存储、密钥的扩展、分发、销毁等整个密钥生命周期的管理,既提供安全无虞的密钥管理、又支撑密码算法的安全应用。进一步实现了,通过管理少量的密钥加密密钥实现大量数据加密密钥的使用和管理,减轻了密钥管理中心的工作负荷,另外,安全存储中心对数据使用HMAC进行完整性校验,保证了数据的机密性和完整性。
第二,本发明在现有通用存储芯片架构的基础上,实现基于芯片级的加密存储功能。用户(应用程序)无需参与密码管理、签名验签、加解密处理等过程,在eMMC/UFS存储芯片内分区,设定安全存储区域,并进行访问控制管理,明文存储区域和密文存储区域分离,并将加密的数据存储在密文存储区域。
第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
(1)本发明的技术方案转化后的预期收益和商业价值为:
本发明为芯片级透明文件加解密系统,旨在为用户提供更简单易用的、芯片级的加密系统。其商业价值体现在:一方面,发明内容可应用在信创体系下,对关键信息基础设施提供安全存储能力,构建数据安全基础设施,填补芯片级安全存储行业的空白;另一方面,发明内容可为用户/开发人员提供简单易用的文件加密接口,提高密码安全程序的开发效率。
(2)本发明的技术方案填补了国内外业内技术空白:
基于芯片级加密存储方案,目前国内外几乎很少,也没有一个通用的规范和标准,本发明从芯片设计出发,在存储区域划分为明文存储区域和密文存储区域,并通过不同的写入接口进行区分。同时在密码算法支持层面,即支持主流的国际算法,同样也支持我国的国密算法。
(3)本发明的技术方案是否解决了人们一直渴望解决、但始终未能获得成功的技术难题:
芯片级加密存储始终未能有效的解决,普遍的办法是在系统层面或者利用软件实现加密的存储,但是这个层面的密钥调用会使得密钥安全层级较低,只要黑客或者攻击者攻破软件或者系统那么就可以拿到密钥,解密我们的消息。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种芯片级透明文件加密存储系统、方法及设备,简称“安全存储芯片”,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的芯片级透明文件加密存储系统包括:
(1)云密码管理系统,使用密码机配合统一密码服务系统实现,密码机提供密钥保护、密钥生成、密码运算服务功能,统一密码服务系统连接底层专用硬件设备密码机,实现密钥的管理,并且根据设备信息生成设备需求的根密钥,并对外根据设备的信息提供密钥从密码机的调用,密码机国密算法支持SM2/3/4/9,可以生成芯片需要的各种密钥。实现全国密算法的支持。其中密钥的导入导出都需要进行加密和解密,实现传输过程的加密:具体的利用公钥对根密钥进行加密,密文通过安全信道传输到密码卡,密码卡对利用私钥对加密的根密钥进行解密,解密后得到根密钥的密文,并写入设备端密钥管理中心,完成根密钥写入,流程如图2所示。
(2)透明文件加解密系统,实现在传统的Linux文件系统架构框架内,增加了基础密码算法和一套软件SDK,结合EMMC/UFS芯片内的安全存储区域,结构如图3所示,实现对上层应用无感透明的文件加密存储功能。在不改变接口的情况,应用程序几乎可以无感的操作文件加解密。
加密过程如4所示:首先使用open系统调用打开文件,open的参数中包含文件的路径名和文件名;open所返回的文件描述符作为参数,使用write写入数据;进入内核空间,调用虚拟文件系统和文件系统原有的write方法;再调用驱动层写方法之前,先调用SDK加密流程,并执行一套签名验签流程,确定合法操作,最后再通过驱动写入芯片的安全存储区域;使用完文件之后,用close系统调用关闭文件,避免资源的泄露。
解密过程如图5所示首先使用open系统调用打开文件,open的参数中包含文件的路径名和文件名;open所返回的文件描述符作为参数,使用read读出数据;进入内核空间,调用虚拟文件系统和文件系统原有的read方法;再调用驱动层的读方法之前,调用SDK签名验签流程确定合法操作后,再从芯片的安全存储区域读出数据并解密;使用完文件之后,用close系统调用关闭文件,避免资源的泄露。
(3)密钥分级管理系统,设备端采用密码卡(TEE/加密芯片)作为设备端的密钥管理中心(CKMC),设备安全密钥存储区域作为一个密钥管理中心(CKMC)负责设备端的根密钥的存储,密钥的扩展、密钥的分发、密钥的销毁等整个密钥生命周期的管理。密钥扩展的方式利用真随机数作为种子通过密钥派生函数KDF生成,并输入其他标识信息、随机性信息(salt)、其他信息(例如计数器)生成对应密码算法需要的密钥长度,KDF一般采用对称密钥算法或者杂凑算法实现,本发明使用基于SM3/SM4的国密算法构造KDF算法。
管理密钥的方法使用三层密钥结构“根密钥、密钥加密密钥、数据加密密钥。
主密钥(MasterKey):用于对系统中重要的、关键信息进行签名或加密,位于封闭系统密钥体系的最高层。数量少、周期最长、安全性要求最高。
密钥加密密钥KEK(Key-encryptionKeys):用于加密会话密钥的密钥,位于封闭系统的中间层。数量相对较多,有一定的使用周期,安全性要求较高。
数据密钥(Data-encryption Key):也叫会话密钥,用于对通信内容、数据进行加密,位于密钥层次结构的底层,数量最多,安全性要求一般。
(4)安全芯片分区加密,SACSA是security access control storage area(安全访问控制存储区)的简称,在EMMC/UFS存储芯片内部开辟的一块安全访问控制的存储区域,它通过内置在存储芯片(EMMC/UFS)内部的HMAC、SHA-256算法和Write Counter来保证保存在该区域内部的数据不被非法篡改。在实际应用中,SACSA分区通常用来保存安全相关的数据。该功能为系统提供身份验证和重放保护,提供了对重放保护模块的签名访问,并且系统以授权和重放保护的方式将数据存储到一个专门的区域。身份验证密钥存储在安全区域,调用和算法执行必须在安全的环境下执行,身份密钥用于消息验证码的生成,采用的算法是HMAC-SHA256,使用随机数生成和计数寄存器提供额外的保护防止消息重播。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1
芯片加密存储解决方案中,密钥的安全性是数据安全的核心,本发明引入安全的密钥生成机制和密钥管理机制,利用软硬件结合的方式实现高效处理的能力,在存储层划分安全区域结和加密芯片,在适配层通过开发高效的标准算法ASE、基于SHA-256的HMAC、数字签名算法、国密算法SM2/3/4,利用系统处理器调用相应加解密SDK执行加密和解密任务,并根据是否加解密存储在不同的分区。
本发明引入加密芯片或者通过密码机生成然后在设备初始化的时候写入设备,通过真随机数作为种子然后利用伪随机数(PRNG)生成算法生成加密算法需要的密钥。存储到明文存储分区的数据操作流程和原来不变;存储到密文存储分区的数据,都使用加密密钥对数据进行加密,采用对称加密算法,解密密钥和加密密钥相同。采用的加密算法:支持HMAC-SHA256、AES-CBC、AES-XTS、HMAC-SM3、SM4……控制器连接eMMC存储区域和加密算法的输入和输出,加密算法的密钥输入通过从密钥安全存储区域调取。支持分区加密引擎的芯片加密框图如图1所示。
本发明在传统的Linux文件系统架构框架内,增加了基础密码算法和一套软件SDK,结合EMMC/UFS芯片内的安全存储区域,实现对上层应用无感透明的文件加密存储功能。在不改变接口的情况,应用程序几乎可以无感的操作文件加解密。文件系统架构如图3所示。本发明支持的算法包括SM2/3/4、AES、RSA、HMAC以及用户指定的专用加密算法。
文件加密存储写入过程如图4所示:首先使用open系统调用打开文件,open的参数中包含文件的路径名和文件名;open所返回的文件描述符作为参数,使用write写入数据;进入内核空间,调用虚拟文件系统和文件系统原有的write方法;再调用驱动层写方法之前,先调用SDK加密流程,并执行一套签名验签流程,确定合法操作,最后再通过驱动写入芯片的安全存储区域;使用完文件之后,用close系统调用关闭文件,避免资源的泄露。
文件读取解密过程如图5所示:首先使用open系统调用打开文件,open的参数中包含文件的路径名和文件名;open所返回的文件描述符作为参数,使用read读出数据;进入内核空间,调用虚拟文件系统和文件系统原有的read方法;再调用驱动层的读方法之前,调用SDK签名验签流程确定合法操作后,再从芯片的安全存储区域读出数据并解密;使用完文件之后,用close系统调用关闭文件,避免资源的泄露。
加密的文件存储在一个安全控制访问存储区,SACSA是security access controlstorage area(安全访问控制存储区)的简称,在eMMC/UFS存储芯片内部开辟的一块安全访问控制的存储区域,它通过内置在存储芯片(eMMC/UFS)内部的HMAC、SHA-256算法和WriteCounter来保证保存在该区域内部的数据不被非法篡改。在实际应用中,SACSA分区通常用来保存安全相关的数据。该功能为系统提供身份验证和重放保护,提供了对重放保护模块的签名访问,并且系统以授权和重放保护的方式将数据存储到一个专门的区域。身份验证密钥存储在安全区域,调用和算法执行必须在安全的环境下执行,身份密钥用于消息验证码的生成,采用的算法是HMAC-SHA256,使用随机数生成和计数寄存器提供额外的保护防止消息重播。
具体的,制造商会为每一个产品生产一个唯一的256bits的Secure Key,烧写到eMMC的OTP区域(只能烧写一次的区域),同时Host在安全区域中(例如:TEE、加密芯片、加密卡)也会保留该Secure Key。在Emmc/UFS内部,还有一个Write Counter。每进行一次合法的写入操作时,Write Counter就会自动加一。通过Secure Key和Write Counter的应用,SACSA可以实现数据读取和写入的Replay Protect。
SACSA数据读取的流程如图7所示具体如下:
Host向eMMC发起读SACSA的请求,同时生成一个16bytes的随机数,发送给eMMC。
Emmc/UFS将请求的数据从SACSA中读出,并使用Secure Key通过HMAC SHA-256算法,计算读取到的数据和接收到的随机数拼接到一起后的签名。然后,eMMC/UFS将读取到的数据、接收到的随机数、计算得到的签名一并发送给Host。
Host接收到SACSA的数据、随机数以及签名后,首先比较随机数是否与自己发送的一致,如果一致,再用同样的Secure Key通过HMAC SHA-256算法对数据和随机数组合到一起进行签名,如果签名与eMMC发送的签名是一致的,那么就可以确定该数据是从SACSA中读取到的正确数据,而不是攻击者伪造的数据。
通过上述的读取流程,可以保证Host正确的读取到SACSA的数据。
SACSA数据写入的流程如图8所示具体如下:
Host按照上面的读数据流程,读取SACSA的Write Counter。
Host将需要写入的数据和Write Counter拼接到一起并计算签名,然后将数据、Write Counter以及签名一并发给eMMC。
eMMC接收到数据后,先对比Write Counter是否与当前的值相同,如果相同那么再对数据和Write Counter的组合进行签名,然后和Host发送过来的签名进行比较,如果签名相同则鉴权通过,将数据写入到SACSA中。
通过上述的写入流程,可以保证SACSA不会被非法篡改。
如图9消息认证所示:SACSA通过对称密钥进行认证,其中Host和设备中存储和使用相同的认证密钥,因此也有叫共享密钥,在设备初始化时,Host将认证密钥写入设备的安全存储区域,然后Host和设备使用相同的密钥进行签名和认证,对消息进行消息认证码计算。SACSA重放保护的基本思想是确保每一条消息都是唯一的,设备管理一个只读计数器,每写入一条消息计数器自动递增,并且包含在计算消息认证码中。通过HMAC-SHA256计算,其中其输入:密钥、消息、写入计数、随机数。输出一个消息认证码MAC,长度256比特(32字节)嵌入到SACSA中。
系统采用密码机+统一密码服务平台对系统中所有设备根密钥的统一集中管理,包括设备根密钥的生成、下发、注销等生命周期管理。设备端采用密码卡(TEE/加密芯片)作为设备端的密钥管理中心(CKMC),设备安全密钥存储区域作为一个密钥管理中心(CKMC)负责设备端的根密钥的存储,密钥的扩展、密钥的分发、密钥的销毁等整个密钥生命周期的管理。
密钥管理中心的根密钥,需要一个真随机数,对于真随机数的生成,本发明选择使用专用硬件生成根密钥的方式,同时密码芯片或者密码卡具有同样的功能,将真随机数作为设备的根密钥,其中根密钥的保护级别最高,而且根密钥永远不出密钥存储区域,利用根密钥生成用于对称加密、非对称加密、非对称签名、HMAC等需要的密钥,密钥的长度根据算法的需求具有不同的长度。并把生成不同的密钥同步给需要进行密码算法计算的子密钥管理中心。
上述的专用硬件是具有国家密码局认证的密码机,并配合统一密码服务系统实现,密码机提供密钥保护、密钥生成、密码运算服务功能,统一密码服务系统连接底层专用硬件设备密码机,实现密钥的管理,并且根据设备信息生成设备需求的根密钥,并对外根据设备的信息提供密钥从密码机的调用,密码机国密算法支持SM2/3/4/9,可以生成芯片需要的各种密钥。实现全国密算法的支持。其中密钥的导入导出都需要进行加密和解密,实现传输过程的加密:具体的利用公钥对根密钥进行加密,密文通过安全信道传输到密码卡,密码卡对利用私钥对加密的根密钥进行解密,解密后得到根密钥的密文,并写入设备端密钥管理中心,完成根密钥写入,具体流程如图2所示。
密钥扩展的方式利用真随机数作为种子通过密钥派生函数KDF生成,并输入其他标识信息、随机性信息(salt)、其他信息(例如计数器)生成对应密码算法需要的密钥长度,KDF一般采用对称密钥算法或者杂凑算法实现,本发明使用基于SM3/SM4的国密算法构造KDF算法,派生过程如图6所示。
管理密钥的方法使用三层密钥结构如图10所示分别是:主密钥(根密钥)、密钥加密密钥、数据加密密钥。
主密钥(MasterKey):用于对系统中重要的、关键信息进行签名或加密,位于封闭系统密钥体系的最高层。数量少、周期最长、安全性要求最高。
密钥加密密钥KEK(Key-encryptionKeys):用于加密会话密钥的密钥,位于封闭系统的中间层。数量相对较多,有一定的使用周期,安全性要求较高。
数据密钥(Data-encryption Key):也叫会话密钥,用于对通信内容、数据进行加密,位于密钥层次结构的底层,数量最多,安全性要求一般。
数据加密密钥(DEK)通过密钥加密密钥(KEK)进行加密,KEK存储在安全密钥存储区域,该存储区域专门存储密钥的分区。只需要存储少量的KEK就可以管理大量的DEK,针对不同的应用可以使用不同的密钥进行加密也可以使用相同的密钥进行加密,多个用户可以使用同一个DEK加密。DEK通过KEK进行封装,将封装的DEK可以和数据块保存在一起,如果需要对芯片内存储的数据进行加密检索,则可以检索封装的DEK,密钥库可以通过KEK解密DEK,然后得到DEK的明文形式对数据进行解密并验证器完整性。
国际上一般的KEK是通过基于AES-256的伪随机数(PRNG)生成的,同时DEK也采用AES-256或AES-128标准的KEK进行封装,为了安全和国密应用,本发明使用AES-256和SM3/4作为伪随机数生成算法,使用AES-256和SM4对DEK进行封装。
本发明使用一种或者多种加密机制以静态方式对存储在eMMC/UFS内加密区域的数据进行加密。使用上述的数据加密密钥DEK对数据进行加密,然后将密文数据写入eMMC/UFS的加密存储区域。
如图11加密流程图所示:采用AES加密算法对静态数据进行加密,密钥使用DEK,加密算法使用AES-256,并进一步开发国密SM4应用,数据加密过程是应用传输的明文数据通过调用密码算法SDK和DEK对数据进行加密,加密后的数据和DEK密文打包通过安全通道传输的加密存储区域,解密过程是发出调用数据请求,根据索引找到加密存储区域存储的密文,KEK解密出DEK后用DEK对数据进行解密,解密后得到明文返回应用。
如图12解密流程图所示:整个加解密使用多层加密机制来保护数据。这种加密机制提高了数据保护的荣誉度,能够根据应用的需求进行加密方法选择。每个数据都有一个标识,并且利用计数器对存储的次数进行计数。每个应用的数据只能该应用进行访问。加强数据安全性和隐私性。
SACSA采用的安全协议是带有私钥的哈希消息验证码技术,实现对安全区域的所有读写操作进行标记。SACSA使用对称密钥进行身份验证,其中Host和设备中存储和使用相同的认证密钥,因此也有叫共享密钥,在设备初始化时,Host将认证密钥写入设备的安全存储区域,然后Host和设备使用相同的密钥进行签名和认证,对消息进行消息认证码计算。SACSA重放保护的基本思想是确保每一条消息都是唯一的,设备管理一个只读计数器,每写入一条消息计数器自动递增,并且包含在计算消息认证码中。通过HMAC-SHA256计算,其中其输入:密钥、消息、写入计数、随机数。输出一个消息认证码MAC,长度256比特(32字节)嵌入到SACSA中。
eMMC将读取的数据和MAC一起发送给Host,Host接收到消息并使用对称密钥生成一个新的MAC与发送的MAC进行比对,如果完全相同Host才会信任eMMC读取的数据。为了防止重放,在向SACSA写入数据时,会将计数器的计数值一同写入。
对比部分(实验/仿真/其他产品对比/)
现有的存储芯片eMMC/UFS不具备芯片级动态区域划分加密存储功能,本发明提出了一种存储芯片加密,并且加密存储区域可以通过参数动态设置。通常的系统采用同一个密钥对数据进行加解密管理,本发明使用了分层密钥管理机制和密钥派生算法结合,实现了一种管理少量密钥在使用时派生数据加密密钥对数据进行加密和密钥管理,并且对数据使用HMAC进行完整性校验。保证数据的机密性和完整性。
本发明实施例提供一种实施所述芯片级透明文件加密存储系统的芯片级透明文件加密存储方法,该方法包括:
(1)利用云密码管理系统,使用密码机配合统一密码服务系统实现,密码机提供密钥保护、密钥生成、密码运算服务功能,统一密码服务系统连接底层专用硬件设备密码机,实现密钥的管理,并且根据设备信息生成设备需求的根密钥,并对外根据设备的信息提供密钥从密码机的调用,密码机国密算法支持SM2/3/4/9,可以生成芯片需要的各种密钥;进而实现全国密算法的支持;
(2)利用透明文件加解密系统,实现在传统的Linux文件系统架构框架内,增加了基础密码算法和一套软件SDK,结合EMMC/UFS芯片内的安全存储区域,实现对上层应用无感透明的文件加密存储功能,在不改变接口的情况,应用程序几乎可以无感的操作文件加解密;
(3)利用密钥分级管理系统,设备端采用密码卡(TEE/加密芯片)作为设备端的密钥管理中心(CKMC),设备安全密钥存储区域作为一个密钥管理中心(CKMC)负责设备端的根密钥的存储,密钥的扩展、密钥的分发、密钥的销毁等整个密钥生命周期的管理;
(4)利用安全芯片分区加密,SACSA是在EMMC/UFS存储芯片内部开辟的一块安全访问控制的存储区域,它通过内置在存储芯片(EMMC/UFS)内部的HMAC、SHA-256算法和WriteCounter来保证保存在该区域内部的数据不被非法篡改,在实际应用中,SACSA分区通常用来保存安全相关的数据,该功能为系统提供身份验证和重放保护,提供了对重放保护模块的签名访问,并且系统以授权和重放保护的方式将数据存储到一个专门的区域,身份验证密钥存储在安全区域,调用和算法执行必须在安全的环境下执行,身份密钥用于消息验证码的生成,采用的算法是HMAC-SHA256,使用随机数生成和计数寄存器提供额外的保护防止消息重播。
本发明实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述芯片级透明文件加密存储方法的步骤。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
本发明具有一定的开创性,市场调研几乎没有类似产品,与本发明功能类似的实现都是通过软件的形式在系统层面实现,例如安卓系统的加密存储;Windows系统的加密硬盘软件,通过对硬盘进行虚拟分区,利用AES对分区内的存储数据进行加密;以上这些都是纯软件的形式实现的加密存储,另外得一微提出支持ASE的AES IP实现对eMMC的加密,但是得一微加密仅支持AES,不能实现对国密的算法的兼容。具体的功能和优缺点比对如下表
目前现有的eMMC加密存储方案很少,少有的几个方案,例如得一微的加密方案仅支持AES加密,本发明方案从密钥生成,密钥扩展,密钥分发,密钥更新的密钥管理全生命周期进行了芯片系统的适配设计,并且加密和解密对于用户层来说是无感的,并且本发明在信创,国产化背景下,实现了国密算法SM4的兼容,并且eMMC中使用的HMAC-SHA-256,我们也进行了SM3的设计兼容,实现了整个存储的机密性和完整性都通过了国密算法的实现。
本发明的实施不仅可以通过加密SDK+硬件加密接口实施,也可以通过IP硬件加密+硬件加密接口实现。上述的方案安全性比较,密码的安全从一个方面讲是密钥的安全,基于软件实现的加密SDK,调用密钥是在系统层级或者应用层级,这样密钥在系统或者应用被攻击后容易泄露,而本发明的密钥是在一个专门的硬件分区上只有固定的硬件指令才能调用密钥,所以密钥的安全性高于安卓加密存储方案和Windows硬盘加密存储方案。
以下是两个具体的实施例:
实施例1:一家金融公司需要保护其敏感数据,如客户信息和交易记录。应用该芯片级透明文件加密存储系统后,金融公司可实现以下功能:
1.通过云密码管理系统,金融公司可以高效地管理密钥,同时支持国密算法(如SM2/3/4/9)以满足不同的加密需求。
2.使用透明文件加解密系统,金融公司可以在不改变现有应用程序接口的前提下,无感地对敏感数据进行加密存储,保护客户信息和交易记录的安全。
3.金融公司可以利用密钥分级管理系统对密钥进行安全和灵活的管理,确保密钥在整个生命周期内得到有效保护。
4.通过安全芯片分区加密,金融公司可以为系统提供身份验证和重放保护,确保敏感数据在安全存储区域内不被非法篡改。
实施例2:一家医疗机构需要确保患者的个人健康信息(PHI)得到充分保护。应用该芯片级透明文件加密存储系统后,医疗机构可实现以下功能:
1.通过云密码管理系统,医疗机构可以集中管理密钥,同时支持国密算法(如SM2/3/4/9)以应对不同加密场景。
2.使用透明文件加解密系统,医疗机构可以在不修改现有应用程序接口的情况下,无感地对患者的个人健康信息进行加密存储,确保数据安全。
3.医疗机构可以利用密钥分级管理系统对密钥进行安全和灵活的管理,保证密钥在整个生命周期内得到妥善保护。
4.通过安全芯片分区加密,医疗机构可以为系统提供身份验证和重放保护,确保患者个人健康信息在安全存储区域内不被非法篡改。
以上实施例展示了该芯片级透明文件加密存储系统在金融公司和医疗机构的应用,它们共同为高效、安全、无感的文件加密存储功能提供了保障。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。