前言:本文是对于一般性质的网上银行系统安全性的技术分析文章,对于目前中国国内具体银行的安全性不具有评测功能,也不对任何第三方评测数据负责。以下是正文。

  网络银行是一个比较新的概念,中国的网络银行大多是对现有银行专用网的延伸和对银行传统业务方式的补充,银行增加一些软、硬件设备,使得用户可以通过家用电脑连接银行系统,进行各种普通的银行业务,以弥补传统银行业务中营业网点少和营业时间短的不足。

  中国的网上银行起步比较早的是深圳招商银行,他们开发过第一个面向最终用户的网银系统。招行的网络银行有大众版和专业版之分。随着网络的大规模普及,中国各个银行也都逐步开启自己的网银系统,有些银行的系统仅局限在账户信息查询方面,有些则包含转账付款等功能,还有的已经涉及贷款、投资等方面的内容。随着网银的普及,网银的安全性成为整个系统中最为至关重要的部分了。

  今年以来,大量的关于网上银行发生骗盗的报道不断见诸报端。不法分子通过窃取用户的卡号和密码,大量盗窃资金和冒用消费,因此虽然网银对于银行和用户都有不少好处,但是发生这些情况使得银行在推广网银面临非常巨大的风险,提高网银的安全性也是刻不容缓。

  根据一般的报道分析,不法分子窃取用户信息主要通过木马程序来进行,比如,黑客首先在用户电脑系统注入木马程序后,驻留在中招电脑系统里的监控系统就可以截取、监控系统及用户上网时打开的网银密码窗口。也就是说当用户在网银程序里输入卡号或密码时计算机就会自动将相关信息的编码发送给黑客,他们再据此进行反读取以破译,钱便被黑走了。

  目前的网银系统的主要问题是,用户安全性过于依赖用户本身的素质,对于安全观念较差的用户,其密码很容易被盗取,因此这种“信任用户”的安全模式设计是很不合理的。用户的电脑可能安装木马程序,用户的一举一动都可能被监听和窃取,安全的网银系统应该设计成为这样的:假设网银的管理员是黑客,并在最终用户电脑安装木马并且可以监听用户的一切键盘鼠标操作,网银的管理员还可以进行系统管理和操作,但是网银的管理员依旧无法通过网银系统来窃取最终用户的资金。如果能做到这一点,那么这个网银系统就算是比较安全了。

  明天,我将继续介绍,这样的网银系统安全性是如何实现,从那些方面可以保证系统的安全性,以及这样的系统存在什么样的漏洞。

前文已经提出了一个安全网上银行系统的大致描述,今天我们将论述一下如何构造这种安全的网银系统。

  要想知道什么样的网银系统是安全的,首先要知道哪些网银系统是不安全的。

  我的观点是,所有不带有身份认证令牌硬件设备的网银系统都是不安全的

  这些系统包括各种“大众版”网银,以及一些所谓的数字证书“专业版”,因为他们从本质上来讲,所有的运行代码都是在电脑内存中运行的,用户所有的操作都有可能被木马所截获。理论上讲,黑客完全可以伪造用户进行系统登录。只有脱离用户的电脑系统,使用独立的身份认证硬件设备,才能构造出安全的网银系统。

  目前有两种流行的身份认证硬件产品可以实现较为安全的网银系统登录。

  第一种身份认证产品名叫“动态密码锁”。

  动态密码(Dynamic Password)也称一次性密码,它指用户的密码按照时间或使用次数不断动态变化,每个密码只使用一次。动态密码采用一种称之为动态令牌的专用硬件,内置电源、密码生成芯片和显示屏。下图是这种产品的外观,其中数字键用于输入用户PIN码,显示屏用于显示一次性密码。每次输入正确的PIN码,都可以得到一个当前可用的一次性动态密码。

  这种产品的密码生成芯片运行专门的密码算法,根据当前时间以及使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要密码验证通过,系统就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份,因为下一次登录必须使用另外一个动态密码。

  动态密码锁系统需要两个密码要素,一个要素是静态PIN码,由用户自行设置、保管。另一个要素是动态密码,由密码令牌动态生成,不可预测,并且与后台服务器的接入控制保持同步,由后台服务器进行检验。因此,用户必需输入正确的静态PIN码和动态密码,才能通过身份认证。

  动态密码锁本身需要输入PIN码才能使用,静态PIN码的安全要素在于,这个PIN码不是在电脑上输入的,而是在密码锁上输入的,这样,所有的黑客木马程序从理论上讲都全部失效,因为这些木马根本不可能在另外一个硬件密码锁上运行。

  黑客要想破解用户密码,首先要从物理上获得用户的动态密码锁,其次还要获得用户的PIN码,这样,黑客必须潜入用户家中(电脑黑客还需要学习普通窃贼的技术),偷取了动态密码锁,然后再破解PIN码。没有用户PIN码依旧无法使用,而通常情况下动态密码锁本身具有一定安全保护功能,录入PIN码错误10 次就会自动锁死而无法使用。这也保证了动态密码锁物理上的安全性。

  动态密码技术可以完美解决客户端用户的安全性问题,因为黑客无论使用什么方法,也无法方便的窃取用户的密码,即使黑客窃取了一次密码也无法登录使用。

  从技术上将,动态密码技术是比较完美的方案,然而可惜的是,动态密码锁的成本过高,大部分成本都高于100元,不太利于大规模使用。中国目前有一些银行图便宜,使用一种文字卡片类型的所谓的“动态密码卡”,也是用来实现较为原始的动态密码技术。实际上,这种低成本的卡片具有的缺陷是非常明显的,卡片内容极易被复制,且没有保护PIN码,别人偷盗或者复制这张卡片即可冒名登录,其安全性远不及真正的动态密码锁身份认证系统。

  虽然动态密码锁的安全性的确不错,然而,动态密码技术也有一个安全隐患,就是服务器端的安全性。动态密码的本质是单钥加密,密钥只有一个。在服务器端的认证系统里,可以计算出所有动态密码,因此黑客如果将精力放在破解银行认证服务器系统,那么还是有可能对银行系统造成一定安全威胁,另外这个系统也依赖于网银的管理员,网银的管理员可以在服务器端修改动态密码锁的规则,也具有一定的安全隐患。

  下一回,我们将介绍另外一种低成本的身份认证硬件产品,可以通过双钥加密的技术实现安全的认证,并可以弥补动态密码锁的某些安全性的隐患。

