软件与硬件密码模块安全性研究
位置: 首页 >讲话 > 演讲稿 > 文章内容

软件与硬件密码模块安全性研究

2022-05-09 20:03:26 投稿作者: 点击:


打开文本图片集

摘 要:密码模块是保护数据信息的核心部件,密码模块保护数据信息的同时,其自身的安全性如何保证。密码模块有哪些实现方式,能达到多高的安全级别,不同的实现方式有哪些优劣,本文从两种实现方式对密码模块的安全性做了简单的介绍。

关键词:密码模块;软件密码模块;硬件安全模块;PCIE密码卡

中图分类号:TP309 文献标识码:A 文章编号:1671-2064(2019)19-0045-03

0 引言

当今社会是一个信息化的社会,在保护计算机及电信安全系统的需求下,密码应用的需求日益增强,数据需要密码的保护来防止非授权的访问。密码技术能够实现实体鉴别和不可抵赖等安全服务,但密码的安全性和可靠性直接取决于实现它们的安全密码模块。

在密码应用系统中,如何保护及使用敏感的密钥信息对整个密码应用系统的安全强度有着至关重要的影响。一般由两种方式来使用敏感的密钥信息:软件密码模块在主机内存中使用密钥;硬件密码模块,密钥存储及使用均在扩展板卡或其他嵌入式密码设备中进行,该嵌入式设备要嵌入到服务器中使用,该类产品典型的形态有密码卡、安全UKEY。除了软件密码模块和硬件密码模块,还有其他类型的模块,如固件密码模块,混合软件密码模块,混合固件密码模块,但对密钥的使用根本的区别在于:是否在内存中使用敏感的密钥信息。

1 软件密码模块的安全性分析

软件密码模块的边界为执行在可修改的运行环境中的纯软件部件,软件密码模块运行的环境多为计算平台及操作系统。

软件密码模块中的敏感的密钥信息对计算平台和操作系统是可见的,攻击者利用对计算平台及操作系统的熟悉程度,基于现有计算平台及操作系统的漏洞便可以实现达到获取敏感的密钥信息的目的,因此软件密码模块的高安全性对计算平台以及操作系统的安全性设计有着高度的依赖。

下面从两个攻击案例,来说明软件密码模块所面临的威胁。

1.1 攻击案例1:系统漏洞-内存窥视密钥信息

攻击基于OpenSSL软件密码模块实现的文件加密程序,获得文件加密程序所使用的密钥信息。

本案例是一个内存攻击的简单展示,展示的内容为获取目标进程的密钥信息。

目标程序“enc.exe”功能介绍:从口令衍生密钥,使用RC4加密需要保护的文件。

使用了OpenSSL软件安全中间件;

遵循PKCS#5文件加密标准;

被加密文件:abc.txt;

口令:123456;

衍生密钥:???????。

图1所示,攻击者编写了一段程序mematt_1.exe,使用ReadProcessMemory的方法,对enc.exe目标进程进行了内存窥视,比较容易地获取了目标进程中使用的密钥。

1.2 攻击案例2:CPU芯片漏洞-Meltdown

内存隔离是计算机系统安全的基础,例如:内核空间的地址段往往是标记为受保护的,用户态程序读写内核地址则会触发异常,从而阻止其访问。在本文中,我们只简单描述这个叫Meltdown的硬件漏洞。Meltdown是利用了现代处理器上乱序执行的副作用,使得用户态程序也可以读出内核空间的数据,包括个人私有数据和密码(或密钥)。由于可以提高性能,现代处理器广泛采用了乱序执行特性。利用Meltdown进行攻击的方法和操作系统无关,也不依赖于软件的漏洞。地址空间隔离带来的安全保证被Meltdown无情的打碎了(半虚拟化环境也是如此),因此,所有基于地址空间隔离的安全机制都不再安全了。在受影响的系统中,Meltdown可以让一个攻击者读取其他进程的数据,或者读取云服务器中其他虚拟机的数据,而不需要相应的权限。

Meltdown漏洞并非针对某个系统或者某个软件,而是针对计算机体系结构,该漏洞危害能够遍及大多数近代的CPU。手機,个人PC,服务器,到云服务器以及虚拟机,都受到了这次漏洞的影响。

图2展示的是读取内核内存的实例,计算机基于内存隔离实现的内核空间数据的保护被完全破坏。如果密钥出现在受保护的内核空间内,攻击者利用CPU漏洞窃取密钥信息是可实现的。

更详细的分析及影响可参考下面两处文章。

https://www.linuxidc.com/Linux/2018-01/150307.htm

