基于国密算法的设备安全认证系统设计Design of device secure authentication system base on SM2
许小波 (上海交通大学电子系,上海 200240)
摘 要:本文针对电子产品主机与设备之间的安全认证,提出国密算法用于安全认证,设计出通过两次签名验证完成主机对设备和设备对主机的认证方法,并以手机主机对电池的认证进行示例演示。关键词:国密;SM2;安全认证
0 引言
我们日常生活中使用的电子产品常常是主机带有设备,如打印机与墨盒,苹果手机与数据线。这些主机与设备之间一般都有一个安全认证过程,即认证该设备是否合法,只有合法的设备接入主机才允许使用,以此保证产品安全可靠地运行。在安全认证方法上,文献[1]中讨论了使用国际安全算法SHA-256和ECDSA的实现方式,并且只包含了主机对设备的安全认证,并没有设备对主机的安全认证,属于单向认证。本文首先讨论了基于国密算法的设备安全认证方式,然后设计出基于国密算法的设备单、双向安全认证系统。
2 国密算法安全认证系统设计
首先,预置认证公钥。我们产生一对认证的SM2密钥对Authentication_Private_Key和Authentication_Public_Key。在设备生产工厂的安全环境下,将认证公钥Authentication_Public_Key预置到设备里,其次,用认证私钥对设备唯一性数据进行签名。设备里产生一对设备的SM2密钥对Device_Private_Key和Device_Public_Key。导出设备的Device_Public_Key和设备序列号等设备唯一性数据,由认证私钥Authentication_Private_Key对其签名,将签名信息再置入到设备里,预置后的设备所含数据如图1所示。以上两步都是设备生产工厂的安全环境下进行,同时要求设备出厂后对置入的认证公钥和签名信息、设备的SM2密钥对、设备序列号等唯一性数据不可更改。最后,设备出厂后认证方法如下。
主机端预置认证公钥证书Authentication_Public_Key,读取设备里的认证公钥信息进行比较,不一致则认证失败;若一致则继续读取设备里的设备公钥Device_Public_Key、序列号等唯一性数据和签名信息,进行SM2签名验证。若签名验证失败则设备认证失败;若签名验证通过,则进一步地向设备发送一个设备认证随机数,设备端用设备私钥Device_Private_Key对该随机数进行SM2签名,返回该随机数的签名信息给主机,主机端用前面读取的设备公钥Device_Public_Key对其进行SM2签名验证。若签名验证失败则设备认证失败;
1 国密算法安全认证方式
国密算法中包含对称密钥算法SM1、SM4等和非对称密钥算法SM2[2],对称算法即消息发送和接收双方使用相同的密钥进行运算,其好处是运算速度快,缺点是需要严格保管好该密钥。非对称密钥算法即消息发送和接收双方使用不同的密钥进行运算,消息发送方使用私钥签名,消息接收方使用公钥验证签名,其特点与对称密钥算法正好相反,运算速度稍慢,但只需要保管好私钥就行了,公钥是可以公开的。基于上述特点,在我们的讨论的主机与设备的安全认证中,若是采用对称算法,即主机与设备都使用相同的的密钥,这就要求设备端的密钥不能被窃取,大大增加设备端的安全保护难度。因此,我们采用国密非对称算法SM2。
作者简介:许小波(1982-),男,硕士生,主要研究方向为嵌入式系统安全,Email:********************。
www.eepw.com.cn 2021.336Copyright©博看网 www.bookan.com.cn. All Rights Reserved.Design & Application设计应用
若签名验证通过,则主机对设备认证成功。整个处理流程如图2所示。
设备进行SM2签名验证。若验证通过,则完成了设备对主机认证。整个处理流程如图3所示。
主机预置认证公钥证书、 主机密钥对及签名 设备SM2密钥对 认证SM2公钥、认证SM2SM2私钥对设备私钥对设备SM2SM2公钥和设备序公钥和设备序列号等唯一性数据列号等唯一性数据的签名数据 的签名数据 主机将主机公钥及签名发给设备 是 签名验证通过? 否 主机向设备请求认证随机数 图1 在工厂安全环境下预置数据到设备主机预置认证公钥证书 主机用主机私钥对其签名, 并将签名发送给设备 设备用主机公钥验证该签名 读取设备的认证公钥 是否与主机预置的一致? 是 读取设备的设备公钥、 序列号等唯一性数据及签名 否 签名验证通过? 是 否 否 签名验证通过? 是 主机向设备发送认证随机数, 设备用设备私钥对其签名并返回签名 设备认证主机失败 设备认证主机成功 图3 设备认证主机流程图否 3 国密算法认证系统示例签名验证通过? 是 我们以手机主机对电池认证为例,在手机开机或充电时手机主机对电池设备进行安全认证,只有认证成功之后手机才能开机运行或对其充电。为此,我们需要 主机认证设备失败 主机认证设备成功 在电池设备里增加一颗国密安全芯片,用于和手机主机进行数据交互,预置公钥的安全存储和国密算法的签名验签等操作。这里我们选用上海爱信诺航芯电子科技有限公司的国密安全芯片ACL16,它采用32位ARM Cortex-M0内核,最高主频48 MHz,集成国密、国际算法等多种安全算法模块,电压、频率、温度等安全检测功能和主动金属屏蔽层保护、总线加密串扰等多种保护功能,拥有USB、SPI、UART、I2C等丰富的外设接口,内置RC振荡器,专门面向低成本、低功耗的应用领域[3]。
硬件方面,我们采用两线的I2C做为手机主机与ACL16的通讯接口,手机主机做为I2C主设备,ACL16做为I2C从设备,再加上电源和地线接口,ACL16这边
图2 主机认证设备流程图对于更高安全级别的系统,设备端也可以对主机进行认证,即双向认证系统,其方法为:主机端除了预置认证公钥证书Authentication_Public_Key,还预置有一对主机端的SM2密钥对Host_Private_Key和Host_Public_Key,并且预置认证私钥Authentication_Private_Key对Host_Public_Key的签名信息。然后,主机将Host_Public_Key和该签名信息发送给设备进行SM2签名验证。若验证通过,主机再向设备请求一个主机认证随机数,然后主机端用主机端的SM2私钥Host_Private_Key对该随机数进行SM2签名,再将其发送给
37
ELECTRONIC ENGINEERING & PRODUCT WORLD 2021.3
Copyright©博看网 www.bookan.com.cn. All Rights Reserved.电子产品世界
就完成了。由于两边I/O口电压不同,还需要在手机主机端增加一颗电压转换芯片,以实现1.8~3.3 V的电压转换。整个硬件框图如图4所示。
示日志操作。其中点击完“主机认证设备”按钮后的界面如图5所示,点击完“设备认证主机”按钮后的界面如图6所示。
手机主机 高通/联发科/展讯 等平台 IC 2电压 转换 IC 2ACL16 图4 手机主机与ACL16的硬件连接框图
软件方面包括ACL16的安全固件和手机主机软件,我们先来看ACL16这边的安全固件。ACL16在上电后,首先进行系统初始化,开启各安全检测模块,初始化I2C接口,然后等待接收手机主机发送的命令。待接收完一包命令数据后,对命令数据进行完整性校验,只有校验通过后才对命令进行处理。最后,待命令处理完成,将命令响应数据发送给手机主机。
手机主机方面的软件分包括,处理与ACL16通讯的Linux驱动和Android Java应用层代码。在Linux驱动里,主要完成向I2C总线驱动上注册驱动,注册字符设备和在/dev目录创建设备文件authenticator,以使应用层对设备文件authenticator的读写操作时进而对ACL16进行发送命令和接收命令响应。Android应用层代码包括JNI的so库和Java应用,其中so库主要完成对authenticator设备的打开、读写操作,为Java层提供操作接口。Android Java应用则主要通过调用so库的接口,实现手机主机对电池的认证操作流程和电池对主机的认证操作流程。对于JAVA上的SM2签名、验签操作,其相关接口采用的是Bouncy Castle加密库bcprov-jdk15to18-168.jar中的SM2接口。Bouncy Castle加密库是澳大利亚非营利组织Bouncy Castle编写的轻量级加密API[4],非常适合在手机上使用,最新版本为Version 1.68,包含了对最新CVE漏洞的修复,以及对TLS 1.3版本的支持。我们在手机演示界面上添加三个按钮,分别执行主机认证设备、设备认证主机和清除显
图6 点击设备认证主机按钮后的界面图5 点击主机认证设备按钮后的界面
(下转第56页)
www.eepw.com.cn 2021.338Copyright©博看网 www.bookan.com.cn. All Rights Reserved.电子产品世界
表5中,280 h前为产品早期故障期,20年后为损耗故障期。中间部分为正常使用的有效寿命期,这一阶段产品故障率相对稳定。由此可知,我们的产品在出厂前要做好老化工作,让其度过早期故障期。
4 结语
新产品的寿命模拟评估已经引起了很多单位的重视,未来会将MTTF计算系统与高温老化设备及电脑终端组建自动化测试系统,将使产品寿命模拟测试更加直观和智能化。
参考文献:
[1] 胡志山.射频印刷电感替代低值空心电感的探索[J].电子产品世界,2015(1):54-56.
[2] 胡志山.射频宽带产品的指压调试法[J].电子世界,2014(17):139-140.
[3] 朱晓燕,曹晋红.浴盆曲线在可靠性设计和管理中的应用[J].中国质量,2007(7):25.
[4] 江玉彬.浴盆曲线在通信电源设备管理中的应用[J].通信电源技术,2013(1):11.
[5] 国际标准化组织.控制系统中与安全[S].ISO 13849-1-2006.
3.5 参照标准[5]
参照ISO13849对MTTFFd(等同于这里的MTTF)的失效风险评估(如表7)。
表7 ISO13849关于失效时间的定义
(上接第38页)
参考文献:
[1] D’ONOFRI M.通过设备认证杜绝造假[J].电子技术及信息科学,2015(01):32-34.
[2] 国家密码管理局.SM2椭圆曲线公钥密码算法[R/OL].[ 2010-12-17].https://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml.
[3] ACL16_Datasheet_V2.0.pdf[Z].
[4] Bouncy Castle Cryptography Library[R/OL].https://www.bouncycastle.org/java.html.
4 结语
具有国内自主知识产权的国密算法已经在金融领域开展使用,并逐步替代国际安全算法。本文提出了基于国密算法用于设备的安全认证系统,可取代现有的国际算法安全认证,并可在更广泛的物联网领域进行实际推广应用。
(上接第43页)
参考文献:
[1] 李明,康静秋,贾智平.嵌入式TCP/IP协议栈的研究与开发[J].计算机工程与应用,2002,38(16):118-121.
[2] 黄克亚.ARM Cortex-M3嵌入式原理及应用——基于STM32F103 微控制器[M].北京:清华大学出版社,2020.
[3] STEVENS W R.TCP/IP详解 卷1:协议[M].2版.译:范建华,等. 北京:机械工业出版社,2000.
4 结语
利用激光高速扫描的特点,能够精确检测到跟车驶入时两车的间隙位置,并对跟车的车辆进行准确的分离及准确的对应车辆的轮廓信息,保证检测数据与车辆的一一对应关系,保证车辆队列的正确性,不多车,不漏车;可广泛地应用于固定式治超站、高速公路入口治超站、非现场执法站的车辆长超宽超高检测。
www.eepw.com.cn 2021.356Copyright©博看网 www.bookan.com.cn. All Rights Reserved.
因篇幅问题不能全部显示,请点此查看更多更全内容