網上銀行等電子支付平臺的WEB登陸安全性簡要分析

來源:互聯網
上載者:User
關鍵字 安全 網上銀行 電子支付平臺 WEB登陸
前言:本文還是去年年初寫的,當時出於安全考慮沒放出來。 現在部分網上銀行已大幅度降低了無高級別安全措施情況下的轉帳限額,並建議使用者使用動態口令卡或者USB Key,總體安全係數有所提高。 隨著子商務的普及,網上銀行以及線上電子支付等方式逐漸被線民所接受和喜愛。 但是網上銀行以及電子商務支付平臺的安全性不容樂觀。 儘管各網上銀行採取SSL加密防止通過嗅探網路封包的方式截取密碼;對於防止WEB登陸時密碼被竊取,網上銀行採取了安全控制項或者動態軟鍵盤的方法,但考慮的仍不全面,我們還是能採取相應的方法截獲使用者輸入的密碼。 下面就以具有代表性的四大銀行:中國工商銀行、中國農業銀行、中國建設銀行、中國銀行;商業銀行:招商銀行;電子支付平臺:阿裡巴巴支付寶等為例,分別就用戶端密碼方面進行脆弱性分析。 網上銀行以及其他電子商務支付平臺的WEB登陸安全性直接與使用者的經濟利益相關,所以有必要不遺餘力的加強WEB登陸安全性的建設。 另外由於不是所有的使用者都使用數位憑證和U盾之類安全認證產品,所以「駭客」只要截取到使用者的登陸密碼以及支付密碼就能隨心所欲的轉帳/支付,危害甚大。 本文談的是採用純技術截取密碼,而不是用假頁面假介面等釣魚方式騙取密碼的方法。 網上銀行對於防止密碼被盜分別採用了安全控制項和動態軟鍵盤的方法:1、採取安全控制項的,典型代表有:中國工商銀行、招商銀行、阿裡巴巴支付寶等這類安全控制項考慮還算全面,防止了鍵盤/消息鉤子, 而且使通過IE的COM介面獲取密碼的方法也無能為力。 但是這類安全控制項做得不夠底層,考慮得欠深入。 我們採用鍵盤過濾驅動的方法就可以突破安全控制項的保護記錄密碼了。 除了鍵盤過濾驅動方法外還可以掛接IDT(中斷描述項表)的鍵盤入口,或者掛鉤鍵盤驅動Dispatch常式以及Inline hook相應IRP分發函數。 當然,更深入點的話還可以掛鉤i8042prt.sys。 不過由於編寫驅動程式不同與開發普通的應用程式,難度稍大,所以目前還未見公開的採用此技術截取這些網上銀行密碼的木馬。 但是開發起來也並不是太困難,相對而言採取鍵盤過濾驅動的方法較通用穩定。 基本原理是我們的驅動創建一個設備附加到鍵盤驅動Kbdclass下的設備,這樣所有的IRP(輸入輸出請求包)包都將先發給我們的驅動程式,然後再轉發給系統中的鍵盤驅動, 我們的驅動程式獲取IRP後就可以從中獲得鍵盤的scancode掃描碼,這樣就能在系統內核的層面獲得鍵盤輸入資訊。 鍵盤過濾驅動的部分代碼如下:NTSTATUS HookKeyboard(IN PDRIVER_OBJECT pDriverObject){PDEVICE_OBJECT pKeyboardDeviceObject; NTSTATUS status = IoCreateDevice(pDriverObject,sizeof(DEVICE_EXTENSION), Null, FILE_DEVICE_KEYBOARD, 0, true, & pKeyboardDeviceObject);pKeyboardDeviceObject->Flags = pKeyboardDeviceObject->Flags | (DO_BUFFERED_IO | DO_POWER_PAGABLE);pKeyboardDeviceObject->Flags=pKeyboardDeviceObject->Flags& ~DO_DEVICE_INITIALIZING; RtlZeroMemory(pKeyboardDeviceObject->DeviceExtension, sizeof(DEVICE_EXTENSION)); PDEVICE_EXTENSION pKeyboardDeviceExtension=(PDEVICE_EXTENSION)pKeyboardDeviceObject->DeviceExtension; CCHAR ntNameBuffer[64] = "\\Device\\KeyboardClass0"; STRING ntNameString; UNICODE_STRINGuKeyboardDeviceName; RtlInitAnsiString( &ntNameString, ntNameBuffer ); RtlAnsiStringToUnicodeString( &uKeyboardDeviceName, &ntNameString, TRUE );IoAttachDevice( pKeyboardDeviceObject,&uKeyboardDeviceName,&pKeyboardDeviceExtension->pKeyboardDevice); RtlFreeUnicodeString(&uKeyboardDeviceName);return STATUS_SUCCESS;} 下面以工商銀行的網上銀行為例,演示我們的程式。 為了演示,我們的驅動程式將即時列印出獲得的鍵盤記錄的資訊,並且把完整的資訊記錄到磁片檔上。 招商銀行、阿裡巴巴支付寶等效果等同,支付密碼用此法同樣能截取。 截取時即時列印的資訊 如圖1:498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=268 alt="" src="/files/ uploadimg/20070118/105630986.jpg" width=560 border=0>記錄到檔裡的完整資訊:如圖2。 498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=157 alt="" src="/files/uploadimg/20070118/ 105818694.jpg" width=511 border=0>配合發送郵件或者ASP/PHP留言的方式我們就能遠端的得到密碼。 2、採取動態軟鍵盤的,典型代表有:中國建設銀行、中國銀行、中國農業銀行採用動態軟鍵盤技術初看確實能使攻擊者無法截獲密碼,但是截取密碼的方法不僅僅是接截獲鍵盤記錄一種方法。 我們可以通過IE的COM獲取的密碼。 對於中國建設銀行,通過IE的COM介面獲取的密碼框裡的內容就是密碼,其他大部分採用軟鍵盤技術的網站大都也是這樣。 但是中國農業銀行WEB程式中做了一點處理,通過滑鼠點擊軟鍵盤傳入密框的內容不是實際密碼而是按鈕序號,所以我們只要枚舉當前視窗,發現是中國農業銀行的網上銀行頁面時,我們的程式就自動截圖發給我們, 我們根據所截獲得的圖像和通過IE的 COM介面所獲得的序號偽密碼之間的關係進行轉換(抽象為一個簡單的函數映射),很容易的。 這樣便獲得了農行網上銀行的密碼。 下面是截取中國建設銀行網上銀行密碼的演示截圖,利用動態軟鍵盤的其他網站效果相同。 如圖3:(衍生:對付應用程式的部分軟鍵盤可以運用Hook TextOutW/A的類似螢幕取詞的方法來截取。 )498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=339 alt="" src="/files/uploadimg/20070118/110106849.jpg" width=560 border=0> 後記: 儘管網上銀行等電子支付平臺在密碼防盜方面做了安全考慮,但是還是不夠安全。 不過大家也大可不必因此不使用網上銀行,採取數位憑證以及USB Key(比如U盾)等安全措施相對而言還是比較安全的。 責任編輯 趙毅 zhaoyi#51cto.com TEL:(010)68476636-8001 給力(0票)動心(0票)廢話(0票)專業(0票)標題党(0票)路過(0票) 原文:網上銀行等電子支付平臺的WEB登陸安全性簡要分析 返回網路安全首頁
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.