赵奕捷
中国电信天翼智慧家庭科技有限公司
从1933年芝加哥世博会上AI机器人回答人们的问题,到比尔·盖茨1995年著作的《The Road Ahead》描绘“智能家居”场景,科技的进步和人类对美好生活的向往开启了智能家居的发展里程。当前随着数字经济的发展,智能家居市场飞速增长。根据中国电信发布的《智慧家庭白皮书》,目前中国电信家庭宽带已经拥有1.7亿用户,智能网关拥有8000万户,IPTV用户有1.27亿户,4K机顶盒拥有8000万户,家庭云用户拥有4000万户,智能组网达到4000万次。2020年《物联网行业深度报告》预计2025年全球物联网设备(包括蜂窝及非蜂窝)联网数量将达到252亿个。然而,随着家庭监控,智能音箱等智能家居设备的广泛普及,智能家居设备采集了大量用户隐私信息,智能家居服务的信息安全问题日益突出。2019年末,作为全球最火的家庭安防硬件产品之一亚马逊旗下的Ring曝出安全漏洞,黑客可以监控用户家庭,而且Ring还会暴露用户的WiFi密码。大量用户投诉自己的私生活被黑客传到网上。
使用基于非对称秘钥的算法进行身份认证和加密传输可以较好地保障设备通信安全,但智能家居等物联网设备规模巨大,如果采用传统基于CA证书的RSA公钥加密,对每个设备都要安装CA证书以确保通信安全,将带来巨额成本,且对于功耗敏感和运算力较小的智能家居等物联网智能设备来说,CA证书校验的过程复杂,功耗增加。采用标识密码算法将省去CA证书的购买和持有费用,同时省去CA证书校验的通信流程,在确保安全性的同时降低成本和功耗。
以色列著名的密码学专家Adi Shamir教授在1984年提出了标识密码(IBC)的概念,在标识密码系统中,用户的私钥由密钥生成中心(KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,由标识管理者保证标识的真实性。与基于CA证书的公钥密码系统相比,标识密码系统中的密钥管理环节可以得到适当简化。1999年,K.Ohgishi、R.Sakai和M.Kasahara提出了用椭圆曲线对(pairing)构造基于标识的密钥共享方案;2001年,D.Boneh和M.Franklin,以及R.Sakai、K.Ohgishi和M.Kasahara等人独立提出了用椭圆曲线对构造标识公钥加密算法。这些工作引发了标识密码的新发展,出现了一批用椭圆曲线对实现的标识密码算法,其中包括数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法等。
2020年4月28日发布的中华人民共和国国家标准《GB/T38635.2-2020 信息安全技术 SM9标识密码算法》,规定了用椭圆曲线对实现的基于标识的数字签名算法、用椭圆曲线对实现的基于标识的密钥交换协议、用椭圆曲线对实现的基于标识的密钥封装机制、用椭圆曲线对实现的基于标识的公钥加密算法。该算法标准明确了标识密码算法的中国标准,处于国际领先水平。
然而,真正保证信息安全的除了加密算法外,更重要的是密钥的安全。加密算法如果无法解决密钥安全的问题将无安全性可言。公元20世纪初,第一次世界大战进行到关键时刻,英国破译密码的专门机构“40号房间”利用缴获的德国密码本破译了著名的“齐默尔曼电报”,促使美国放弃中立参战,改变了战争进程。1943年,美国通过破译日本电报密码得知山本五十六到中途岛视察的行程,决定截击山本,山本机毁人亡,日本海军从此一蹶不振。密码学的发展直接影响了两次世界大战的战局。
国密SM9标识密码算法标准中所规定的流程的前提均是通信双方拥有各自的加密私钥。对于非对称加密和认证,私钥的安全是整个流程安全性的核心,私钥的安全分发是实际应用中的挑战。而该标准中并未对如何安全地分发私钥给出流程方案。
在实际应用场景中,智能设备和用户App的加密私钥应由密钥生成中心生成,对于如何安全地将设备的加密私钥由密钥生成中心分发给新初始化的智能设备和用户App,本文将基于国密SM9标识密码算法和国密SM4对称密钥算法(SM4密码算法数据解密和数据加密算法结构相同,优点是软件和硬件实现容易,运算速度快)对如何安全地分发私钥给出具体解决方案。
在智能家居场景中,模块包括智能设备、用户手机App,智能家居平台(SM9标识密钥生成中心集成于平台服务器中)。其中,智能设备和用户手机App的加密私钥都是由平台服务器产生,并在初始化时从平台分发给智能设备或用户App。如图1所示。
图1 场景模块
本文以下流程给出了从SM9标识密钥生成中心(集成于平台服务器中)安全分发至智能家居物联网设备和用户手机App客户端的设计方案。
图2 用户手机App的SM9加密私钥分发和双向认证流程设计
(1)用户使用手机号注册App,App向平台发送请求验证码。
(2)平台生成并下发短信验证码。
(3)用户手机收取短信验证码,用户输入短信验证码(本机登录时App自动获取短信验证码,用户无需输入)。
(4)App随机生成一个SM4对称密钥和一个随机数,并使用平台SM9标识公钥加密该SM4对称密钥、随机数、用户手机号、短信验证码。
(5)平台使用自己的SM9私钥解密出该SM4对称密钥、随机数、用户手机号,短信验证码。
(6)平台通过验证短信验证码验证用户的合法性。
(7)平台使用用户手机号作为用户标识,生成用户APP的SM9私钥,使用第5步解密出的SM4对称密钥加密用户的SM9私钥,发送给用户App。
(8)App使用第4步生成的SM4对称密钥解密出用户App的SM9加密私钥和随机数。
(9)APP通过对比收到的随机数和第4步生成的随机数来验证平台合法性,完成双向认证。
(10)此时APP得到了自己的SM9私钥,保存在本地硬件存储芯片中。
安全性说明:
App使用了平台的SM9标识公钥加密信息,只有合法平台(拥有平台SM9私钥)才能解密出信息得到SM4对称密钥,使用该SM4对称密钥来加密分发SM9私钥是安全的。
同时,APP生成的随机数通过平台的SM9标识公钥加密信息,只有合法平台(拥有平台SM9私钥)才能解密出该随机数,平台在通过短信验证码验证APP后在用对称秘钥加密发回该随机数,APP就可以通过对比生成的随机数和收到平台发回的随机数来验证平台合法性,如果是相同的说明连接上的是合法平台,完成了双向认证。
图3 智能设备的SM9加密私钥分发流程设计
(1)当智能设备初始化时,随机生成一个SM4对称密钥和一个随机数,并使用平台的SM9标识公钥加密该SM4对称密钥和随机数以及设备PIN码,和设备硬件码一起发送给平台服务器。
(2)平台收到该加密信息后使用自己的SM9私钥解密出SM4对称密钥和随机数以及设备PIN码。
(3)平台通过设备PIN码来验证设备的真伪。
(4)平台为设备分配唯一标识ID并生成对应的该智能设备的SM9标识私钥,并使用第2步解密出的SM4对称密钥加密设备SM9私钥和第2步解密出的随机数,发送给设备。
(5)设备使用第1步生成的SM4对称密钥解密出设备SM9私钥和随机数。
(6)设备通过对比第1步生成的随机数和解密出的随机数是否相同来验证平台的合法性,完成双向认证。
(7)此时设备得到了自己的SM9私钥,保存在本地硬件存储芯片中。
安全性说明:
设备使用了平台的SM9标识公钥加密信息,只有合法平台(拥有平台SM9私钥)才能解密出信息得到SM4对称密钥,使用该SM4对称密钥来加密分发SM9私钥是安全的。
同时,设备生成的随机数通过平台的SM9标识公钥加密信息,只有合法平台(拥有平台SM9私钥)才能解密出该随机数,平台在通过设备PIN码验证设备后在用对称秘钥加密发回该随机数,设备就可以通过对比生成的随机数和收到平台发回的随机数来验证平台合法性,如果是相同的说明连接上的是合法平台,完成了双向认证。
本文所设计的流程是智能设备的私钥是由集成在平台服务器中的加密运算服务器产生的,再从平台服务器安全地传输给智能设备。这样设计的好处是节省智能设备初始化的时间和功耗,同时便于智能设备加密私钥更新。
由于智能设备构架简单且终端分布广,相比平台服务器端其密钥更易泄露。据BBC新闻报道,在英国销售的LIFX智能灯泡其存储在内部的加密密码曾大范围泄露。一旦发生智能设备自身加密私钥泄露事件,如果在初始化流程中加密私钥是出厂时写入设备的则给加密私钥更新带来困难,如果加密私钥在智能设备端生成对于智能设备来说生成非对称密钥的运算量大,将大幅影响初始化和加密私钥更新的时耗与能耗。
而本文提出的方案流程中,智能设备初始化和私钥更新场景中都是智能设备侧产生一个对称密钥,相比产生非对称密钥来说,大幅降低所用时间和能耗。根据2017年《国际高级计算机科学与应用期刊(IJACSA)》刊登的论文对非对称密钥和对称密钥生成时间的研究,使用Java Eclipse平台在2.34GHz的因特尔处理器和1GB内存环境下测试了非对称密钥生成时间和对称密钥生成时间,对各密钥常用长度生成的测试时间如表1所示。
表1 密钥生成时间比较
从上表的测试时间看出,对于常用密钥长度,生成对称密钥的时间远低于生成非对称密钥的时间。在运算力小于该测试环境的智能家居智能设备上,两者的时间差异将更为明显。所以本文提出的私钥分发方案采用在运算力小的智能家居设备侧仅生成国密SM4对称密钥,而在运算力大的平台服务器端生成国密SM9非对称密钥的方案,适用于智能家居设备初始化和私钥更新场景。
同时,本文创造性地将私钥分发流程与双向认证流程融合,并且没有采用传统的私钥签名公钥验签的方法。因为非对称加解密运算消耗的时长和功耗远高于对称加解密运算,而传统的签名验签方式在设备侧需至少使用2次非对称加解密运算,对于智能家居物联网低算力低功耗设备来说,消耗时间和能耗较大。
本文的方案在智能设备侧仅使用1次非对称加密运算和1次对称解密运算即可同时完成双向认证和私钥分发流程。相比传统的签名验签失败流程来说大幅降低所用时间和能耗。
《国际科学与研究期刊》2013年发表的论文对不同加密算法使用不同大小的数据包进行了实验,具体实验数据见表2。
表2 对称算法和非对称算法对不同大小数据包加解密时间对比实验
数据包(KB) 算法 加密时间(秒) 解密时间(秒)4 5 868 312 DES 4.0 1.8 AES 2.0 1.2 RSA 8.2 5.1 DES 3.0 1.6 AES 1.8 1.3 RSA 7.8 5.1
根据表2的实验数据可以看出,非对称加密算法RSA加解密所用时长是对称算法加密算法AES的4倍左右。
由此可见,本文方案使用相比于传统的签名验签的双向认证方式将大幅降低智能设备进行双向认证所需的时间。同时,本文创造性地将私钥分发与双向认证合并为一步完成,大幅优化了智能设备私钥分发与双向认证流程。
本文从智能家居服务场景入手,基于中华人民共和国国家标准《GB/T38635.2-2020 信息安全技术 SM9标识密码算法》中未给出实际应用中如何进行安全的私钥分发方案的问题给出具体解决方案,该方案创造性地将私钥分发与双向认证合并为一步完成,大幅优化了智能设备私钥分发与双向认证流程。
同时,本文对非对称算法和对称算法的秘钥生成时间、对不同数据大小数据包的加解密时间进行了研究,并创造性地设计出在智能家居智能设备侧仅生成对称密钥而在平台服务器侧生成非对称密钥,安全地进行密钥分发的同时完成双向认证的方案,且相较于传统双向认证方案可大幅降低所需时长。
本方案可用于信息安全领域各种场景下的私钥分发和双向认证,为国密SM9标准的实际应用提供安全的私钥分发和双向认证方案,为智能家居智能设备初始化、双向认证、私钥更新场景提供优化解决方案。
随着5G时代的到来,5G将支持海量的机器通信,以智能家居为代表的典型应用场景与移动通信深度融合,预期千亿量级的设备将接入5G网络。智能家居设备产生的数据与用户生活联系极为紧密,用户敏感数据信息安全问题非常重要。而智能设备的加密私钥的安全分发是信息安全的关键所在,确保密钥的安全才能确保信息安全,让智能家居真正融入生活,为生活服务。