《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > WDPF系统中认证授权流程的设计与实现
WDPF系统中认证授权流程的设计与实现
电信网技术
张辉华 李炜
摘要: WDPF(Wireless Digital Picture Frame,无线数码相框平台)系统是一个平台与终端紧密结合的新型业务。安全性是所有可以用来对资源或信息进行保护和验证的机制。认证授权处于业务核心层,用于识别用户身份,允许特定用户访问特定资源或信息,起访问控制作用,保证系统资源和信息的安全。该文介绍了业务平台中不同模块采用不同认证方式,重点介绍基本认证、摘要认证和OAuth认证在业务平台中的设计与实现。
關鍵詞: 无线网络 WDPF
Abstract:
Key words :

1  引言

無線數(shù)碼相框平臺是一個綜合平臺,提供對類無線數(shù)碼相框終端的管理、類無線數(shù)碼相框終端與平臺接入能力支撐、類無線數(shù)碼相框終端相關業(yè)務加載運行能力,其業(yè)務模式包含親情速遞和G3傳媒等。親情速遞是一種以無線數(shù)碼相框為載體,實現(xiàn)隨時隨地照片分享,同時附加天氣預報、熱點資訊免費增值服務的業(yè)務,是進入家庭信息化領域的重要手段。G3傳媒則以親情速遞業(yè)務為基礎,可以實現(xiàn)廣告在線發(fā)布和終端遠程管理,打造一種新型的廣告?zhèn)髅侥J?。無線數(shù)碼相框終端是一個具備移動通信模塊的數(shù)碼相框,是通過液晶屏幕向用戶顯示電子照片的小型電子類消費產(chǎn)品??煞胖迷诟鞣N地方(如家中、辦公室、車內等)用作照片的展示。無線數(shù)碼相框業(yè)務系統(tǒng)的結構如圖1所示。

圖1  無線數(shù)碼相框業(yè)務系統(tǒng)結構

無線數(shù)碼相框業(yè)務系統(tǒng)主要包括接入?yún)f(xié)議適配層、業(yè)務核心層和發(fā)送協(xié)議適配層。安全性是所有可以用來對資源或信息進行保護和驗證的機制。授權管理處在業(yè)務核心層,用于識別用戶身份,允許特定用戶訪問特定資源或信息,起訪問控制作用,保證系統(tǒng)資源和信息的安全。

無線數(shù)碼相框平臺業(yè)務包含以下多種認證授權方式:

(1)用戶門戶和管理門戶采用用戶名和密碼進行認證。
  (2)平臺與終端采用HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)Digest的方式進行認證。
 ?。?)平臺與第三方應用采用OAuth的方式進行認證。
  (4)平臺與短信網(wǎng)關采用CMPP(China Mobile Peer to Peer,中國移動點對點協(xié)議)的認證方式。
 ?。?)平臺與彩信中心采用MM7(Multimedia Message,多媒體消息即彩信)的認證方式。
  (6)平臺與BOSS(Business & Operation Support System,業(yè)務運營支撐系統(tǒng))采用BOSS規(guī)定的認證方式。

由于文章篇幅限制,本文只介紹前3種認證方式的設計和實現(xiàn)。

2  認證授權流程設計與實現(xiàn)

2.1  基于用戶名密碼的認證

HTTP基本認證應用在Web Portal,是目前最常見的用戶身份認證的方式之一。無線數(shù)碼相框平臺用戶門戶和管理門戶都涉及用戶名密碼登錄,使用HTTP基本認證。用戶登錄門戶時輸入正確用戶名密碼即可進入自己的頁面??紤]到機器人登錄和密碼截取等因素,在一般用戶名密碼驗證的情形下,對以下幾點進行了增強:

(1)驗證碼校驗

驗證碼是一種區(qū)分用戶是計算機和人的公共全自動程序??梢苑乐箰阂馄平饷艽a,有效防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登錄嘗試。

(2)密碼再加密

表單提交事件前對輸入的密碼再加密,防止密碼在提交時被截獲。移動領域基于密碼的認證安全性可以得到保證,只要相應的密鑰建立方案合理有效。類似地,密碼再加密也可以采用合理有效的密鑰建立協(xié)議。對于WDPF系統(tǒng)門戶的密碼再加密使用常見加密算法即可,否則會舍本求末。

(3)限制密碼域使用

雖然在密碼域中已經(jīng)將所輸入的字符以掩碼形式顯示了,但是它并沒有實現(xiàn)真正保密,因為用戶可以通過復制該密碼域中的內容,并將復制的密碼粘貼到其他文檔中查看到密碼。為實現(xiàn)密碼的真正安全,可將密碼域的復制功能屏蔽,同時將密碼域的掩碼符號也進行改變。實現(xiàn)密碼域的內容禁止復制的功能主要是通過控制其Oncopy,Oncut,Onpaste事件實現(xiàn)的。

