硬件密码组件的硬件结构、作用及实现应用设计

引 言

1 硬件密码组件的概念

密码技术是解决信息安全问题的核心技术。要实现信息的保密性、完整性、可控性和不可否认性等安全要求,都离不开密码技术的运用。在具体的信息安全系统中,密码技术的运用可以基于软件密码组件(简称为SCM)或硬件密码组件(简称为HCM)来实现。HCM从本质上来说是一个包含某些敏感信息,能自主完成特定功能的黑盒子;外界不能访问其中的敏感信息,亦不能干予其中正在执行或即将执行的运算任务。黑盒子可以通过严格定义的接口和外界进行交互,接口在黑盒子的完全控制之下。任何企图通过物理手段探测黑盒子内部的行为都将导致其中敏感信息的完全清除。

从抽象角度,可以用如下方式描述HCM。

符号和定义:

X——敏感信息,其明文不能以任何形式出现在HCM之外;

E(X)——敏感信息X的秘文;

Fi(X,Y)——HCM用其保存的敏感信息X和外界输入的信息Y完成某项功能,如签名、加密和解密等其它特定功能。HCM的N项功能可以用集合{ Fi(X,Y)|1≤i≤N }表示。

Ui——某个HCM的用户,其全部M个用户可以用集合{ Ui |1≤i≤M }表示。

Zij——表示用户Ui对HCM的功能Fj(X,Y)的权限信息。Zij=0表示用户没有权限,Zij=1表示用户拥有权限。

则HCM可用一个五元函数G(E(X),Y,Fj,Ui,Zij)表示,其定义如下:

从应用角度来看,HCM是一个由软硬件组成的安全计算系统,其系统结构如图1所示。整个HCM总体上可以分为两大部分,即软件部分和硬件部分。在形式上,硬件部分体现为一个硬件实体,而软件部分则是与此硬件实体相配套的驱动程序、动态库等软件包。硬件部分进一步可细分为底层硬件电路、初始引导固件、操作系统或控制程序固件、密码算法库、内部功能固件等几部分。软件部分由接口驱动系统、用户应用编程接口和标准应用编程接口组成。其中标准应用编程接口是指按照某些业界接口标准,如PKCS#11、CSP等进一步对用户应用编程接口进行封装,以方便上层应用系统的调用。标准应用编程接口并非所有 HCM所必需,所以用虚框表示。

硬件密码组件的硬件结构、作用及实现应用设计

2 硬件密码组件与软件密码组件的对比

软件密码组件是指密码技术的软件实现。与HCM比较,SCM开发周期短,开发成本低,使用维护方便,这是其优点。但在自身安全性和实现安全功能方面,HCM则具有优势,这主要体现在以下几个方面。

(1)完整性保护

HCM的完整性和运行时的保密性可以得到很好的保证,而SCM的完整性和运行时的保密性则很难得到保证。HCM由硬件和硬件之上的固件组成,硬件中的密码算法芯片一般采用反熔丝的FPGA或ASIC实现,难以破读或更改。固件则通过烧录器写入到Flash芯片,不能非法改写。另外,HCM 中的RAM空间由其专用,外部程序不能对其进行访问;SCM一般保存在计算机的硬盘上,运行时调入系统内存运行。由于计算机系统本身的安全性不高,因此硬盘上或内存中的SCM都可能被攻击者、病毒程序或黑客程序篡改。另外,SCM运行时占用的内存空间虽然受到操作系统的保护,但不能保证其不被其它进程访问,这样SCM运行时所需的敏感信息或运行中产生的敏感信息就可能泄露。

(2)对商用操作系统安全性的依赖

SCM运行时需要操作系统提供的支持,而HCM本身构成了完整的运行环境,无需依赖操作系统等其它外部支持。由于操作系统往往存在某些漏洞,这些漏洞若被攻击者利用,就可能会给SCM带来严重的安全问题。

(3)抵抗能量分析攻击