https://blog.csdn.net/zhipingxi/article/details/79307648

1.3 软件密码模块安全性总结

2.1以及2.2章节只用两个例子来说明,攻击者能够利用计算平台以及操作系统自身的一些漏洞,对软件密码模块实施攻击。此类利用硬件或系统自身漏洞进行获取用户敏感信息的例子还有很多,这些案例也足以说明软件密码模块是无法从根本上保证敏感信息的安全性,因为软件密码模块最终都要在主机内存中运行。

如果被保护的密钥信息达到一定的安全级别,我们需要利用具有更高安全级别的硬件密码模块来实现敏感密钥信息的保护。

2 硬件密码模块的安全性分析

软件密码模块运行过程中,所使用的安全算法,密钥信息,权限控制都无一例外的会出现在主机内存中,这给了攻击者以可乘之机。与软件密码模块不同,硬件密码模块的特点是:密钥由硬件密码模块保护,密码算法由硬件密码模块实现,密码运算在硬件密码模块内进行,操作过程中可以保证密钥只出现在硬件密码模块之内。本文只以简单的方式对硬件密码模块做一下介绍,硬件密码模块有一整套复杂完善的安全机制来确保敏感数据的安全性,不做过多赘述。

2.1 硬件密码模块硬件组成

图3清楚的展示了一个硬件密码模块是由哪些功能模块组成的,这些功能模块可能被集成在一片芯片中,也有可能是集成在同一块电路板上。对外接口形式可能是PCIE、PCI、USB、SD、TF或CPU卡,这取决于应用场合的需求。另外,硬件密码模块多嵌入到服务器主板中对外提供密码服务。

主要功能模块介绍如下:(1)处理器模块。硬件密码模块的主控程序运行在处理器模块内,主要实现硬件密码模块内的资源调度,用以响应来自服务器的安全业务请求。(2)算法实现模块。实现对称、非对称及摘要算法。(3)随机源。用于密钥的产生。(4)存储模块。用于敏感密钥信息的存储,敏感的密钥不会以明文的形式输出到硬件密码模块之外。(5)权限控制模块。用于实现密码模块的角色管理,如主管角色,用户角色,维护员角色等。(6)接口实现模块。实现硬件密码模块与服务器的通信,完成数据交互。

2.2 硬件密码模块调用方法

通过分析服务器与硬件密码模块的数据交互,来说明硬件密码模块能够实现对敏感密钥信息的保护。以加密业务请求为例。

从图4能够看出,密钥存储在硬件密码模块之内,当硬件密码模块处理器接收到请求后,会根据硬件密码模块的当前状态,决定是否根据指定的密钥号在存储模块中读取密钥信息,最终调用算法模块来完成来自服务器的业务请求。整个过程,密钥以及运算均控制在硬件密码模块边界之内,攻击者无法获取敏感的密钥信息。

如图5所示,加密返回信息有两种可能,成功与失败。成功时,返回成功状态码及已加密好的数据;若失败,失败的原因有三种可能,硬件密码模块会将失败的原因返回给主机。不管返回信息是哪一种可能,都不含有敏感的密钥信息。

2.3 硬件密码模块总结

文中的案例都比较简单,但足以说明攻击者无法窃取硬件密码模块内敏感的密钥信息。硬件密码模块根据安全性设计方案,也分不同的安全级别。为了达到更高的安全级别,需要从很多方面来进行更可靠的安全性设计,如:角色、服务及鑒别、软件/固件安全、物理安全、非入侵式安全、自测试、运行环境等各个方面。

相比于软件密码模块,硬件密码模块能够胜任高安全级别的密码应用需求。

3 结语

本文以软件密码模块和硬件密码模块为例分析了两种密码模块实现形式对密钥使用的主要区别,以及随之带来的两种密码模块的安全性差异。

每种密码模块都能满足相应的需求,最终的密码应用能够满足实际需求即可。

在密码应用场合,应结合信息资产的重要性,对密码系统中不同的功能模块对使用的密码模块做出合理选择,整个密码系统可以多种密码模块组成,最终是密码应用系统能够很好的保护需要保护的信息资产。

参考文献

[1] 魏怀鉴,鲍皖苏.密码模块安全性要求标准研究[J].微计算机信息,2006,22(24):104-106.

猜你喜欢
推荐图文
毕业设计
  • 办公表格
    办公表格

    中西部人才的培养和储备关系着全面建成小康社会。如何规范高层次人...

  • 谈判技巧
    谈判技巧

    打开文本图片集案例提供:北京世纪思创声学技术有限公司袁斌随着人...