国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

本地提供簽名服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2017-04-14 10:34左石城王平建趙宇航
軟件 2017年2期
關(guān)鍵詞:網(wǎng)上銀行哈希控件

左石城,向 繼,王平建,趙宇航

本地提供簽名服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

左石城1,2,向 繼1,王平建1,趙宇航1

(1. 中國(guó)科學(xué)院信息工程研究所,北京 100093;2. 中國(guó)科學(xué)院大學(xué),北京 100049)

近年來(lái),隨著瀏覽器更多的依賴基于HTML5/JavaScript的擴(kuò)展技術(shù),ActiveX技術(shù)由于其兼容性差、漏洞多備受詬病,逐漸將被淘汰。目前銀行系統(tǒng)廣泛采用ActiveX技術(shù),致使網(wǎng)上銀行業(yè)務(wù)局限性大,亟需一種安全的替代技術(shù)。文章設(shè)計(jì)并實(shí)現(xiàn)了一種本地提供簽名服務(wù)的方案和系統(tǒng),能夠支持不同瀏覽器,提供安全的數(shù)字簽名服務(wù)。文章提出一種本地HTTP服務(wù),該服務(wù)監(jiān)聽特定的端口,與網(wǎng)頁(yè)腳本代碼交互,驗(yàn)證了簽名請(qǐng)求者的身份、網(wǎng)頁(yè)域信息和用戶的身份,完成簽名工作。該系統(tǒng)使用密鑰拆分技術(shù),在保證密鑰安全性的同時(shí)實(shí)現(xiàn)了隱私數(shù)據(jù)的安全存儲(chǔ),有極高的實(shí)用性、安全性和擴(kuò)展性。

計(jì)算機(jī)應(yīng)用技術(shù);本地服務(wù);簽名;網(wǎng)頁(yè)腳本;SM2算法

0 概述

國(guó)內(nèi)網(wǎng)上銀行的密碼輸入框一般采用ActiveX安全控件[1],而ActiveX是微軟公司的專有技術(shù),目前只有使用IE瀏覽器或者基于IE內(nèi)核的瀏覽器才能正常登錄網(wǎng)上銀行。而在歐洲,美國(guó)等地區(qū),很多銀行的網(wǎng)上銀行業(yè)務(wù)都不依賴ActiveX技術(shù),像美國(guó)銀行、花旗銀行、摩根大通銀行、美國(guó)第一資本投資國(guó)際集團(tuán)、匯豐銀行等都提供標(biāo)準(zhǔn)化跨平臺(tái)的支持,德國(guó)銀行還提供標(biāo)準(zhǔn)網(wǎng)關(guān)接口,許可用戶自行開發(fā)網(wǎng)銀程序。如此,很多國(guó)外銀行的網(wǎng)上銀行用戶可以自由選擇IE瀏覽器、Firefox瀏覽器或者Chrome瀏覽器,也可以自由選擇Windows或者M(jìn)ac平臺(tái)登錄網(wǎng)上銀行進(jìn)行交易[2]。

國(guó)內(nèi)網(wǎng)上銀行研發(fā)業(yè)務(wù)始于2000年初,而那時(shí)微軟公司搞差異化競(jìng)爭(zhēng),利用壟斷市場(chǎng)的地位綁架網(wǎng)站,沒有競(jìng)爭(zhēng)與進(jìn)步,IE瀏覽器一家獨(dú)大。所以國(guó)內(nèi)網(wǎng)上銀行起初就沒有考慮支持其它瀏覽器。由于銀行業(yè)務(wù)對(duì)安全性的要求極高,銀行在網(wǎng)上銀行開發(fā)過(guò)程中要進(jìn)行大量測(cè)試,以保證網(wǎng)上銀行的安全性。每一次瀏覽器更新,網(wǎng)上銀行都會(huì)打補(bǔ)丁,而Chrome瀏覽器和Firefox瀏覽器的更新頻率高于IE瀏覽器,銀行一般會(huì)優(yōu)先考慮用戶量較大的瀏覽器。

而截至2016年8月,占據(jù)全球?yàn)g覽器排行榜首為Chrome瀏覽器,總市場(chǎng)份額為53.97%,IE瀏覽器以27.38%的占比,位居第二位,排在第三位的是Firefox瀏覽器,市場(chǎng)份額7.69%。Microsoft Edge瀏覽器以5.16%的市場(chǎng)份額位居第四位。Safari瀏覽器以4.28%的市場(chǎng)份額位居排行榜第五位。Opera瀏覽器在8月份瀏覽器排行榜中位居第六位,市場(chǎng)份額1.14%[3]。瀏覽器市場(chǎng)份額餅狀圖如圖1所示。可以看到Chrome瀏覽器的市場(chǎng)份額已經(jīng)高于IE瀏覽器,網(wǎng)上銀行也必須適時(shí)地支持各類操作系統(tǒng)平臺(tái)和各類瀏覽器。

圖1 2016年8月全球?yàn)g覽器排行榜圖Fig. 1 diagram of global browser rankings in August 2016

由于用戶習(xí)慣等方面的差別,外資銀行使用的安全策略和安全技術(shù)與國(guó)內(nèi)銀行有所差別,尤其是安全技術(shù)的使用相對(duì)較少。在身份認(rèn)證方面,各銀行的登錄頁(yè)面都提供了軟鍵盤輸入口令方式及安全密碼輸入控件,由于不涉及資金進(jìn)出業(yè)務(wù)的操作,在這一層次上的安全控制已足夠[4]。在資金業(yè)務(wù)上,境外銀行對(duì)網(wǎng)上銀行業(yè)務(wù)通常較少采用專門的交易防篡改措施,僅在個(gè)別交易使用電話外呼、短信、郵件方式進(jìn)行確認(rèn)[5]。

本文針對(duì)目前ActiveX技術(shù)逐漸被淘汰,銀行系統(tǒng)網(wǎng)上銀行業(yè)務(wù)亟需更新技術(shù)的需要,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)本地提供簽名服務(wù)的系統(tǒng)。該系統(tǒng)由網(wǎng)頁(yè)腳本代碼與本地服務(wù)交互完成簽名工作。該系統(tǒng)使用密鑰拆分技術(shù),在保證密鑰安全性的同時(shí)實(shí)現(xiàn)了隱私數(shù)據(jù)的安全存儲(chǔ),驗(yàn)證了簽名請(qǐng)求者的身份、Web網(wǎng)頁(yè)域信息和用戶的身份,有極高的安全性和擴(kuò)展性。

本文的結(jié)構(gòu)如下:第一部分介紹背景知識(shí);第二部分介紹系統(tǒng)設(shè)計(jì);第三部分介紹流程;第四部分進(jìn)行安全性分析;第五部分對(duì)全文進(jìn)行總結(jié)。

1 背景知識(shí)

1.1ActiveX技術(shù)

ActiveX誕生于1996年,是遵循COM(Component Object Model,部件對(duì)象模型)規(guī)程而開發(fā)的用于Internet的一種對(duì)象連接與嵌入技術(shù)。ActiveX是一些軟件組件或?qū)ο?,可以將其插入到Web網(wǎng)頁(yè)或其他應(yīng)用程序中。對(duì)于基于Web的應(yīng)用而言,它提供了使組件嵌入到Web頁(yè)面以擴(kuò)展交互功能的應(yīng)用機(jī)制[6]、使用ActiveX,可輕松方便的在Web頁(yè)面中插入多媒體效果、交互式對(duì)象、以及復(fù)雜程序。ActiveX技術(shù)包含:ActiveX控件,ActiveX文檔和ActiveX腳本。

1)ActiveX控件:用于向Web頁(yè)面、Microsoft Word等支持ActiveX的容器中插入COM對(duì)象。ActiveX控件是一個(gè)模塊化的靈活對(duì)象,如果某個(gè)網(wǎng)頁(yè)需要增加一項(xiàng)非HTML支持的功能(如視頻播放功能),只要插入一個(gè)具有此項(xiàng)功能的ActiveX的控件即可實(shí)現(xiàn)。

2)ActiveX文檔:用于在瀏覽器或者其它支持ActiveX技術(shù)的容器中瀏覽復(fù)合文檔。

3)ActiveX腳本:在客戶端或者服務(wù)器端調(diào)用ActiveX控件,傳遞數(shù)據(jù),控制交互操作[7]。

ActiveX的優(yōu)勢(shì)在于它的動(dòng)態(tài)可交互性,用戶可以動(dòng)態(tài)地在使用過(guò)程中,通過(guò)改變ActiveX的屬性和參數(shù),在應(yīng)用程序中實(shí)現(xiàn)特殊的需求。ActiveX控件不是瀏覽器的組成部分,這些控件存放在服務(wù)器上。當(dāng)瀏覽器解釋W(xué)eb頁(yè)面的過(guò)程中發(fā)現(xiàn)頁(yè)面請(qǐng)求調(diào)用ActiveX控件時(shí),根據(jù)頁(yè)面中注明的控件ID值在本地注冊(cè)表內(nèi)進(jìn)行查詢,若存在,則通過(guò)注冊(cè)表中的相關(guān)信息直接使用該控件,若不存在,就要根據(jù)頁(yè)面中提示的路徑去下載該控件并安裝注冊(cè)。

1.2ActiveX控件安全問(wèn)題

目前ActiveX控件多由第三方開發(fā),IE瀏覽器支持ActiveX控件,這允許網(wǎng)頁(yè)通過(guò)腳本和控件交互產(chǎn)生更加豐富的效果,同時(shí)也帶來(lái)一些安全性問(wèn)題。由于ActiveX控件接口對(duì)外部環(huán)境是開放的,攻擊者很容易發(fā)現(xiàn)并利用控件中的漏洞攻擊用戶主機(jī),非法侵入、竊取重要敏感信息,甚至引發(fā)系統(tǒng)癱瘓[8],嚴(yán)重影響網(wǎng)絡(luò)安全。許多用戶粗心大意,輕易準(zhǔn)允遠(yuǎn)端不明的ActiveX控件下載、安裝、執(zhí)行,導(dǎo)致主機(jī)遭入侵。

針對(duì)ActiveX控件的攻擊方式主要表現(xiàn)為:1.控件導(dǎo)出函數(shù)可能具有隱蔽功能;2.通過(guò)控件可以獲得本地的私密信息;3.控件內(nèi)一些函數(shù)未檢查參數(shù)長(zhǎng)度,造成瀏覽器或者系統(tǒng)異常;4.惡意控件可以通過(guò)欺騙行為使用戶訪問(wèn)惡意網(wǎng)頁(yè),下載惡意程序[9]。

1.3網(wǎng)上銀行產(chǎn)品的困境

銀行系統(tǒng)的網(wǎng)上銀行業(yè)務(wù),非常依賴于ActiveX技術(shù),ActiveX安全技術(shù)防止鍵盤鉤子,對(duì)于一般用戶而言,必須安裝ActiveX控件才能登陸網(wǎng)上銀行,而ActiveX控件主要和IE瀏覽器配合使用,其它非IE內(nèi)核的瀏覽器如Chrome、Firefox、Apple Safari不支持ActiveX控件,這樣就造成了系統(tǒng)使用的局限性。

此外,微軟公司宣布自家取代IE瀏覽器的新一代瀏覽器Edge瀏覽器將不再支持長(zhǎng)久以來(lái)用于IE瀏覽器的ActiveX、VBScript等10多項(xiàng)擴(kuò)展及界面技術(shù),并轉(zhuǎn)向以JavaScript與HTML5為基礎(chǔ)的標(biāo)準(zhǔn)技術(shù)。微軟公司表示,ActiveX技術(shù)在各種瀏覽器中不通用,其重要性在HTML5出現(xiàn)后逐漸降低,未來(lái)Edge瀏覽器將內(nèi)置Adobe Flash和PDF閱讀器[10]。

在這樣的背景下,銀行系統(tǒng)找到替代ActiveX技術(shù)的方案迫在眉睫,本文提出一種本地提供簽名服務(wù)方案及系統(tǒng),能夠支持各類瀏覽器,提供安全的數(shù)字簽名服務(wù),且便于實(shí)現(xiàn)。

2 一種本地提供簽名服務(wù)系統(tǒng)的系統(tǒng)設(shè)計(jì)

2.1系統(tǒng)設(shè)計(jì)

在B/S架構(gòu)的系統(tǒng)中,HTML(HyperText Markup Language,超文本標(biāo)記語(yǔ)言)本身因?yàn)闄?quán)限的問(wèn)題不能訪問(wèn)系統(tǒng)提供的各種組件和應(yīng)用程序接口,所以需要在本地搭建一個(gè)服務(wù),該服務(wù)與瀏覽器通信,并執(zhí)行瀏覽器所需要的簽名操作請(qǐng)求。本文以國(guó)家商用體系的非對(duì)稱加密算法SM2算法為例[12],介紹本地簽名服務(wù)系統(tǒng)的具體設(shè)計(jì)方案。

本方案提出一種提供簽名服務(wù)的系統(tǒng),如圖2所示,包括:

1. Web服務(wù)器,用于提供Web服務(wù),在待簽名的網(wǎng)頁(yè)中嵌入與本地HTTP服務(wù)通信的腳本代碼。

2. 瀏覽器,訪問(wèn)Web服務(wù)器,解釋執(zhí)行Web網(wǎng)頁(yè)中的腳本代碼。

3. 本地HTTP服務(wù),用于提供簽名服務(wù),運(yùn)行并等待Web網(wǎng)頁(yè)中腳本的簽名請(qǐng)求,驗(yàn)證瀏覽器身份和請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)后,對(duì)請(qǐng)求數(shù)據(jù)進(jìn)行簽名并返回給瀏覽器。

過(guò)程解析:

(A)瀏覽器訪問(wèn)Web服務(wù)器資源。

(B)Web服務(wù)器返回嵌入與本地HTTP服務(wù)通信的腳本代碼的網(wǎng)頁(yè)。

(C)瀏覽器將待簽名的Web網(wǎng)頁(yè)發(fā)送至本地HTTP服務(wù),請(qǐng)求簽名服務(wù)。

(D)本地HTTP服務(wù)執(zhí)行校驗(yàn)流程后返回簽名結(jié)果。

(E)瀏覽器將上述簽名結(jié)果返回至Web服務(wù)器。

(F)Web服務(wù)器回執(zhí)結(jié)果。

圖2 本地提供簽名服務(wù)系統(tǒng)架構(gòu)圖Fig. 2 the system architecture diagram of Local Signature Providing Service

本方案包括請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)和本地HTTP服務(wù)。Web服務(wù)器在提供的Web網(wǎng)頁(yè)資源中嵌入與本地HTTP服務(wù)通信的腳本代碼;本地HTTP服務(wù)運(yùn)行在客戶主機(jī)上,并監(jiān)聽特定的端口。當(dāng)Web網(wǎng)頁(yè)需要數(shù)字簽名時(shí),網(wǎng)頁(yè)腳本向本地HTTP服務(wù)發(fā)送簽名請(qǐng)求,本地HTTP服務(wù)驗(yàn)證請(qǐng)求發(fā)起方所在瀏覽器身份、請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)域信息以及用戶的身份,如果驗(yàn)證通過(guò)則向其提供簽名服務(wù),如果驗(yàn)證不通過(guò)則拒絕相關(guān)服務(wù)。本方案無(wú)需對(duì)瀏覽器進(jìn)行改動(dòng),只需在待簽名的Web網(wǎng)頁(yè)上嵌入與本地HTTP服務(wù)通信的腳本和在本地運(yùn)行一個(gè)HTTP服務(wù),可以替代諸如ActiveX的插件,實(shí)現(xiàn)瀏覽器調(diào)用本地服務(wù)的功能。

