程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基於J2EE網銀系統的安全系統解決方案概述

基於J2EE網銀系統的安全系統解決方案概述

編輯:關於JAVA

簡介:本文介紹網絡銀行所普遍采用的安全技術和方案,將從數據和業務邏輯的兩個角度詳細地分析一般網絡銀行系統的安全需求,並據此引入以 PPDRR 為安全模型的安全設計方案。通過閱讀本文,讀者不但可以了解網上銀行普遍采用的安全系統架構以及相關技術,而且對開發實際安全應用系統具有一定的指導意義。

摘要

隨著中國加入 WTO,外國銀行進入中國市場,國內銀行的業務越來越多的移植到網絡銀行上,因此網上銀行的需求日益增加。但是 Internet 的開放性特點,使網上銀行面臨種種風險,可以說安全性是網上銀行最大的考核要素。所以一套完善的安全系統是網上銀行的必備。

本文介紹國內外網上銀行所普遍采用的安全技術和方案,將從數據和業務邏輯的兩個角度詳細地分析一般網上銀行系統的安全需求,並據此引入以 PPDRR 為安全模型的安全設計方案。主要安全技術包括 SSL 數據加密、CFCA 數字證書認證、動態口令技術、基於角色的訪問控制機制等。通過閱讀本文,讀者不但可以了解網上銀行普遍采用的安全系統架構以及相關技術,而且對開發實際安全應用系統具有一定的指導意義。

網上銀行的安全系統概述

背景

安全是網上銀行應用推廣的基礎,網上銀行的安全系統是為了保證網上銀行系統的數據不被非法存取或修改,保證業務處理按照銀行規定的流程被執行。

網絡與信息安全涉及的領域非常廣泛,就安全保密技術要實現的目標來看,一般可包括以下 6 個方面,或叫做安全服務模型,即:身份認證、授權控制、審計確認、數據保密、數據完整和可用性。

為保證網上銀行的網絡與信息安全,銀行一般采用多層次體系結構的網上銀行安全系統。可以劃分為:網絡層、系統層和應用層三個層次。網絡層的組成部件包括:物理線路、路由器、交換機、網管軟件、防火牆、加密機等;系統層主要由主機、操作系統、數據庫、殺毒軟件等部件構成;應用層主要由 Web 服務器、應用服務器、網上銀行系統軟件、RA 服務器、動態密碼服務器等組成。

業務邏輯安全需求

業務邏輯安全主要是為了保護網上銀行業務邏輯按照特定的規則和流程被存取及處理。

身份認證需求

在雙方進行交易前,首先要能確認對方的身份要求交易雙方的身份不能被假冒或偽裝。同時客戶端容易感染木馬病毒,普通的靜態密碼認證已不能滿足網絡銀行的安全需求。網銀系統需要更有效的身份認證系統。

訪問控制需求

訪問控制是網上銀行安全子系統中的核心安全策略,對關鍵網絡、系統和數據的訪問必須得到有效的控制,這就要求系統能夠確認訪問者的身份,謹慎授權,並對任何訪問進行跟蹤記錄。網銀系統訪問控制需求體現在以下幾個方面:

制卡和卡數據維護必須指定專門的管理人員;

企業用戶不能訪問面向個人的交易;

個人網銀用戶不能訪問面向企業用戶的交易;

批量制卡操作和制卡數據導出只能由動態密碼管理的系統管理員操作;

櫃員建立卡信息和客戶信息的關聯應采取授權機制。

交易重復提交控制需求

交易重復提交就是同一個交易被多次提交給網銀系統。查詢類的交易被重復提交將會無故占用更多的系統資源,而管理類或金融類的交易被重復提交後,後果則會嚴重的多。交易被重復提交可能是無意的,也有可能是蓄意的攻擊。

網銀安全子系統必須對管理類和金融類交易提交的次數進行控制,這種控制即要有效的杜絕用戶的誤操作,還不能影響用戶正常情況下對某個交易的多次提交。

數據安全需求

數據保密性需求

數據保密性要求數據只能由授權實體存取和識別,防止非授權洩露。要對敏感重要的商業信息進行加密,即使別人截獲或竊取了數據,也無法識別信息的真實內容,這樣就可以使商業機密信息難以被洩露。從目前國內網銀應用的安全案例統計數據來看,數據保密性需求主要體現在以下幾個方面:

客戶端與網銀系統交互時輸入的各類密碼:包括系統登錄密碼、轉賬密碼、憑證查詢密碼等必須加密傳輸及存放,這些密碼在網銀系統中只能以密文的方式存在,其明文形式能且只能由其合法主體能夠識別。

網銀系統與其它系統進行數據交換時必須進行端對端的加解密處理。這裡的數據加密主要是為了防止交易數據被銀行內部人士截取利用。

數據完整性需求

數據完整性要求防止非授權實體對數據進行非法修改。交易各方能夠驗證收到的信息是否完整,即信息是否被人篡改過,或者在數據傳輸過程中是否出現信息丟失、信息重復等差錯。通常網銀系統中有兩個地方需要對數據進行完整性檢查:一是在網銀用戶提交交易數據簽名時;另一種是網銀系統與該行其它系統進行通訊時,需要檢查報文的完整性。

數據可用性需求

數據可用性要求數據對於授權實體是有效、可用的,保證授權實體對數據的合法存取權利。對數據可用性最典型的攻擊就是拒絕式攻擊和分布式拒絕攻擊,兩者都是通過大量並發的惡意請求來占用系統資源,致使合法用戶無法正常訪問目標系統。

網銀系統可用性需求體現在以下幾個方面:

並發用戶 / 並發連接。

同時在線人數。

中斷允許的最大時間。

對系統的訪問時間的要求。

數據不可偽造性需求

電子交易文件也要能做到不可修改。

數據不可抵賴性需求

在電子交易通信過程的各個環節中都必須是不可否認的,即交易一旦達成,發送方不能否認他發送的信息,接收方則不能否認他所收到的信息。

安全系統架構

PPDRR 安全模型

構建完善的安全系統解決方案,安全模型的選擇至關重要。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 等在本文中沒有做介紹。大家可以通過參考資源進一步了解這些安全技術的詳細信息。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved