◆李卫明
(杭州弗兰科信息安全科技有限公司 浙江 333000)
新形势下,社会进入了大数据时代,社会发展产生的数据逐渐递增,每年几乎翻一倍,在数据开放的社会,用户将信息存储于公共服务平台。平台的开放性,意味着无论是否是用户意愿,用户信息都可能主动或被动的泄露,轻则受到骚扰,重则威胁用户财产甚至生命安全[1]。此时,传统的封堵查杀被动防御方式已经无法保障服务平台的数据安全,而在可信计算下,对服务平台数据进行加密,从传统的被动防御转变为主动防御,有利于提高数据的安全存储水平,尽可能降低用户的数据泄露风险,充分发挥服务平台的作用。
可信计算概念的第一次正式提出,可以追溯到1983年美国国防部制定的《可信计算机系统评价准则》(Trusted Computer System Evaluation Criteria,TCSEC)。TCSEC中提出了可信计算机(Trusted Computer)和可信计算基(Trusted Computing Base)的概念。1999年,IBM、HP、Intel、微软等企业发起并成立了可信计算平台联盟(Trusted Computing Platform Alliance,TCPA),后改名为可信计算组织(Trusted Computing Group,TCG)[4]。TCG认为,可信计算的总体目标是提高计算机系统的安全性。现阶段的主要目标是提供平台可信性的远程证明,确保系统数据的完整性、数据的安全存储[2]。
可信计算的基本思想是通过信任传递确保整个计算机系统的可信,其中涉及3个基本概念:信任根、信任传递和可信度量。首先,在计算机系统中建立一个信任根,而可信计算平台中安装的可信平台模块即为信任根。信任根的可信性由物理安全、计算安全和管理安全共同确保。再建立一条信任链,从信任根开始,通过完整性度量和完整性存储技术对系统关键信息的可信赖性进行度量和存储,实现信任的链式传递[3]。
TCG规定的可信计算技术作为一种成熟的可信计算技术,在国际上有着广泛应用。可信计算主要包含了五个关键技术概念。其一,签注密钥。作为2048位的密钥对,包含了RSA公共秘钥与私有密钥,在芯片出厂后,已经随机生成,并不能随意改变,能够对芯片内的敏感信息进行认证、加密并发送。其二,安全输入与输出。主要是指计算机用户数据库与交互软件的保护路径。新形势下,在计算机系统中,恶意软件拥有诸多拦截方式,如:键盘监听、截屏。其三,储存器屏蔽。作为一般存储保护技术的拓展,为数据信息提供了独立存储区域,通过对数据存储器进行屏蔽,即使入侵者能够控制操作系统,也能保障信息安全。其四,密封存储。主要是将私有信息与软硬件平台的配置信息同一捆绑,以此保护用户私有信息。不过,该种方式下,数据仅能在相同软硬件的组合环境中读取。其五,远程认证。当用户电脑改变,授权方既能感知。
SGX全称Intel Software Guard Extensions,是Intel开发的新的处理器技术,是对英特尔体系(IA)的一个扩展。它可以在计算平台上提供一个可信空间,保障用户关键代码和数据的机密性和完整性,增强软件的安全性。
SGX包含三大要素:安全区、认证和密封。安全区是SGX的核心。如果不先建立安全区,将不能够进行认证或密封。实质上,安全区是应用程序根据一套CPU指令在地址空间建立受保护的区域。该区域可封装合法的软件代码,未经授权的软件无法访问受保护区域,而经授权的软件可通过专用CPU指令启用、构建和加载动态链接库文件与应用程序交互。
SGX技术可为机密信息提供高级别的保护,抵御恶意软件的攻击。即便遭受恶意软件的攻击,它也能够保障数据的机密性和完整性[4]。
可信加密服务平台技术是基于英特尔SGX(Software Guard Extensions)技术,将用户的合法数据存储在一个安全可信的环境中,保护其不被恶意软件攻击,即便是操作系统本身也无法获取到该隔离环境中的数据,从而能够保证数据在加解密运算过程中无法被恶意窃取。
白盒加密是一种加密算法技术。传统的加密默认是在黑盒环境中实施的,即攻击者只能看到输入(如明文)或输出(如密文)等有限信息。如果攻击者可以完全控制加密的终端,可以知道加密的中间值、加密算法、甚至修改执行代码。那么称为是白盒攻击[5]。
密钥白盒是将密码算法白盒化的过程,从本质上说是提高加解密程序的复杂度,致使逆向人员无法分析还原出密钥。白盒算法能够抵御白盒攻击,帮助解决密钥的运行安全问题。
可信加密服务平台技术研究目标:
(1)确保用户的数据存储安全,数据的存储安全依赖于密钥的生命周期安全;
(2)确保用户的密钥生成、存储安全,即使数据库被拖库,密钥安全仍然能够得到保证;
(3)确保用户密钥的分发安全,即使分发密钥的通信链路被监听,仍然能够保证密钥的传输安全;
(4)能够保证即使在攻击者已经获得平台的实际控制并直接攻击内存的境况下也能保证密钥的安全和隐秘;
(5)能够保证加解密数据的机密性和完整性并不会被正常的系统软件对平台资源进行管理和控制的功能所扰乱;
(6)允许用户保护敏感信息不被运行在更高特权等级下的欺诈软件非法访问和修改。
可信加密服务平台技术的架构:
可信加密服务平台技术架构包括数据加解密接口层、SGX可信容器、SGX驱动层、SGX芯片,借助Intel处理器的SGX技术,通过CPU的硬件模式切换,加解密服务进入可信模式执行,只使用必需的硬件构成一个完全隔离的特权模式。系统具体效果图如图1。
图1 系统图
可信加密服务平台技术包括密钥管理服务器(KMS)、可信加密模块两部分。KMS负责密钥的生成、存储、分发等功能;可信加密模块提供加解密接口,并能抵御白盒攻击,保护加密模块所需的密钥,如图2。
图2 可信加密模块
密钥管理服务器用于安全生成、存储、分发、管理密钥。密钥由硬件加密卡生成,生成后由加密卡加密存储,加密密钥由硬件加密卡存储、管理,下发密钥时由加密卡解密并以会话密钥加密形成密文。
3.1.1 密钥的生成安全
密钥的生成安全由加密卡保障,生成算法使用国密算法,所用到的随机数是由加密卡产生的真随机数,保证算法的安全性[6]。
3.1.2 密钥的存储安全
密钥以密文形式存储,加密密钥只存在于加密卡中,加密解密算法的运行安全、密钥加密密钥的存储安全由硬件保证,且安全性通过国家密码管理局认证。
3.1.3 密钥的分发安全
密钥由会话密钥保护,会话密钥由公钥加密保护。密钥下发时为保证密钥的安全,使用客户端生成的会话密钥来加密下发。会话密钥只存在于请求密钥时客户端内存中,传输时以密钥服务器的公钥作为加密密钥加密形成密文,只有拥有配对私钥的密钥服务器才能解开。
一个典型的密钥分发流程如图3所示。
图3 密钥分发流程
3.1.4 密钥服务器的可靠性
密钥服务器可靠性通过增加冗余设备形成主备部署、集群部署模式,单机故障时密钥请求发送到备用服务器上。密钥服务器数据实时热备,保证数据可用性。
白盒算法的核心思想是混淆(一种特殊的混淆)。它的目的是为了保护在白盒环境下(不可信环境)的密钥,从而在白盒环境下安全进行加解密操作。
白盒加密算法将密钥和原来的加密算法进行混淆。一种具体实现形式是在块加密进行一些改动设计,引入查找表的概念。在密码程序运行的任何阶段,原始密钥信息完全融入加解密算法之中,原始密钥信息已经不存在。即只能输入明文得到密文,或者相反操作得到明文。动态白盒技术还可以在保持白盒库不变的情况下更换密钥,极大提升白盒密码产品的灵活性。
3.2.1 加密流程和接口
(1)可信加密模块接收KMS分发的密钥key,key经过白盒处理后得到wb_key。
(2)得到wb_key后,白盒算法使用wb_key对输入明文进行加密。
由于白盒算法中已经没有密钥出现,因此运行环境的密钥安全得到保护。为保证白盒处理key的运行安全,将这一步操作放入SGX可信容器执行,即利用处理器提供的一些指令创建一个可信执行环境,将key的白盒处理程序加载到可信容器中,保证key的白盒处理是安全可信的。
3.2.2 获取密钥
客户端通过发送用户ID、个人身份标识等信息向密钥管理服务器(简称KMS)请求获取SM9密钥,KMS接收到用户请求后通过特定的函数生成SM9密钥,再将密钥加密后分发到客户端。
3.2.3 更新密钥
客户端通过发送用户ID、个人身份标识等信息向KMS请求更新SM9密钥,KMS销毁老密钥,重新生成一个新密钥,再将密钥加密后分发到客户端。
3.2.4 销毁密钥
密钥管理服务器对已经没有权限访问数据的用户进行销毁密钥,防止信息泄露。
3.2.5 算法初始化
客户端在进行加解密操作之前,向KMS请求,完成密钥初始化。
3.2.6 数据加密
客户端传输数据之前,采用SM2、SM3、SM4等高强度国密算法,实现对明文数据加密。
3.2.7 数据解密
客户端接收到密文之后,采用SM2、SM3、SM4等高强度国密算法,实现对密文数据解密。
3.2.8 服务接口能力
服务实现外部接口设计,给客户端提供加解密接口,外部直接在客户端调用接口,即可实现相关业务功能
可信加密服务平台技术采用了白盒密码技术、SGX技术和SM2、SM3、SM4等高强度国密算法等构建了一个可信加密服务。实现了数据在计算、传输、存储过程中的保密性,保障了数据安全;同时也实现了密钥的生成、存储、分发、运行、管理等密钥全生命周期的安全。有效解决了数据存储的安全问题,避免了用户数据的丢失与篡改,提高了用户对网络平台的信任值,推动了网络的进一步发展。