2.2本地HTTP服務(wù)組件設(shè)計(jì)

本地HTTP服務(wù)主要由以下4個(gè)模塊組成,如圖3所示:

(1)密鑰模塊

負(fù)責(zé)密鑰生成、密鑰存儲(chǔ)、密鑰運(yùn)算。加密技術(shù)能有效地保證計(jì)算機(jī)數(shù)據(jù)的完整性和真實(shí)性[11]。本方案采用非對(duì)稱加密算法SM2,密鑰模塊生成公私鑰對(duì),使用密鑰拆分技術(shù)將私鑰拆分存儲(chǔ),將公鑰發(fā)送給服務(wù)器進(jìn)行設(shè)備注冊(cè)。調(diào)用密鑰運(yùn)算之前需要經(jīng)過(guò)驗(yàn)證模塊的驗(yàn)證。

(2)驗(yàn)證模塊

負(fù)責(zé)驗(yàn)證瀏覽器身份、驗(yàn)證Web網(wǎng)頁(yè)域、驗(yàn)證用戶身份。本模塊是保障簽名不被盜用的關(guān)鍵。驗(yàn)證瀏覽器身份是為了防止惡意程序訪問(wèn)本地HTTP服務(wù),驗(yàn)證Web網(wǎng)頁(yè)域是為了防止釣魚網(wǎng)站訪問(wèn)本地HTTP服務(wù),驗(yàn)證用戶身份是為了防止非法用戶使用本地HTTP服務(wù)提供的簽名服務(wù)。

(3)存儲(chǔ)模塊

負(fù)責(zé)存儲(chǔ)數(shù)據(jù)、獲取數(shù)據(jù)、刪除數(shù)據(jù)。本方案設(shè)計(jì)將數(shù)據(jù)以鍵值對(duì)的形式存放在Windows系統(tǒng)的注冊(cè)表中。涉及密鑰的存儲(chǔ)、瀏覽器信任列表的存儲(chǔ)以及Web域信任列表的存儲(chǔ)。

圖3 本地HTTP服務(wù)核心模塊圖Fig. 3 the core modules diagram of Local Signature Providing Service

4)簽名模塊

負(fù)責(zé)簽名服務(wù)。在成功通過(guò)驗(yàn)證模塊的驗(yàn)證后,對(duì)請(qǐng)求的數(shù)據(jù)進(jìn)行數(shù)字簽名,并將簽名后的數(shù)據(jù)返回給瀏覽器。

2.2.1 密鑰管理【生成-存儲(chǔ)-使用-分發(fā)-銷毀】

系統(tǒng)初始化時(shí),需要用戶輸入個(gè)人身份號(hào)碼(PIN,Personal Identification Number)作為用戶身份的唯一標(biāo)識(shí),且僅有用戶知道,系統(tǒng)在使用PIN碼生成公私鑰對(duì)后立刻將PIN碼從內(nèi)存中刪除。

密鑰的生成流程如圖4所示:首先對(duì)PIN碼進(jìn)行哈希運(yùn)算,得到哈希值。然后使用密鑰生成算法根據(jù)哈希值生成SM2算法公私鑰對(duì),隨即使用密鑰拆分算法將私鑰拆分成子密鑰SubKey1和子密鑰SubKey2兩部分。

圖4 密鑰拆分圖Fig. 4 key splitting diagram

需要指明的是,用戶私鑰的恢復(fù)需要SubKey1、SubKey2以及PIN碼三者聯(lián)合才能恢復(fù),如此,當(dāng)需要用到私鑰時(shí),須由用戶輸入PIN碼,繼而通過(guò)私鑰恢復(fù)算法得到私鑰,且使用完后立即從內(nèi)存刪除。由于驗(yàn)證用戶身份需要PIN碼,故考慮對(duì)使用公鑰加密PIN碼哈希值,將加密結(jié)果持久化存儲(chǔ)。

為實(shí)現(xiàn)用戶和公鑰信息的綁定,在系統(tǒng)初始化時(shí)需要完成對(duì)用戶賬戶信息的校驗(yàn),并將用戶生成的公鑰在服務(wù)器上進(jìn)行注冊(cè)綁定。

密鑰拆分技術(shù)保證了密鑰的存儲(chǔ)安全。私鑰由PIN碼和兩個(gè)子密鑰合成而來(lái),僅憑兩個(gè)子密鑰無(wú)法恢復(fù)私鑰,故可以持久化存儲(chǔ)子密鑰、公鑰以及PIN碼哈希結(jié)果的加密值。

2.2.2 身份驗(yàn)證【瀏覽器、Web域、用戶身份認(rèn)證】

本模塊主要包括:瀏覽器身份的驗(yàn)證、Web網(wǎng)頁(yè)域的驗(yàn)證和用戶的驗(yàn)證。

