寬頻門戶網站身份認證系統設計

來源:互聯網
上載者:User
設計

  摘 要 研究了湖南鐵通寬頻門戶網站身份認證系統的功能需求,從統一認證、認證安全性和通用性等方面提出了一套全面的解決方案。方案利用集中使用者管理實現統一認證;利用“一次一密”,兩次認證的方式實現良好的安全性;利用WEB SERVICES架構實現系統的通用性。

  關鍵詞 統一身份認證;時間戳記;Web Services

  背景

  在以前,寬頻速度是吸引使用者的根本原因。當寬頻使用者以前所未有的速度成倍增長的時候,價格和速度已不是影響網民上網的主要因素,沒有豐富的內容使用者就不能真正享受“寬頻之旅”。湖南鐵通從各個不同的內容供應商手中獲得多種內容服務,這些服務在窄帶情況下使用者享用起來比較困難,比如線上下載、VOD點播、線上遊戲等。然後通過寬頻門戶網站進行整合,再提供給使用者。使用者通過訪問寬頻門戶網站可以享受到多種內容服務。要想從使用者處擷取使用內容的費用,寬頻門戶網站就必須要有一個良好的認證計費系統,本文主要闡述身份認證系統的設計。

  身份認證系統的目標功能

  通過對整個寬頻門戶網站的需求分析,確定了身份認證系統必須具備以下的功能:

  a)提供統一的認證途徑。寬頻門戶網站的各個內容服務系統是從不同的內容供應商手中獲得的,每個系統都有各自的使用者系統和認證方式。讓使用者每訪問一個內容服務系統就需要登入一次,顯然是使用者難以接受的認證方式。因此身份認證系統要提供一個統一的身份認證,讓使用者一次登入,可以訪問全網的資源

  b)系統具有良好的可擴充性和可整合性。寬頻門戶網站在發展過程中還會不斷地提供新的內容服務,這就要求身份認證系統具有良好的擴充性和可整合性,不僅能支援現有的內容業務系統及其現有的使用者系統,當有新的內容業務系統被部署或開發的時候,這個統一身份認證服務可以作為它的身份認證模組的形式工作,也就是說,新的內容業務系統可以不內建使用者系統,可以通過整合該服務的形式來實現等價的功能。

  c)系統提供跨平台認證的功能。各個內容業務系統各有特點,分別運行在不同的平台上,都要能和身份認證系統互動,這就要求身份認證系統提供跨平台認證的功能。

  d)系統具有良好的安全性。由於使用內容業務系統,使用者要付費,身份認證系統要保障使用者的安全。

  解決方案

  1、統一認證的兩種方式

  統一身份認證系統的核心思想是將使用者統一儲存,對應用系統統一授權,規範內容業務系統的使用者認證方式,從而達到提高整個系統的整體性、可管理性和安全性的效果。內容業務系統要想判斷某一使用者是否可以訪問自己,必須和身份認證系統進行互動。由身份認證系統負責對使用者進行集中認證。

  使用者訪問內容服務系統可以有兩種方式:通過寬頻門戶網站訪問內容服務系統,或者是直接存取內容服務系統。根據這兩種訪問方式身份認證系統要提供兩種認證方式。

  第一種認證方式:使用者直接登陸內容業務系統,內容業務系統將使用者提供的使用者名稱/密碼等轉寄給統一身份認證服務以檢驗其是否通過授權。流程如圖1所示


圖1 第一種身份認證方式

  第二種認證方式:使用者首先登入統一身份認證系統,驗證其是否為合法註冊使用者,如果是合法使用者可擷取許可權值。由於合法使用者不一定開通了所有的內容服務,所以使用這個許可權值訪問內容業務系統時,內容業務系統將根據該許可權值與統一身份認證服務進行互動,以檢驗訪問的合法性。流程如圖2所示


