999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于.NET Remoting口令系統的設計

2012-04-29 13:46:52方俊
計算機時代 2012年4期

摘要: 由于B/S模式下客戶機對服務器的驗證困難,提出了使用Remoting程序對網站的真偽進行驗證。方案實現了客戶端和服務器端的相互認證、服務器端敏感信息的安全存儲和每次認證產生不同的會話密鑰,安全分析表明,所提的方案能有效防范釣魚網站等的常見攻擊,增加了系統的安全性。方案使用.NET進行實現,證明是可行的。

關鍵詞: 身份認證; 一次性口令; Hash函數; 遠程訪問

中圖分類號:TP309文獻標識碼:A 文章編號:1006-8228(2012)04-09-03

Password Authentication System Design Based On .NET Remoting

Fang Jun

(College of International Education, Zhejiang Yuexiu University Of Foreign Languages, Shaoxing, Zhejiang 312000, China)

Abstract: In the condition of the B/S mode, the authentication server is difficult by a client. This paper puts forward to use Remoting program to verify the authenticity of Web site. The program realizes mutual authentication between the client and the server, also realizes server sensitive information safe storage. Every time authentication can produce different session keys. Safety analysis shows that the proposed scheme can effectively prevent phishing against common attack and increase the system security. The scheme is achieved by using .NET, It proved to be feasible.

Key words: Authentication; One-time password; Hash function; Remote access

0 引言

目前所使用的一次性口令認證方案大部分都是基于C/S的。一些基于B/S的方案都存在著不驗證服務器真實性的漏洞。目前國內流行的一次性口令技術是使用動態口令牌,包括硬件令牌、短信密碼、手機令牌。這些動態口令牌無需在PC端安裝軟件,也無需和PC機連接,動態口令是根據專門算法,基于事件同步和基于挑戰/應答模式而生成。用這種方式構建的安全系統難以抵制釣魚網站的攻擊[1]。隨著因特網應用的不斷深入以及電子商務和網上銀行的發展和普及,設計更加完善的適用于Web應用的一次性口令認證方案具有重要的意義。

基于Web開發的系統,都是構建在HTTP協議之上的Web應用。基于Web的應用系統,瀏覽器中顯示的內容都必須到服務器下載,因此相對于C/S的一次性口令認證方案來說,Web應用有其自己的特點。由于B/S模式下客戶機對服務器的驗證困難,因此,基于瀏覽器的Web應用給網絡釣魚攻擊者帶來了可趁之機。一旦遭受到網絡釣魚攻擊,則用戶輸入的個人信息將全部被攻擊者獲取。本文通過在客戶端安裝一個簡單的Remoting程序來驗證網站的真實性。在確定網站的真實性之后再輸入密碼,實現網站對用戶的認證,這樣可以有效地避免口令的泄密。該方案實現了每次認證都會產生不同的會話密鑰。

1 符號約定及方案描述

符號約定。

ID:用戶的身份標識;

PW:用戶口令;

Se:服務器選擇的種子;

R:隨機數,其中Ru為客戶端產生的隨機數,Rs為服務端產生的隨機數;

//:聯結運算符;

⊕:異或運算符;

H(x):安全哈希函數,H2(x)對x連續進行2次哈希運算;

U→S:x:客戶端向服務器端發送消息x。

方案描述。

本方案包括注冊和登錄認證兩個階段。

⑴ 注冊過程