进行密码运算时总要消耗运算设备一定的能量,攻击者通过收集能量值,就可能计算出密码运算时所采用的密钥值。特别是在进行运算量很大的 RSA签名时,这种基于能量的攻击更容易得到签名私钥。SCM对于这种攻击是脆弱的;而HCM则可以通过特别措施来防止攻击者收集能量值,从而抵御能量攻击。

(4)种子密钥的保存

安全的保存种子密钥对SCM是非常困难的。种子密钥需要长期保存,对整个系统安全至关重要。对于SCM来说,种子密钥只能保存在计算机的硬盘上,显然保存种子密钥的明文是非常不安全的。一般采用的办法是通过一个口令加密种子密钥,然后保存种子密钥的密文。每当用户使用种子密钥时,需要输入口令。但这样亦是不安全的,首先这就要求有用户在场,才可使用种子密钥,否则就不能使用。其次用户往往会选择容易记忆的简单口令,这使其容易被攻击者猜测。

(5)安全地进行密码操作

在HCM中可以安全地进行密钥生成(公钥密钥对、会话密钥)、加密、解密、签名等操作,同时保证加解密密钥和签名私钥的安全性;而在SCM 中进行这些操作时,则存在泄露这些密钥的可能性。

(6)密码算法实现的效率

在HCM中通过专用的密码运算器,如公钥协处理器和专用对称算法芯片可以大大提高对称算法和非对称算法的运算速度;而SCM密码运算的速度则依赖于计算机系统的效率。这使得目前SCM中密码算法的运算速度往往低于HCM的实现速度。

(7)逆向工程攻击

SCM保存在计算机硬盘或内存中,而一般的计算机对硬盘和内存的保护是非常脆弱的,因此它容易受到逆向工程攻击。

SCM的基本组成如图2所示。SCM用到的数据包括敏感数据和一般数据。敏感数据是指密钥、用户PIN码等数据。SCM的程序逻辑可分为密码算法(对称和非对称的)、密码协议(例如SSL、IPSEC等)以及其它程序控制逻辑。利用逆向工程的工具和技术,攻击者可以监控程序的输入和输出,从而获得用户口令等敏感信息;其次攻击者还可以扫描程序数据区,得到密钥、口令信息;另外攻击者对程序的运行逻辑进行跟踪,可以得到密码算法和密码协议的运行轨迹,特别是如果算法和协议不是公开的,而是保密的,这时攻击者可以得到重要信息。而且攻击者还可以进一步修改软件执行逻辑,制造“后门”。

逆向工程工具可以分为两大类:第一类是为获得程序的运行逻辑,反汇编、反编译工具属于此类;第二类是为获得程序实时的运行信息,仿真、调试工具属于此类。IDA Pro是目前最有效的反汇编工具。它可以自动对目标代码进行分析,自动检测Win32 API功能调用,并能建立这些调用之间的关联。IDA Pro还能以交互方式运行,攻击者可以告诉IDA Pro某些程序片断是带何种参数的API调用,从而提高IDA Pro的分析能力。另外IDA Pro还有脚本语言,攻击者可以用该语言编写能够进行反汇编的小程序。W32Dasm是另一个著名的反汇编自由软件,同时它是一个功能强大的调试器,可以获取程序运行的实时信息。Java是目前最流行的网络编程语言,Java源代码经过汇编成为Java字节代码。这种代码不同于一般的汇编代码,它具有唯一性,独立于底层的处理器。这就意味着Java源代码和Java字节代码之间几乎存在着一一对应的关系,所以Java类文件可以很容易反编译成Java源文件。互联网上有很多专门完成这项功能的工具软件。另一个类C反编译工具是REC,它可以输出可读性较好、容易理解的反编译结果。

利用仿真、调试工具可以建立软件的模拟运行环境,在这个环境中通过实时观察各种变量、内存和寄存器的变化情况,从而获得较为准确的程序运行信息。最著名的调试工具是SoftICE。利用该软件对在操作系统内核层运行的驱动程序都可以进行跟踪调试。Microsoft Visual Studio亦提供了功能强大的调试环境,不过它主要是对在操作系统用户层运行的程序进行仿真跟踪。

(8)密钥的随机性保证

