基于贴膜盾硬件数字证书的手机银行客户端通信安全研究与应用

2018-07-25 11:23黄一平梁梓辰农丽萍苏检德
计算机应用与软件 2018年7期
关键词:数字证书电子签名贴膜

黄一平 梁梓辰 农丽萍 苏检德

1(广西师范大学电子工程学院 广西 桂林 541004) 2(广西师范大学物理科学与技术学院 广西 桂林 541004)

0 引 言

据互联网第三方数据挖掘和分析权威机构艾媒咨询发布的《2016-2017年中国手机安全市场年度研究报告》显示,截至2016年第四季度,中国手机用户规模已达5.39亿人。截至2017年3月份我国移动支付用户规模已经超过5亿,73.3%的用户非常关注手机支付财产安全。而当前,移动互联网诈骗问题频发,各种钓鱼网站、木马、病毒、伪基站等时刻威胁用户的财产及信息安全,移动支付给人们的生活带来便利的同时,也给用户埋下了财产安全的重大隐患[1]。为此《中国人民银行关于加强支付结算管理防范电信网络新型违法犯罪有关事项的通知》中明确要求“除向本人同行账户转账外,银行为个人办理非柜面转账业务,单日累计金额超过5万元的,应当采用数字证书等安全可靠的支付指令验证方式。”

从中国人民银行的发文中可以看出,智能手机的安全必将成为未来手机APP开发人员关注的热点,而手机银行客户端安全形势的日益严峻,仅凭安全软件防护是远远不够的[2]。

“用户名+密码”的传统身份认证方式导致用户敏感信息极易被窃取,为了增强各类系统的安全强度,在传统“用户名+密码”基础上引入第三方认证达到多因子身份认证的方式成为研究热点,但也存在诸多不足[3]。传统的音频盾、蓝牙盾等硬件数字证书类产品虽然可以为手机银行客户端提供双因子安全认证,但由于其需要额外携带的不便捷性,在移动互联网的应用中显得极不协调,从而难被用户广泛接受和采用;而短信验证码方式的手机银行客户端安全性低,极易被木马病毒拦截,从而导致账户资金被盗的现象时有发生,已然无法满足银行高端用户的大额转账需求[4]。手机银行客户端通常运行在安卓或苹果智能手机平台上,因安卓应用程序第三方库的大量使用,其操作权限被非法滥用现象也越来越严重,带来许多安全问题[5]。本文研究的贴膜盾硬件数字证书,可以较好地解决安全与便捷之间的瓶颈。贴膜盾作为数字证书载体可以在手机银行客户端的终端植入硬件数字证书,以CA认证方式保证手机银行客户端交易数据的安全性;由于数字签名拥有基于自己的签名具有不可否认性,从而可以确定银行交易已经签署的事实;同时由于签名难以伪造,从而确定了手机银行交易的真实性[6]。可以满足银行等领域对交易的安全性及便捷性的要求,具有广阔的应用发展前景。

1 贴膜盾技术介绍

1.1 贴膜盾硬件平台概述

图1 贴膜盾硬件形态图

贴膜盾实质是一张超薄的智能卡,内置操作系统和数字证书,具有标准卡、MICRO卡和NANO卡三种形态,全面兼容市面上的各类SIM卡大小,使用时以独立形式与SIM卡贴合后内置于手机卡槽中。贴膜盾作为数字证书硬件载体把数字证书植入手机里,对手机银行客户端通过网络传输的每笔交易信息进行加解密、数字签名和签名验证,保证了信息的完整性、机密性和不可否认性[7],可以为各类移动应用提供身份认证和安全加密手段。作为一款内置式独立硬件数字证书载体,贴膜盾比其他需要额外携带的硬件证书类产品,有着天然的易用性和便携性优势。其硬件形态如图1所示。

在贴膜盾的各类应用中,其核心为贴膜盾操作系统,通过该操作系统,可以实现电子签名和数据加解密等各类复杂的应用需求。

1.2 贴膜盾特征