用戶在安全的環境下請求注冊,用戶選擇ID、PW,服務器選擇Se;計算H(ID)、H2(PW//Se)、Se⊕H(ID,PW)、H(Se//ID//PW),在服務器端存儲H(ID)、H2(PW//Se)、Se⊕H(ID,PW)、H(Se//ID//PW);客戶端安裝Remoting程序,完成注冊。

⑵ 認證過程

本方案的身份認證過程如圖1所示。

圖1身份認證過程

① 用戶在頁面中輸入ID點擊登錄,頁面中的Javascript代碼計算H(ID)、Ru和H(ID//Ru),將H(ID//Ru) 保存在客戶端的臨時文件中。

U→S:H(ID)、H(ID//Ru),認證請求。

② 服務器端查找H(ID),若該H(ID)不存在,服務器端斷開與客戶端的會話;否則,服務器端查找數據表中對應的Se⊕H(ID//PW)、H(Se//ID//PW),計算隨機數Rs、C2=Rs⊕H(Se//ID//PW),令C1=Se⊕H(ID//PW),通過Cookie將C1、C2保存到客戶端,并將H(ID//Ru)保存在服務器端的臨時文件中。

③ 用戶在頁面中點擊按鈕啟動客戶端Remoting程序,讀取服務器端保存的H(ID//Ru)并與客戶端所保存的信息比較,若一致,服務器為真,彈出提示信息,用戶可以進一步輸入口令,同時刪除客戶端和服務端的H(ID//Ru)信息;否則,提示用戶不能在頁面上輸入口令。

④ 用戶在頁面輸入PW,頁面中的Javascript代碼計算H(ID,PW),從客戶端Cookie中讀取C1、C2;計算Se= C1⊕H(ID,PW),Rs = C2⊕H(Se//ID//PW);計算認證依據H(PW//Se);

U→S:C3 。C3=Rs⊕H(PW//Se)。

⑤ 服務器端收到C3后,計算H(Rs⊕C3),將得到的H2(PW//Se)與服務器端保存的H2(PW//Se)比較,一致說明用戶合法,否則為非法用戶。認證過程結束。

⑥ 在接下去的服務器端和客戶端的相互通信中,使用雙方共有的Rs值作為會話密鑰進行加密通信。

2 基于.NET的一次性口令方案的實現

IC卡認證、生物認證都需要專用終端認證設備的配合。CA認證雖然是目前最好的認證方法,但必須以完整的CA體系為基礎,需第三方公證,技術復雜、成本高,因而應用范圍受到很大限制。而一次性口令的優點是無需第三方公證。

2.1 系統環境與體系結構

系統使用VS2008開發工具,編程語言使用C#,使用Internet信息服務器(IIS)作為Web服務器,客戶端使用IE6.0或更高版本的瀏覽器。

系統采用三層體系結構,即表示層、邏輯層、數據層,如圖2所示。表示層是為客戶提供應用服務的圖形界面,并提供具有交互功能的用戶操作界面,將用戶向服務器提交的訪問反饋結果以Web頁的形式返回給客戶端瀏覽器。客戶端使用了嵌入在HTML頁中的JavaScript代碼實現Hash運算、異或運算和隨機數的生成。邏輯層處理并封裝了基于Web的應用模塊,控制系統的流轉。數據層負責定義、維護、訪問、更新數據,滿足服務對數據的請求。

圖2三層結構模型

頁面間數據傳遞使用Querystring 方法,這種方法將要傳遞的數據附加在網頁地址(URL)后面進行傳遞。使用Querystring 方法的優點是實現簡單,不使用服務器資源;缺點是傳遞的值會顯示在瀏覽器的地址欄上。Cookie可以在頁面之間傳遞少量信息,它存儲在客戶端的文本文件中。

2.2 .NET Remoting技術概述[2]

在.NET平臺上,為了使Windows程序運行在一個應用程序域中的進程與另外一個應用域中的進程通信,可以使用Remoting。Remoting是一種分布式編程的技術,主要用于管理跨應用程序域的同步和異步RPC會話。在默認情況下,Remoting可使用 HTTP/TCP 協議進行信息通訊,并使用 XML 編碼的SOAP 或二進制消息格式進行數據交換。Remoting 提供了非常靈活和可擴展的編程框架,并且可以管理對象的狀態。Remoting跟Web服務不同,它并不依賴于IIS,用戶可以自己開發并部署宿主服務器,只需要服務器支持Framework。.NET Remoting的體系結構如圖3所示。

圖3.NET Remoting體系結構

Remoting程序包括遠程服務對象的創建、主應用程序和客戶端應用程序。遠程服務對象提供了服務器端所需的功能,此處實現的功能是根據H(ID)讀取服務器端的H(ID//Ru)。接下來創建一個主應用程序,其中創建一個使用端口的HttpChannel對象,注冊通道,然后在Remoting平臺上注冊遠程服務類,最后生成可執行文件。客戶端應用程序是一個標準的Remoting應用程序,主要功能是獲取客戶端臨時文件中的H(ID//Ru)值;連接遠程主機,獲取服務器端的H(ID//Ru),并與客戶端的值比較,若一致,服務器為真,否則服務器為假。

2.3 “異或”運算

C#程序語言的“異或”運算將參數強制轉換為相應的數據類型(二進制),隨后查看兩個表達式的二進制表示形式的值,并執行按位“異或”運算。然后再將結果的二進制碼轉換回字符。此時,可能會出現無法顯示的“控制字符”。因此,本文采用圖4所示步驟進行“異或”運算,對字符先進行Reed-Solomon編碼[3],再將二進制的編碼形式變為十進制整數,將兩個十進制數進行“異或”運算,最后將結果反變換成字符。

圖4“異或”運算示意圖

2.4 Cookie值的讀取

Cookie的格式實際上是一段純文本信息,由服務器隨著網頁一起發送到客戶端,并保存在客戶端硬盤指定的目錄中。可以使用嵌入在HTML中的Javascript代碼讀取Cookie值,例如,設Cookie的值為C1,(C1是包含32個字符的字符串)則其代碼如下。

var cookieString = new String(document.cookie);

var cookieHeader = "C1=";

//indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置。

var beginPosition = cookieString.indexOf(cookieHeader) ;

if (beginPosition != -1)

{

returnC1 = cookieString.substring(beginPosition+3, beginPosition +35);

}

2.5 登錄界面

本方案基本不改變用戶登錄系統的使用習慣,只是在用戶輸入密碼前加入驗證服務器的步驟,如果返回驗證成功的窗體則用戶可以在頁面繼續輸入密碼。該窗口與Windows的三種對話框是完全不同的,對話框的用戶界面是腳本編寫者不能修改的,且現在瀏覽器均不支持windows.open()方法的titlebar屬性[2],即該窗體無法通過腳本的方式創建,如圖5(c)所示。

(a)(b)(c)

圖5用戶登錄界面和服務器驗證成功時彈出的提示窗體

點擊頁面中的“驗證服務器”按鈕,則網頁中的Javascript代碼即可啟動Remoting程序。啟動Remoting程序的Javascript代碼如下:

//啟動Remoting程序

function exec ()

{

var command=document.getElementsByName("path")[0].value//path為Remoting程序的路徑

var wsh = new ActiveXObject('WScript.Shell');

//創建客戶端程序執行對象

if (wsh) wsh.Run(command);

//調用Run命令執行exe程序,參數是一個exe文件的路徑

}

3 安全性分析

重放和小數攻擊。瀏覽器和服務器之間傳遞的用于驗證的H(PW//Se) 數據用隨機數Rs“異或”加密保護,每次傳遞的值均不相同。認證依據H(PW//Se) 不在網上直接傳輸,因此本方案能抵御重放攻擊。同時,由于本方案非序列口令,因此本方案可屏蔽小數攻擊。

冒充(冒充合法用戶)攻擊。當攻擊者截獲了用戶登錄時的信息H(ID),登錄服務器返回C1、C2值。由于用戶口令不在網上傳輸,也不在任何系統中保存,攻擊者無法計算H(ID//PW)獲取Se和Rs,因此,就無法計算認證依據H(PW//Se),也無法從C3獲得該值,冒充失敗。

攻擊者冒充服務器。用戶登錄假冒的網站后,可能輸入用戶標識ID。此時用戶啟動Remoting程序,該程序將與真實的服務器建立通道讀取H(ID//Ru),并從客戶端讀取H(ID//Ru)進行比較,但此時真實的服務器端并無H(ID//Ru)值存在,Remoting程序無法完成對網站的驗證,攻擊者無法冒充服務器。因此本文所提的方案可以有效地防止釣魚網站的攻擊。

如果攻擊者竊聽了認證過程中的C3,攻擊者使服務器崩潰,則服務器重啟后恢復到認證前狀態,攻擊者可重放C3登錄系統。但在其后的通信中必須使用會話密鑰Rs進行加密通信,而攻擊者無法獲得Rs值,而且每次認證產生的隨機數Rs值不同,通信無法繼續。因此本方案可以抵御服務器崩潰攻擊和會話劫持攻擊。

在本方案中,口令等敏感數據,既不在網絡上傳輸也不存儲于任何地方,服務器端只存儲認證依據H(PW//Se)的哈希值。由于認證過程中網上傳輸的信息均有隨機數Ru、Rs參與,沒有明文信息在網絡上傳輸,并且在合法的通信連接建立以后進行加密通信,因此,攻擊者無法實施中間人攻擊。

4 結束語

本文方案使用Remoting程序實現了B/S模式下對網站真偽的鑒別,每次登錄服務器時網上傳輸的認證值均不同、實現了客戶和服務器的雙向認證,有效地防止了網絡釣魚等常見攻擊。本方案的計算開銷小,只需對認證依據H(PW//Se)進行一次哈希運算并與服務器端的H2(PW//Se)比對;且用戶名和密碼不在系統存儲,用戶的身份得到了保護,提高了系統的安全性。由于認證時只進行簡單哈希計算和“異或”運算,避免了目前一些方案在認證時使用的冪指數運算,減少了系統的開銷。

參考文獻:

[1] 王貴智.網銀動態口令牌應用的安全性[J].中國金融電腦, 2010.11:29~31

[2] Christian N, Bill E, Jay G著. C# 高級編程 [M]. 清華大學出版社,2006.

[3] 方俊, 趙英良. 基于RBF神經網絡的一次性口令認證方案[J]. 計算機工程,2011.37(9):157~159

主站蜘蛛池模板: 亚洲成人动漫在线观看 | 国产在线自揄拍揄视频网站| 色综合热无码热国产| 亚洲色中色| 亚洲香蕉久久| 亚洲一级毛片免费看| 一本大道东京热无码av| 思思热在线视频精品| 成人福利在线视频| 国产区在线观看视频| 毛片免费网址| 88国产经典欧美一区二区三区| 青青操视频在线| 国产精品亚洲天堂| 国产视频 第一页| 国产一区二区福利| 色噜噜在线观看| 免费观看亚洲人成网站| 高清久久精品亚洲日韩Av| 亚洲中文字幕无码爆乳| 欧美、日韩、国产综合一区| 国产综合网站| 丰满人妻久久中文字幕| 国产久草视频| 国产人成在线观看| 一级毛片视频免费| 欧美啪啪一区| 伊人精品视频免费在线| 色男人的天堂久久综合| 欧美在线伊人| 精品福利视频网| 在线欧美a| 黄色网址免费在线| 国产成人久久777777| 国产黄在线免费观看| P尤物久久99国产综合精品| 欧美中文字幕无线码视频| 亚洲综合精品第一页| 精品少妇人妻一区二区| 欧美笫一页| 天堂va亚洲va欧美va国产| a级毛片毛片免费观看久潮| 99国产精品免费观看视频| 日日拍夜夜操| 欧美一区精品| 国产成人久久综合777777麻豆| 国产女人综合久久精品视| 亚洲天堂.com| 亚洲精品黄| 国产精品视频白浆免费视频| 亚洲日韩AV无码一区二区三区人 | 香蕉在线视频网站| 国产真实乱了在线播放| 91精品日韩人妻无码久久| 久久国产精品国产自线拍| 国产丝袜无码精品| 国产精品播放| 国产福利大秀91| 欧美亚洲国产一区| 国产精品三级专区| 国产在线观看一区二区三区| 91在线视频福利| 婷婷六月在线| 97综合久久| 亚州AV秘 一区二区三区| 中文纯内无码H| AV在线麻免费观看网站| 中文纯内无码H| 国产网友愉拍精品视频| 国产麻豆aⅴ精品无码| 欧美一级夜夜爽www| 欧美日韩精品一区二区视频| 亚洲综合天堂网| 国产成人av一区二区三区| 亚洲成人网在线观看| 欧美午夜网| 久久激情影院| 四虎国产在线观看| 欧美a网站| 国产精品青青| 欧美激情,国产精品| 伊人婷婷色香五月综合缴缴情|