写点什么

关注网银系统:安全模型和架构设计

  • 2010-05-18
  • 本文字数:2870 字

    阅读完需:约 9 分钟

随着网络的普及和金融业务的不断扩展,网上银行已经逐渐成为人们日常理财工具之一。由于互联网的开放性,安全性成为网银系统设计和实施的重要挑战。根据一份国内媒体的调查结果统计,超过九成的网民有意尝试网银业务,但是超过一半的受访者担心安全性问题。而在国外,根据美国互联网犯罪投诉中心报告,2009 年美国银行客户因网上账号被盗而遭受的经济损失高达5.59 亿美元。网银系统安全的重要性可见一斑,相关的软件开发人员也面临巨大的挑战。

IBM 的工程师董伟、程平平最近撰文(下文称“文章”)简要描述了网上银行普遍采用的安全系统架构以及相关技术,为关注金融领域的开发人员提供了参考。

文章首先对网银系统的安全需求作了分析,提出了业务逻辑和数据两方面的考量:

  • 业务逻辑安全需求
    • 身份认证需求
    • 访问控制需求
    • 交易重复提交控制需求
  • 数据安全需求
    • 数据保密性需求
    • 数据完整性需求
    • 数据可用性需求
    • 数据不可伪造性需求
    • 数据不可抵赖性需求

这里要特别强调与银行客户利益密切相关并为大众熟知的数据保密性需求:

  1. 客户端与网银系统交互时输入的各类密码:包括系统登录密码、转账密码、凭证查询密码等必须加密传输及存放,这些密码在网银系统中只能以密文的方式存在,其明文形式能且只能由其合法主体能够识别。
  2. 网银系统与其它系统进行数据交换时必须进行端对端的加解密处理。这里的数据加密主要是为了防止交易数据被银行内部人士截取利用。

在分析安全性需求的基础上,文章引入了目前网上银行最为著名的安全系统架构模型——PPDRR 模型,即策略 (Policy)、防护 (Protection)、检测 (Detection)、响应 (Response) 和恢复 (Recovery),并认为这是“一种动态的、自适应的安全模型,可适应安全风险和安全需求的不断变化,提供持续的安全保障“。基于 PPDRR 模型的网络拓扑如图 1 所示:

图 1 网银系统拓扑图 (来源:developerWorks)

关于拓扑结构,文章指出了几个关键点:

  • 整个网络系统通过三道防火墙划分为四个逻辑区域。
  • 最外层为是 Internet 区(非授信区),为网银用户客户端接入区域。
  • 第一道防火墙和第二道防火墙之间是隔离区(DMZ),在此区域中部署 RA 服务器以及网银系统的 Web 服务器等其它第三方应用系统。
  • 第二道防火墙和第三道防火墙之间是应用区,是网银系统的应用 /DB 区,在此区域中部署网银系统的应用服务器和数据库服务器。
  • 第三道防火墙之后为银行的核心系统、中间业务平台等第三方业务系统。
  • 在隔离区和应用区的 Web 服务器,应用服务器和数据库服务器都会有相应的双机热备方案。

对于目前流行的专门盗取客户的账号和密码的盗号木马,文章指出“单纯的软件认证已不能满足网络银行系统的身份认证需求,所以网络银行多采用软硬件结合的双因子认证方式作为身份认证的辅助解决方案”,其中包括:

  • USB Key 认证
  • 动态口令
  • 刮刮卡
  • 动态短信

网银系统的设计和实现过程中,安全性一直是架构师和开发人员最关注的因素之一,文章概述了一种目前广泛采用的安全模型,具有参考和借鉴意义。 InfoQ 将继续关注和报道相关领域的最新发展,也欢迎读者朋友分享经验和提供反馈。

在本文发表不久,多位热心的读者通过各种形式进行了反馈,特别是来自梁江通信的狄卫华先生基于对网银系统的理解,表达了自己的看法:

当前对于网络安全保障的主要手段就是使用安全的协议 SSL/TLS。SSL/TLS 协议结合数字证书基本上保障了网银系统用户的安全性,包括数据的私密性,完整性和不可否认性,但是 SL/TLS 协议结合数字证书也不是万能钥匙,在用户使用过程中的种种疏忽或者网银系统设计本身存在的种种安全隐患都可成为黑客攻破的大门。网银系统直接牵扯到用户资金的安全,因此网银系统使用安全也逐渐成为广大用户关注的热点,尤其是在当前电子商务开始盛行的时代。

网银系统的安全性一般分为服务端和客户端两个方面。服务端的安全包括用户数据库私密信息,服务器数字证书等安全性的保证,是网银系统安全的基石;客户端安全主要是对使用网银系统用户在使用过程中存在的种种问题提供的保护措施。

服务器端的安全决定着整个网银系统的安全性,用户私密信息数据库、服务器数字证书、用户的私人证书等一切敏感信息都部署在服务器端。服务器端安全又包括物理安全和软件安全。物理安全包括对于应用服务器硬件安全性的保障。软件安全包括部署服务器的操作系统、网银系统等方面的安全性。此处主要谈论服务器软件方面的安全,大体内容概括如下:

网银系统服务端安全性保障

(1) 相关的服务器所处局域网和操作系统层次的安全是最基本的保障,包括检测系统漏洞,扫描 Intranet 安全,及时打补丁等措施。

(2) 保证服务器端数据和用户数据的安全性和私密性,特别是服务器数字证书、个人数字证书的安全性;保证用户敏感数据账号、密码等即使在服务器被攻破的情况下,也需要在一定程度上保证获取者不能直接或者完全获取用户敏感信息,包括对敏感信息使用摘要算法 MD5,SHA-1 等。

(3) 网银系统软件架构健壮性和安全性保障。服务器端网银软件安全性必须包括应对重试攻击、重放攻击、堆溢出、拒绝服务攻击(DOS),分布式拒绝服务攻击(DDOS)、SQL 注入等常见的各种攻击的保护措施;另外也包括通过双机热备等措施提供的高可用性、高可靠性等。

(4) 网银系统软件用于交换密钥或者生成验证码的随机数的随机性,验证图片的加入干扰因素的强度。

网银用户安全性保障

目前网银系统的主要安全隐患在于诸多使用者的安全意识薄弱,对网络使用安全了解甚少,也是网银系统存在的最大安全隐患。因此在网银系统的设计上应最大程度上减轻甚至避免由于用户安全意识薄弱等方面带来的安全隐患。当前大多数的网银系统也正在逐步通过系统的完善性来保障用户端使用的安全性。

(1)保证用户登陆过程中密钥的安全性。网银用户的客户端基本上都是 Web 浏览器,诸多的网银系统都采取了开发自己的安全控件加强用户的输入个人敏感信息的保护,但是安全控件的安全性设计及其数字签名也存在诸多的隐患,攻击者可能会使用类似的安全控件达到混淆的目的。某些网银系统的大众版也提供初级安全,使用图片让用户点击输入的方式防范密码窃取工具。当然最好的解决办法还是提供针对性的登陆软件,但是无形之间复杂了用户的使用。

(2)使用验证码保护用户密码的软件攻击。使用随机高强度的验证码图片用于用户单次登陆的凭证,防止攻击者使用软件自动进行频繁重试破解密码或者使用用户登陆后的信息重放攻击服务器。另对于可能由于疏忽忘记退出登陆提供时限的保护,超过时限自动退出。