瀏覽器身份驗(yàn)證功能。本模塊預(yù)先維護(hù)一個(gè)信任列表,該信任列表中包含瀏覽器的詳細(xì)路徑及瀏覽器可執(zhí)行文件二進(jìn)制值的哈希值。驗(yàn)證瀏覽器身份時(shí),根據(jù)瀏覽器發(fā)送的請(qǐng)求,查詢?yōu)g覽器的端口號(hào),繼而查詢到瀏覽器的進(jìn)程號(hào),進(jìn)而獲取瀏覽器所在的路徑,得到瀏覽器的詳細(xì)信息。將瀏覽器可執(zhí)行程序的二進(jìn)制值進(jìn)行哈希運(yùn)算,得到的結(jié)果與信任列表中的哈希值進(jìn)行比對(duì),若信任列表中存在該值,則瀏覽器身份驗(yàn)證通過(guò),否則判定瀏覽器身份驗(yàn)證不通過(guò)。

Web網(wǎng)頁(yè)域驗(yàn)證功能。本模塊預(yù)先維護(hù)一個(gè)信任列表,該信任列表中包含Web服務(wù)的域名信息。驗(yàn)證請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)時(shí),由簽名請(qǐng)求的HTTP請(qǐng)求報(bào)文的請(qǐng)求頭Referer字段得到Web網(wǎng)頁(yè)的域名信息,并將其與信任列表中的域名信息比對(duì),若信任列表中存在該域名信息,則判定請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)驗(yàn)證通過(guò),否則判定請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)驗(yàn)證不通過(guò)。

用戶身份信息驗(yàn)證功能。程序要求用戶輸入PIN碼,并對(duì)PIN碼進(jìn)行驗(yàn)證,驗(yàn)證過(guò)程如下:首先將用戶輸入PIN碼做哈希運(yùn)算,得到哈希值,聯(lián)合兩個(gè)子密鑰恢復(fù)私鑰,隨后解密系統(tǒng)初始化時(shí)存儲(chǔ)的PIN碼哈希值的加密值,驗(yàn)證兩個(gè)PIN碼哈希值。若驗(yàn)證通過(guò),則用戶身份鑒別成功,否則向用戶返回錯(cuò)誤信息,結(jié)束處理。

3 本地提供簽名服務(wù)方案的執(zhí)行流程

本地提供簽名服務(wù)的流程圖如圖5所示,具體的流程步驟入如下:

步驟1:Web服務(wù)器在待簽名的Web網(wǎng)頁(yè)中嵌入瀏覽器與本地HTTP服務(wù)通信的腳本代碼。

步驟2:瀏覽器訪問(wèn)Web服務(wù)器,并執(zhí)行解釋W(xué)eb頁(yè)面,執(zhí)行到嵌入的腳本代碼時(shí),主動(dòng)向本地HTTP服務(wù)發(fā)起簽名請(qǐng)求。

圖5 本地提供簽名服務(wù)方案時(shí)序圖Fig. 5 the sequence diagram of Local Signature Providing Service

步驟3:本地HTTP服務(wù)驗(yàn)證瀏覽器身份。

本步驟中,本地HTTP服務(wù)預(yù)先維護(hù)一個(gè)信任列表,該信任列表中包含瀏覽器的詳細(xì)路徑及瀏覽器可執(zhí)行文件二進(jìn)制值的哈希值。驗(yàn)證瀏覽器身份時(shí),根據(jù)瀏覽器發(fā)送的請(qǐng)求,查詢?yōu)g覽器的端口號(hào),繼而查詢到瀏覽器的進(jìn)程號(hào),進(jìn)而獲取瀏覽器所在的路徑,得到瀏覽器的詳細(xì)信息。將瀏覽器可執(zhí)行程序的二進(jìn)制值進(jìn)行哈希運(yùn)算,得到的結(jié)果與信任列表中的哈希值進(jìn)行比對(duì),若信任列表中存在該值,則瀏覽器身份驗(yàn)證通過(guò),否則判定瀏覽器身份驗(yàn)證不通過(guò)。

更進(jìn)一步地,所述判定瀏覽器身份檢驗(yàn)未通過(guò)的流程包括:提示用戶該簽名請(qǐng)求的瀏覽器可執(zhí)行程序不在信任列表中,如果用戶選擇信任該瀏覽器可執(zhí)行程序,則在上述信任列表中添加該瀏覽器可執(zhí)行程序的詳細(xì)信息以及該瀏覽器可執(zhí)行程序二進(jìn)制數(shù)據(jù)的哈希值;如果用戶選擇不信任該瀏覽器可執(zhí)行程序,則結(jié)束處理。

步驟4:本地HTTP服務(wù)器驗(yàn)證請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)。

本步驟中,本地HTTP服務(wù)預(yù)先維護(hù)一個(gè)信任列表,該信任列表中包含Web服務(wù)的域名信息。驗(yàn)證請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)時(shí),由簽名請(qǐng)求的HTTP請(qǐng)求報(bào)文的請(qǐng)求頭Referer字段得到Web網(wǎng)頁(yè)的域名信息,并將其與信任列表中的域名信息比對(duì),若信任列表中存在該域名信息,則判定請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)驗(yàn)證通過(guò),否則判定請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)驗(yàn)證不通過(guò)。