贴膜盾主要由国家密码管理局批准的安全芯片组成,该芯片采用ARM处理器,支持SM2、SM3、SM4等多种国密算法,内部运行智能卡安全操作系统COS,可为手机银行客户端提供高效、安全、便捷的服务。其使用场景是与用户手机的SIM卡贴合在一起,再装回用户的手机卡槽上,实现一个手机卡槽安装两个智能卡的目的。贴膜盾通过其COS的智能分发模块,把属于SIM卡操作的指令分发到SIM卡以保证手机与SIM卡原有的通信交互功能不变,同时接收属于贴膜盾的安全认证数据,并利用贴膜盾的安全模块对数据进行签名等安全处理后返回给手机。利用这一机制,把贴膜盾当作SE模块以硬件的形式植入手机,让手机成为一个安全交易的信息终端。

贴膜盾的主要特征如下:

• 通过ISO7816接口进行通信;

• 实现SIM卡与手机之间的透明传输;

• 提供50 KB的证书存储空间;

• 支持SM2、SM3、SM4国密标准算法;

• 支持X.509证书;

• 提供VM虚拟机,实现应用与COS分离;

• 提供PIN码校验、电子签名使用到的签名、验签及数据加解密接口。

2 手机银行客户端通信系统总体设计

2.1 数字签名网络安全体系介绍

在通用的网络身份认证安全模型中,通常采用“双因子认证”[8],即一个安全不可复制的设备和一个只有本人知道的秘密(PIN码)。将贴膜盾作为一个安全的智能卡硬件载体,结合只有使用者知道的PIN码认证方案刚好符合该模型特征。按照《中华人民共和国电子签名法》,符合下列条件的签名均将被视为可靠的电子签名:

(1) 电子签名制作数据用于电子签名时,属于电子签名人专有;

(2) 签署时电子签名制作数据仅由电子签名人控制;

(3) 签署后对电子签名的任何改动能够被发现;

(4) 签署后对数据电文内容和形式的任何改动能够被发现[9]。

在本文研究的贴膜盾作为安全设备使用时,仅由电子签名人控制,在使用私钥签名时,必须使用贴膜盾的PIN码做卡内鉴权,连续输入6次错误密码后,卡内签名功能将被锁死,符合电子签名法特征。在用户使用贴膜盾前,需通过银行柜台在线申请生成国密的SM2非对称密钥对并植入数字证书。在交易过程中,客户利用贴膜盾内部的SM2私钥对每笔银行交易进行数字签名,然后加密发送给证书服务器进行验签,验签通过后再返回交易成功信息。手机银行客户端是移动互联网中的刚需应用,其采用贴膜盾作为支付指令验证方式,完全满足人民银行(银发(2016)261号)文件的通知要求。

2.2 手机银行客户端通信网络构架

在当前移动支付网络应用构架中,手机银行主要由服务器应用域、CA域和手机银行客户端三大部分组成,其中服务器应用域是银行涉及网络业务的大前端,为手机银行、PC网银和短信银行等提供接入和业务处理,接收客户发送的各类操作请求,生成转账、缴费、理财和查询等对应核心报文,发送至核心服务器的前置机;CA域管理证书数据,为应用服务器提供加解密、签名验证等证书管理服务,为证书下载终端生成数字证书等;证书下载终端部署于专用安全网络中,为贴膜盾下载提供可信根证书等个性化数据;手机银行客户端主要为客户提供转账、缴费、理财及各类交易查询等银行业务功能。其通信网络构架如图2所示。

图2 手机银行客户端网络架构

2.3 手机银行客户端通信系统安全设计

手机银行客户端通信系统主要由客户端和服务器两大部分组成,涉及到的具体业务流程主要包括往贴膜盾中下载数字证书、手机银行客户端与服务器前置通信、手机银行客户端与贴膜盾的通信这三大部分的安全设计。在互联网身份安全认证模型中,要解决手机银行客户端通信交易安全,主要保证每笔交易确实是由交易本人发出并且是不可抵赖的,并且通信链路是安全的。本文将对这三部分的安全设计进行具体介绍。

