使用USB Key(加密狗)實現身份認證

來源:互聯網
上載者:User

首先你需要去買一個加密狗裝置,加密狗是外形酷似隨身碟的一種硬體裝置! 這裡我使用的堅石誠信公司的ET99產品

公司項目需要實現一個功能,就是客戶使用加密狗登入, 客戶不想輸入任何密碼之類的東西,只需要插上類似U盤的加密狗就驗證身份登入! (當然如果隨身碟掉了,也就不安全了哦), 當時這個分配給我的時候,就給了我個ET99裝置(類似於隨身碟那東西),和官方網站! 去官方下載資料(API & DEMO & DOC ),當時我自己心裡也沒有底,只有先試試吧! 正好今天“試”出來了,和大家分享一下!

 

ET99的安全性:

  1. 登入使用者必須先輸入自己的USER PIN進行驗證後才有許可權完成計算。
  2. USER PIN有最大重試次數限制,連續輸入錯誤會鎖死。從而防止硬體丟失後,被不合法的使用者反覆重試。
  3. 儲存在ET99多功能鎖中的密鑰不能被任何人擷取。
  4. 使用者登入時必須具備硬體和保護硬體的USER PIN雙重因子時才能登入。有硬體,不知道USER PIN或者知道USER PIN,沒有硬體,都是沒有辦法登入的。比傳統的使用者名稱和密碼方式大大增加的登入使用者的安全性。(類似於銀行的U盾)
  5. 保障了系統開發商的利益。使用硬體登入,不存在使用者名稱密碼共用的問題

 

ET99的認證方式

在整個認證過程中,ET99採用衝擊響應的認證方式。當需要在網路上驗證使用者身份時,先由用戶端向伺服器發出一個驗證請求。伺服器接到此請求後產生一個隨機數並通過網路傳輸給用戶端(此為衝擊)。用戶端將收到的隨機數提供給ET99,由ET99使用該隨機數與儲存在ET99中的密鑰進行HMAC-MD5運算並得到一個結果作為認證證據傳給伺服器(此為響應)。與此同時,伺服器也使用該隨機數與儲存在伺服器資料庫中的該客戶密鑰進行HMAC-MD5運算,如果伺服器的運算結果與用戶端傳回的響應結果相同,則認為用戶端是一個合法使用者。

 

如何開始:

1、在運行ET99全功能Active控制項和ET99網頁安全Active控制項之前,請把FT_ET99_API.dll、ET99_MOD.dll和ET99_FULL.dll拷貝到系統目錄下(一般位於windows系統中的system32目錄下),然後註冊全功能Active控制項和網頁Active控制項,命令列命令如下:regsvr32 ET99_MOD.dll和 regsvr32 ET99_FULL.dll.

2. 初始化裝置:


  

到這一步還沒有結束呢 , 我操作的時候就以為結束了,部署官方的et99_sample_csharp_bs樣本程式 , 怎麼也登入不進去! 因為這裡還沒有寫入Key!

而就是寫入Key到資料庫和ET99裝置中這裡需要我們來開發! (之前不清楚AspInit幹什麼,一頭霧水)!

 

1. 實現AspInit頁面功能, 把key和使用者名稱寫入到ET99和資料庫中

2.第一步實現了就可以去登入試試了

3. 前面不是說PIN為16位嗎? 怎麼這裡你才輸入4位呢? 這樣的話,那個客戶願意記住16位的PIN呢? 就需要自己寫個修改PIN頁面了! 第一次修改的時候,你還得輸入16位數字 PIN 碼,以後就不用了!

4. 現在總是大功告成了吧,還沒呢?不是說要自動登入嗎?怎麼還要我點擊登入呢?這個這個,好像不行吧!其他網站也是只有記住使用者名稱和密碼啊?好像還是需要去點擊一下登入按鈕吧! 老大說: "就先這樣吧!"。還好今天早上,突然想到了思路, 使用者第一次成功登入後,把PID,PIN寫入Cookie裡面,當下次登入的時候直接在Cookie裡面擷取,在使用JS調用登入按鈕的click()事件即可! 可是很多人說cookie不安全啊,呵呵,就算別人擷取到cookie裡面的值又想怎麼, ET99裝置他總沒有! 必須擁有PID+PIN+ET99裝置才可以成功登入! 有個小插曲,做自動登入的時候,因為onload事件調用登入按鈕的click()事件形成了死迴圈,一直在onload一直在click()!最後在前台JS聲明個count計數變數,後台登入成功之後在把count值修改一下即可! 到此基本結束! 
 
結語:
這一周基本都在做這個!其中也遇到過很多錯誤! 很感謝http://www.cnblogs.com/novawu/archive/2010/02/05/1664444.html這位大哥寫的ET99Tools,個人覺得比官方的還好!特別是異常處理那塊!(當然我程式中異常處理也是直接copy他的代碼過去 ET99_API.cs), 官方的文檔也要仔細的看,當時我就是由於走馬觀的看了看,程式拋出的異常都不知道什麼情況,比如執行有些函數必須的前置條件,結果前置條件都沒有執行,當然程式會出錯! 另:winform程式是引用ET99_MOD.dll,而asp.net程式則是引用ET99_FULL.dll,之前也是DLL引用錯了,一直在錯!
 
來源程式+官方資料+ET99Tools(上面連結哪位仁兄寫的)下載
 
Technorati 標籤: ET99,加密狗,堅石誠信,usbKey,身份認證,自動登入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.