更進(jìn)一步地,所述判定請(qǐng)求簽名服務(wù)的Web網(wǎng)頁(yè)檢驗(yàn)未通過(guò)的流程包括:提示用戶該簽名請(qǐng)求的Web網(wǎng)頁(yè)的域名信息不在信任列表中,如果用戶選擇信任該Web網(wǎng)頁(yè)的域名,則在上述信任列表中添加該Web網(wǎng)頁(yè)的域名信息;如果用戶選擇不信任該Web網(wǎng)頁(yè)的域名,則結(jié)束處理。

步驟5:本地HTTP服務(wù)向用戶請(qǐng)求PIN碼。

本步驟中,本地HTTP服務(wù)向用戶彈出一個(gè)輸入框,要求用戶輸入PIN碼并驗(yàn)證,若驗(yàn)證通過(guò),則執(zhí)行步驟6,若驗(yàn)證未通過(guò),則向用戶返回錯(cuò)誤信息,結(jié)束處理。

步驟6:對(duì)請(qǐng)求的數(shù)據(jù)進(jìn)行數(shù)字簽名,并將簽名后的數(shù)據(jù)返回給瀏覽器。

本步驟中,本地HTTP服務(wù)可以調(diào)用自身實(shí)現(xiàn)的簽名模塊對(duì)請(qǐng)求數(shù)據(jù)簽名,或者調(diào)用諸如USBKey等硬件簽名設(shè)備進(jìn)行簽名。

步驟7:瀏覽器將獲得的簽名數(shù)據(jù)發(fā)送給Web服務(wù)器。

4 安全性分析

本部分將介紹當(dāng)前網(wǎng)上銀行非法入侵者的主要攻擊手段,并且逐一介紹本地HTTP服務(wù)做出的防范措施:

(1)鍵盤記錄

鍵盤記錄惡意程序安裝到系統(tǒng)后,會(huì)隱藏進(jìn)程,隱藏窗口,記錄系統(tǒng)中用戶所執(zhí)行的所有鍵盤操作。

本地HTTP服務(wù)對(duì)鍵盤記錄的防范。由于網(wǎng)頁(yè)腳本制作的虛擬鍵盤,無(wú)法防范木馬的竊取攻擊。本地HTTP服務(wù)采用動(dòng)態(tài)軟鍵盤技術(shù),每次輸入PIN碼時(shí)字母數(shù)字在軟鍵盤上顯示的位置不同,可以避免木馬記錄鍵盤。

(2)釣魚網(wǎng)站

不法分子利用各種手段,仿冒真實(shí)的URL地址及頁(yè)面內(nèi)容,或者利用真實(shí)網(wǎng)站服務(wù)器程序上的漏洞在站點(diǎn)的某些網(wǎng)頁(yè)種植木馬的惡意腳本,以此來(lái)騙取用戶銀行或信用卡賬號(hào)、密碼等信息。

本地HTTP服務(wù)對(duì)釣魚網(wǎng)站的防范。如果有惡意程序要冒充合法瀏覽器發(fā)起簽名請(qǐng)求,本地HTTP服務(wù)在驗(yàn)證其身份時(shí)會(huì)發(fā)現(xiàn)該惡意程序可執(zhí)行程序的二進(jìn)制數(shù)據(jù)的哈希值在瀏覽器信任列表中無(wú)法匹配,進(jìn)而判定該程序身份驗(yàn)證未通過(guò)并警示用戶;如果有惡意網(wǎng)頁(yè)要冒充合法網(wǎng)頁(yè)向本地HTTP服務(wù)發(fā)起簽名請(qǐng)求,本地HTTP服務(wù)在驗(yàn)證Web網(wǎng)頁(yè)域的時(shí)候會(huì)發(fā)現(xiàn)該域的信息在Web域信任列表中無(wú)法匹配,進(jìn)而判定該網(wǎng)頁(yè)域驗(yàn)證不通過(guò)并警示用戶。

(3)嵌入瀏覽器執(zhí)行

嵌入瀏覽器進(jìn)程中的惡意代碼能夠獲取用戶當(dāng)前訪問(wèn)的頁(yè)面地址和頁(yè)面內(nèi)容,還在用戶數(shù)據(jù)以SSL安全加密方式發(fā)送出去之前獲取它們。利用這種技術(shù)的木馬,通常會(huì)通過(guò)改變用戶正在瀏覽器的頁(yè)面內(nèi)容,比如增加一段用以獲得賬號(hào)密碼然后發(fā)送出去的JavaScript腳本,或者讓瀏覽器自動(dòng)打開另外一個(gè)惡意的網(wǎng)頁(yè)。

2015年5月11日,綠盟科技威脅響應(yīng)中心接報(bào)烏云通告,工商銀行安全控件可導(dǎo)致遠(yuǎn)程任意代碼執(zhí)行漏洞(WooYun-2015-96339)。此次漏洞的關(guān)鍵在于這個(gè)控件錯(cuò)誤的設(shè)置,打開了“對(duì)未標(biāo)記為可安全執(zhí)行腳本的ActiveX控件初始化并執(zhí)行腳本”選項(xiàng),從而允許執(zhí)行任意JavaScript代碼,則攻擊者可以構(gòu)造一個(gè)惡意腳本并將其嵌入U(xiǎn)RL中,被攻擊者訪問(wèn)URL后,該惡意腳本能從后臺(tái)下載木馬,進(jìn)而竊取用戶的敏感信息,包括授權(quán)、信用卡、賬號(hào)信息等[13]。