。

此外,提高基本認證安全性措施還可以綁定用戶手機使用一次性隨機碼,安裝密碼域安全插件等。

2.2  基于HTTP摘要的認證

為了保證業(yè)務終端和服務器之間交互的安全性,業(yè)務規(guī)范中采用HTTP Digest方式進行終端注冊和消息保護。在該過程中,雙方需要有特定的密鑰對消息頭內容進行摘要和對摘要進行認證。通過此方式,終端和服務器對彼此進行身份認證,并保證消息防篡改。HTTP Digest摘要認證請求基于Diameter基本協(xié)議實現(xiàn)。

Diameter基本協(xié)議為移動IP(Internet Protocol,網(wǎng)際協(xié)議),網(wǎng)絡接入服務等應用提供最基本的服務(如用戶會話、計費等),具有能力協(xié)商、差錯通知等功能。協(xié)議元素由眾多命令和AVP(Attribute-Value Pair,屬性值對)構成,可以在客戶機、代理、服務器之間傳遞鑒別,授權和計費信息。但是不管客戶機、代理還是服務器,都可以主動發(fā)出會話請求,對方給予應答,所以也叫對等實體之間的協(xié)議。命令代碼,AVP值和種類都可以按應用需要和規(guī)則進行擴展。

通過使用HTTP Digest方式進行鑒權,完成客戶端和服務器間的雙向認證,系統(tǒng)默認使用MD5摘要算法。

2.2.1  摘要計算算法

(1)客戶端請求服務器的請求消息摘要計算算法如下:

response=MD5(MD5(A1)“:”unq(nonce-value)“:”nc-value“:”unq(cnonce-value)“:”unq(qop-value)“:”MD5(A2))。
  A1=unq(username-value)“:”unq(realm-value)“:”passwd。
  Qop=auth或無值時,A2=Method“:”digest-uri-value。
  Qop=auth-int時,A2=Method“:”digest-uri-value“:”MD5(entity-body)。

(2)服務器返回客戶端的響應消息摘要計算算法如下:

respauth=MD5(MD5(A1)“:”unq(nonce-value)“:”nc-value“:”unq(cnonce-value)“:”unq(qop-value) “:”MD5(A2))。
  A1=unq(username-value)“:”unq(realm-value)“:”passwd。
  Qop=auth或無值時,A2=“:”digest-uri-value。
  Qop=auth-int時,A2=“:”digest-uri-value“:”MD5(entity-body)。

其中,Method=GET;unq(X)代表去掉X前后的引號;Entity-body代表HTTP請求的消息體;Passwd代表客戶端和服務器間共享的私鑰。

2.2.2  摘要認證流程

當終端需要與WDPF進行業(yè)務交互時,可通過Digest Verify接口從WDPF獲得終端摘要認證消息的驗證結果。

(1)終端組裝Digest_Verify.REQ消息給WDPF。

(2)WDPF執(zhí)行摘要認證消息的計算和摘要認證結果的對比,WDPF將執(zhí)行結果Result Code AVP封裝在Digest_Verify.RES消息返回給終端。

實現(xiàn)HTTP Digest請求使用以下3組Diameter命令(見表1)。

表1  摘要認證Diameter消息

●CER/CEA:在傳送連接建立時,兩個Diameter節(jié)點進行交換的第一個Diameter消息為CER/CEA。該消息包括節(jié)點的標識和它的能力(協(xié)議版本號,支持的Diameter應用,支持的安全機制等)。

●DWR/DWA:一旦傳送層或應用層發(fā)生故障,Diameter需要立即發(fā)現(xiàn)并采取正確的行動。Diameter檢測故障的機制基于應用層監(jiān)督。當兩個Diameter節(jié)點建立通信時,如果一個節(jié)點發(fā)送請求,并在規(guī)定的時間內沒有收到應答,就可以檢測到傳送層或應用層出現(xiàn)了故障。如果沒有定期的通信,就無法檢測到潛在的故障。通過在Diameter節(jié)點發(fā)送DWR消息,檢測傳送層和應用層,從而解決了上述問題。若沒有收到DWA,則可以斷定有故障發(fā)生。

●DVR/DVA:以上兩組Diameter消息中,CER/CEA保證了節(jié)點有權限和服務器進行能力交互,DWR/DWA保證了客戶端和服務器之間鏈路的順暢,在此基礎之上DVR/DVA消息才是真正實現(xiàn)摘要認證,客戶端攜帶Digest-Username AVP,Digest-Realm AVP,Digest-Nonce AVP等RADIUS(Remote Authentication Dial In User Service,遠程認證撥號用戶服務)應用于Digest認證的擴展,根據(jù)客戶端和服務器間的雙向認證實現(xiàn)HTTP Digest的算法計算應答認證值并存儲在Digest-Response-Auth AVP值域通過DVA消息返回。

