站内公告: |
时间:2019-02-24 点击:0 次 来源:管理员 作者:小乐 - 小 + 大
在信息技术高速发展的今天,各行各业都在借力IT技术拓展自己的业务。以金融行业为例,近几年各大行也都在大力发展电子银行,推出了各种新型电子金融产品如基于SD卡的NFC手机支付、银联无卡支付、客户端版手机银行等。尤其是城市商业银行,受实体网点少的局限,更加期待借力电子金融产品,尽可能地触及各个金融角落。随着,网上银行、手机银行和现金管理系统等电子金融产品的出现,也促使了安全认证技术的快速发展。然而,由于它们都是基于Internet新应用,而Internet是一个开放的系统,对于系统安全性及信息的保密性、完整性和不可否认性考虑的并不完备,所以电子银行系统一直没能摆脱操作安全问题的困扰。本文将重点分析当前各银行采用的各种电子渠道身份认证技术,并对这些技术的安全性进行分析。 1.动态口令技术 静态口令认证技术是应用最广泛的口令认证技术之一,即用户口令在一定的时间间隔内是固定不变、可重复使用的。以静态口令技术实现的身份认证方式其特点是简单、易用,并且具备一定的安全性。但随着网络应用的复杂化、攻击手段的多样化,静态口令技术的安全缺陷也日益突出:其一,容易遭受伪造服务器攻击。攻击者只需要简单构造一个与银行网银完全一致的登录界面,然后通过社会工程学手段诱骗警惕性不高的客户登录到钓鱼网站,即可轻松获取用户ID和密码。其二,键盘过滤钩子程序泛滥,一旦感染此类木马病毒,客户键入的任何信息都在木马监控下,此类木马在截获到口令后,会立即向远端恶意主机发送此类敏感信息。目前各家银行的大众版网银基本上都是静态口令,但此类版本一般只具有查询功能,安全上还是有保障的。但也有部分银行在仅仅凭借静态口令的安全性上,可以进行账户类交易,如各种便捷缴费、捐款等交易,而且这些交易还涉及到卡密码的输入,这种仅仅依赖密码控件来保障交易的安全风险是极高的。 键盘过滤驱动程序的实现方法有很多,比较常见做法即定义自己的过滤驱动,然后将其附加到底层键盘驱动“\\Device\\KeyboardClass0”的设备堆栈上,调用IoAttachDevice函数实现过滤设备的附载,然后通过拦截读请求Irps即IRP_MJ_READ,在其实现函数中通过调用IoSetCompletionRoutine函数,设置I/O完成例程,即底层键盘驱动完成键盘扫描 并将扫描码返回时,触发我们定义的回调函数,即可分析出上层用户键入的字符。具体细节读者可参看Clandestiny发表的文章《DesigningAKernelKeyLogger》.笔者借助DDK和DriverMonitor工具,编译并加载此驱动,并测试了两家银行的网银大众版密码控件,分析及结果如图1、图2所示。
由图1、2可知,图1右子图银行控件可以抵御此类键盘过滤驱动的监控,其安全性要优于图1左子图。显然,若图1右子图对应的大众版网银若存在一些账务类交易,无论金额大小,都存在一定的风险,因为有些银行账户类交易都需要客户输入卡密码,但客户电脑感染此类木马,则客户输入的网银登陆密码、卡密码都将完全暴露给恶意客户,黑客完全可以通过这两个密码去重试各种电子银行系统,如手机银行系统等。鉴于静态密码存在的各种弊端,银行都开始引入动态口令技术,也称作一次性口令即用户每次登录系统时候使用的令是变化的。口令的变动来源于产生密码的运算因子是变化的。 动态口令的生成因一般采用双运算因子: (1)用户的私钥。用户私钥是动态口令生成过程中不变的运算因子,用来代表用户身份的识别码。 (2)变动因子。该变动因子可以基于时间、事件、随机数列及其他一些可变因素。用不同的变动因子可以形成不同的动态口令认证技术,目前硬件介质的E-Token主要采用基于时间同步的证技术、基于事件同步的认证技术、基于挑战/应答方式的非同步认证技术三种不同的技术模式。软介质的主要是基于短信的动态口令技术。 2.动态口令安全性分析 2.1基于时间同步认证的安全分析 基于时间的同步认证技术是把流逝的时间作为变动因子,一般60s内为有效时间。银行在分发E-token时与电子渠道用户绑定建立一一对应关系,使用唯一的128位种子将其初始化。其内部芯片每分钟换一种不同算法,组合种子与当前时间,生成一个随机6位数,也即目前银行分发的E-token每60s更新一次动态口令。银行端的认证系统与客户端的E-token同时拥有对称密钥和相同的对称密钥算法,在设定好的相同时间更新计算出新的随机数字,保证动态口令牌和网上银行服务器的单一认证,确保网上银行的安全性。用户登录网上银行系统时,只需按下按钮,U盘大小的电子口令牌上方的液晶显示器每隔60s就能变换出一组六位的随机数字作为身份认证的口令。 但这种方式存在一个致命的弊端即口令的产生没有包含客户此次转账的任何信息,而且客户端也没有对电子渠道如网银服务器进行验证即只能提供单向认证,易被网络钓鱼。针对安全意识薄弱的客户实施攻击,通过“Token升级”等借口,向客户发送一个钓鱼网站,以获取客户输入的关键信息(用户名+静态口令+动态口令),然后在60s内瞬间完成恶意交易。 针对钓鱼网站攻击,目前各家行采取了一些有效措施:其一,为客户提供防伪验证信息设置,在客户登录网银时,客户可根据输入的用户ID,校验服务器返回的防伪验证信息是否符合自己预留的信息。这种方式比较陈旧,无法躲避MTIT攻击。其二,结合短信渠道,在转账确认时,向客户发送转账的关键要素及随机数,要求客户再次输入确认。这种方式很 好地解决了网络钓鱼攻击。 2.2基于挑战/应答认证的安全分析 基于挑战/应答方式的非同步认证技术中,变动因子是由认证服务器产生的随机字序列,同时它也是密码发生器生成密码的变动因子。主流的挑战/应答方式的动态密码身份认证方式即S/KEY协议。基于摘要算法的S/Key系统,通过初始化和认证两个步骤来完成整个认证过程: (1)初始化。通过选择一个随机口令字或由用户指定一个口令字,作为初始密码I,使用单向不可逆算法加密W到N次得到S1~Sn,将得到的N个密码的最后一个Sn保留在服务器中,用于后续校验,将其余的N-1个密码(S1~Sn-1)交给用户作为密码,每次逆序使用一个,直到S1被使用后,需重新初始化。 (2)认证。认证服务器针对每一个在其中完成初始化的用户保留相应的Sn,用户在认证时,将其最后一个密码Sn-1提交给服务器,服务器将其用摘要算法处理后和保存的该用户Sn比较,相同则认证成功,并将Sn抛弃,存储Sn-1,以此类推,直至W被使用,则需重新初始化。 同样这种方式也仅仅是一种单向认证方式,容易遭受MITM攻击和小数攻击。当用户向服务器请求认证时,黑客截取服务器传来的种子和迭代值,并修改迭代值为较小值,假冒服务器,将得到的种子和较小的迭代值发送给用户。用户利用种子和迭代值计算一次性口令,黑客在此截取用户传来的一次性口令,并利用已知的单向散列函数一次计算较大迭代值的一次性口令,就可以获得该用户后继的一系列口令,进而在一段时间内冒充合法用户而不被察觉即小数攻击。 2.3短信口令认证安全性分析 短信口令认证技术相对硬件介质的E-Token更加环保且使用方便,客户发生账务类交易时,不需要随身携带物理介质。当前各家银行推出的短信口令版网银,都基本上添加了安全因子salt即客户的交易信息。整个认证过程如图3所示。 图2.短信口令认证模式
(1)客户在柜面申请开通短信口令认证。此过程主要是将用户身份信息与认证服务器的种子进行绑定,为用户分配一个唯一种子。 (2)客户登录网银,输入转账要素后,需要激活认证服务器,网银服务器收到客户的认证请求后,会查询客户对应的种子信息,将种子Seed和交易信息(如收款人账号、金额)一并上送给认证服务器,认证服务器接收到输入后,会将其作为输入值,调用哈希函数散列成一个固定长度的随机数R。 (3)认证服务器下发随机数给网银,然后再将收款人账号后几位、金额及随机数R一并通过短信平台下发客户。客户收到后确认交易信息无误即可输入R值,进行真实账务处理。哈希函数的输入值加入转账要素的优点即很好地避免了客户端感染各种木马,导致页面提交的各种要素发生恶意改变的可能。尽管如此,短信口令认证系统也存在一些弊端:其一,动态口令在整个从后台到手机过程中的多个阶段,都是以明文传输的,且运营商及其工作人员可有效地监听和阻断动态口令的传递,若运营商中间出现问题,即恶意监控分析银行端口下发的动态口令值,短信动态口令系统将面临极大地挑战。其二,短信口令认证系统容易遭受DOS攻击。当系统用于远程系统登录认证时,若黑客在获取到大量有效用户名的前提下,则可对远程接入系统发起登录过程的阻塞攻击,使系统失去响应并造成所有受到攻击用户的账号锁住,导致正常用户无法登录系统。 3.硬件数字证书 硬件数字证书是网上银行通常使用的U盾、网盾等类似U盘的硬件,常被称作UsbKey。它是一种存放有数字证书的具备加密、计算功能的智能卡,具有较高的安全性。每一个UsbKey都具有硬件PIN码保护,PIN码和硬件构成了用户使用UsbKey的两个必要因素实现双因子认证。 用户登录证书版网银时,要求插入USBKey并验证是否存在证书,验证成功后,服务器才正常转入到登录页面,客户输入ID+PWD验证后,客户才被允许发起业务指令,此时系统会要求客户输入PIN码,验证成功后,客户端将敏感的网银业务指令传输到UsbKey中,UsbKey先将指令进行Hash运算生成摘要h,同时用UsbKey中数字证书上的私钥s对H加密得到Es(h)。另外,客户端随机产生一个密钥k,用DES算法对Es(h)和明文m进行加密得到E(Es(h)+m),然k1后将加密后的数字签名、网上银行业务指令原文和使用服务器公钥k2加密后的E(k1)一同k2通过USB接口被提交到客户端系统,进而提交给网上银行服务器系统。网银服务器收到客户端信息后,用自己的私钥d解密E(k1),得到k1后执行以下操作k2D(E(Es(h)+m))解密得到Es(h)和明文m,最后再用用户公钥验证数字签名,防止指令中途k1k1被篡改,并确保用户身份不可抵赖。具体流程设计如图3所示。
4硬件数字证书安全分析 UsbKey采用了PKI公钥体系,并结合数据加密、数字签名、数字证书、单向散列函数等多种信息安全技术以确保网银交易的安全性。截止目前为止,Usbkey认证可以被认为是最为安全的电子交易认证手段。安全总是性对的,任何发生在互联网上的报文传送,都有可能存在风险。PIN码的静态不可变性及网银交易要素在转入Usbkey的过程不确定性都会带来一定的安全风险,主要表现在以下几点:其一,若用户没有及时拔除Usbkey,且用户已经感染具备操作Usbkey的木马如“飞鸽子”,此时风险就极具上升。因为客户键入的PIN码仅仅使用简单的键盘过滤驱动就可轻易获取,故此时黑客就可远程操控Usbkey,迫使其发生账务类交易。其二,网银交易要素在转入Usbkey的过程存在一个真空期,账务信息没有受到任何保护,若黑客能够在此真空期,截获到账务信息并恶意修改成自己的账号和金额,USBKey将毫无办法,因为对其而言全部透明。 5.小结 网银的安全性并不是不能提高,比如完全可以在PIN码上采用前面介绍的OTP技术,使用动态口令,结合E-token的动态因素以及Usbkey的消息完整性、防抵赖性等特性,建立更加坚固的网上银行系统,但安全和便捷性、成本等往往是相冲突的,安全性加固后必然带来操作上的繁琐性和成本的提高 |
上一篇:抖音火的复旦女神陈果老师
下一篇:Tencent,我的电脑你别动!
乐享资源网来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,乐享资源网一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除
投稿邮箱:1372234654@qq.com 广告位购买QQ:1372234654