期货交易自动化论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 44|回复: 0

有关网银安全登录的跨平台方案讨论 - 金融行业 - ITPUB论坛-专业的IT技术社区

[复制链接] |主动推送

285万

主题

285万

帖子

855万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8553710
发表于 2022-9-11 09:37:27 | 显示全部楼层 |阅读模式
最近我使用了多家的网上银行的时候,发现多家银行在跨平台的使用上,实现还是不够完美,特别是linux下的ff网银的麻烦使用。因此才在此抛砖引玉,希望各位达人不要bs小弟,嘿嘿!
一、登陆面临的安全攻击
    1. 键盘记录
   
   键盘记录应该是目前最流行的盗取密码的方法了,攻击者在系统中使用全局键盘钩子,记录用户的按键操作,并根据用户窗口的标题来确定是不是自己需要盗取的东西。
    2. 系统消息
   用户在浏览器中敲完了密码之后,攻击者的程序给浏览器发送消息,要求取得密码输入框的值,随后保存并记录下来。在windows2000以后的系统中,做了一点改进,但是创建了远程线程之后就依旧可以了。
    3. 传输捕获

   攻击者在网络中劫持或者嗅探传输数据,直接获取明文密码。虽然现在https使用较多,但是https速度较慢,影响服务器速度,而且也存在比较严重的一些安全缺陷,并不是一种非常可靠的办法。如果要了解更多可以参考《如何进行https中间人攻击》,此文详述了https的捕获方式。
二、目前的解决方法及缺陷
   1. 当前国内的解决方案

      国内目前的解决方案是ActiveX控件加https的方式。使用ActiveX控件来保护输入不被键盘记录和伪造的系统消息获取,https 来保证传输的隐秘性和完整性。招行,民生银行的登陆大致都是这样的模式,因此国内某些ff用户比较不满。由于各家银行的网银不一致,在此也不一一列举。(主要是我了解得比较少,望各位大侠指点)
   2. 缺陷
      我主要是针对ActiveX控件的缺陷进行一下讨论。ActiveX 的缺陷很明显,首先只支持windows系统和IE浏览器;其次本身容易出现安全问题,造成溢出等攻击;最后,对于更底层的挂接I/O驱动的攻击比较为难,当然ActiveX也可以调用自己的驱动,但是成本太高了。https 的缺陷就不说了,很容易就可以伪造证书劫持传输,虽然会提示证书警告,但是有多少用户会在意了?而且国内不少银行自己的证书本来就会有安全警告提示。
三. 跨平台的解决方案
    1. 解决方案
     我这里的方案是一个思路,不局限于语言。如果不想跨平台你可以使用ActiveX实现,如果需要跨平台可以使用java applet实现,甚至还可以使用flash来实现。利用的方法主要是随机键位的软键盘以及RSA非对成加密。RSA也是一个很有意思的东西,可以看看《RSA非对称加密的一些非常规应用》。
   目前常见的登陆都是html等语言作的,然后调用ActiveX控件或者java applet来输入密码。其实,最好的解决方案是直接使用java applet作一个form,用来接受用户名和密码,做出相应的处理后再登陆。
   首先,在服务器端生成一对2048位的RSA密钥,私钥保存好,公钥则发布到网上,让客户端可以通过类似http://www.test.com/login/publickey.txt的域名来进行访问。
   其次,在客户端用java applet作一个form来等待用户输入。用户名常规方法输入,而密码框得到焦点时,弹出虚拟键盘。键盘每个键的位置随机出现,防止别人记录。而在 java applet中,有一个变量real_pass,在用户点了一个键,比如说是点了a的时候,real_pass += 'a',同时在密码输入框中随机输入一个字符,直到用户密码输入完成。这个时候,真实的密码记录在real_pass变量中,而密码输入框中是一个伪造的密码。
   再次,用户点击提交按钮的时候,客户端从服务端获取RSA公钥,对real_pass进行RSA非对称加密,然后提交到服务端等待认证。
    2. 优势
     最明显的优势是使用了java applet来进行客户端操作,而java是可以跨平台,跨浏览器的。因此firefox用户,linux用户都可以成功的使用。其次,java是一种安全的语言,不会存在ActiveX自身容易出现的缓冲区溢出等安全问题。

    3. 缺陷
     使用java applet的缺陷主要有三点:第一,jre过于庞大,而且还没有普及到所有的用户当中;第二,jre也出现过一些溢出类的安全漏洞,因为jre本身是使用c写的;第三,java applet的运行速度不如ActiveX快。当然,可以使用ActiveX技术实现同样的思路,只是那样就不能跨平台了,违背了设计的初衷。
以上只是小弟的一些简单考虑,还希望各位大侠们指点一下。
部分内容参考www.xfocus.net
原帖由 abc3008 于 2008-1-13 12:00 发表

用新技术啊! 网络虚拟化.
详细讲讲听.
其实我这里谈谈的是网上银行跨品台的一个应用,哈哈,
不管是那种认证方式,安全是最重要,然后方便其次。。
总之能在安全+方便之间找入一个切入点就好了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|期货交易自动化论坛

GMT+8, 2025-9-12 01:46 , Processed in 0.082868 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表