手机支付宝面临的风险和应对(II)---支付安全走过的心路历程

上文已经说过,支付安全的两个问题,归结为技术手段就是认证和交易数据的完整性。

由于PC上网银和支付宝已经运转多年,已经走过不少历程,我们简要回顾一下。

身份认证的目的就是弄清楚访问者是谁,根据用户的特征来验证其身份。

身份认证的基本途径有:

a)基于你所知道的(What you know):知识、口令、密码。

b)基于你所拥有的(What you have):身份证、信用卡、密钥、智能卡、令牌等。新增一个现在很普遍的手机验证码(其实就是冬天口令)

c)基于你的个人特征(What you are):指纹、笔迹、声音、手型、脸型、视网膜、虹膜。

用户名/密码是最简单也是最常用的身份认证方法,是基于“what you know”的验证手段。每个用户的密码是由用户自己设定的,只有用户自己才知道。只要能够正确输入密码,计算机就认为操作者就是合法用户。由于密码是静态的数据,在验证过程中需要在计算机内存中和网络中传输,而每次验证使用的验证信息都是相同的,很容易被驻留在计算机内存中的木马程序或网络中的监听设备截获。因此,用户名/密码方式一种是极不安全的身份认证方式。

智能卡通过在芯片中存有与用户身份相关的数据,由合法用户随身携带,登录时必须将智能卡插入专用的读卡器读取其中的信息,以验证用户的身份。智能卡认证是基于“what you have”的手段,通过智能卡硬件不可复制来保证用户身份不会被仿冒。

回过头看这么多年的历史,为了解决身份认证,除了用户名/密码这种方式,还有一些存在的或者消失的手段。主要包括软证书、USB Key、手机动态口令、动态口令卡等等。其中软证书、USB Key也可以用来保障交易数据完整性。

总结起来就两类:证书和动态口令,产品形态比较多样化,看阿里的网站介绍:

https://securitycenter.alipay.com/sc/products.htm

1)动态口令卡

动态口令卡尤其是RSA公司的secureid在国外应用很多,在国内也曾经在一些银行规模化使用过,但最后银行基本放弃了这种方式。

 

为解决静态口令安全性的问题,在20世纪90年代出现了动态口令(Dynamic Password)技术。动态口令技术也称为一次性口令技术(One Time Password),即用户每次登录系统时都使用不同的口令,这个口令用过后就立刻作废,不能再次使用。

动态口令是变动的口令,其变动来源于产生口令的运算因子是变化的。动态口令的产生因子一般都采用双运算因子(two factor):其一,为用户的私有密钥,它是代表用户身份的识别码,是固定不变的;其二,为变动因子,正是变动因子的不断变化,才产生了不断变动的动态口令。根据所采用的不同变动因子,形成了不同的动态口令认证技术:口令序列、时间同步(Time Synchronous)、事件同步(Event Synchronous)和挑战/应答方式(Challenge/Response Asynchronous)。

例如,登录前,首先产生登录用的动态口令:

动态口令= MD5(用户私密信息 +用户名 +不确定因子)。

网络传输动态口令,系统收到动态口令后,验证用户合法性:

验算口令= MD5(用户私密信息 +用户名 + 不确定因子)。

当动态口令与验算口令一致后即可认为用户是合法的。

用的比较多的是基于时间同步的动态口令技术。

时间同步动态口令技术是一种基于时间同步方式来产生动态口令的技术。时间同步口令牌内置有时钟、种子密钥和口令产生算法,并可以根据当前时间和种子密钥生成一个动态口令。用户需要访问系统时,将令牌生成的口令传送到认证服务器,服务器通过其种子密钥副本和当前时间计算出验证口令,对用户进行验证,如果两口令相匹配,则认证通过。相关产品如RSA信息安全公司的SecurID系统。

基于时间同步认证技术是把时间作为变动因子,一般以60秒作为变化单位。所谓“同步”是指用户口令卡和认证服务器所产生的口令在时间上必须同步。这里的时间同步方法是用“滑动窗口”技术,自动在用户口令卡和服务器之间实现矫正和同步。基于时间同步的令牌在每次进行认证时,服务器端将会检测令牌的时钟偏移量,相应不断微调自己的时间记录,从而保证令牌和服务器的同步,确保日常的使用。但由于令牌的工作环境不同,在磁场、高温、高压、震荡、入水等情况下易发生时钟脉冲的不确定偏移和损坏,故对时间同步的设备进行较好的保护是十分必要的。对失去时间同步的令牌,可以通过增大偏移量的技术(前后10分钟)来进行远程同步,确保其能够继续使用,降低对应用的影响,但对超出默认(如20分钟)的时间同步令牌,将无法继续使用或进行远程同步,必须返厂或送回服务器端另行处理。