2.3.1 贴膜盾数字证书下载的安全设计

贴膜盾作为硬件数字证书载体,硬件内的证书可以通过在线申请下载方式来完成。该方式可以在证书内包含个人身份信息,证书可以与个人信息直接绑定,同时证书有效期从用户下载使用时开始,可以实现有效期与用户使用日期同步。这一模式目前在各大银行中均得到广泛采用。贴膜盾在线申请证书的流程包括:

(1) 用户先登录手机银行客户端;

(2) 银行应用服务器校验用户登录信息,返回登录结果;

(3) 手机银行客户端要求客户输入申请证书的授权码,并通过安全中间件将用户信息发送至贴膜盾,贴膜盾内生成SM2非对称密钥对,同时生成P10签名证书请求;

(4) 客户端将P10签名证书请求和相关信息发送至互联网应用服务器;

(5) 互联网应用服务器校验用户授权码,通过后将P10签名证书请求发送至CA证书服务器;

(6) CA证书服务器根据P10签名证书请求,生成带有用户信息的X509证书,通过P7包格式回送给手机银行客户端;

(7) 手机银行客户端将P7证书数据通过安全中间件写入到贴膜盾中;

(8) 贴膜盾从P7提取X509证书和必要的信息,并将数据保存在贴膜盾中;

(9) 贴膜盾校验证书合法性和有效性,并给客户端返回校验成功或失败的状态标志,完成证书签发流程。

贴膜盾在线申请数字证书的流程图如图3所示。

图3 贴膜盾在线申请数字证书的流程图

从图3中可以看出,在线申请数字证书方式中,在其生成的证书已经包含了个人信息,不同银行对包含的信息要求不一样,一般有姓名、账号和身份证号码等信息,实现贴膜盾内的硬件证书直接与用户信息绑定。在上述流程中,CA服务器端通过贴膜盾提供的公钥来校验证书请求的正确性,同时贴膜盾也利用CA服务器的证书公钥校验证书来源的可靠性,双方均进行了双向认证,保证了写入证书阶段的完整性与可靠性。

2.3.2 手机银行客户端与服务器前置通信安全设计

手机银行客户端主要由手机银行客户端和贴膜盾组成。在手机银行客户端与服务器前置的通信安全设计中,主要考虑用户登录的安全及手机银行交易数据的安全,下面将针对这两个部分做设计。

1) 手机银行客户端登录安全设计 在手机银行客户端登录设计中,主要采用贴膜卡与服务器双向认证方式登录。通过在线申请证书方式实现个人身份信息与硬件证书绑定以后,就可以通过该方式登录系统,其执行流程如下:

(1) 手机银行客户端向服务器发起证书登录请求。

(2) 服务器收到登录请求后,调用加密机生成随机数,并调用CA的签名验签服务器,使用CA二级证书对随机数进行签名,最后将随机数和服务器签名值返回手机银行客户端。

(3) 手机银行客户端将随机数和服务器签名值通过安全中间件发送至贴膜盾。

(4) 贴膜盾首先使用卡内对应的服务器证书对服务器签名值进行校验,确认该随机数是由确信的应用服务器发出。校验通过后,卡片使用自身证书的私钥,对该随机数进行签名,得到贴膜盾签名并返回给手机银行客户端。

(5) 手机银行客户端得到贴膜盾签名值后,将其发送到银行应用服务器。

(6) 银行应用服务器将随机数和贴膜盾签名值发送到签名验签服务器,验证签名的正确性。

(7) 应用服务器将登录结果返回至手机银行客户端,完成登录。

流程图如图4所示。

图4 手机银行客户端证书登录流程

登录过程中使用双向签名确保随机数是由正确的服务器发出,同时确保是拥有贴膜盾硬件证书的使用者登录。