(3)使用多因子认证方案。提供除了用户登陆密码以外的其他信息作为辅助密码:1)个人信息校验,登陆过程总验证用户的个人信息如身份证号码;2)申请个人数字证书,下载成功后保存于用户登陆机器中,保存的数字证书使用密码保护,提供一定的安全保障;3)使用物理介质保存个人数字证书,保证个人证书和机器分离,例如 USB Key 保存数字证书,用户登陆时提供保存数字证书 USB Key,USB Key 还可以使用 PIN 码来保护;4)提供附件的动态的密码,每次登陆密钥进行重新提供,密码的有效性仅为此次登陆,常见的有动态口令,刮刮卡,动态短信等。

感谢各位读者朋友对本文的关注和意见,希望大家继续关注 InfoQ!

2010-05-18 21:428493
用户头像

发布了 501 篇内容, 共 257.5 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

已经说过千万遍了!!面试官,一线互联网大厂中高级Android面试真题收录

android 程序员 移动开发

建造者模式,2021最新网易Android面经

android 程序员 移动开发

您有一份AndroidX升级指南未领取(1),2021年不想被公司优化

android 程序员 移动开发

想做直播的你,这些热门的音视频如何绝对同步的。你get了嘛

android 程序员 移动开发

带你一起探究Android事件分发机制,-让面试提问不在畏惧!

android 程序员 移动开发

应聘腾讯,面试官和我聊了一个小时的人生,flutterrow换行

android 程序员 移动开发

想掌握Android面试官必问的 Binder 机制?那别想绕开 Binder 驱动源码分析!

android 程序员 移动开发

年终总结攻略|3个步骤,让老板给你的工作汇报点赞,2021Android精选面试实战总结整理

android 程序员 移动开发

张一鸣:“如果是你偶然发现青霉素能消炎,android组件化开发视频

android 程序员 移动开发

当你面试的时候,被问到关于Fragment的种种,Android开发教程

android 程序员 移动开发

征服面试官系列: Binder 核心机制和进程间通信,你都理解了吗

android 程序员 移动开发

您有一份AndroidX升级指南未领取,androidsdk环境配置

android 程序员 移动开发

想进BAT一线互联网大厂,该怎么准备技术面试?一位6年老Android的面经总结

android 程序员 移动开发

巧用Android网络通信技术,在网络上直接传输对象,android设计模式总结

android 程序员 移动开发

干货来袭-通过这份Android-中高级架构师教学资料(全套)在公司大裁员下

android 程序员 移动开发

底层学习---Android-IPC机制(二)序列化机制,张口就来

android 程序员 移动开发

彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想(1)

android 程序员 移动开发

征服Android面试官路漫漫(三),Android岗面试

android 程序员 移动开发

年后想跳槽涨薪?你想要的面试题全在这里,activity事件分发

android 程序员 移动开发

总包不足80w的高龄Android程序员,被面试官diss混得太差,网友狂吐槽

android 程序员 移动开发

想搞懂Jetpack架构可以不搞懂生命周期知识吗?,阿里P8架构师

android 程序员 移动开发

当面试官问到Binder这些问题,你会怎么答?,android面试及答案

android 程序员 移动开发

悬浮窗的一种实现 _ Android悬浮窗Window应用,移动互联网开发技术专业

android 程序员 移动开发

想进阶高级架构师,你需要养成这10个习惯!,flutter小程序的onshow

android 程序员 移动开发

已拿字节、腾讯、墨墨 offer,【面试总结

android 程序员 移动开发

底层图像处理之微信32Kb图片压缩方案-(二),android双击事件响应

android 程序员 移动开发

情场失意,事业得意—,腾讯T2大牛亲自教你

android 程序员 移动开发

当你面试的时候,被问到关于Fragment的种种(1),华为移动应用开发平台

android 移动开发

微信小程序之商品属性分类-——-微信小程序实战商城系列

android 程序员 移动开发

微信小程序开发-Flex布局,flutter二维码识别

android 程序员 移动开发

微信自研 APM 利器,Matrix 正式开源了,2021Android大厂面试知识分享

android 程序员 移动开发

关注网银系统:安全模型和架构设计_Java_崔康_InfoQ精选文章