关键词:口令管理器,指纹识别,加密存储,安全管理
0.引言
本文针对涉密信息系统中需要经常更换CMOS口令和登陆口令的问题, 设计了专门的口令管理器。当前市面上主要存在的口令管理器大多为软件的形式,主要存在问题:用户身份的识别强度和便捷性不够。仅仅通过密码来验证口令管理器的权限对于安全性无法保障。本文设计的口令管理器,使用指纹识别进行身份验证,解决了强度和便捷性的问题,并通过国密算法将需要加密的口令加密存储。模块通信间为增加安全强度,统一采用多次加密传输。本文下面部分依次讲述了相关技术和实现方法。
1.指纹识别技术简介
指纹识别技术主要包括四个部分:指纹采集,图像处理,特征提取和指纹匹配。
当前市场上主要存在三种方向指纹采集设备,目前电容式传感器技术成熟,相对光学取像更加精准高效,而相对超声波扫描来说价格低廉。综合价格和性能考虑,本方法采用了电容式传感器作为指纹识别模块的采集设备。
2.国密算法简介
2.1加密及加密算法
对消息进行加密是一个平衡攻击成本和消息价值的措施。常见的加密算法有对称加密算法和非对称加密算法。这两类算法都依赖于算法设计在数学上的严谨性,而非算法自身的保密性。算法本身被公开,接受社会的检验,而加密的安全完全依赖算法数学上的安全和密钥管理的安全。
2.2国密算法
国密算法是国家商用密码管理办公室发布的密码算法。本记忆器主要涉及其中的SM2椭圆曲线公钥密码,SM3密码杂凑算法和SM4/SMS4分组密码。通过部署国密算法,可以降低由弱密码和错误实现带来的安全风险和部署PKI/CA带来的开销。
3.系统设计方案
3.1 系统设计目标:
本记忆器设计为小型手持物理设备,为保证安全,无暴露接口,无网络通信,采用三核心芯片:指纹模块完成身份认证[何军,指纹识别技术的研究与应用[D].首都经济贸易大学,硕士学位论文,2004,2];核心调度模块处理系统流程和资源调度;为防止能量分析攻击等攻击方式,将加密算法部分单独放置到安全芯片中进行运算。在三个模块之间数据通信采用加密传输。
3.2 系统安全基础
本设计基于以下假定:安全芯片安全,密文存储安全,加密算法安全。
3.2.1安全芯片安全
包括用对称加密算法在安全芯片内进行加密运算时需要保证不能被外界破解,种子密钥存放在安全芯片内安全位置不可被外界获得。
本设计采用国密SM4算法对需要存储的信息进行加密。首先SM4算法采用非平衡Feistel结构[王欢.面向SM4密码算法智能卡实现的能量分析攻击与评估方法研究[D].中国科学院大学.硕士学位论文.2016,10],自身本就具有较强的抗差分攻击能力[陈杰,胡予濮,张跃宇.用不可能差分法分析17轮SMS4算法[M].西安电子科技大学学报(自然科学版) 2008; 35( 3) : 455—458.],其次安全芯片采用了较多的硬件级别安全防护措施如噪声的产生来对抗边信道的攻击[张琪等.SM4算法S盒输入的相关性能量攻击的研究.计算机应用与软件. 2015,12]。当前对对称加密算法的攻击主要集中在三个方面:能量分析攻击,计时分析攻击,错误诱导攻击。选用安全芯片从硬件设计上减小了被攻击的可能性。
期刊文章分类查询,尽在期刊图书馆
3.2.2密文存储安全
将需要存储的信息加密后保护在单片机内部,保证不可被外界读取、拷贝,从而避免暴力破解等方法对存储的加密信息进行攻击。本产品将密文存储在单片机Onechip-flash中,保证了相对安全。
3.2.3加密算法安全
包括算法本身的安全程度和代码段在单片机中保护的安全程度[牛砚波,蒋安平. 一种低功耗抗差分功耗分析攻击的SM4算法实现[J] 2014,9.28-32+38]。首先SM4算法是我国颁布的第一个商用加密算法,并且在2012年划定为行业标准,经过了十多年的检验和大量密码学专家的验算,在目前的计算机技术条件下是安全的。其次代码段存储在安全芯片中,不可被篡改,从而也保证了加密算法运行的安全。
以上三点需求是本产品安全的先决条件,任何一项不满足都无法谈论产品安全问题。
3.3 系统总体结构
本产品设计采用了三核芯片结构,也即指纹模块,处理调度模块,加解密模块。解决了模块间通信问题,则解决了所谓的安全问题。
很明显,首先模块间的通信需要保证全部都是加密传输。具体细节表现在以下。
3.3.1身份认证环节
首先由单片机发送信号到指纹芯片,指纹芯片做好准备后由sensor进行激活,采集数据抽象出特征值。
在此过程中如果能够搭接一个外部电路,就可以轻而易举获得特征值,也即获得了所有权限。为防御中间人攻击,此处通信需要进行加密。
最终,设计如下:双方事先共享一个相同的种子密钥。单片机获取时间戳并保存在内存中,将时间戳结合唤醒信号作为明文,填充后调用SM4算法进行加密,将密文传输到指纹模块进行解密,提取出时间戳后结合获得的指纹特征值再次进行加密,然后传输回单片机。单片机解密后比对时间戳,如果相同则提取指纹特征值进行下一步操作,否则丢弃这个包或进行错误校验。如果产品的安全级别较高(二级以上),最好在显示屏上提醒用户并限制尝试错误次数。如果产品的设计安全级别较低,则重新获取时间戳进行工作。
3.3.2单片机和安全芯片之间进行通信。
这个过程包括两个部分:加密和解密。因为加密和解密都需要在安全芯片内完成。
首先是对个人身份的处理:对单片机获得的指纹特征值进行加密后存储。此处传输的信息较为关键,如果被攻击者窃听也需要保证不被破解。所以采用安全性能较高的非对称加密算法进行加密传输。则可以选择的方法为单片机先调用SM2椭圆曲线公钥算法进行加密,即将指纹特征值作为待签名的消息M,结合安全芯片的公钥PA进行加密。然后将密文再次调用SM2算法进行签名,即结合单片机的私钥dA进行签名。然后传输给安全芯片。安全芯片首先用单片机的公钥PA进行认证,然后用自己的私钥dA进行解密。这个过程保证了:消息确实是来自单片机的,并且最终的消息只有安全芯片能够解密读取。安全芯片获得指纹特征值后在内部运用杂凑算法进行进一步的混淆,然后用SM4算法进行加密获得最终密文。最后安全芯片将该密文用单片机的公钥PA进行加密,然后传输到单片机内部。单片机使用自己的私钥dA对接收的信息进行解密,然后将获得的消息进行存储。这个存储的内容就是加密后的指纹特征值。
即使攻击者获得了这密文并破解了第一层加密,也会因为杂凑算法的强抗碰撞性而无计可施。
需要进行身份验证时,只需要将获取的指纹特征值重复上述的步骤,再与存储的密文进行比对就能完成认证。整个认证过程没有明文暴露。大大减少了被攻击者破解的可能性。
至于需要存储的消息为用户的密码,则采用和上述结构相同的措施,只是在安全芯片内不采用杂凑算法进行混淆,否则解密时无法将存储的密码解析出来。
以上两个通信过程实现了对安全传输的最重要的需求。
4.结语
一个完善的验证设计方式可以应用到方方面面,物理模块也可以横向迁移到代码模块。重要的不是已经做了什么,而是如何从已知的存在的,向不同的领域中应用。笔者论证了一种完善的安全认证模式所需的三个基本模块之间相互通信的联系,立足攻击者角度,从各种可能的攻击方式出发,对此进行模式上的完善,从而实现一个更加安全的通信模式。攻击方式可以被替代,防御方式也会相应变化,但是这种思维方式是解决此类问题最好最关键的核心。
论文作者:陈佳城
论文发表刊物:《科技中国》2018年3期
论文发表时间:2018/8/6
标签:算法论文; 口令论文; 芯片论文; 指纹论文; 单片机论文; 特征值论文; 模块论文; 《科技中国》2018年3期论文;