摘要:為了提高網上銀行用戶的安全級別和密碼的破解難度,近幾年,在不斷提高加密解密技術的同時也相繼推出了驗證碼、證書系統、口令卡等措施,現在提高網上銀行安全系統的主要手段是采用字符串形式存儲的靜態密碼和一次一碼的動態驗證碼的雙匹配模式,但不法分子仍然可以通過木馬病毒、虛假網站、移動技術、黑客攻擊等手段竊取用戶的靜態密碼和動態驗證碼。為了從根本上解決網上銀行的安全問題,提出了一種全新的函數密碼的設計技術,該技術是以函數形式存儲的密碼公式結合一次一碼的動態驗證碼以及字符串形式存儲的靜態信息生成一次一密的單匹配模式。
關鍵詞:動態密碼;函數密碼;網上銀行
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)33-9574-02
The Design and Realization about Function Password of Online Bank
YANG Mao-bao
(School of Information Science Technology, Jiujiang University,Jiujiang 332005,China)
Abstract: In order to improve the security level and difficulty of password, authentication, certificate system and password card appear with the improvement of code technology in recent years. Now the main means to improve security system of online bank is to introduce combine static password in the form of character string with disposable dynamic verification code, but criminals can filch the static password and dynamic verification code by Trojan virus, 1 website, mobile technology and the attack of hackers. In order to resolve the security problem of online bank fundamentally, the design technology of a new function password is brought forward, the technology is the single matching pattern of disposable password which combine code formula with the memory in the form of function with disposable dynamic verification code and static information with the memory in the form of character string.
Key words: dynamic password; function password; internet banking
以互聯網作為主要業務渠道和服務載體的網上銀行和傳統銀行相比,具有快捷便利,即時性強,互動性強等優點。通過網上銀行提供的便利服務,一方面延長了銀行的服務時間,擴大了銀行的服務范圍,為銀行擴展中間業務提供一種方便、快捷、安全的運營模式;另一方面可以幫助銀行降低交易成本和運營成本,減輕員工勞動強度,提高運營效率。網上銀行成為繼ATM、互聯網、POS之后銀行開展業務的強有力工具,從而增加移動運營商的收入,讓消費者及相關公司都能受惠。但是,網上銀行的安全性一直是關注重點,網銀的安全性能仍然是他們選擇網銀時最看重的因素,“病毒攻擊”、“黑客入侵”等問題讓部分人對其望而卻步,嚴重制約了對網上銀行的發展。文中打破以字符序列作為密碼的常規,介紹一種以函數作為密碼,使得每次輸入的密碼僅能一次有效,實現一次一密碼。
1 網上銀行的常見攻擊方式
網上銀行交易基本模型如圖1所示。
網上銀行安全問題主要集中在客戶端和Internet公共信道傳輸部分,具體攻擊形式包括以下幾個方面:
1) 攻擊客戶電腦系統漏洞,利用特洛伊木馬程序、病毒以及蠕蟲等獲取用戶的賬戶信息及認證密碼;特洛伊木馬程序假裝具有一系列有用特性,實際上卻執行非授權的破壞功能,其提供一項通用的技術,把包括邏輯炸彈、病毒和蠕蟲在內的其他類型的攻擊秘密引入系統。
2) 利用遠程暴力字典式破解用戶簡單的數字密碼。
3) 數據通信竊聽,是一種能在網絡上捕獲攻擊者想要進入的系統的用戶名和密碼信息。
4) 數據包重發,是對網絡上的數據包進行記錄,然后再重新傳輸。它對要求認證序列的程序威脅最大,因為入侵者可以重放合法的認證序列信息以取得對系統的訪問權。
5) 數據詐騙,是將數據輸入計算機之前或之后對其進行偽造修改的所有行為。
6) 拒絕服務攻擊,是危急所有系統資源安全的攻擊方式,它會造成系統對所有用戶的不可用,導致服務性能降低或失去作用。
所有這些攻擊都有一個共同點就是對個人賬戶資產的機密性、完整性和可用性構成直接威脅。
2 現有防御手段中存在的缺陷
從技術角度來講,網上銀行系統并非銅墻鐵壁,也有漏洞,尤其是在互聯網高度普及,黑客技術盛行的環境下,一些不法分子已經把破解網上銀行系統為最終目標,為了保證網上銀行用戶的資金安全,數字證書和動態口令問世。此外,轉賬短信通知等更安全的措施應用到網上銀行系統中。多種安全措施的應用,大大提高了網上銀行的安全性,但是,采用上述網絡安全技術仍然存在著許多漏洞。
1) 在WEB服務器上使用IE等瀏覽器軟件使用賬戶口令等,由于目前用戶的操作系統和應用軟件本身存在系統安全漏洞,這就為黑客入侵客戶端創造了機會,而大量用戶對計算機知識的匱乏,甚至計算機已經加載了木馬卻不知情,而補丁程序相對滯后,口令和賬戶即使使用了安全控件仍然可能在客戶端被木馬通過鍵盤等跟蹤或傳輸過程中明文偷窺;而這正是我國銀行大多數用戶采用的登陸模式。缺陷在于:客戶端缺乏有效的安全獨立保障系統,其采用IE等瀏覽器本身存在缺陷漏洞。
2) 通常意義上,采用數字證書可以有效的防止用戶數據在傳輸過程中被明文截獲或中間受到篡改,但一般用戶會把數字證書保存到硬盤上或引入內存中,這樣黑客就可以盜用該證書從而獲得密鑰;同時目前采用的數字證書通常是永久的,其加密手段固定,這樣就給黑客獲得破解的機會,一旦被破解,所有的證書可以被偽造,數字證書缺乏有效期的保護。
3) 采用USB KEY硬件,USB KEY其實就是原來用于防軟件盜版的加密狗,它是一個獨立的計算單元,可以將傳入的信息加工處理后再返回來。如果將數字證書放在里面,就從根本上杜絕了黑客竊取私匙的可能。在一定程度上給黑客入侵盜取增加了難度,但加密后的數據引入內存仍然有被竊取的可能,同時,USE KEY由于大量被使用,其芯片也可能被復制生產,其根源在于缺乏更新能力,僅能防止黑客單一的遠程攻擊模式。
4) 黑客在用戶傳輸正確地識別交易數據中,截獲數據,并發動重放攻擊,形成多筆交易。
5) 手機動態密碼采用的是一次有效性,可以有效防止加密手段被破譯,但由于它通常必須借助手機等手段,手機SIM卡存在被復制的風險,將用戶的SIM卡解密后復制到另一張SIM卡中就可以接受網上銀行動態驗證碼。
6) 網上銀行動態口令牌是用來在網上銀行交易時,作為交易密碼,也就是為了交易安全才使用的,每個口令只能用一次,但是每個口令在N(N<10)秒內是固定,完全可以在N秒內完成重放攻擊,再就是動態口令牌一旦遺失便存在一定的風險。
3 函數密碼的設計與實現
網上銀行安全問題主要集中在客戶端和Internet公共信道傳輸部分,如果用戶使用網上銀行進行網上交易時,密碼僅使用一次,那么即使本次交易數據被截獲破解也能保證網銀的安全性,因此提出了在銀行服務端存儲函數作為交易密碼的概念,稱之為函數密碼。
函數密碼=函數交易密碼+動態驗證碼
動態密碼=靜態交易密碼+動態驗證碼
動態密碼中的交易密碼每次交易都是不變的,在銀行服務端以固定字符形式存放,通過木馬程序、鍵盤盜錄、屏幕錄像、嵌入瀏覽器、網絡釣魚等方式都可以盜取動態密碼中的交易密碼,一旦交易密碼被盜取那么網銀便失去了最關鍵的保護。由于交易密碼是固定的字符序列,所以網銀的安全性大大降低。
函數密碼中的函數交易密碼每次交易都是變化的,不變的是在銀行服務端存放的函數式,密碼即使在客戶端或Internet公共信道傳輸中被截獲破解在下次交易中也是無效的,這樣就不必擔心重放攻擊、釣魚網站、木馬程序等攻擊形式。
函數密碼的生成是以網絡驗證碼、手機動態密碼、個人設置信息等按照某函數式生成一個一次性的交易密碼由客戶端傳送給銀行服務端,定義函數密碼Key-Word的生成函數為F,定義Ccode為銀行服務端向客戶端傳送來的網絡驗證碼,定義Scode為銀行服務端向客戶手機傳送的手機動態密碼,定義Pcode為客戶在網上定期設置的干擾碼,Dcode為客戶申請網上銀行時設定的個人信息。
Key-Word=F(Ccode,Scode,Pcode,Dcode)
Ccode和Scode都是僅使用一次,每次使用都是變化的,從而使Key-Word的值也是每次不同,為了提高網上銀行的安全性和向銀行服務端發出登陸請求把網銀登陸設置為二次登陸模式,流程如圖2。
將Ccode圖像化,形成驗證碼圖片,Pcode是由用戶定期修改的干擾碼,Dcode為用戶的身份證號碼、家庭電話等個人信息內容,生成密碼時選擇那個信息是由銀行服務端發送選擇要求,函數密碼的生成函數就像靜態密碼一樣存在銀行服務端,用戶根據密碼函數以Ccode、Scode、Pcode、Dcode為參數生成Key-Word,Key-Word就是一串簡單的字符串,加密后通過Internet公共信道傳輸傳送給銀行服務端進行驗證。密碼函數是用戶在柜臺開通網上銀行時自己設定的函數,比如以一個簡單的函數為例:
F(Ccode,Scode,Pcode,Dcode)=strcat(strcat(substr(Ccode,2,1),substr(Scode,2,2)),strcat(substr(Pcode,2,1),substr(Dcode,2,2)))
當Ccode=abcd,Scode=123456,Pcode=0792833,Dcode=123456789時,Key-Word=b23723,當Ccode=dd1d,Scode=57897,Pcode=0792833,Dcode=liutao時,Key-Word=d787iu,每次輸入的密碼都是不同的,使木馬記錄用戶鼠標鍵盤操作無意義,用戶加大生成密碼的復雜度后即使多次截獲密碼也很難破解函數式,從而大大提高了網銀的安全性。
4 小結
函數密碼是在現有網銀安全措施的基礎上,將銀行服務端存儲密碼序列形式改為存儲密碼函數式,以字符序列作為密碼的形式改為以函數式作為函數,從而使每次交易中所使用的密碼都不相同,真正實現了一次一密碼。
參考文獻:
[1] 王濤.網上銀行系統安全體系淺析[J].中小企業管理與科技,2009,(18):79-80.
[2] 曾金璇.互聯網上個人賬戶數據安全防護對策[J].信息網絡安全,2009(3):57-58.
[3] 張旭.個人網上銀行的木馬防御策略分析[J].浙江金融,2009(5):61-62.
[4] 黃益.網上銀行風險防范策略研究[J].現代金融,2009(4):44-45.