本地HTTP服務(wù)對(duì)嵌入瀏覽器執(zhí)行攻擊的防范。攻擊者利用JavaScript誘導(dǎo)用戶輸入口令,本地HTTP服務(wù)運(yùn)行在一個(gè)獨(dú)立的進(jìn)程上,它與網(wǎng)頁(yè)腳本的接口是讓網(wǎng)頁(yè)腳本傳入待簽名的數(shù)據(jù),而對(duì)用戶的認(rèn)證過(guò)程由本地HTTP服務(wù)執(zhí)行,與瀏覽器無(wú)關(guān),即網(wǎng)頁(yè)腳本無(wú)法獲取用戶輸入的PIN碼。同時(shí),為了確保用戶簽名的真實(shí)性,在每次簽名時(shí)需要用戶輸入PIN碼,本地HTTP服務(wù)對(duì)PIN碼進(jìn)行驗(yàn)證,防止非法用戶使用本系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行簽名。

(4)屏幕“錄像”

有些網(wǎng)上銀行木馬會(huì)以截屏的方式記錄用戶點(diǎn)擊鼠標(biāo)時(shí)的鼠標(biāo)坐標(biāo),發(fā)送給非法入侵者[14]。

對(duì)屏幕“錄像”攻擊的防范。此攻擊方式記錄了用戶點(diǎn)擊動(dòng)態(tài)軟鍵盤的操作,無(wú)法使用軟件編碼的方式進(jìn)行防范,考慮調(diào)用諸如USBKey等硬件簽名設(shè)備進(jìn)行簽名,實(shí)行多重因素認(rèn)證。USBKey內(nèi)部自帶的算法生成密鑰對(duì)保存在自身的物理存儲(chǔ)區(qū)中,安全性高且不可導(dǎo)出,并通過(guò)內(nèi)置的芯片硬件實(shí)現(xiàn)加解密運(yùn)算和數(shù)字簽名運(yùn)算,為保證密鑰隱蔽性提供最可靠的物理支持[15]。

可見,通過(guò)采用本文的技術(shù)方案,可以替代ActiveX控件的功能,在支持不同瀏覽器的前提下,實(shí)現(xiàn)瀏覽器調(diào)用本地程序的功能。本文所述的方案無(wú)需對(duì)瀏覽器進(jìn)行改動(dòng),實(shí)現(xiàn)起來(lái)非常方便,便于普及。

5 結(jié)束語(yǔ)

隨著瀏覽器更多的依賴基于HTML5/JavaScript的擴(kuò)展技術(shù),ActiveX技術(shù)由于其兼容性差、漏洞多備受詬病,逐漸將被淘汰。目前銀行系統(tǒng)的網(wǎng)上銀行業(yè)務(wù)廣泛采用ActiveX技術(shù),致使網(wǎng)上銀行業(yè)務(wù)局限性大,亟需一種安全的替代技術(shù)。

本文設(shè)計(jì)并實(shí)現(xiàn)了一種本地提供簽名服務(wù)的方案和系統(tǒng),能夠支持各類瀏覽器,提供安全的數(shù)字簽名服務(wù)。本文提出一種本地HTTP服務(wù),該服務(wù)監(jiān)聽特定的端口,與網(wǎng)頁(yè)腳本代碼交互,驗(yàn)證了簽名請(qǐng)求者的身份、網(wǎng)頁(yè)域信息和用戶的身份,完成簽名工作。該系統(tǒng)使用密鑰拆分技術(shù),在保證密鑰安全性的同時(shí)實(shí)現(xiàn)了隱私數(shù)據(jù)的安全存儲(chǔ),有極高的實(shí)用性、安全性和擴(kuò)展性。

[1] 銀行網(wǎng)銀為何只認(rèn)IE?安全控件是關(guān)鍵[EB/OL]. http:// tech.huanqiu.com/soft/2012-08/2992087.html, 2012-08-06.

[2] 不認(rèn)Firefox、Chrome國(guó)內(nèi)銀行網(wǎng)銀仍僅支持IE[EB/OL]. http://www.kejixun.com/article/201305/9054.html, 2013-05-27.

[3] 2016年8月份全球主流瀏覽器市場(chǎng)份額排行版[EB/OL]. http://liulanmi.com/top/11618.html. 2016-09-05.

[4] 曾興元, 秦琴. 網(wǎng)銀安全問(wèn)題與解決方案綜述[J]. 電腦與電信, 2008, 2: 15-17.

Zeng Xingyuan, Qin Qin. Network Bank Security Issues And the Solutions[J]. Computer & Telecommunication, 2008, 2: 15-17.

[5] 王必達(dá). 淺議網(wǎng)銀國(guó)際化發(fā)展中的安全[J]. 中國(guó)金融電腦, 2011, 10: 45-47.

Wang Bida.Discussion on the security in the international development of Cyberbanking[J]. Financial Computer of China, 2011, 10: 45-47.