2) 手机银行客户端交易安全设计 为了保证手机银行交易数据的完整性、安全性和抗抵赖性,在手机银行客户端主要采用PIN码校验技术,校验通过后再对交易信息在贴膜盾内调用私钥进行数字签名。将签名值发送给证书服务器进行验签,同时贴膜盾也验证服务器返回的签名信息,确保每笔交易均是正确的发起人发起。其流程如下:

(1) 手机银行客户端向应用服务器发起交易预提交请求,预提交包含内含有转账金额,收款人户名、账号等信息;

(2) 应用服务器生成随机数,调用签名验签名服务器,对预提交报文和随机数进行签名,同时调用加密机对预提交报文加密,并将数据返回手机银行客户端;

(3) 手机银行客户端收到数据后对比内容是否一致,并将数据发送至贴膜盾,贴膜盾验证服务器对预提交数据的签名,通过后使用贴膜盾内部对应的私钥对预提交数据进行签名,将签名数据返回给手机银行客户端;

(4) 手机银行客户端向服务器发起交易确认提交,把交易原文和签名值发送到服务器;

(5) 服务器调用签名验签服务器,对发送上来的数据进行校验,返回交易结果。

签名流程保证了交易数据的完整性和抗抵赖性,防止交易数据在复杂的网络环境传输的过程中被篡改,同时通过加入随机数,防止签名重放攻击。

手机银行客户端交易数据的签名和验签流程图如图5所示。

图5 手机银行交易数据签名和验签流程

2.3.3 手机银行客户端与贴膜盾通信安全设计

手机银行客户端与贴膜盾的通信主要采用安全中间件来实现,安全中间件为手机银行应用提供访问贴膜盾的接口,完成手机银行客户端登录及交易签名所需的贴膜盾操作,同时采用安全权限控制防止贴膜盾被非法进入。安全中间件的软件组成框图如图6所示。

图6 安全中间件软件组成图

安全中间件主要由API接口、通道管理、安全状态控制和分散密钥存储四个部分组成,各部分具体功能如下:

(1) API接口:为手机银行客户端提供调用贴膜盾的入口,通过该API接口,APP可以调用到贴膜盾中的加密、解密和签名验签等操作。

(2) 通道管理:手机银行客户端通过API接口访问贴膜盾时,其交互的数据需要先通过通道管理模块进行加解密和MAC校验,保证通信数据的保密性和完整性。按照银行安全级别,通常采用国密SM4算法对通信数据进行加解密运算和MAC校验运算,在运算前需先从安全状态控制模块提取当前内容的权限控制,然后再从分散密钥存储模块中提取出对应的控制密钥进行处理。具体通信加解密的流程图如图7所示。

图7 通信加解密流程图

(3) 安全状态控制:安全状态控制模块负责发起权限认证和判断当前运行的手机银行客户端访问的API接口是否达到指定的安全条件。贴膜盾的认证安全状态存储在安全状态寄存器中,当前安全状态主要通过被认证密钥的状态进行设置,如外部认证、内部认证或PIN码认证等,初始化时安全状态寄存器的所有安全状态位都为0,当某认证密钥认证通过后,对应的状态位将被置1,如果认证失败,则对应的安全状态位置0。

(4) 分散密钥存储:手机银行客户端访问贴膜盾时需要先使用对应的内部和外部认证密钥校验贴膜盾和手机银行的合法性,此时需要外置存储密钥,本文采用Shamir门限密钥共享方案对密钥进行分散存储,保护通信密钥在智能手机中的存储安全[10]。其密钥分散初始化流程如下:

(1) 贴膜盾先根据请求生成对应的通信密钥;

(2) 在贴膜盾内随机生成t-1个元素a1,a2,…,at-1,构建如下多项式:

f(x)=K+a1x+a2x2+…+at-1xt-1

(1)

(3) 从密码沙盘中选择n个位置xn,代入多项式,计算出(x1,y1),(x2,y2),…,(xt-1,yt-1);

安全中间件将从贴膜盾中导出的yn存储到xn对应的位置得到沙盘文件,并导出沙盘文件;

(4) 安全中间件存储沙盘文件,完成密钥分散。

通信密钥分散初始化操作流程如图8所示。