在HCM一般都有物理噪声源,可以产生真随机数,以此为种子可以产生高质量的随机大素数、公钥密钥对和会话密钥;而在SCM中没有物理噪声源,只有取系统时钟、用户击键频率等作为随机因素,由此生成的公钥密钥对和会话密钥的随机性很难保证。

(9)物理暴露与密封

普通的计算机在物理上是暴露的,攻击者可以轻易地进行系统重启、修改硬盘文件,安装黑客软件等攻击操作。甚至攻击者还可以将整台机器“盗走”,据为已有。另外,普通计算机上的系统主板等电路没有防护措施,攻击者可以利用逻辑分析仪等其它工具对印刷电路板上的芯片进行侦测、记录。当密钥在芯片之间传递时就可能被攻击者获取。而HCM有物理防护措施,其关键电路在物理上被密封,避免被攻击者探测。如果强行打开物理密封,则会导致系统自毁或敏感数据完全清除,从而保证了HCM在物理攻击下的安全性。

(10)备份与灾难恢复

对于重要的信息系统,备份与灾难恢复机制是必不可少的。这就需要把关键数据复制,分散保存在不同地方。但如何保障这些数据不被窃取、修改和盗用呢?单单利用SCM不能很好地解决这个问题,而采用HCM则可构建安全可靠的数据备份与恢复系统。

(11)可靠的时间戳服务

时间戳在密码系统中的应用越来越广,最初使用时间戳是用来保证认证和密钥协商协议中传递消息的新鲜性。目前随着网上电子商务的不断发展,在传统信息的保密性、身份的真实性、内容的完整性和数据的不可抵赖性等安全要求之外,还要解决信息的时效性问题,这主要有两方面的含义。

① 保证信息的时效性。对于像商业情报、专利发明等对时间敏感的信息,通过申请时间戳,可以证明你在某一时刻拥有这一信息。

② 保证操作有时效性。对于像竟标、竟拍等对时间敏感的活动,通过申请时间戳,可以证明你在某一时刻完成了这项活动。

在HCM中可以包含精确的时钟部件,它可以独立可靠地为系统提供准确时间信息。而SCM本身不能产生时间信息,只能取计算机的系统时间,显然这是不可靠的;或者从专门的时间提供系统获取时间信息。

3 硬件密码组件的硬件结构

典型的硬件密码组件结构如图3所示。基本组成部件由中央处理器与外围接口、随机存储器、Flash、BBRAM、硬件随机数发生器、密码运算协处理器、实时时钟、总线接口等组成。其中Flash保存所有固件和部分加密敏感信息,BBRAM作为安全存储器保存敏感信息明文。硬件控制逻辑通过大规模的可编程逻辑阵列CPLD实现。另有物理安全检测与反应电路,负责检测物理攻击,并及时向中央处理器发出攻击反应触发信号。以上部件包含在硬件安全边界之内,通过加装物理密封层保证整个系统的物理安全性。在安全边界之外有长效电池作为后备电源。

HCM在物理上主要从以下几个方面区别于一般的硬件系统。

① HCM内部有安全存储部件,其中保存敏感信息,这些信息不会以任何形式出现在HCM外部。安全存储部件只能由HCM自己访问,其它任何形式的访问都会导致所有敏感信息的完全清除。普通的硬件系统没有这样的安全存储部件。

② HCM有物理安全边界,它可以阻断对HCM的物理攻击。普通的硬件系统没有这样的密封装置,攻击者可以对其中的信号进行多种形式的探测。

③ 在密码算法和协议本身没有安全漏洞的前提下,其安全性主要取决于密钥的长度和随机性。密钥的长度可以提前确定,如1024位或更高的2048位的RSA密钥,128位的对称算法密钥;而要生成具有高度随机性的密钥就必须有安全的随机信源。因此HCM中必须有硬件随机数发生器,为系统提供真随机数。普通的硬件系统一般没有专门的硬件随机数发生器。

④ 为了获得较高的密码运算效率,HCM内部往往有专门的密码运算协处理器。普通的硬件系统主要通过软件实现各种密码算法和协议,其效率主要依赖于系统CPU 性能。