圖2 第二種身份認證方式

  2、安全方案

  如果將身分識別驗證憑據以明文形式從用戶端傳遞到伺服器,在同一網路的某台主機上配備有基本網路監視軟體的攻擊者可以捕獲傳遞的資訊並擷取使用者的名稱和密碼。對於這種安全威脅,身份認證系統對使用者名稱和口令進行加密,避免以明文的形式在網路上傳輸。

  但是威脅依然存在,對於普通的密碼編譯演算法,攻擊者會有辦法解密從而擷取使用者口令。即使是採用加強的密碼編譯演算法,攻擊者一時無法解密,也可以實施會話重放攻擊。對於這種安全威脅,一種解決的辦法是,當執行關鍵操作時,重新進行身份認證。比如,當使用者通過身分識別驗證後,可以進入VOD點播的頁面;當使用者指定播放某一VOD影片時,系統要求使用者重新輸入使用者名稱、口令進行再一次驗證。但是這樣做,會讓使用者頻繁輸入使用者名稱、口令,並不可取。

  更好的做法是:採取結合DES演算法,採用加入時間戳記基於MD5摘要演算法的一次一密方法對訪問使用者的口令進行加密,把使用者名稱、口令和時間戳記一起進行加密傳輸,即使攻擊者進行重放攻擊,由於時間戳記已經改變,就不能通過認證。並且在執行關鍵操作時,由內容業務系統到身份認證系統再次進行驗證,而不需要使用者重新輸入使用者名稱和口令。以使用者以第一種方式登入VOD點播系統為例,具體流程由圖3所示:


圖3 加密認證流程

  流程描述如下:

  1) 使用者登入時將使用者名稱、口令提交給VOD系統;VOD系統將使用者名稱轉寄給身份認證系統。

  2) VOD系統將使用者名稱、口令和時間戳記一起加密後形成字串PWD。

  3) 同時,身份認證系統根據得到使用者名稱查得使用者的註冊密碼,並把使用者名稱、註冊密碼、時間戳記一起加密後形成字串PASS。

  4) VOD系統把PWD發送給身份認證系統。身份認證系統比較兩者是否一致

  5) 如果一致則允許使用者進入VOD系統的頁面。使用者選擇觀看的影片

  6) VOD系統再次產生PWD,身份認證系統再次產生PASS,並再次比較兩者是否一致。如果一致,則播放影片

  3、通用介面

  為了能讓運行在不同的平台上的內容業務系統都能夠訪問身份認證系統,並且讓身份認證系統能夠不斷地整合新的內容業務系統,當身份認證系統統一認證功能和安全方面的功能後實現以後,我們利用WEB SERVICES技術架構,把身份認證系統轉換成身份認證服務。

  該服務把身份認證系統提供的各項功能用WSDL語言描述成通用的服務介面,在這個介面中描述了身份認證服務提供給內容業務系統使用的一個函數,該函數的入口參數是使用者名稱、使用者口令和內容業務系統的ID;出口參數是該使用者能否訪問該內容業務系統的字串。
以下是身份認證介面的WSDL描述:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="railwayhelperRemoteInterface" targetNamespace="http://www.railwayhelper.com/definitions/railwayhelperRemoteInterface" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.railwayhelper.com/definitions/railwayhelperRemoteInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<message name="loginRequest">
<part name="userid" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="serviceid" type="xsd:string"/>
</message>
<message name="loginResponse">
<part name="result" type="xsd:string"/>
</message>
<portType name="railwayhelperJavaPortType">
<operation name="login">
<input name="loginRequest" message="tns: loginRequest"/>
<output name="loginResponse" message="tns: loginResponse"/>
</operation>
</portType>
<binding name="railwayhelperBinding" type="tns:railwayhelperJavaPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
<soap:operation soapAction="" style="rpc"/>
<input name="loginRequest">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tempuri.org/creator.javabean.railwayhelper"/>
</input>
<output name="loginResponse">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://tempuri.org/creator.javabean.railwayhelper"/>
</output>
</operation>
</binding>
</definitions>
  在這個介面中描述了身份認證服務提供的login函數,該服務的入口參數為:userid為使用者名稱、password為使用者名稱、口令和時間戳記一起加密後得到的字串PWD、serviceid內容業務系統編號,傳回值是否允許使用者登入該內容業務系統的字串。

  不論內容業務系統運行在何種平台上,只要根據WSDL介面的描述和SOAP協議規範,把使用者名稱和PWD用SOAP訊息發送給身份認證服務,身份認證服務就會把認證結果用SOAP訊息返回個內容業務系統。內容業務系統不必瞭解認證服務是怎樣實現的,從而實現跨平台的通用認證。

   結束語

  上述的寬頻門戶網站的身份認證方案已經實際應用於了湖南鐵通寬頻門戶網站,取得了良好的效果。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。