时间:2024-07-28
吴淼, 严则明, 黄俊
(公安部第三研究所 网络身份技术事业部, 上海 201204)
近几年随着我国互联网产业的飞速发展,电子商务、电子政务已经日益成为人们日常生活中必不可少的部分。在人们享受互联网给我们带来便利的同时,也逐渐暴露出不少问题:
(1) 网络虚拟性、身份匿名化却制约了互联网产业的发展。身份认证是验证用户身份的真实性、防止身份伪造的重要手段。网络身份认证是网络安全体系的基础,无论是数据加密、访问控制,还是其他网络安全技术都必须基于有效的身份认证[1]。
(2) 二代居民身份证读取设备容易被不法分子利用,各个第三方服务大量存储用户实名信息, 具有隐私泄露的风险[2]。个人信息的大规模违规收集、不正当处理、泄露,以及猖獗的地下黑产,使人们成为了“透明人”。各种量身定做的骗局,精准指向的广告营销接踵而来,个人隐私暴露在公众面前,使个人隐私无法得到有效地保护,同时随着云计算、大数据时代的到来,整个社会变得更加透明[3]。
(3) 虽然当前eID(公民网络电子身份标识)已经被广泛加载到银行卡上,但是基于银行卡的eID在使用上来说不是非常方便,很难有效融入移动互联网。
针对上述情况,设计了一种基于手机安全芯片的eID签发系统,有效解决上述问题。
文中主要工作如下:
(1) 设计基于手机安全芯片的eID签发平台;
(2) 对平台的安全性、性能及用户体验进行实验和分析。
国际上对eID的定义是“由政府颁发给公民的用于线上和线下识别身份的证件[4]”。在我国eID是以密码技术为基础、以智能安全芯片为载体、由“公安部公民网络身份识别系统”签发的公民网络电子身份标识,能够在不泄露身份信息的前提下在线远程识别身份。
为了保证基于手机安全芯片的eID签发系统重要关键数据的安全,提出了以下几点安全要求:
(1) 数据传输报文安全:所有发送到eID签发系统的数据报文和eID签发系统响应的数据报文都需要防伪造、防抵赖、防冒充和防篡改;
(2) 会话密钥安全:接入方和eID签发中心每次传输隐私数据都会随机生成一个唯一的会话密钥,确保会话密钥在传输时的安全;
(3) 存储的安全性:包括私钥、公钥和会话密钥的存储安全,私钥不能导出等,eID核心数据的安全存储等;
(4) 通信信道安全:保证数据传输通信信道安全,即使数据在传输过程中被截获也无法获取数据的明文;
(5) eID数据在手机终端的安全:eID数据在签发成功后最终会返回到手机终端上,要确保eID数据在手机终端上不被攻破。
基于手机安全芯片的eID签发平台总体拓扑结构如图1所示。
从图1可以看出基于手机安全芯片的eID签发平台共有三大部分组成,第一部分是手机终端,第二部分是手机厂商提供的后台服务,第三部分是eID签发中心。手机厂商后台服务相当于手机终端和eID签发中心的桥梁,负责处理手机终端生成的数据并将这些数据发送到eID签发中心。eID签发中心又划分了3个区域,应用服务区中部署的是eID受理系统,负责接收签发请求,并负责一些日志记录的功能。安全可信发行区部署的是eID签发系统,eID签发系统是整个平台中的核心,负责eID的签发。安全数据存储区部署eID各种核心数据库。其中安全可信发行区和安全数据存储区的安全防护级别是最高的。
基于手机安全芯片的eID签发框架如图2所示。
该框架由4个独立的子系统构成,各个子系统之间使用https协议通讯,同时为了保障eID的自主可控、安全可信,采用自主可控的国产安全芯片和密码算法[5]。
一个完整的eID签发流程如下:
(1) 用户使用手机端的APP申请eID;
(2) 用户将电子身份证件贴在手机的NFC区域上,在云端解密电子身份证件身份信息,通过甄别证件真伪后,手机端会生成一个唯一的用户标识(该用户标识非证件号码),手机端将相关数据及用户标识发送到手机厂商的服务上;
(3) 手机厂商服务端向eID受理系统查询该用户是否有签发过eID,若没有签发过eID,则可以继续下面的签发流程,反之提示用户已经签发过eID。保证用户eID的唯一性。
(4) 手机端进行活体检测。采取安全手段防止手机摄像头被劫持,确保用户本人(活体)在操作自拍,而不是使用照片等非正常手段;
(5) 手机端将用户的自拍照加密后通过手机厂商的服务发送至eID受理系统进行自拍照和电子身份证件解密照片进行比对,确定当前手机操作用户与身份证件的“人证合一”;
图1 系统总体拓扑结构
(6) 手机厂商后台服务发送签发eID请求到eID受理系统,eID受理系统完成eID签发,并返回eID签发指令。
当eID签发中心完成签发以后,手机端需要将eID签发中心返回的eID身份数据写入到手机安全芯片中,这样才能保证用户的eID身份数据的安全,为此设计了一种针对手机安全芯片的指令,通过这种指令可以有效地将eID身份信息写入安全芯片中。指令的结构如图3所示。
图2 基于手机安全芯片的eID签发框架
图3 安全芯片写入eID指令结构
手机端接收到eID签发指令后,使用指令中的KIC对应的密钥解密指令,随后使用KIC对应的密钥验证指令的MAC值,在验证无误的情况下,将CMD中的eID凭据、加密身份信息及脱敏身份信息写入到安全芯片中,至此就完成了手机端写入eID数据的过程。
测试环境如下:
(1) eID受理系统:24核CPU,126G内存,CentOS 7.5操作系统,共2台服务器;
(2) eID签发系统:24核CPU,126G内存,CentOS 7.5操作系统,共2台服务器;
(3) eID核心数据库服务器:24核CPU,126G内存,CentOS 7.5操作系统,主从配置。
测试工具:JMeter。
性能要求:150个并发下,平均响应时间小于2秒,并且99%事务响应时间小于2秒。
(1) 150个并发:平均响应时间1 214毫秒,99%事务1 978毫秒,tps 146,如图4所示。
(2) 250个并发:平均响应时间1 350毫秒,99%事务1 871毫秒,tps 177,如图5所示。
(3) 300个并发:平均响应时间1 397毫秒,99%事务1 738毫秒,tps 205,如图6所示。
图4 性能测试
图5 性能测试
图6 性能测试
从上面的性能测试结果看出eID签发完全符合预定的性能要求。
(1) 数据传输报文安全。在传输数据报文的时候,发送方使用自己的SM2私钥对报文做签名,接收方使用发送方的SM2公钥验证报文签名,这样能确保报文传输的完整及防止假冒。
(2) SM4会话密钥安全:SM4会话密钥是用来加密每次请求中的隐私数据,例如用户的自拍照片等。接入方和eID签发中心每次传输隐私数据都会随机生成一个唯一的会话密钥,SM4会话密钥每次都是随机的。SM4会话密钥的传输使用数字信封的方式,用SM2加密算法加密后传输。
(3) 存储的安全性:密钥存放在加密机中,并且不可导出,确保密钥的安全。eID核心数据库部署在安全级别最高的屏蔽机房中的安全存储区,同时数据库中不保存任何明文的隐私信息,所有信息都进过加密机加密或者HASH处理。
(4) eID数据在手机终端的安全:eID数据存放在手机的安全芯片中。当某个第三方手机APP需要验证人员身份时,验证过程在手机安全芯片和eID签发中心之间完成,不会把隐私信息上传至第三方APP的服务器上,最大程度保证用户隐私信息安全。
文中设计了一种面向手机安全芯片的eID签发方法。实验表面该方法能有效地将eID签发到手机安全芯片中,具有很高的安全性和实用性,能有效保证用户的隐私安全。目前基于该方法的eID签发平台已经商用,后续将会接入更多的移动终端设备。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!