时间同步口令技术有如下缺点:

a)口令在一定时间段有效,所以在这个时间段内存在重放攻击的威胁。

b)认证效率低。数据在网络上传输和处理上存在一定的延迟,当时间误差超过允许值时,合法用户的身份认证也会失败。

c)同步机制复杂。一方面,当令牌数量分散且属于多个不可控网络系统时,保证众多的令牌同认证服务器的时钟同步是一个难题;另一方面,认证服务器的系统时钟必须严格保护,不得随意更改,以免影响全部基于此服务器进行认证的令牌。

d)不能防止伪造服务器攻击。攻击者可以伪造服务器,收集用户的有效口令后,伪装成合法用户通过认证并入侵系统。

e)令牌需要保持正确的时钟,耗电量大,使用寿命短,成本高。

f)应用模式单一,难以支持双向认证等应用需求。

 动态口令系统组成

动态口令认证系统一般由三部分组成:

a)动态口令令牌:硬件设备,像一个小的计算器,用来生成口令,可以随身携带。

b)动态口令认证服务器:认证服务器端是动态口令认证系统的核心,负责响应认证系统客户端所发过来的用户认证请求(动态口令),完成用户的身份认证。

c)代理软件(Agent):Agent以及基于各种标准的访问协议(如RADIUS协议)构成认证转发点,安装在受保护的系统上,负责将用户的认证请求转发到认证服务器端。

 动态口令产品类型

1)硬件生成(Token Card):用类似计算器的小卡片计算一次性口令。

a) 对于时间同步方式,该卡片每隔一段时间就会重新计算口令。

b)目前市场主流的动态口令卡仅仅起到身份认证的功能,无法防止信息篡改,可以通过在动态口令卡中设置输入功能,把部分交易信息引入动态口令的计算过程中,但结果就是需要用户额外输入,用户体验较差。

其代表就是工银电子密码器,支持在个人网上银行、手机银行、电话银行等渠道使用,特别适合使用iPhone、iPad等移动终端办理大额支付业务的客户。

起使用流程如下,和U盾的流程非常类似,把交易数据和令牌里面保存的密钥进行了运算。

而为防止动态口令牌丢失时,被别人盗用,部分口令令牌使用PIN码保护,根据PIN码保护的形式不同,令牌又具有如下两种特征:

c) PIN码保护:软PIN码是在密码输入窗口输入动态密码时,同时输入个人记忆的静态口令,将其和令牌生成的动态密码一同输入弹出的用户名口令窗口,传送到服务器端实现认证。

d)硬PIN码保护:硬PIN码即是在开启口令牌时要求输入的密码,不知道该密码的人员不能使用口令牌,即不能开机,类似于移动终端的PIN码,这个PIN码不会再输入到弹出的登录窗口。

 前述提到的工银电子密码器,使用时需要两次输入开机密码(6位数字),完成开机密码初始化。
 两次输入的开机密码必须相同,否则将导致初始化开机密码失败。失败后,按任意键返回,重新进行初始化开机密码。

2)软件生成(Soft Token):软件代替硬件,如客户端形式的动态口令。

3)刮刮卡:刮刮卡背面以矩阵形式印有多个数字串。使用网上银行进行对支付交易时,网上银行系统会随机给出一组口令卡坐标,用户从卡片上找到坐标对应的密码组合并输入网上银行系统,只有当密码输入正确时,才能完成相关交易。这种密码组合动态变化,每次交易密码仅使用一次,交易结束后即失效,能有效避免交易密码被黑客窃取。

    

4)移动终端动态口令卡:使用SIM卡或者移动终端软件产生动态口令的一种方式。

a)基于移动终端的动态口令牌,利用了移动终端的按钮、显示屏和电池,一个移动终端可支持多个动态口令业务,降低了成本。

b)移动终端既可支持硬件口令牌,也可支持软件口令牌。支持硬件口令牌的移动终端,主要通过使用内置动态口令业务的智能卡(SIM卡)来产生动态口令;基于SIM的动态口令牌,其口令由SIM卡内部生成,通过手机屏幕显示出来。支持软件令牌的移动终端,主要是智能手机使用相应的软件程序来产生动态口令。

