基于SIM卡中SE的物联网安全加密方案
2022-01-06张喆
张 喆
(中国电信股份有限公司北京分公司,北京 100123)
1 研究背景
随着物联网的发展从数据链路技术标准来看,有两个重要分支:一个是低带宽(100 kb/s左右)广连接的NB-IoT,另一个是4G/5G的大带宽(100 Mb/s以上)长连接的应用场景。
低速的NB-IoT的安全方案目前市场上有三种(物理硬件级安全模块的)解决方案:第一种是模组中内置单独的SE,实现物理级的密钥保护。比如在海斯Hi2100芯片中增加SE模块,或者在移远模组BC95,BC28内增加SE;第二种是设备种的MCU(Microcontroller Unit)之外在控制板上增加单独的安全芯片;第三种是使用运营商的JAVA卡标准,在SIM中增加单独的SE。
高速的4G/5G应用市场上目前主要有两种中方案:第一种是通过 DTU(Data Transfer unit)中发放证书,key文件安全socket连接;第二种是利用SIM卡发放证书和key文件,通过模组和SIM的AT指令通道实现鉴权握手实现安全socket连接。
本文中描述的是以SIM为主要SE载体和密钥分发介质,复用现有运营商SIM卡制卡密钥管理流程体系的方案,以简化开发集成商和客户安全加密方案的总体实施成本。并且结合北京热力集团直供热水表应用详细说明了服务器,物联网设备,手机端三端加密方案的详细实现说明。
2 建议总体构架
(1)如图1所示,物联网应用终端设备接入系统架构有4个主要部分:物联网终端、物联网关、物联网安全盾服务、手机端等上层应用。
图1 总体逻辑架构图
(2)终端中的SIM卡中集成了SE芯片,SE芯片中的应用applet提供终端信息安全相关能力和加密算法。
(3)设备SDK封装了卡的能力和算法接口,为设备上的应用提供调用服务,完成加密、认证等。
(4)物联网安全盾(以下简称物盾)服务中包括物盾平台、手机盾平台及应用接入平台,物盾平台负责终端与业务平台对接,对设备上报的数据进行身份认证和数据解密,对业务平台下发的控制指令进行数字签名和指令加密。手机盾平台负责手机盾数据与业务平台数据之间进行身份认证及数据加解密工作。
(5)在设备接入平台端部署集成物盾平台的SDK包(HTTP接口),SDK包提供业务平台与物盾平台的安全通信,接入平台只需要调用软盾本地接口即可使用物盾平台的加解密服务。
(6)在用户端,用户应用进行业务操作。应用集成集成手机盾SDK,对数据进行加解密服务,这样实现了设备、服务器、手机三端的完整加密。
3 产品主要功能说明
3.1 应用applet
(1)基于SIM卡中的javacos系统。
(2)Applet提供物联网终端的所有安全相关业务功能。如签名验签,对称加解密,非对称加解密等功能。
(3)通信模组或设备MCU通过apdu指令访问applet应用提供的安全业务功能。
3.2 设备SDK
(1)封装了SIM卡的能力和算法,对上层设备应用提供API接口。上层应用像调用普通接口一样调用SDK接口,由设备SDK完成和卡的交互。
(2)基于设备上的操作系统和编译环境实现,可基于不同操作系统和编译环境提供不同的设备SDK版本。
3.3 物盾平台SDK(API接口)
(1)物盾平台SDK集成在业务平台中。SDK根据接入平台的技术架构和编程语言提供相应的定制版本。
(2)业务平台通过调用物盾平台API接口使用软盾的各项安全功能。
(3)SDK提供与物盾平台的数据交互,业务平台需要的安全功能通过SDK与物盾平台的进行交互,物盾平台将结果通过SDK返回给业务平台。
3.4 物盾平台及手机盾平台
(1)物盾平台是一套独立的服务,部署在中国电信云上,作为安全使能服务的一部分,主要功能为业务平台提供安全功能服务。
(2)物盾平台与业务平台之间通过集成在业务平台上的物盾平台SDK进行通信。
(3)手机盾平台也是独立的服务,部署在电信云上,主要应用与业务平台之间进行身份认证及加解密服务。
3.5 手机盾SDK
(1)移动应用APP集成手机盾SDK,通过手机盾SDK提供的接口,对数据进行加解密操作。
(2)移动应用数据提交到应用接入平台后,应用接入平台调用物盾平台API接口,对数据进行加解密操作。
3.6 算法说明
业务过程中安全业务所有算法均采用国密算法,非对称加解密SM2,摘要SM3,对称加解密SM4。
4 SIM/UIM卡相关操作业务流程示例
4.1 密钥初始化
(1)密钥初始化由两个主要流程组成:一个流程是,SIM卡产线初始化原始对称密钥K1,K1使用第一组0348密钥进行SM3 HASH,取前16个字节,并将对称密钥由线下文件的方式发送给物盾平台。另外一个流程是,模组在注册物盾平台后,获取SIM卡的初始化注册状态,如未初始化注册,则启动注册流程。
注:线下文件为txt格式,文件每一行格式为:ICCID【20位】K1【32位】。
(2)终端MCU在需要发数据的时候,模组/MCU读取SIM卡注册状态,如未注册,则模组重新发起SIM卡初始化注册流程。
(3)整个密钥初始化流程中,SIM卡出厂时与物盾平台不能在线交互。所以,物盾平台【后台管理系统】需要增加导入SIM卡ICCID和K1的功能。
注:初始化流程图中步骤15,参考《北京电信应用规范v1.0(发布版).doc》中5.4.3.3章节。并且模组在此基础上,增加MEID。步骤17:物盾平台与物联网接入平台通信,物盾平台提供HTTPS服务。
(4)流程图2中21为物盾平台返回指令到物联网接入平台(物联网接入平台提供下行指令接口文档给物盾平台)。
(5)物盾平台支持10套公私钥密钥,对于单独消息加密可以使用图2流程进行注册使用。对于链路VPN加密的可以使用图3流程进行注册使用。
图2、图3为初始化注册流程图,分为NB-IoT加密初始化和VPN初始化流程两部分。
图2 NB-IoT密钥初始化流程
图3 高速长连接VPN服务器初始化密钥流程
4.2 终端数据上传流程
(1)终端可根据业务需求上传单条加密数据、非加密数据、混合数据。或者建立VPN连接后进行数据上传。上传单条加密数据调用模组加密并发送接口,模组处理完加密后直接发送。上传非加密单条数据调用模组直接发送接口,终端不加密直接发送。上传混合数据调用模组加密接口,模组将加密数据返回给MCU,MCU再组合数据后调用模组直接发送接口。
(2)建立VPN连接MCU的调用SDK接口,获取证书建立VPN连接。
(3)模组在通过SIM卡获取加密数据的时候分两个步骤:一是调用SIM卡接口获取业务平台公钥P2加密数据D’;二是调用SIM卡获取D’的MAC和SIM卡签名。
(4)业务平台在收到终端的加密数据后,通过调用业务平台集成的物盾平台SDK接口进行解密,SDK连接物盾平台进行解密。
图4和图5为终端上传数据流程图,分别代表NB和4G SSLVPN流程:
图4 单条数据加密上传
图5 VPN连接上传数据
4.3 业务平台下发指令流程
(1)业务平台可向终端下发加密指令、非加密指令。下发加密指令业务平台调用SDK接口进行加密,SDK连接物盾平台进行加密;下发非加密指令则直接下发到终端MCU执行。
(2)终端MCU收到加密指令后,调用SDK指令验证接口验证指令合法性。
(3)物盾平台在进行指令加密的时候需要附加帧号用于防止重放攻击,在SIM卡和物盾平台中针对每个设备都记录帧号。SIM卡验证当前帧号小于等于记录帧号则指令非法。
(4)如图6为业务平台下发加密指令流程:图6部分中如果为全秘文消息,则无图中6、7步骤。
VPN连接下发数据与VPN上行数据发送流程一致可参考图5,建立连接后进行数据传输。
5 手机应用APP相关操作业务流程
5.1 手机盾密钥初始化
(1)手机APP注册、实名认证后,将账户信息导入到手机盾平台服务端。
(2)手机APP调用手机盾SDK,进行密钥协同运算,计数出注册用户公私钥对,初始化数据对称密钥的过程。
(3)图7为手机盾密钥初始化注册流程。
图7 手机APP初始手机密钥流程
5.2 手机端加密-业务平台解密流程
(1)手机端数据向业务平台提交数据时,首先用手机盾SDK对数据进行加密。
(2)业务平台获取数据后,调用服务端手机盾API接口,对手机端提交过来的数据进行解密。
(3)业务平台获取到手机端(热水宝APP)提交的数据原文后,再按照业务平台下发数据指令的流程,对数据进行加密,直到将数据写到UIM卡为止。(后续流程详细参考上一章节:业务平台下发加密指令流程)。
(4)图8为具体流程。
图8 手机端解密业务平台流程
5.3 业务平台加密-手机端解密流程
(1)业务平台加密,手机端解密流程。主要是指UIM卡上行数据过来后,再使用手机盾进行加密,手机端大的过程。UIM卡数据,根据终端上传的业务流程图,将数据上传到业务平台端(详细流程参考上文:终端上传数据流程)。
(2)业务平台获取到终端数据后,再调用手机盾API接口进行加密。
(3)手机端获取数据后,再调用手机盾SDK进行解密。
(4)详细流程图见图9。
图9 业务平台和手机端解密流程
6 系统间交互相关协议说明
本方案已经在某热力行业阀控,生活热水表等应用中使用。详细SIM密钥初始化协议,移远BC95,BC28AT指令范例,终端帧格式等详细接口可向作者索要。