图8 通信密钥分散初始化流程图

密钥合成流程:

(1) 安全中间件从贴膜盾中读取t个随机选取的含有密钥信息的位置;

(2) 安全中间件从沙盘中读取贴膜盾要求的t个位置,得到(x1,y1),(x2,y2),…,(xt,yt);

(3) 将(x1,y1),(x2,y2),…,(xt,yt)代入式(2)即可恢复得到多项式(3):

(2)

f(x)=K+a1x+a2x2+…+at-1xt-1

(3)

(4) 求f(0)=K,得到通信使用的临时密钥。

密钥合成流程图如图9所示。

图9 密钥合成流程图

2.4 贴膜盾电子签名技术优点

(1) 从安全的角度上看,将贴膜盾作为智能IC卡硬件平台的安全载体,在其内部植入经过CA认证的数字证书后,在使用过程中通过贴膜盾的PIN码利用盾内数字证书进行电子签名,具有抗抵赖性。贴膜盾内部包含了密码加密芯片,其SM2非对称密钥在贴膜盾中产生并存储,且签名、加解密都在贴膜盾中操作,具有较高的安全性,可以有效防范各种钓鱼网站、木马、病毒和伪基站的威胁,满足银行高净值人群的安全需求。

(2) 从便捷的角度上看,贴膜盾采用超薄贴片工艺,可以直接与手机SIM卡贴合后放入到手机卡槽中,兼容安卓和苹果两大手机系统,无需额外外带,满足现代人对移动支付的便捷需求。

2.5 客户端实际应用效果图

利用贴膜盾对手机银行客户端的交易进行电子签名和加解密通信,可以在安卓和苹果智能手机上运行。以硬件安全载体实现数字证书的PKI安全需求,可以有效地提高手机银行客户端的安全性和交易的抗抵赖性,并且简单易用,不需额外携带安全设备,与手机很好地融为一体,在各个安全领域得到了广泛的应用。在金融领域,为了保护手机银行APP交易的安全,利用贴膜盾对待交易数据进行电子签名,在签名前需客户输入贴膜盾的PIN码,只有PIN码校验通过后方能进行签名操作,安全易用。在移动警务领域,原有的TF安全加密卡需要占用移动终端的一个SIM卡卡槽,而利用贴膜盾既可以解决TF卡占用卡槽的问题,又可以实现安全可靠的网络身份认证机制和网络身份标识,为构建基于4G的新一代公安移动警务提供了可能。贴膜盾在手机银行客户端的应用效果如图10所示。

图10 手机银行客户端应用效果图

3 结 语

本文提出的以贴膜盾为硬件数字证书平台,通过安全中间件将手机银行客户端的待交易数字发送给贴膜盾进行数字签名保护交易安全的方法。从技术上解决了传统音频盾、蓝牙盾、动态令牌等因需要额外携带设备的问题,比传统短信验证码手机银行具有更高的安全性且易于推广使用。该方法在金融、电子政务、移动警务等领域已被应用于实际的产品开发中,如贴膜盾手机银行、贴膜盾语音加密及相关系列产品中,具有广阔的应用前景。同时,在移动互联网+的背景下,国家对安全需求越来越高,安全但不便捷的产品,很难被用户接受;便捷但不安全的产品同样也不符合国家的政策要求。因此,本文的贴膜盾硬件数字证书方案有效地满足了这一需求,解决了安全与便捷的应用瓶颈。本文提供的设计方法,对从事安全开发的技术人员在方案选型及研发方面可以提供有用的借鉴意义,从而促进手机移动支付产业的进一步发展。

猜你喜欢
数字证书电子签名贴膜
手写电子签名的发展及概念分析
套摹电子式电子签名笔迹鉴定问题分析
贴膜固定法换药在压疮治疗中的应用
电子签名
PKI技术在SSLVPN中的应用
谈谈《电子签名法》的内涵和特点
手机贴膜
数字签名保护Word文档
贴膜暴利:批发2元零售200
未来几年贴膜行业 DIY是趋势