剖析无线支付体系中的安全注意事项

1/1/2008来源:无线技术人气:2724

目前,手机在国内越来越普及,并且利用手机进行无线付费已成为可能。手机可以代替各种银行卡成为个人的随身电子钱包。例如:用手机在商场购物、支付停车场的停车费等。手机支付方式不仅快捷,而且实现方便,所以用手机消费会逐渐成为用户和商家方便的选择。一些有意义的试点已经建设并在运行中。
  
  目前主要通过手机进行一些小额付费业务,主要有:
  
  •电话费/网费付费业务
  
  •电话卡付费业务
  
  •月杂费付费服务
  
  •证券交易服务
  
  除此之外,还会有更多方式的付费服务成为可能。
  
  从本质上讲,上述小额支付业务在支付的兑现方法上可以通过两种方法来实现:
  
  •通过手机付费账号进行支付
  
  •通过用户银行账号进行支付
  
  通过手机付费账号进行支付的特点是:付费或小额商品购买的支付金额,直接从该用户的手机付费账户金额中进行核算。这既可以采用预付费实时扣除模式,也可以采用后付费记帐式模式,通过小额支付手机业务处理系统完成。通过用户银行账号进行支付的特点是:付费或小额商品购买的支付金额,需要从用户银行账户金额中进行核算。在这种方式下,采用实时扣除式模式较好,可以消除由于用户信用风险导致的损失。此外,也可以支持信用卡方式的付费。股票交易所也是这种情况,帐号的治理和交易的完成在交易内采用实时的方式完成。
  
  一、小额支付的实现方法
  通过手机终端的支付途径较多,主要有以下三种:
  
  •语音
  
  •短信
  
  •WAP
  
  (1)在GSM及其它各类手机上可以采用短信方式来完成交易和支付。
  
  (2)在CDMA手机上可以通过Brew或K-java编程技术所设计的应用客户端来完成交易和支付。
  
  (3)在较先进的手机上可以通过WAP方式来实现。
  
  安全问题是以上支付方式首要考虑的问题。以上提到的三个方案中,都有相应的一些安全保护措施。语音方案中的安全措施是用户密码保护。此道防线已足以对买彩票这样的小额交易提供保护。
  
  在采用短信息实现交易和支付时,目前较轻易实现的一个方案是利用SIM卡内的DES等加密算法来实现数据加密和安全通信,虽然身份认证的功能比较弱一点,但数据加密和数据完整性检验是可以实现的。
  
  在采用宽带的CDMA手机时,可以利用Brew或K-Java开放平台编程技术,针对应用编写一个客户端程序,并且可以实现加密的安全通信,包括数据完整性检验的功能。
  
  WAP提供了一套开放、统一的技术平台,用户可以通过移动设备的WAP功能接入移动支付系统或是银行卡系统,发送有关交易数据或是接收帐单信息。WAP提供的是一种应用开发和运行环境,能够支持当前最流行的嵌入式操作系统,它支持目前使用的绝大多数无线设备;在传输网络上,WAP支持目前的各种移动网络,如GSM、CDMA、PHS等,也可以支持未来的第三代移动通信系统。WAP方案中的安全措施是:用户手机与WAP网关之间采用WTLS(无线传输层安全)协议加密,WAP网关与商家WAP服务器以及前置机之间采用SSL安全通道。
  
  二、安全实现技术方案
  在电子商务的交易中由于涉及到许多安全问题,所以必须采取一定的措施来保障交易过程的安全,采取的技术手段有:
  
  •身份验证
  
  •信息加密传输
  
  •数据的完整性检验
  
  •数据的机密性
  
  •抗否认性要求
  
  此外,还需要考虑端到端的安全传输问题,数据的实时性和一致性等,建立身份认证与用户数据治理间的关系等。
  
  下面,我们来具体看一下通过JAVA手机实现交易的流程。
  
  先进的GPRS和CDMA手机都提供了开放可编程的K-Java或Brew平台,应用开发商可以使用Java语言或C/C++语言自行编写可运行程序,下载到手机内就可以实现多种功能,不但可以编写游戏和小应用,还可以编写支持ip网络通信的客户端软件,通过无线网络和Internet,访问服务器并获取各种信息,也可以实现电子商务应用。国内已经出现K-Java程序的下载中心。
  
  K-Java和Brew平台上实现的无线互联网络应用在工作原理上与Internet网络上的C/S模式相同,客户端程序可以完成IP方式的通信,通常可以采取HTTP数据格式,手机完成类似无线调制解调器和上网功能,简单的Web服务器就可以实现移动应用,不需要复杂的网络设备来支持,建设和服务都很方便。根据上述技术,我们可以通过Java编程在手机内实现高安全度的数据加密模块,在服务器侧设计开发专用的数据加密设备,完成移动银行系统。小额支付平台的主要服务也可根据这种模式来搭建。系统如图1所示:
  
  该系统的加密技术保证了用户提交的银行帐号和口令,以及各种个人的机密和敏感信息都被加密传送,不会被破译和盗用。数据加密服务设备(数据加密机)采用专用硬件产生和安全保存密钥,完成高速加密和解密。
  
  数据在传输的过程中都是加密的,但是数据在从手机到服务器和从服务器到手机的传输中是怎样实现加密传输的?下面来看一下我们设计的方案流程,如图2所示。
  

  (1)首先通过加密板卡产生一对非对称RSA密钥,私钥存储在加密板内,公钥公开发布;
  
  (2)当手机用户获得服务商提供的公钥后,就可以用此公钥对自己的私有信息进行加密;
  
  (3)此私有信息中应包含用户自己产生的DES会话密钥;
  
  (4)服务商用自己的私钥对用户提交的数据进行解密,并验证数据完整性;
  
  (5)给用户发送数据时,采用该会话密钥对数据进行DES加密;
  
  (6)用户再用DES密钥进行相应的解密,便可得到真实的信息。
  
  我们再来看一下与上述流程相对应的一些技术问题。
  
  (1)RSA公共密钥的发布
  
  服务商的RSA公共密钥由无线交易系统来发布,用户可以将它下载到手机内的应用程序中。RSA公钥在发布时,将同时发布它的摘要,即密钥的指纹。手机应用程序在接受到RSA公钥后,可以通过API接口调用手机加密模块的功能来计算接收到的RSA公钥的指纹。手机应用程序应该可以显示这一指纹,以便手机用户与公开发布的密钥指纹进行核对,避免把不可信任的RSA公钥下载到自己的手机中。
  
  (2)用户端数据加密功能
  
  手机内的加密功能由相对独立的Java软件模块实现,该模块向应用程序提供API接口函数,包括RSA加密、DES密钥产生和治理、md5数据摘要的计算和校验等功能。
  
  (3)DES密钥的生成和治理
  
  DES密钥的生成采用随机的方法,根据系统时间和其他信息产生随机种子,进而产生随机数作为密钥。DES密钥的使用可以是“一次一密”或“一天一密”的方式,一个交易过程可以不是由一次通信来完成。服务器对手机的回复,可以在用户手机发出首次加密信息后一定时间内再回复,这一回复仍可以用早些时手机提交的DES密钥来加密。(这一功能保证了手机应用可以由短信方式来实现其通信)。
  
  在实际的应用当中,必须考虑到密钥的保存、密钥的删除、密钥的更新等,这样才能保证在交易时的安全性。
  
  三、结束语
  无线支付体系目前手机终端的处理能力还不足,由于加解密需要进行大量运算,所以对手机终端的处理能力要求很高,大部分手机还不足以支持更多位的加密运算。另外,用户端手机还需要将WIM(无线认证模块)嵌入到浏览器中,才能完成用户端的CA认证。但随着移动支付安全技术的发展,在不久的将来,将手机与电子钱包帮定,手机付费将会成为人们生活的一部分。