臧笑宇,黄锋涛,陈守明,翁睿琳
(广东电网有限责任公司信息中心,广东 广州 510000)
随着移动互联网、云计算的发展,电力行业在移动互联网的应用越来越多,而传统的身份认证和电子签名手段在移动互联网环境下的安全问题面临着巨大挑战。对用户本身的身份认证采用用户名+口令方式不安全,容易被嗅探、破解甚至拖库;短信动态口令容易被劫持;动态口令令牌存在钓鱼风险;安全级别最高的UKEY,采购成本高,分发管理困难,用户使用不方便,最重要的是也不适合手机终端的使用。
针对这一尴尬局面,电力企业通过建设一套云KEY管理系统平台,主要面对企业移动互联网个人用户,提供免介质的密钥管理和使用环境,提供密钥生成、数字签名等操作,实现手机变UKEY的效果。同时,该系统平台还需要满足手机终端环境下特殊的应用需求,致力于保障用户保密数据和隐私信息的安全,推进电力移动互联网应用向安全、合法、合规方向发展[1]。
1.1.1 UKEY
UKEY是一种通过USB(通用串行总线接口)直接与计算机相连、具有密码验证功能、可靠高速的小型存储设备,需要安装对应的驱动程序。
1.1.2 APP
APP是英文Application的简称,通常用于IOS、安卓等手机操作系统的应用。APP多指智能手机的第三方应用程序。
1.1.3 加密机
加密机是通过国家商用密码主管部门鉴定并批准使用的国内自主开发的主机加密设备。加密机和主机、应用之间使用TCP/IP协议通信。加密机对主机的类型和主机操作系统无任何特殊要求。
1.1.4 云KEY
云KEY利用移动智能终端作为身份认证载体,以密码技术为核心,通过融合数字证书、生物识别、设备指纹、安全加固等多因素、多维度安全技术,为用户提供移动终端、PC等全终端环境下的可信身份认证服务。
1.1.5 TEE
TEE是Trusted Execution Environment的缩写,是可信执行环境的简称。
1.1.6 TLS
安全传输层协议(TLS),在两个通信应用程序之间提供保密性和数据完整性。该协议由TLS记录协议(TLS Record)和TLS握手协议(TLS Handshake)组成。
1.1.7 APKTool
APKTool是GOOGLE提供的APK编译工具,能够反编译和回编译apk,同时安装反编译系统apk所需要的framework-res框架,具有清理上次反编译文件夹等功能。
1.1.8 Dex2jar
一种将apk反编译成Java源码的工具。
随着移动互联网向社会、经济、生活各个层面深度渗透,用户帐号安全成为各方关注的焦点。日益频发的用户身份信息泄露事件,更对移动应用安全与用户隐私敲响了警钟,也成为深入推进移动互联网应用向安全、合法、合规发展的核心问题。然而,现有的认证手段无法满足移动互联网环境下的应用安全需求,均存在较大的局限性。各种认证方式具体分析如表1所示。
表1 各种认证方式的说明
综上,电力行业亟需一款兼具便捷性与安全性,符合用户使用体验,具备合法、合规效力的安全身份认证产品[2]。
当前,移动互联网应用发展迅猛。为保障移动互联网应用的安全,采用云KEY系统,为电力行业移动互联网应用的身份认证、数字签名、抗抵赖等业务提供安全保障。
云KEY系统包括云KEY移动身份认证系统服务器、云密码机和云KEY APP三部分。其中,云KEY移动身份认证系统为后台总体服务,完成用户管理、密钥管理、认证服务和系统配置等;云KEY APP完成用户的认证、密钥的管理、扫码认证/签名/签章等;云密码机为后台密钥协同计算的硬件实现载体。云KEY系统总体架构如图1所示。
图1 云KEY系统架构设计
2.1.1 云KEY移动身份认证系统
云KEY移动身份认证系统是后台管理系统,面向管理员提供云KEY业务的管理功能,面向应用系统提供认证和签名功能。
(1)接口层。提供云KEY APP调用接口和管理端接口,管理端接口为系统管理界面提供服务。
(2)业务层。业务层功能主要涉及安全审计、系统及服务监控、账户管理、管理员管理和应用管理。安全审计能够详细记录系统所有的操作和接口调用,非授权人员不可篡改记录;系统及服务监控能够监控系统服务,授权管理员能够查看设备运行状态;账户管理,即对云KEY账户进行管理、统计和查询;维护账户状态,存储账户对应的设备公钥信息等;管理员管理,对系统操作的管理员进行添加、删除、修改以及授权,只有授权管理员才能登陆系统进行操作;应用管理,即添加应用,对应用进行授权。
(3)云密码机接口层。实现与云密码机的交互,包括密钥生成接口、数据签名接口和数据加密接口等。
2.1.2 云KEY APP
云KEY系统手机终端APP是直接面向最终用户提供云KEY系统的身份认证、电子签名和自助管理服务的手机终端应用。
2.1.3 云密码机
云密码机为底层密码设备,为云KEY系统提供底层密钥生成、密钥保护、密钥管理和密码运算服务[3-4]。
云KEY APP的框架如图2所示。
图2 云KEY-APP架构设计
(1)展现层
可视化云KEY APP界面,提供了包括用户登录、口令输入、指纹验证、修改口令和二维码扫码等界面操作。
(2)接口层
接口层分两种类型接口:SDK接口和APP界面接口。第三方应用SDK接口,向第三方应用提供相关服务;APP界面接口为展现层提供数据服务。
(3)核心层
核心层是云KEY APP核心服务层,提供了包括密钥运算、签名、加解密、安全键盘和获取设备信息等核心业务。
(4)安全区
采用标准TEE接口,云KEY APP设备密钥、设备信息等存储在安全区域,Andriod系统无法操作和修改。
(5)安全加固
云KEY APP采用了安全加固,具有一定的抗逆向工程、抗调试与篡改的能力,防止恶意程序或攻击者绕过用户身份认证机制。
云KEY系统应用架构如图3所示。
图3 云KEY系统和应用集成业务流程设计
云KEY移动身份认证系统通过API接口和业务应用系统对接。针对B/S系统,业务应用系统通过云KEY提供的HTTPS接口进行交互,浏览器端通过可信二维码和云KEY APP交互。针对手机APP应用,云KEY可以直接提供API供业务应用系统的APP调用。
云KEY系统支持SaaS和私有化部署两种形式。SaaS部署建设成本低,只需要在云KEY云服务后台开通应用账户即可;私有化部署则是把云KEY系统、云密码机本地化部署在机房。
2.4.1 密码及密钥保护
移动端密码机密钥保护设计,如图4所示。
图4 移动端密码机密钥保护设计
(1)采用密钥分割和协同计算,密钥分别由手机端和云端密码机生成,“云+端”协同计算,密钥永远不会以明文形式出现。
(2)支持TEE的手机端,生成通过指纹保护的本地TEE密钥保护手机端密钥因子;不支持TEE的手机端,使用用户口令+手机硬件信息+随机数对手机端密钥因子保护。
(3)云端密钥使用具有国密型号的云密码机生成并保护。
2.4.2 应用安全
(1)应用服务器和云KEY系统之间采用密钥认证,非简单口令认证,采用TLS协议安全通信。
(2)每个二维码都有一个唯一标识和有效期;二维码内容加密保护,防止第三方程序读取;二维码数据由云KEY服务器签名,防止冒充。
(3)所有认证请求均由后台发起,防止客户端攻击。
(4)密码或指纹有重试次数限制,超过限制,账户冻结。
2.4.3 终端安全
(1)采用安全键盘技术,具有键盘输入保护、键盘按键随机的功能;防止截屏、录屏,数据键盘内存数据做变换。
(2)防逆向(Anti-RE),防止通过APKTool、Dex2jar、JEB等静态工具来查看应用的Java层代码。
(3)防篡改、防调试、防止代码注入,屏蔽数据修改等调试行为,实时检测模拟器环境,发现潜在的破解终止运行。
2.4.4 实名认证
(1)支持身份证联网核查、人脸识别等实名认证。
(2)支持主流第三方CA数字证书,通过第三方CA绑定用户身份和公钥。
(3)支持区块链的方式绑定用户身份和公钥(第三方CA和区块链的身份绑定方式可以二选一)[3-4]。
电力企业通过建设云KEY管理系统,利用多方密钥协同技术、手机TEE技术、云密码机技术和移动安全技术等多纬度保护用户密钥,能够实现个人对密钥的拥有和控制权,实现手机变KEY的效果,有力保障了电力行业移动互联网环境下的应用身份认证安全问题。
此外,系统的建设成果价值还有以下几点:
(1)系统采用“云+端”硬件级加密安全保护技术,采用的密钥算法确保了用户身份安全;
(2)实现了手机即令牌,“一刷一扫”轻松实现手机、PC统一身份登录认证;
(3)支持实名认证,移动互联网应用环境下UKEY的最好替代方案;
(4)支持生物识别、设备指纹、口令等多因素认证模式;
(5)采用数字证书技术满足合法性、等级保护等相关要求;
(6)节约投入成本,无终端设备购置成本,分发维护便捷高效。
电力系统是我国重要的能源系统。电力系统的安全问题会直接影响国计民生,甚至关乎国家安全。电力企业通过使用云KEY技术构建移动互联网环境安全平台,大大加强了移动互联网应用的安全技术防护水平,实现了移动互联网用户的有效管理,为信息系统整体安全防护和管理水平的提升提供了有效手段。因此,云KEY平台致力于保障用户保密数据和隐私信息的安全,可在此基础上支持全面完整的云安全解决方案,指导和推进各行各业云应用的迅速推广,从而促进我国云计算产业的发展壮大,增强国际竞争优势。