前文已经提到一种身份认证产品名叫“动态密码锁”,今天我们将介绍另外一种广泛应用的身份认证产品:USB Key。

  和单钥的动态密码锁不同的是,USB Key采用双钥(公钥)加密的认证模式,USB Key是一种USB接口的硬件设备,外形如下图所示。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。

  USB Key产品最早是由加密锁厂商提出来的,原先的USB加密锁主要用于防止软件破解和复制,保护软件不被盗版,而USB Key的目的不同,USB Key主要用于网络认证,锁内主要保存数字证书和用户私钥。

  USB Key的硬件和PIN码构成了可以使用证书的两个必要因素。如果用户PIN码被泄漏,只要USB Key本身不被盗用即安全。黑客如果想要通过破解加密狗的方法破解USB Key,那么需要先偷到用户USB Key的物理硬件,没有哪个用户会愚蠢到将自己的Key拱手奉献给黑客。

  USB Key的一个最重要的优点就是成本低廉。一些单片机芯片USB Key的成本可以低于10元,很利于大规模普及应用,不过单片机芯片USB Key虽然成本低廉,但是芯片容易被黑客硬件复制。而智能卡芯片的USB Key就不容易被硬件复制,不过带来的是较高的成本,一般智能卡芯片的USB Key的价格都要高于30元。

  USB Key目前在网上银行应用十分广泛,大家看到一些银行的U盾、优KEY等都是这种产品,不过奇怪的是,这些产品的收费似乎要高于其实际价格。

  USB Key的使用方法是,当登录网银系统的时候,在电脑上插入USB Key,然后输入PIN码,如果验证通过,则可以进行相关交易。这种加密方式使用了双钥加密,私钥安全地保存在Key中,在网络应用的环境下,可以更安全,弥补了动态密码锁单钥加密的一些缺陷。

  然而可惜的是,USB Key虽然在一些地方优于动态密码技术,但是实际使用中却有一些动态密码所没有的安全性问题,这个安全问题主要在于客户端而不是服务器,由于PIN码是在用户电脑上输入的,因此黑客依然可以通过程序截获用户PIN码,如果用户不及时取走USB Key,那么黑客可以通过截获的PIN码来取得虚假认证,仍然存在安全隐患。而动态密码锁使用随机的一次性密码,不存在这样的问题。

  解决方法有几种,一种是改造现有的USB Key,增加输入键,使其PIN码可以在USB Key上输入,这样就不会被电脑上的木马拦截。

  还有一种更理想的安全模式,是将这两种加密方式结合在一起,USB Key的PIN码使用动态密码生成,这样两种加密锁结合在一起,服务器端和客户端的安全性就都得到了保障。黑客截取的PIN码是一次性的,而网银管理员无法获得USB Key的用户密码进行身份验证。这样的网银,其安全性就比较高了。

  然而目前实施这种方案的问题也是明显的:成本。每个加密锁都需要几十元的成本,两个锁的总共成本就可能超过一百元,大规模使用的话,这个成本由银行出肯定不可能,用户自己也未必愿意出这样的成本,因此这种方案真正实施起来,还是不太现实的。

  总而言之,对于当前中国网上银行系统,加强网银用户的身份认证管理,防止用户资料的泄露,是消除网上银行安全隐患的有效措施。如果没有完善的双向身份认证机制,那么这个网上银行的安全性就是没有任何保障的。当前世界上绝大部分银行的网上银行系统都是基于公开密钥体系(PKI)和数字证书建立起来的。

  目前我所提到的动态密码锁和USB Key都是不错的安全产品,但是如果要基于PKI体系的话,使用USB Key更容易搭建遵循PKI标准的密钥管理平台,这也是USB Key应用更为广泛的原因之一。