2.3  基于OAuth的認證授權

數(shù)碼相框平臺圖片社區(qū)提供數(shù)碼相框終端圖片上傳、同步、存儲、欣賞和分享等基本功能,也可以整合第三方應用,比如Flickr,又拍網(wǎng)等圖片應用,Google地圖,日歷等應用,還可以作為獨立的應用開放API提供給數(shù)碼相框平臺其他模塊或其他網(wǎng)站使用。無論作為第三方應用的提供者還是消費方,用戶需要授權第三方應用使用自己的數(shù)據(jù)或資源,傳統(tǒng)的用戶名口令授權容易被截獲用戶名和密碼,泄露用戶信息,安全性很難得以保證。

OAuth協(xié)議為用戶資源的授權提供了一個安全的、開放而又簡易的標準。與以往的授權方式不同之處是OAuth的授權不會使第三方觸及到用戶的賬號信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請獲得該用戶資源的授權,因此OAuth是安全的。同時,任何第三方都可以使用OAuth認證服務,任何服務提供商都可以實現(xiàn)自身的OAuth認證服務,因而OAuth是開放的。業(yè)界提供了OAuth的多種實現(xiàn)如PHP,JavaScript,Java,Ruby等各種語言開發(fā)包,大大節(jié)約了程序員的時間,因而OAuth是簡易的。目前,互聯(lián)網(wǎng)很多服務如Open API,很多公司如Google,Yahoo,Microsoft等都提供了OAuth認證服務,這些都足以說明OAuth標準逐漸成為開放資源授權的標準。OAuth認證流程如圖2所示。

圖2   圖片社區(qū)OAuth認證流程

(1)每步執(zhí)行信息

●消費方(第三方應用)向圖片社區(qū)(OAuth服務提供商)請求未授權的Request Token。向Request Token URL發(fā)起請求,請求需要帶上的參數(shù)見圖2。
  ●圖片社區(qū)同意消費方的請求,并向其頒發(fā)未經(jīng)用戶授權的oauth_token與對應的oauth_token_secret,并返回給消費方。
  ●消費方向圖片社區(qū)請求用戶授權的Request Token。向User Authorization URL發(fā)起請求,請求帶上上步拿到的未授權的token與其密鑰。
  ●圖片社區(qū)將引導用戶授權。該過程可能會提示用戶,你想將哪些受保護的資源授權給該應用。此步可能會返回授權的Request Token也可能不返回。如Yahoo OAuth就不會返回任何信息給消費方。
  ●Request Token授權后,消費方將向Access Token URL發(fā)起請求,將上步授權的Request Token換取成Access Token。請求的參數(shù)見圖2,這個比第一步A多了一個參數(shù)就是Request Token。
  ●圖片社區(qū)同意消費方的請求,并向其頒發(fā)Access Token與對應的密鑰,并返回給消費方。
  ●消費方以后就可以使用上步返回的Access Token訪問用戶授權的資源。

圖片社區(qū)通過以下4個步驟來完成認證授權并訪問或修改受限資源的流程:

①獲取未授權的Request Token。通過訪問http://home-g3.com/request_token獲取未授權的Request Token,返回值包括未授權的Request Token和對應的Request Token Secret。

②請求用戶授權Request Token。獲得Request Token之后,需要請求用戶授權該Request Token。你需要將瀏覽器跳轉到http://home-g3.com/authorize(如果無法自動跳轉,則需要提示用戶手工跳轉)。這會是一個圖片社區(qū)上的頁面,提示用戶授權給你的應用,以允許你的應用訪問該用戶在圖片社區(qū)上的信息。跳轉后用戶會看到請求授權的頁面,用戶可以選擇同意或者拒絕授權。

③使用授權后的Request Token換取Access Token。用戶完成授權后,第三方應用可以通過訪問http://home-g3.com/access_token,將已授權的Request Token換取Access Token。Access Token將被用于訪問或修改受限資源。返回值包括授權的Access Token,對應的Access Token Secret。

④使用Access Token訪問或修改受保護資源。獲得Access Token之后,第三方應用就可以使用Access Token訪問或修改受保護的資源。

3  結束語

根據(jù)數(shù)碼相框業(yè)務平臺不同模塊的特性,采取不同的認證方式并進行一定的加強,保證了不同模塊功能的安全以及一定的簡易性。用戶登錄部分采用驗證碼校驗、密碼再加密和加強的密碼域,HTTP摘要認證采用Diameter協(xié)議實現(xiàn),第三方應用使用圖片社區(qū)服務基于OAuth協(xié)議實現(xiàn)等,不但符合各自性能要求,而且保障各自的安全性。
 

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。

相關內容