J2EE 网银系统的安全系统解决方案概述
<br />基于 J2EE 网银系统的安全系统解决方案概述<br /> 董 伟, 软件工程师, IBM程 平平, 软件工程师, IBM<br /> <br />简介: 本文介绍网络银行所普遍采用的安全技术和方案,将从数据和业务逻辑的两个角度详细地分析一般网络银行系统的安全需求,并据此引入以 PPDRR 为安全模型的安全设计方案。通过阅读本文,读者不但可以了解网上银行普遍采用的安全系统架构以及相关技
基于 J2EE 网银系统的安全系统解决方案概述
简介: 本文介绍网络银行所普遍采用的安全技术和方案,将从数据和业务逻辑的两个角度详细地分析一般网络银行系统的安全需求,并据此引入以 PPDRR 为安全模型的安全设计方案。通过阅读本文,读者不但可以了解网上银行普遍采用的安全系统架构以及相关技术,而且对开发实际安全应用系统具有一定的指导意义。
随着中国加入 WTO,外国银行进入中国市场,国内银行的业务越来越多的移植到网络银行上,因此网上银行的需求日益增加。但是 Internet 的开放性特点,使网上银行面临种种风险,可以说安全性是网上银行最大的考核要素。所以一套完善的安全系统是网上银行的必备。
本文介绍国内外网上银行所普遍采用的安全技术和方案,将从数据和业务逻辑的两个角度详细地分析一般网上银行系统的安全需求,并据此引入以 PPDRR 为安全模型的安全设计方案。主要安全技术包括 SSL 数据加密、CFCA 数字证书认证、动态口令技术、基于角色的访问控制机制等。通过阅读本文,读者不但可以了解网上银行普遍采用的安全系统架构以及相关技术,而且对开发实际安全应用系统具有一定的指导意义。
安全是网上银行应用推广的基础,网上银行的安全系统是为了保证网上银行系统的数据不被非法存取或修改,保证业务处理按照银行规定的流程被执行。
网络与信息安全涉及的领域非常广泛,就安全保密技术要实现的目标来看,一般可包括以下 6 个方面,或叫做安全服务模型,即:身份认证、授权控制、审计确认、数据保密、数据完整和可用性。
为保证网上银行的网络与信息安全,银行一般采用多层次体系结构的网上银行安全系统。可以划分为:网络层、系统层和应用层三个层次。网络层的组成部件包括:物理线路、路由器、交换机、网管软件、防火墙、加密机等;系统层主要由主机、操作系统、数据库、杀毒软件等部件构成;应用层主要由 Web 服务器、应用服务器、网上银行系统软件、RA 服务器、动态密码服务器等组成。
业务逻辑安全主要是为了保护网上银行业务逻辑按照特定的规则和流程被存取及处理。
身份认证需求
在双方进行交易前,首先要能确认对方的身份要求交易双方的身份不能被假冒或伪装。同时客户端容易感染木马病毒,普通的静态密码认证已不能满足网络银行的安全需求。网银系统需要更有效的身份认证系统。
访问控制需求
访问控制是网上银行安全子系统中的核心安全策略,对关键网络、系统和数据的访问必须得到有效的控制,这就要求系统能够确认访问者的身份,谨慎授权,并对任何访问进行跟踪记录。网银系统访问控制需求体现在以下几个方面:
- 制卡和卡数据维护必须指定专门的管理人员;
- 企业用户不能访问面向个人的交易;
- 个人网银用户不能访问面向企业用户的交易;
- 批量制卡操作和制卡数据导出只能由动态密码管理的系统管理员操作;
- 柜员建立卡信息和客户信息的关联应采取授权机制。
交易重复提交控制需求
交易重复提交就是同一个交易被多次提交给网银系统。查询类的交易被重复提交将会无故占用更多的系统资源,而管理类或金融类的交易被重复提交后,后果则会严重的多。交易被重复提交可能是无意的,也有可能是蓄意的攻击。
网银安全子系统必须对管理类和金融类交易提交的次数进行控制,这种控制即要有效的杜绝用户的误操作,还不能影响用户正常情况下对某个交易的多次提交。
数据保密性需求
数据保密性要求数据只能由授权实体存取和识别,防止非授权泄露。要对敏感重要的商业信息进行加密,即使别人截获或窃取了数据,也无法识别信息的真实内容,这样就可以使商业机密信息难以被泄露。从目前国内网银应用的安全案例统计数据来看,数据保密性需求主要体现在以下几个方面:
- 客户端与网银系统交互时输入的各类密码:包括系统登录密码、转账密码、凭证查询密码等必须加密传输及存放,这些密码在网银系统中只能以密文的方式存在,其明文形式能且只能由其合法主体能够识别。
- 网银系统与其它系统进行数据交换时必须进行端对端的加解密处理。这里的数据加密主要是为了防止交易数据被银行内部人士截取利用。
数据完整性需求
数据完整性要求防止非授权实体对数据进行非法修改。交易各方能够验证收到的信息是否完整,即信息是否被人篡改过,或者在数据传输过程中是否出现信息丢失、信息重复等差错。通常网银系统中有两个地方需要对数据进行完整性检查:一是在网银用户提交交易数据签名时;另一种是网银系统与该行其它系统进行通讯时,需要检查报文的完整性。
数据可用性需求
数据可用性要求数据对于授权实体是有效、可用的,保证授权实体对数据的合法存取权利。对数据可用性最典型的攻击就是拒绝式攻击和分布式拒绝攻击,两者都是通过大量并发的恶意请求来占用系统资源,致使合法用户无法正常访问目标系统。
网银系统可用性需求体现在以下几个方面:
- 并发用户 / 并发连接。
- 同时在线人数。
- 中断允许的最大时间。
- 对系统的访问时间的要求。
数据不可伪造性需求
电子交易文件也要能做到不可修改。
数据不可抵赖性需求
在电子交易通信过程的各个环节中都必须是不可否认的,即交易一旦达成,发送方不能否认他发送的信息,接收方则不能否认他所收到的信息。
构建完善的安全系统解决方案,安全模型的选择至关重要。PDR 模型是由 ISS 公司最早提出的入侵检测的一种模型。PDR 是防护(Protection)、检测(Detection)和响应(Response)的缩写。三者构成了一个首尾相接的环,也即“防护 -> 检测 -> 响应 -> 防护”的一个循环。PDR 模型有很多变体,在银行网络中最著名的是 PPDRR 模型。增加了策略 (Policy) 和恢复 (Recovery)。PPDRR 模型是典型的、公认的安全模型。它是一种动态的、自适应的安全模型,可适应安全风险和安全需求的不断变化,提供持续的安全保障。
PPDRR 模型包括策略 (Policy)、防护 (Protection)、检测 (Detection)、响应 (Response) 和恢复 (Recovery)5 个主要部分。防护、检测、响应和恢复构成一个完整的、动态的安全循环,在 PPDRR 模型安全策略的指导下共同实现安全保障,如下图所示。
图 1. PPDRR 模型
以 PPDRR 安全模型为基础设计的网银安全系统网络拓扑图如下图所示:
图 2. 网络拓扑图
通过拓扑图可以看出,整个网络系统通过三道防火墙划分为四个逻辑区域。按由外到内的顺序部署。最外层为是 Internet 区(非授信区),为网银用户客户端接入区域;第一道防火墙和第二道防火墙之间是隔离区(DMZ),在此区域中部署 RA 服务器以及网银系统的 Web 服务器等其它第三方应用系统;第二道防火墙和第三道防火墙之间是应用区,是网银系统的应用 /DB 区,在此区域中部署网银系统的应用服务器和数据库服务器;第三道防火墙之后为银行的核心系统、中间业务平台等第三方业务系统。在隔离区和应用区的 Web 服务器,应用服务器和数据库服务器都会有相应的双机热备方案。方案的细节会在下文详细介绍。
安全策略是整个安全体系的基础。构建安全系统需要工程师来操作,这就需要建立健全的规章制度和操作规范,使保护、检测、响应和恢复环节行之有效。
一般的安全系统需要以下规章制度和操作规范:设备管理制度,机房管理制度,系统安全管理守则和明细,网络安全管理守则和明细,应用安全管理守则和明细,应急响应计划,灾难恢复计划等。
防护方案主要包括以下几个方面:
身份认证系统
网上银行应用系统中的安全防护的第一道防线是身份认证。身份认证的技术有很多,可以分为两类:软件认证和硬件认证。其中软件认证多为用户自己知道的秘密信息,譬如用户名和密码。硬件认证包括 IC 卡,基于生物学信息的身份认证,比如指纹识别,虹膜识别,面部识别等。
单纯的软件认证已不能满足网络银行系统的身份认证需求,所以网络银行多采用软硬件结合的双因子认证方式作为身份认证的辅助解决方案。其中流行的双因子认证多为动态密码:
- USB Key 认证
USB Key 内置智能卡芯片,可以存储用户的密钥或数字证书。一般的 USB Key 都以 CA 认证为核心,采用双证书(加密证书 / 签名证书)、双中心(认证中心、密钥中心)机制来做身份认证。通常还有个启动 PIN 码。提供对 USB Key 持有人的认证。这样不怕 USB Key 被别人盗用。
- 动态口令
动态口令由专有的动态令牌定时生成,一般 60 秒随机更新一次。用户每次登陆输入完静态密码后直接输入动态口令牌显示窗口显示的 6 位密码即可。
- 刮刮卡
刮刮卡是用一次性口令技术事先算出一次性口令的子集或全集,将这些口令印制在一张卡片上。刮刮卡密码本身为静态的数字,但是每次登陆网银系统的时候,系统会随机抽取一组坐标组合,由这组坐标组合对应的数字组合成动态密码。
- 动态短信
动态短信是服务器端通过通信服务商向用户的手机上发送一次性密码短信,用户也可以通过拨打相应的客服电话来获得一次性密码。对客户来说几乎没有投入成本,安全性强。
上面介绍的这四种身份认证的辅助解决方案可以在相当大的程度上杜绝目前流行的专门盗取客户的账号和密码的“盗号木马”的危害。
权限控制系统
权限控制包括网络的访问权限控制,设备的访问权限控制,服务器的远程访问权限控制(包括页面服务器、应用服务器、数据库服务器等),网银系统的权限控制。其中企业网银和后台管理系统涉及到多人在同一系统内的操作,权限控制尤其重要。
边界控制
可以在网络边界设置多重的防火墙,防止外界的非法访问。在网络拓扑图中也可以清楚的看到,多种的防火墙可以保证网银系统和银行核心系统以及其他渠道系统的通信安全。其中第一重和第二重防火墙主要是防护互联网用户的非法入侵,第三道防火墙可以防护银行内部用户非法侵入网银系统。
防病毒网关
病毒、蠕虫和木马等对网银系统安全造成极大威胁。防病毒必须软、硬件两手抓。设置防病毒网关对进入应用区的信息进行扫描,同时网银系统的程序本身也要防止 SQL 注入等应用层的安全漏洞。
传输加密
数据加密地方法有里链路层加密、网络层加密及应用层加密。其中对网银来说,应用层的加密应用比较广泛。网银客户端至服务器端的安全连接可以采用 SSL(Security Socket Layer)协议。SSL 已得到各主流浏览器内置的支持。由于标准的 SSL 协议,在采用客户端证书时,并未对用户的交易数据进行显式签名,所以一般的网银系统可通过在客户浏览器安装签名控件来完成,签名控件一方面可以完成数字签名,另一方面,通过自定义签名格式,只对需要的页面要素进行签名,去除不必要的数据被签名。
安全的操作系统
银行交易服务器需要更高级别的安全性,而服务器的安全性又极大的依赖操作系统的安全性。可以在服务器上安装的增强型安全插件,防止缓冲器溢出攻击和服务器劫持等。
安全监测方案包括以下三个方面:
入侵检测系统
入侵检测可以作为传统防火墙的辅助方案,可以根据入侵检测的结果进行防护、响应和恢复。入侵检测系统(Intrusion Detection System,简称 IDS)是采用相对应的入侵检测软件和硬件的集成。采用基于网络的入侵检测产品(NIDS)实时监控公共网络和银行网络间的通信,捕获网络入侵;采用基于主机的入侵检测产品(HIDS)监测服务器会话数据流和系统审计日志以捕获主机入侵。
状态监测系统
部署网络和主机的监控系统,监控网络和主机的运行状态,可以实时反映网银系统的性能,以及时做出相应的措施。
安全审计系统
在设置防火墙和入侵检测系统的同时,仍需要对网络银行输入输出的信息数据需要进行审查核实,防止敏感信息数据的泄露。在整个网络系统的各个单元中设置安全审计,从软硬件各方面入手发现安全漏洞,包括数据的安全与操作的安全等。
负载均衡和双机热备
网银系统的用户量大,访问和数据的流量也相应增加。所以目前的网络银行系统多会采用负载平衡策略。负载平衡的算法有多重,包括依序,比重,流量比例,自动分配等。对于应用 IBM WebSphere Application Server 作为应用服务器的网络银行系统多采用比重算法进行自动分配请求。
此处讲的双机热备多指基于高可用系统的两台服务器的热备,包括页面服务器,应用服务器和数据库服务器等。其中页面服务器和应用服务器多配置为集群,可采用双主机方式(Active-Active 方式)。数据库服务可以采用主 - 备方式(Active-Standby 方式)。
本文以 PPDRR 安全模型为基础,对网银系统的安全解决方案进行了概述。在网络银行的应用级别还有很多安全技术,譬如 JCA(Java Cryptography Architecture)、JAAS(Java Authentication and Authorization Service)、PKI 等在本文中没有做介绍。大家可以通过参考资源进一步了解这些安全技术的详细信息。
学习
- 参考百度百科 “身份认证技术”,了解身份认证技术的分类。
- 查看文章“PKI: 入门”,了解 PKI 的基础知识。
- 查看文章“J2EE 应用程序的授权概念和解决方案”,可以了解更多关于 J2EE 关于授权的知识。
- 技术书店:浏览关于这些和其他技术主题的图书。
- developerWorks Java 技术专区:数百篇关于 Java 编程各个方面的文章。
讨论
- 加入 developerWorks 社区。
- 查看 developerWorks 博客 的最新信息。
更多推荐
所有评论(0)