为了增加安全性,HCM往往会有多个物理接口和外界通信,每个接口完成特定的功能。例如,具有PCI接口、USB接口、以太网接口和 RS232接口的HCM,其每个接口分别完成以下功能。

① PCI接口:向上层用户提供HCM的各种密码服务功能,如加密、解密、签名、验证或其它特定应用执行结果。

② USB接口:HCM对操作员身份进行验证时,操作员将标识其身份的USB电子TOKEN插入USB接口,即提供操作员身份认证的物理通道。

③ 以太网接口:通过该接口,可以在网络上对HCM进行远程配置和管理。另外,还可以向远端用户提供密码服务。

④ RS232接口:通过该接口可以对HCM进行本地配置和管理。

结 语

硬件密码组件是信息安全系统的核心部件,是嵌入式硬件设计技术与密码理论结合的成果。目前国内的硬件密码组件设计技术与国外相比还有差距,这为商用嵌入式系统的研发厂商进入信息安全领域提供了良好的机遇。希望本文能对此起到抛砖引玉的作用。

责任编辑:gt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql倒序查询语句_SQL丨1.基本查询语句复习

此为自用查询语句1.selectSELECT column1,column2 FROM table1;常用的格式惯例:大写了SELECT和FROM,而将表名和列名小写;通常在列名中使用下划线,避免使用空格;在每个语句末尾添加分号;SQL不区分大小写。2.…

基于区块链的档案共享 项目启动

注意事项 已经备份了一个配置fabric的完整ubuntu系统,其需要注意的细节如下1,此镜像系统需要配置host文件,sudo vim /etc/hosts,添加如下内容127.0.0.1 orderer.example.com peer0.org1.example.com peer1.org1.example.c…

知道一点怎么设直线方程_【初中数学】反比例函数策略(二) ——构造方程法...

【相关阅读】【初中数学】反比例函数策略之一 ——数形结合反比例函数策略(二)——构造方程法(王 桥)上一次,咱们探讨了解决反比例函数的策略一——数形结合,本节课我们继续反比例函数的策略(二)——构造方程法。构造方程法,在《春季攻势》第…

wpf将文字转化为图形_将创新转化为实际应用

Worldsensing是全球公认的物联网先驱。这家位于西班牙巴塞罗那的技术供应商成立于2008年,为城市和传统行业提供运营情报。伊格纳西维拉霍萨纳(IgnasiVilajosana)是公司联合创始人兼首席执行官。伊格纳西拥有西班牙巴塞罗那大学物理学博士学位,还接受过美…

音视频处理 FFmpeg相关内容介绍 以及八大

FFmpeg的介绍 FFmpeg由Fabrice Bellard于2000年创建,由C和汇编语言进行开发FF -> Fast Forward 快进mpeg -> 标准化组织 Moving Pictures Experts Group使用到FFmpeg的开源项目gstreamer: a framework for streaming mediachromiummpv: Command line video pl…

音视频处理 基础开发 语言基础

基础开发内容 Vim编译器C语言回顾,重点介绍指针的概念Linux/MAC C语言的编译和调试Linux/MAC 常用开发工具介绍 Vim编译器 命令模式 拷贝 删除 粘贴等,通过i / a 等切换到编辑模式编辑模式 编辑字符,通过ESC进行切换常用命令 创建文件 vim …

音视频处理 ffmpeg下载、编译和安装

创建文件夹 ffmpeg_sources 存放源文件ffmpeg_build 构建文件并安装库bin 存放二进制可执行文件 安装依赖环境 整体安装 sudo apt-get update -qq && sudo apt-get -y install \autoconf \automake \build-essential \cmake \git-core…

CLion配置 鼠标滚轮 放大和缩小

操作 点击File -> Settings点击Appearance & Behavior -> Keymap在搜索框搜索 font 选择 Decrease FontSize ,右键点击,选择add Mouse Shortcut,按住ctrl,同时向下滑动滚轮;同理,操作 Increase…

struts2通配符_基于Struts2框架的名片管理系统

本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5,集成开发环境为Eclipse IDE for Java EE Developers。名片管理系统主要包括用户管理和名片管理功能。用户功能主要包括:用户注册、用…

