1問題的提出
為了記錄每個用戶的行為,向用戶提供個性化服務,網站必須進行用戶識別。常規的用戶識別過程分為注冊和登錄兩個步驟。用戶首先要進行注冊,申請一個用戶賬號并設置密碼,填寫或多或少的個人信息。之后用戶在網站登錄頁面進行登錄,輸入正確的賬號和相應的密碼,向網站證明自己就是該賬號的執有人。網站用cookie等技術手段保存用戶登錄情況,用戶在網站中的一切行動將記錄在這個賬號下,比如說,他定購了一本書,或者發表了一篇文章,或者上傳了一段視頻。
每一個網站都要進行注冊和登錄是一個讓用戶非常煩惱的事情。出于安全性的考慮,大多數用戶會在不同的網站使用不同的注冊名和密碼,或者使用同樣的注冊名但不同的密碼。隨著注冊網站的增加,準確記憶自己在每一個網站的注冊名和對應密碼變成一個繁重的任務。用戶來到一個不經常訪問的網站時,他要做的第一件事情就是回憶自己在這里使用的密碼,常常有用戶因為不愿意注冊登錄而放棄嘗試一個新網站的服務。
從網站經營者的角度來說,設置注冊和登錄流程,記錄用戶賬號和密碼的目的是進行用戶識別,只是為了證實網絡那一端聲稱自己是某某的人是否真的就是某某,我們并不是對那一堆賬號和密碼感興趣。這樣就引發我們思考,是否有可能不經注冊登錄進行用戶識別?比如說當一個人聲稱他是QQ號12345的執有人時,我們能不能設法識別出他真的執有這個QQ號。如果是的話,就接受他進入我們的網站,之后他的行為就記在QQ號12345名下。
筆者在此提出一個完整而且可靠的解決方案,在不需要用戶注冊和登錄的情況下進行用戶識別,且將其命名為“基于即時通訊軟件免注冊免登錄的用戶驗證方案”,以下簡稱為雙免驗證方案。
2雙免驗證方案的實現方法
雙免驗證方案的實現方法是:利用即時通訊軟件傳遞驗證碼進行用戶身份驗證,因為只有該賬號的當前執有人才能接收到驗證碼,所以能復誦驗證碼的用戶才是該即時通訊軟件賬號的執有人。
3雙免驗證方案的實現過程
3.1目前典型的注冊界面(如圖1)

在這個界面中,用戶要填寫很多的初始內容,這些內容幾乎是每一個網站在注冊時都向用戶索取的信息。請注意,在圖1中,網站還沒有采集用戶的個人信息,所有要求填寫的項目都是用于用戶識別和密碼保護的,這樣龐大的注冊信息表會使用很多用戶放棄注冊的。
3.2常見的登錄界面(如圖2)

與注冊界面相比,這個登錄界面要求的信息就少得多,只要能正確地填寫登錄名和對應的密碼即完成用戶識別。
3.3 雙免驗證方案摒棄注冊和登錄過程,使用唯一的驗證界面完成用戶識別(如圖3):

該界面的工作流程是:
(1) 用戶選擇自己正在使用的即時通訊軟件,缺省項設為用戶群最龐大的QQ,如果網站認為自己的用戶以MSN用戶居多,也可以將MSN設為缺省項;
(2) 用戶輸入自己的賬號;
(3) 點擊“獲取驗證碼”按鈕;
(4) 系統查詢用戶表中是否已經有該用戶,如果沒有該用戶信息則生成一個驗證碼后向用戶表中添加一條新記錄,內容包括用戶賬號、當前驗證碼、驗證碼生成時間,如果用戶表中已經有該用戶信息,則生成一個新的驗證碼替換舊驗證碼;
(5) 系統向用戶的IM軟件客戶端發送最新的驗證碼;
(6) 用戶將自己客戶端收到的驗證碼復制粘貼到第二行的驗證碼輸入框中;
(7) 按下“提交驗證碼”按鈕;
(8) 系統將用戶提交的驗證碼與用戶表中記錄的驗證碼進行比對,如果兩者一致并且驗證碼的生成時間在三分鐘之內,則生成cookie接受用戶操作,否則拒絕訪問。
為了方便用戶,我們同樣可以在雙免驗證方案中加入cookie選項,讓用戶決定cookie的生存時間。(如圖4)