动态口令小结

1)动态口令不能提供非否认性。

2)动态口令会被钓鱼。由于动态口令的输出信息有个短暂的有效期,可能被钓鱼以后用于违法操作。

3)大多数动态口令仅起到了身份认证的功能,无法防止信息篡改。  也就说钱照样丢!

2)U

基于USB KeyU盾)的身份认证方式是近几年发展起来的一种身份认证技术。它内置了CPU、存储器、芯片操作系统(COS),可以存储用户的密钥或数字证书。利用USB Key内置的证书、密码算法实现对用户身份的认证、交易的不可否认性。

U盾采用非对称密钥算法对网上数据进行加密、解密和数字签名,确保网上交易的保密性、真实性、完整性和不可否认性。

除了硬件,U盾内置智能卡芯片操作系统(COS),该操作系统就像DOSWindows等操作系统一样,管理着与U盾相关的各种数据、密钥和文件,并控制各种安全服务。

U盾密钥完全在硬件内生成,并存储在硬件中,能够保证密钥不出硬件,硬件提供的加解密算法完全在加密硬件内运行。

U盾的出发点是基于系统是不可信的。这也是本文中强调的安全思路:绝大多数应用的安全性可以基于系统安全机制,但部分应用(如网上支付)可以独立于系统安全之外构建安全体系

 

目前仅在转账时使用U盾,毕竟使用U盾的用户体验还是比较差的。另外,目前商业银行主要采用单向SSL,原因在于还有很多用户没有证书,但依然要进行网银操作如查询账户等。

U盾的安全性分析

要说明U盾的安全性,先得说明U盾的作用。

U盾保存证书以及证书对应的私钥。U盾的作用主要是提供身份认证以及签名。U盾中虽然内置证书,但每次验证过程都需要从U盾中读取出来,其实和存在在计算机上安全级别差不多,那么U盾最关键的部分就是签名了。由于私钥不能导出芯片,而只有私钥签名的数据在服务端才能验证通过,因此只有拥有私钥才能完成交易。也就是说,U盾的安全体现在物理存在。确保只有使用U盾时才能完成交易。当前U盾的物理存在是靠签名来体现的,只有通过U盾里面的私钥签名才能完成交易,而且U盾里面的私钥是不可导出的。恶意程序即使获取了用户所有的账户、口令信息,由于没有物理U盾,也无法在其他PC上完成交易。

U盾也经历了逐渐完善的过程,最初的第一代U盾仅仅体现了物理存在,依然存在一些安全隐患,如交易数据被篡改,本来是给A转账100元,结果被改为转账1000元给B。另一个问题就是如果你一直把U盾插到计算机上,有可能木马自动完成全部交易,也就是自动执行的问题,虽然U盾私钥签名时需要输入口令,但由于这个输入是发生在Windows上的,木马可以帮你代劳。

由此诞生了第二代U盾,带有确认按钮和显示屏的U盾。二代U盾有下列功能:

l U盾物理实体保证只有拥有该实体才能完成交易。U盾里面的私钥是不可导出的,无法复制。

l 显示屏保证交易数据无误,如果木马篡改了交易数据,在显示屏直接可以看到。

l 交易的自动执行,不点击确认按钮无法完成签名操作,交易也无法完成。

二代U盾比较彻底地解决了网银的支付安全问题,但带来的后果就是使用更复杂,用户体验更差。木马虽然也可以篡改数据,但如果用户不单击确认按钮,交易就无法完成。有了这种机制保证,这种损人不利己的事情(木马篡改数据、窃取口令等)会越来越少。

 3)一种特殊的动态口令机制----手机短信

由于手机的普及,手机短信作为一种有简单、有效的认证方式飞速发展,尤其在sp时代,即使现在运营商大部分业务还是通过短信完成交易。

 这种方式相对其他的动态口令机制,最大的优势就是方便,无需携带额外设备(毕竟手机是必须携带的)。

目前不管是在pc上、手机上,使用手机验证码已经很普遍。

手机短信认证其实可以用于账户登录、交易等环节进行认证、给用户提示等,在运营商的业务中非常普遍,比如我登陆139邮箱都会提醒我,但银行毕竟从运营商批发短信需要银两,因而没有大范围使用短信。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值