手机银行是银行向公众提供的、利用移动通信终端完成转账汇款、账户查询、代缴费、理财投资等多种非现金金融业务的平台。据《2011中国手机银行用户调研 报告》显示,截至2011年2月,用手机上网的人群中使用手机银行业务的用户占比已达52.2%,经常使用手机银行业务的用户收入较高,并且用户群逐步向 中年人群扩散。这表明手机银行的用户认可度正在逐步提高,特别是随着3G网络和智能手机的普及,手机银行必将迎来更广阔的发展空间。

  一、手机银行发展简述

  从技术角度来说,手机银行产品的发展是由通信方式和应用程序载体两方面技术发展而来,详见图1。

  1.基于短信的手机银行

  最早的手机银行产品是随着STK(SIM Tool Kit)和BREW(Binary Runtime Environment for Wireless)技术的发展应运而生。STK技术在1995年由ETSI/SMG发布的GSM 11.14标准中明确定义。STK包含一组指令用于手机与SIM卡交互,通过在STK卡中固化手机银行应用程序,可以实现为用户提供手机银行服务的功能。 2000年,中国移动与各家银行开展合作,通过将手机用户的SIM卡更换为STK卡的方式向用户提供手机银行服务。STK技术是一种基于硬件的技术,除了 直接将SIM卡升级为STK卡提供服务如“移动梦网”和“动感地带”外,近些年还出现了一种给普通SIM卡“贴膜”实现STK的技术,并且可以实现数字签 名等更为复杂的功能。但无论哪种实现方式,由于STK智能卡内存的限制,仅能实现有限的应用程序,各家银行的手机银行产品无法并存、功能有限且成本较高, 这造成此类手机银行产品无法普及。

  2001年初,手机短信越来越普及,并带动了基于短信的手机银行产品的出现。用户通过手机内置的短信软件与银行通信,以短信方式传递指令进而完成业务 操作。例如,中国工商银行是较早开通手机银行的商业银行之一, 客户可以通过编辑发送特定格式短信到95588,银行系统按照客户指令为客户办理查询、转账、汇款、捐款、消费、缴费、定制/取消余额变动提醒通知等业 务,并将交易结果以短信方式通知客户。

  基于短信的手机银行产品最大的优点是适用范围广泛,无需改换SIM卡,基于手机内置的短信通信软件即可完成手机业务操作,且各家银行的产品不会冲突、兼容性好。但其缺点是操作繁琐,交互性差,用户体验差。

  2.基于WAP的手机银行

  随着CDMA 1X和GPRS技术的成熟,出现了基于BREW、KJAVA平台的手机银行产品,但用户需要在手机上安装客户端软件。且这类客户端软件的平台兼容性较差,需要给不同型号的手机开发不同的客户端程序。

  WAP(Wireless Application Protocol)技术的出现,使得在手机银行迎来了第一个真正意义上的春天。手机WAP上网方式已经得到了用户的普遍认可。《2011中国手机银行用户 调研报告》显示,手机银行用户使用手机支付时,首选的是WAP页面,56.1%的用户更愿意采用这种形式。

  WAP为无线应用协议簇。WAP支持包括GSM、CDMA在内的绝大多数无线网络。WAP协议簇的WTLS(Wireless Transaction Layer Security)协议为无线电子商务及无线加密传输数据提供安全保护。WAP手机银行能够为用户提供兼容性好、交互性好、安全性高的银行业务服务。

  3.基于智能终端的手机银行

  3G网络、WiFi网络以及智能手机的普及,使得手机银行产品出现了一次大的跨越。智能手机的性能显著提升,使得其可以运行更加复杂的程序;3G网 络、WiFi网络使得用户可以随时接入网络并享有更快的数据传输速度。在智能手机上,新型手机银行产品主要以客户端应用程序形式出现,它能够提供界面更加 友好、用户体验好的银行业务服务。这种手机银行产品可以统称为智能终端手机银行。

  从手机银行的发展来看,手机银行产品经历了短信手机银行、WAP手机银行、智能终端手机银行三个典型阶段。智能手机可以说是集大成者,通过智能手机, 用户既可以使用短信手机银行和WAP手机银行,也可以使用智能终端手机银行。应该说,智能手机操作系统的安全性决定着手机银行的安全性。

  二、Android操作系统安全性

  市场调研机构Gartner报告显示,2010年智能手机市场上Symbian操作系统市场占有率为37.6%,Android操作系统市场占有率为 22.7%,分别居于第一、第二位;2011年Android操作系统市场占有率将跃升至第一,预测市场占有率将达到38.5%,并于2012年接近 50%。可以说,Android操作系统是目前智能手机市场上最受欢迎的操作系统之一。

  1.Android操作系统概述

  Android操作系统是Google公司与开放手机联盟(Open Handset Alliance,OHA)成员共同开发的、基于Linux平台的开源手机操作系统,它包括操作系统、用户界面和应用程序三部分。Android的核心系 统服务依赖于Linux 2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等。

  2.Android操作系统安全机制

  与苹果iOS操作系统类似,Android使用沙箱机制来实现应用程序之间的隔离和资源访问控制。其沙箱机制是通过Linux进程级别的安全性、与应用程序相关的User ID和Group ID,以及权限等来实现的。

  (1)应用程序User ID

  在Linux中,一个User ID标识一个用户;在Android上,一个User ID标识一个应用程序。应用程序在安装时被分配User ID,应用程序在设备上的存续期间内,User ID保持不变。User ID不同,导致应用程序进程必然不同。

  如图2所示,两个Android 应用程序,具有不同的User ID,并在各自的进程中。

  (2)应用程序进程

  在默认情况下,运行在沙箱进程中的应用程序没有被分配任何系统权限,不同应用程序的进程之间也完全隔离。Android应用程序需要通过应用程序的 manifest文件请求访问系统或资源的权限,也可以通过manifest文件设置 android:shared User ID属性值,使得该程序与其他使用相同私钥签名的应用程序使用相同的User ID,进而运行在同一进程中,以便共享对其数据和代码的访问(如图3所示)。

  (3)应用程序签名

  所有Android应用程序都必须进行数字签名。除了上述通过共用User ID进行数据共享的方式,使用相同数字签名签署的两个应用程序可以相互授予权限来访问基于签名的API。但是,Android中的应用程序签名采用一种比 iOS应用程序签名要简单的方式。在Android上,证书可以是自签名的,无需使用第三方证书。

  (4)应用程序权限

  权限是Android平台安全机制核心,旨在允许或限制应用程序访问受限的API和资源。默认情况下,Android应用程序没有被授予权限,权限在安装期间通过 manifest 文件由应用程序请求。

  Android系统中权限分为普通级别(normal)、危险级别(dangerous)、签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。

  对于普通和危险级别的权限,通常称之为低级权限,普通级别的权限只要申请了就可以使用,危险级别的权限在安装时需要用户确认才可以使用;其他两级权 限,通常称之为高级权限或系统权限,应用拥有platform级别的认证才能申请,需要开发者的应用程序和系统使用同一个数字证书。

  Android 定义了android、permission、bluetooth等95项manifest权限,要请求权限,可以在manifest文件中声明一个属性:来获得。

  此外,应用程序还可以自定义权限。其他应用程序想要访问一个应用程序的受保护资源,就必须通过manifest文件请求适当的权限。

  (5)文件权限

  文件基于User ID保护,只有具有相同User ID的应用程序才能访问相关文件。可以说,Android操作系统是在Linux内核基础上额外进行加固和限制的操作系统。

  3.Android应用程序开发语言

  目前Android应用程序开发语言主要为Java,也可以通过Google发布的Android NDK工具集移植或者开发C/C++代码。与iPhone应用程序的主要语言Object-C不同,Java属于解释型语言,并不直接编译成二进制文件, 这造成基于Java语言开发的应用程序较容易被反编译。

  4.Android应用程序发布渠道

  Android平台的开放性也体现在应用程序发布渠道上面。与苹果应用程序必须发布到App Store不同,Android应用程序可以选择多个互联网渠道进行发布:

  (1)自建网站提供应用程序下载。

  (2)通过第三方论坛、网站提供下载。

  (3)在线商店。除了Google的在线商店(market.android.com)还有许多在线商店,如亚马逊、天翼空间等。这些在线商店 中,Google在线商店市场份额最多,由于审核机制的不完善造成应用程序存在安全风险。例如2011年4月4日有报道称,Google Android Market中出现21款山寨版免费应用,这些应用均被植入了木马。

  三、Android手机银行所面临的安全风险及防范措施

  Android操作系统以开放性为主,无论是应用程序数字签名方式、权限控制、发布渠道、应用程序审核等都为开放性设计,这也在一定程度上带来了更多 的风险。2011年初出现了不少关于Android平台存在大量“吸费”应用软件和偷取个人信息的木马程序例如“Geinimi”(网友称其为“给你 米”)等新闻报道。数据显示,2011年第一季度新增Android手机病毒101个、恶意软件1014款,单月平均新增超过300款以上。安全软件厂商 趋势科技董事长张明正曾表示,谷歌Android比苹果iPhone iOS更容易受到恶意攻击,而后者的主要风险存在于“越狱”破解之后。

  总的来说,Android系统手机面临病毒、木马等恶意程序攻击的风险较高,更接近于目前PC环境。通过其安全机制可知,对于短信软件、WAP浏览器 等均可以进行替换或者通过manifest机制为第三方应用程序授予资源访问权限,因此需要采用更多的技术和管理措施防范安全风险。

  1.短信手机银行安全防护

  对于短信手机银行,需要通过柜面设置约转账户、设置单笔和日累计限额等业务控制措施,防止恶意软件篡改短信内容等方式造成资金损失。

  2.WAP手机银行安全防护

  对于WAP手机银行,除了需要采取通信加密技术和数字证书站点认证技术,当用户通过移动运营商网络访问手机银行服务器时,还要采取手机号码透传技术有 效鉴别客户。并且,由于智能手机还可以通过WiFi网络访问,此时无法进行手机号码透传,因此需要对透传和非透传两个访问方式进行差别资金限额控制。在智 能手机应用环境下,通过短信等渠道传递的URL会自动被操作系统添加到访问链接,这与通过QQ等即时聊天工具提供假冒网站链接进行钓鱼攻击类似,用户可能 被诱骗访问假冒WAP站点,进而造成客户账号、密码丢失。

  3.智能终端手机银行安全防护

  与短信手机银行、WAP手机银行相比,智能终端手机银行是发展的主流。与iOS操作系统的封闭性相比,Android操作系统的开放性同样使得银行可以采取更多的手段进行安全防护。

  (1)在应用程序中增加代码混淆等防止反编译措施;同时,对于核心代码,建议开发C/C++程序。防止纯JAVA程序容易被第三方反编译风险。

  (2)在产品需求和设计阶段,严格限制应用程序对外提供API、自定义权限等功能。防止针对应用程序控制权限不完善造成资源滥用风险。

  (3)明确Android手机应用程序发布渠道,并对用户加强安全教育,避免从其他渠道获取假冒应用程序。防止发布渠道缺乏审核所带来的风险。

  (4)对于应用程序透传和非透传访问方式应该给予不同的资金限额控制。

  (5)除了采取SSL加密通信外,对于SSL加密通道内的数据也要进行全量加密,同时增加服务器站点证书认证机制,防止假冒网站和中间人劫持。

  此外,对于上述手机银行产品,均可以考虑增加电子密码器、动态口令卡等认证技术,同时教育用户安装正版安全软件。

  随着智能手机市场容量的不断增大,基于智能手机的手机银行产品将迎来一个快速发展的契机。其中,安全性问题则是制约手机银行发展的瓶颈。因此,手机银 行产品需要根据智能手机平台的自身特点,在交易资金限额等业务安全策略的基础上,依托现有技术,实现更加丰富的技术安全控制措施,进而满足手机银行用户的 安全需求。

  中国工商银行股份有限公司数据中心(北京) 关靖远

posted on 2011-08-19 20:19  情定诺坎普  阅读(859)  评论(0编辑  收藏  举报