3.4 用戶個性化信息
有些用戶希望使用個性化的簽名而不是一個冷漠的數字ID作為自己在網站里的形象,有的用戶希望能設置個性頭像,還有的網站允許用戶設定自己喜歡的頁面配色,這就要求網站能夠記錄用戶的個性化信息,雙免驗證方案并不排斥這一點。因為,用戶的即時通訊軟件賬號是唯一的,驗證通過之后,用戶就可以在系統中自行初始化和隨時編輯自己的個性化信息。雙免驗證方案的優勢在于,可以讓系統自動從客戶即時通訊軟件客戶端讀取已公開的個性化信息作為初始的用戶信息,這樣就最大限度地減少了用戶重復填寫的工作量。而大量重復填寫正是造成用戶放棄注冊試用的最重要原因。
4對雙免驗證方案的評價
雙免驗證方案用一個即時校驗的過程取代了注冊和登錄過程,用戶對某網站的內容或者服務感興趣的話可以立即驗證身份,然后進入網站享受以前注冊登錄之后才有的服務。如果對這個網站的內容或者服務不再感興趣,用戶并不需要執行刪除賬號的流程,只要忘掉這個網站以后不再來就行了。若干時間之后,如果又來到這個網站,用戶可以像每天都登錄的用戶一樣輕松地驗證進入,并不需要冥思苦想自己的賬號和密碼,并且網站仍然可以記錄用戶的個人喜好。
用戶數據表里的驗證碼只在很短的時間內有效。每次用戶嘗試驗證時,系統都重新生成驗證碼,黑客不可能通過猜測的方法來攻入系統,因為他每一次猜錯后,驗證碼就更改了。比較而言,傳統方式下,用戶密碼是靜止地承受黑客一次又一次的攻擊,只要攻擊的次數足夠多,就一定會攻破。雙免驗證方案下,每一次驗證時驗證碼都在變化,而且長度幾乎沒有限制,所以可以肯定地說,雙免驗證系統本身是一個不可能被暴力破解的系統。
作為一個有益的附帶效應,雙免驗證方案在遭受攻擊時能立即向用戶報警。當用戶沒有嘗試驗證時卻在自己的即時通訊軟件上接收到驗證碼,這就說明有人企圖冒用其賬號進入這個使用雙免驗證方案的網站。用戶可以向網站發出警報,而網站可以監視此次攻擊,并采取相應的措施,例如將此賬號的驗證信息轉向“黑洞”,使黑客白白浪費力氣,或者暫停此IP服務請求。
要特別強調的是,雙免驗證方案沒有提升用戶賬號的安全性。用戶信息安全的短板在于即時通訊賬號,如果賬號被破解,黑客就能夠假冒用戶的身份接收雙免驗證系統的驗證碼,從而非法登錄。這就要求用戶大大提高保護即時通訊軟件賬號的意識。因為,QQ密碼被盜就不僅僅是丟失一個QQ號的問題,還涉及到所有使用雙免驗證方案的網站。
總之,雙免驗證方案能提供良好的用戶體驗,讓每一個“路過”的訪問者也能立即登錄進入網站,允許用戶臨時使用一個網站的服務,也允許用戶長時間離開后輕松回訪。從某種意義上來說,采用雙免驗證方案的網站把所有即時通訊軟件的用戶都變成了自己的注冊用戶。
參考文獻
[1] 施國君,李強. 基于雙因子認證技術的網絡身份識別[J].信息安全與通信保密,2005(11).
[2] 倪亮,等. 身份管理技術綜述[J].信息安全與通信保密,2007(11).
[3] 呂格莉,邵自然. 網絡環境下身份認證技術探析[J].現代計算機(專業版),2006(11).
[4] 李利,王秀峰. Web應用中識別用戶身份的一種方式[J].計算技術與自動化,2004(3).