中国网上银行系统安全性分析(转)相关推荐

  1. 中国网上银行系统安全性分析

    网络银行是一个比较新的概念,中国的网络银行大多是对现有银行专用网的延伸和对银行传统业务方式的补充,银行增加一些软.硬件设备,使得用户可以通过家用电脑连接银行系统,进行各种普通的银行业务,以弥补传统银行 ...

  2. 全球及中国网上银行市场监管模式及建设前景规模咨询报告2021-2027年

    全球及中国网上银行市场监管模式及建设前景规模咨询报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年10 ...

  3. 网上银行系统信息安全通用规范【学习笔记】

    0x00 背景 中华人民共和国金融行业标准JR/T 0068-2020 网上银行系统信息安全通用规范是2019年10月份推出代替 JR/T 0068-2012,在2020年2月5日开展实施执行,作为一 ...

  4. 【工控协议专题01】Modbus协议原理与安全性分析

    目录 O.术语 一.背景: 二.协议原理 三.传输方式 四.Modbus RTU 和Modbus ASCII有什么区别? 五.MODBUS TCP 注意点 六.功能码作用 七.Modbus 协议安全性 ...

  5. DELL销售模式以及其安全性分析

    DELL销售模式以及其安全性分析 作者:姜卓(山东科技大学信息学院计算机系07-2班) 摘要:随着中国经济的发展,越来越多的外国企业看准了中国这个巨大的市场,纷纷进入中国,同时给中国带来了许多从前没有 ...

  6. 探究2020版《网上银行系统信息安全通用规范》的新变化

    本文原文是 作者haiczh与2020-03-05发布于freebuf平台上的文章 本人基于等级保护工作的角度对文章加以评论并转正于此 如有同行或对此规范有高度认识的朋友可指出我的错误指出或提出建议  ...

  7. Spring 获取 request 的几种方法及其线程安全性分析

    转载自  Spring 获取 request 的几种方法及其线程安全性分析 本文将介绍在Spring MVC开发的Web系统中,获取request对象的几种方法,并讨论其线程安全性. 一.概述 在使用 ...

  8. Spring 中获取 request 的几种方法,及其线程安全性分析

    概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...

  9. Tableau和BDP,哪个才是最适合中国用户的可视化分析工具?

    本人数据分析师一枚,除了工作所需,自己对数据分析.数据可视化的产品工具都比较感兴趣,喜欢混迹于各种数据论坛,也发现和使用了不少数据工具,也积累了很多亲身经历.这两年数据可视化在国内越来越受到关注,今天 ...

最新文章

  1. Charles抓包实战详解
  2. Centos6.4安装ipython
  3. PO、BO、VO、DTO、POJO、DAO的区别
  4. java 计算 日期_java 计算某日期 多少天后的日期
  5. asp.net core 系列 6 MVC框架路由(下)
  6. Protobuf c++使用小坑(set_allocated函数)
  7. 格力手机没有放弃!将跟上5G和柔性屏的大势
  8. SpringCloud工作笔记056---mysql自增序列管理表_自增序列函数创建
  9. java linkedlist 更新_Java填坑系列之LinkedList
  10. sas中一些小的选项的含义
  11. java基本类型有缓冲区类型的有_Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类...
  12. 计算机系统概述-为什么要学习计算机系统基础
  13. 稻米之缘农耕稻作文化 国稻种芯-万祥军:影响中国历史走向?
  14. python 函数嵌套定义平行哪个好定义_在Python中,不能在一个函数的定义中再定义一个嵌套函数。...
  15. 如何在小方框上打对号 小方框内打对勾 word 方框打对勾
  16. Luat 功能开发教程(十八) 阿里云
  17. 内存条是不是计算机主机配置,玩吃鸡电脑要什么配置 主要是CPU,显卡和内存条...
  18. 网络知识基础篇(网络分层和IP地址)
  19. 【alibaba cloud】在macM1上用docker部署nacos集群
  20. 二叉树的五种遍历方式

热门文章

  1. win10 u盘 修复计算机,win10系统修复u盘制作
  2. 猛犸机器学习开发实践
  3. 姑苏城外寒山寺,夜半钟声到客船
  4. TUSB3410驱动
  5. 和君商学院推荐读书单——第一章 | 热身序曲:悦读21本
  6. 自攻螺丝与塑件底孔规格表
  7. 【演讲篇】——人生就像一场直播
  8. 违章查询源码 php,全国车辆违章查询数据使用(PHP)
  9. 分析肖特基二极管产品属性及作用
  10. 用java程序连接虚拟机中的SequoiaDB-Mysql实例