音视频处理 Clion搭建ffmpeg开发环境

参考链接 Ubuntu 20.04 搭建 CLion FFmpeg 开发环境_TYYJ-洪伟的博客-CSDN博客 安装CLion 首先到 jetbrains 官网 https://www.jetbrains.com/clion/ 下载 CLion 安装包 CLion-2021.1.tar.gz使用finalshell和ubuntu之间配置ssh链接将Clion-2022.1.tar.gz 使用move移动到 /hom…

音视频处理 ffmpeg中级开发 H264编码

开发介绍 libavcodec/avcodec.h常用的数据结构 AVCodec 编码器结构体AVCodecContext 编码器上下文AVFrame 解码后的帧结构体内存的分配和释放 av_frame_alloc 申请av_frame_free() 释放avcodec_alloc_context3() 创建编码器上下文avcodec_free_context() 释放编码器上下文解码…

音视频处理 ffmpeg中级开发 视频转图片

操作流程 目的:使用FFmpeg将视频的每一帧数据转换为图片1,打开输入的多媒体文件,检索多媒体文件中的流信息2,查找视频流的索引号,通过索引号获取数据流;通过解析视频流中的编码参数得到解码器ID&#xff0…

企业知识库与知识管理:如何统一战略与实践

在知识密集型的现代企业中,知识已经成为了一种宝贵的资产。如何有效地管理和利用这一资产,成为企业持续发展与创新的关键。企业知识库与知识管理作为知识经济的两大支柱,它们的重要性不言而喻。但很多时候,我们发现企业的知识管理…

音视频处理 ffmpeg中级开发 AAC编码

介绍 编码流程类似于视频编码,1,查找编码器;2,设定参数,打开编码器;3,数据编码编码函数 avcodec_encode_audio2 已经被弃用FFmpeg 过时 Api 汇总整理 - 灰色飘零 - 博客园 未成功使用 旧版本i…

虚拟机为Ubuntu分配空间

当虚拟机里面的创建的ubuntu镜像需要更大的空间,将ubuntu关掉之后,对应调整硬盘的空间大小,由先前的20G上调至50G,但是先前的20G内存空间映射的位置是/dev/sda,后面增加的这段内存空间30G映射到/dev/sda1因此&#xff…

为什么人会摆高姿态_Yo , 你为什么喜欢冲浪?

“你为什么喜欢冲浪?” 那天木木突然问我。我愣住了。此时一道碧波恰从防泼堤(jetty)的那头升起,木木转头望去,视线追着那道浪缓缓向西,直至它破碎成白色的浪花。我瞥见他眼神中的光亮,就和小孩…

音视频处理 ffmpeg初级开发 命令行工具-实用命令

参考链接 ffmpeg Documentation作者:smallest_one 链接:FFmpeg命令行工具-实用命令 - 简书 目录 1,help命令使用 1.1 ffmpeg命令的语法结构1.2 获取详细的help信息1.3 打印帮助或者支持能力的信息1.4 全局选项1.5 文件选项1.6 视频/音频/字…

不同的电脑打印预览不同怎么解决_条码打印软件中标签预览正常打印无反应怎么解决...

在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决。一、预览正常情况下,打印没反应(1)在条码打印软件中设计好标签之后&#…

MP4文件格式的相关内容

参考链接 FFmpeg中mp4的demuxer(mov.c)代码阅读 - 简书mp4文件格式解析 - 简书mp4封装格式各box类型讲解及IBP帧计算_青丶空゛的博客-CSDN博客5分钟入门MP4文件格式 - 程序猿小卡 - 博客园​关于M4A文件的随机访问 - 云社区 - 腾讯云 MP4文件格式相关内容 MP4文件由许多box组…

华三交换机如何进入配置_学校机房项目交换机的如何配置,理解这篇,交换机配置不再难...

弱电项目中,交换机的配置是无法避免的,大部分的项目都有可能会涉及到,尤其是机房等网络项目,本期我们就通过一个实际项目案例来详细了解交换机在项目中的应用配置,如果我们平时对交换机配置不熟,这个案例可…