[6] 朱前飛, 高芒. COM組件和ActiveX技術(shù)在B/S體系結(jié)構(gòu)中的應(yīng)用[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2005, 3: 654-662.

Zhu Qianfei, Gao Mang. Application of technology of COM components and ActiveX in B/s system structure[J]. Computer Engineering and Design, 2005, 3: 654-662.

[7] 閆斐,柴茂. ActiveX技術(shù)綜述[J]. 山西煤炭管理干部學(xué)院學(xué)報(bào), 2005, 1: 99-100.

Yan Fei, Chai Mao. Overview of ActiveX Technology[J]. Journal of Shanxi Coal-Mining Administrators College, 2005, 1: 99-100.

[8] 劉炳奇. 影響計(jì)算機(jī)網(wǎng)絡(luò)安全的因素及應(yīng)對(duì)措施[J]. 軟件, 2014, 35(3): 152-154.

Liu Bingqi. The Factors Influence the Computer Network Security and Countermeasures[J]. Computer Engineering & Software, 2014, 35(3): 152-154.

[9] 李倩. 淺談ActiveX控件漏洞及安全防范[J]. 無(wú)線互聯(lián)科技, 2012, 6: 16.

Li Qian. Discussion on the bugs of ActiveX Technology and Security precautions[J]. Wireless Internet Technology. 2012, 6: 16.

[10] A break from the past, part 2: Saying goodbye to ActiveX, VBScript, attachEvent...[EB/OL]. https://blogs.windows.com/msedgedev/2015/ 05/06/a-break-from-the-past-part-2-saying-goodbye-to-activexvbscript-attachevent/#qVPahzxMUeeIT3hu.97, 2015-05-06.

[11] 林登奎. 計(jì)算機(jī)網(wǎng)絡(luò)及防范技術(shù)研究[J]. 軟件, 2013, 34(1): 144-145.

Lin Dengkui. Computer networks and prevention technology research[J]. Computer Engineering & Software, 2013, 34(1): 144-145.

[12] 駱釗, 謝吉華, 顧偉, 等. 基于SM2密碼體系的電網(wǎng)信息安全支撐平臺(tái)開發(fā)[J]. 電力系統(tǒng)自動(dòng)化, 2014, 6: 68-73.

Luo Zhao, Xie Jihua, Gu Wei. SM2-Cryptosystem Based Information Security Supporting Platform in Power Grid[J]. Automation of Electric Power Systems. 2014, 6:6 8-73.

[13] 網(wǎng)銀安全控件遠(yuǎn)程代碼執(zhí)行漏洞分析[EB/OL]. http:// blog.csdn.net/gnaw0725/article/details/45716535, 2015-05-14.

[14] 馬麗娟. 網(wǎng)上銀行安全現(xiàn)狀及防范措施[J]. 內(nèi)江科技, 2010, 9: 122.

Ma Lijuan. Security status and precautions of Cyberbanking [J]. NEI JIANG KE JI, 2010, 9: 122.

[15] 李成東, 徐飛. 一種基于USBKEY的文件保險(xiǎn)箱設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2013, 34(5): 21-24.

Li Chengdong, Xu fei. Design and implement of a Document-Vault based on UsbKey[J]. Computer Engineering & Software, 2013, 34(5): 21-24.

Local Signature Providing Service

ZUO Shi-cheng1,2, Xiang Ji1, WANG Ping-jian1, ZHAO Yu-hang1
(1. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China; 2. University of Chinese Academy of Sciences, Beijing 100049, China)

With the browsers increasingly depending on HTML5/JavaScript-based extension technology in recent years, ActiveX technique due to its poor compatibility and various bugs will be removed. For now, ActiveX technique that has been widely adopted by bank systems, causes high limitation in service of online banking, which needs a safe replacement technology. This paper designs and implements a kind of Local Signature Provided Service system, which supports various browsers and provides secure signature service. This paper puts forward a kind of Local HTTP Service, which interact with Web page script. Local HTTP Service verifies identity of signature requester, information of Web page domain and identity of user, then accomplishes the signature process. The Technology of key split is adopted in this system, guaranteeing the security of key while privacy data can be stored safely, which provides high security and scalability.

Computer application technology; Local Service; signature; Web page script; SM2 algorithm

TP311

: A

10.3969/j.issn.1003-6970.2017.02.019

左石城(1991-),男,碩士研究生,主要研究方向:信息安全;向繼(1976-),男,正研級(jí)高級(jí)工程師;王平建(1982-),男,高級(jí)工程師;趙宇航(1987-),男,助理研究員。

本文著錄格式:左石城,向繼,王平建,等. 本地提供簽名服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件,2017,38(2):84-90

猜你喜歡
網(wǎng)上銀行哈希控件
網(wǎng)上銀行法律監(jiān)管若干問(wèn)題探討
網(wǎng)上銀行風(fēng)險(xiǎn)及其管理研究
基于維度分解的哈希多維快速流分類算法
心電圖可替代網(wǎng)上銀行密碼
ASP.NET服務(wù)器端驗(yàn)證控件的使用
基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
一種基于Bigram二級(jí)哈希的中文索引結(jié)構(gòu)
Spreadsheet控件在Delphi數(shù)據(jù)庫(kù)系統(tǒng)中的編程與應(yīng)用