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

單點登錄(SSO)系統的設計與實現

2008-12-31 00:00:00陳淥漪管小清
電腦知識與技術 2008年25期

摘要:該文設計了一種適用于B/S結構的,復雜度和安全性適中的SSO協議,它在設計上吸取了很多Kerberos和CAS的設計思想,比如Kerberos協議的票據與CAS協議中的重定向和Cookie管理技術。它的特點有:使用加強的密碼校驗協議,不需傳輸密碼或加密密碼即可完成校驗;采用簡化的Kerberos票據管理技術;增加票據有效性的檢驗;由于鑒權服務器和應用服務器之間使用對稱密碼,所以在票據的加密時,使用主密鑰分散技術,更安全的保護主密鑰;改進Kerberos票據,增加application server sequence number,與時間戳共同解決重傳攻擊問題。

關鍵詞:單點登錄;服務票據;重定向

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)25-1457-03

Design and Realization of the system on Single Sign On

CHEN Lu-yi, GUAN Xiao-qing

(Beijing Electronic Science and Technology Vocational College, Beijing 100021, China)

Abstract: This paper illustrates a SSO protocol suitable for B/S structure and of appropriate complication and security level. It reflects the design principles of Kerberos and CAS, for example, instruments under Kerberos protocol, redirection in CAS and Cookie managing techniques. Its features include: enhanced code checking agreement performing checks without transmitting password or pin; simplified Kerberos instrument managing techniques; instrument validity checking; safer protection master key by using master key allocation technique for coding instruments since symmetric code is used between authorization server and application server; improved Kerberos instruments, increasing application server sequence number.

Key words: Single Sign On; service ticket; redirection

1 引言

單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。它包括可以將這次主要的登錄映射到其他應用中用于同一個用戶的登錄的機制。

當用戶第一次訪問應用系統1的時候,因為還沒有登錄,會被引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份校驗,如果通過校驗,應該返回給用戶一個認證的憑據——ticket;用戶再訪問別的應用的時候就會將這個ticket帶上,作為自己認證的憑據,應用系統接受到請求之后會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應用系統2和應用系統3了。

2 假定需求

為一公司設計一個單點登錄系統,集成公司內部的幾個子系統,包括財務系統,內部資料訪問系統等, 要求用戶從瀏覽器登錄一次即可以同樣身份登錄其他系統,需要有權限管理和訪問控制。

3 網絡模型

各部分說明如下:

Application Servers:應用服務器,為用戶提供服務, 簡稱S。在用戶登錄后需要維護用戶的信息,便于其他應用服務器使用。

Authentication Server:鑒權服務器,為應用服務器提供鑒權服務,存儲了用戶名和密碼,簡稱AS。

Directory Server:目錄服務器,為AS提供用戶身份檢索服務,簡稱DS。

Browser:用戶,簡稱C。

每個S都應該在應用服務器(AS)注冊,由于S的數目不會太多,可以為每個S與AS維護一個對稱密碼以便于傳輸加密信息。同時為每個S維護一個sequence number,分別存儲與應用服務器和鑒權服務器,便于預防重傳攻擊。

各個應用服務器根據各自用戶信息進行訪問和權限控制, 用戶信息由用戶第一個登錄的應用服務器得到。

4 設計思想

將適用于C/S結構的Kerberos協議與CAS協議中的重定向和Cookie管理技術結合,產生出一種適用于B/S結構的,復雜度和安全性適中的安全協議。具體為:

使用加強的密碼校驗協議,不需傳輸密碼或加密密碼即可完成校驗;

采用簡化的Kerberos票據管理技術;

增加票據有效性的檢驗;

由于鑒權服務器和應用服務器之間使用對稱密碼,所以在票據的加密時,使用主密鑰分散技術,更安全的保護主密鑰;

使用Cookie保存票據,用url參數進行重定向以實現單點登錄;

用時間戳和sequence number共同解決Kerberos協議的重傳攻擊問題。

5 詳細設計

交互流程如圖2所示。

下面分別詳細描述各個過程。

5.1 密碼驗證(Password Validation)

5.1.1 操作步驟

Step I,client send username+url to authentication server

Step II, AS:

Step III, authentication server send e_ra to client

Step IV, client decrypt e_ra and send response to AS

Step V, C-->AS: e_rb

Step VI, authentication server decrypt e_rb and validate the password

5.1.2 流程描述

1) 客戶端使用Java Applet來使用戶輸入用戶名密碼。用戶輸入之后,將用戶名和請求的url傳送至鑒權服務器;

2) 鑒權服務器從數據庫中提取出該用戶密碼,根據用戶名,密碼,和url派生出一個pw_key,派生算法可以使用des_cbc_md5(ref: RFC 1510)或者sha;

3) 生成一隨機數ra;

4) 用pw_key加密隨機數送至客戶端Applet;

5) 客戶端Applet用與鑒權服務器同樣的方法派生出pw_key1,并用之解密出ra',然后將ra'減一與用戶名url組合后,加密送至鑒權服務器;(之所以再次送出用戶名和url,是因為處在一個分布式多用戶多進程的環境中,這樣做可以實現多個用戶的多個鑒權請求同步進行)

6) 服務器解密數據,并提取出rb,看是否與ra-1相同,若相同則證明用戶輸入的密碼正確,若不同則鑒權失敗。

5.2 生成票據(Generate Ticket:主要由Authentication Server來完成)

5.2.1 操作步驟

Step I, Build service ticket

Step II, Derive server master key

Kc1 = PBOC(server_master_key, ServerID)

Kc = PBOC(Kc1, session_key)

Step III, encrypt srvice ticket

5.2.2 流程描述

1) 生成票據

其中各屬性意義如下:

Ticket ID:標識一個唯一的service ticket。

Random key:用于數據有效性檢驗。這個key在Kerberos協議中的主要目的是用于CS結構中客戶端和服務器端的加解密,在BS結構中瀏覽器單獨無法進行加解密運算,所以我將這個key改為有效性檢驗的一個隨機數,具體檢驗方法參見利用d_service_ticket訪問服務器。

User information:用戶信息,從目錄服務器中提取,用于給應用服務器作訪問權限控制。

Timestamp:票據申請時間。

Lifespan:票據生命期。

Sequence number:目標應用服務器的序列號,自增一后提取出來。

2) 兩級分散應用服務器主密鑰

由于鑒權服務器和應用服務器之間使用對稱密碼,所以在票據的加密時,使用主密鑰分散技術,密鑰分散使用標準的PBOC分散技術,兩級分散,分散因子分別為session key和server id(或者由server id派生出分散因子)。

3) 加密票據并發送至客戶端applet

與標準Kerberos協議相比,多了ticket id, 目的是為了方便重定向時ticket 的檢索。

5.3 傳輸票據(Transport ticket)

5.3.1 操作步驟:

Step I, AS-->C: d_message

Step II,Decrypt message and store some information in Cookie

C:

message' = DESd(d_message, pw_key');

extract d_service_ticket', ticket_ID' and session_key' from message'

store d_service_ticket' and ticket_ID' in the Cookie whose site name is AS

5.3.2 流程描述

1) 鑒權服務器將d_message發送至客戶端Applet,并將加密的票據與票據編號存儲在Cookie中

2) 客戶端Applet解密票據

5.4 訪問應用服務器(Access application server)

5.4.1 利用 d_service_ticket訪問應用服務器

1) 操作步驟

Step I, Client send d_service_ticket' and session_key' to Server

Step II, Application Server decrypt and extract the service ticket:

Step III, Check the availability of service ticket

if(session_key!=session_key')

illegal access, exit

Step IV, Check the availability of service ticket

Step V, check if the user is a legal user and has the permission

2) 流程描述

客戶端發送密文service ticket 和session key 到應用服務器;

應用服務器分散主密鑰,解密service ticket;

校驗service ticket有效性;

校驗sequence number,預防重傳攻擊;

校驗用戶合法性。

5.4.2 不使用d_service_ticket訪問服務器

(1) 操作步驟

Step I, Application server send redirection request to client

url=\"http://AS?servername=application_server_name

Step II, client send application server name to auchentication server

(2) 流程描述

應用服務器發送重定向請求至客戶端;

客戶端重定向,并將應用服務器名附在url中發送至鑒權服務器;

鑒權服務器從Cookie中提取ticket id 和加密的service ticket,若ticket為合法票據,則清空Cookie,并根據新應用服務器生成新的票據,存于Cookie中,然后附在url后重定向至應用服務器;若不合法,則要求用戶輸入用戶名密碼。

5.5 用戶注銷(logoff)

5.5.1 操作步驟

Step I, Application Server clear related information

Server clear all session information

Server send redirection request to client

url = \"http://AS/logoff

Step II

request logoff

Step III, Authentication Server clear Cookie information

5.5.2 流程描述

1) 應用服務器清除所有本地session狀態及相關信息,并發送注銷重定向請求至客戶端。

2) 客戶端重定向。

3) 鑒權服務器驗證當前ticket,如有效則清除Cookie信息; 如無效則要求登錄或退出。

6 優缺點分析

6.1 優點

本方案設計的用戶單點登錄系統做到統一了單點登錄服務器到應用服務器的用戶認證信息訪問標準,統一了令牌安全加密的傳輸和識別標準,為將來更多應用系統提供了統一的單點登錄框架。主要優點可歸納如下:

1) 使用時間戳和sequence number 共同解決重傳攻擊的問題。

2) 網絡中沒有傳輸用戶密碼,這樣可以防止密碼被惡意捕獲,做到登錄更安全。

3) 密碼校驗中隨機數的使用一定程度上增加了口令猜測攻擊的難度。

4) 相對于Kerberos協議來講,增加了一個約束,即密碼校驗過之后才進行service ticket的生產,這樣做有利于在壓力攻擊時降低鑒權服務器的負擔。

5) 生產加密service ticket時,適用兩級分散密鑰,更安全,更有利于保護主密鑰

6) 增加了對 service ticket的有效性檢驗

7) 由于該系統屬于一個企業,使用時間戳來做安全時間服務是可行的,同時可以一定程度上遏制重傳攻擊

6.2 缺點

這種使用sequence number的做法在一個分布式網絡環境中是有局限性的,因為無法保證訪問請求按照申請票據的順序到達應用服務器,但是在一個通信量和用戶數都不大的企業環境中,訪問時間的間隔較長,保證了這種方法的可行性。由于時間和經驗有限,有些驗證可能存在一些漏洞需要在實踐中更進一步完善。

參考文獻:

[1] RFC 1510 The Kerberos Network Authentication Service (V5)[S]. 1993.

[2] Central Authentication Service v2.0 Protocol Specification[S]. Drew Mazurek, 2005.

[3] 林國恩. Cryptographic Techniques and Systems Security[D]. 清華大學軟件學院,2003.

[4] Simplify enterprise Java authentication with single sign-on.[J]. Faheem Khan IBM, 2003(9).

主站蜘蛛池模板: 99性视频| 午夜国产大片免费观看| 亚洲一区二区视频在线观看| 色哟哟国产精品| 欧美亚洲日韩不卡在线在线观看| 91久久夜色精品国产网站| 亚洲三级网站| 99爱视频精品免视看| 久久这里只有精品2| 国产成人高清精品免费5388| 久久久久久久久久国产精品| 国产一区三区二区中文在线| www.99精品视频在线播放| 国产精品页| 欧美中文字幕第一页线路一| 九九热精品在线视频| 日韩高清在线观看不卡一区二区| 日本免费高清一区| 国产精品亚洲天堂| 97亚洲色综久久精品| 2022精品国偷自产免费观看| 日韩经典精品无码一区二区| 亚洲欧美人成人让影院| 国产日韩久久久久无码精品| 久久男人资源站| 亚洲性一区| 色哟哟国产精品一区二区| 激情乱人伦| 精品国产福利在线| 成人第一页| 国产国产人在线成免费视频狼人色| 色婷婷亚洲十月十月色天| 国产白浆一区二区三区视频在线| 天天做天天爱夜夜爽毛片毛片| 伊人91在线| 国产一区亚洲一区| 国产欧美一区二区三区视频在线观看| 久久精品波多野结衣| 热久久综合这里只有精品电影| 欧美成人午夜在线全部免费| 小说 亚洲 无码 精品| 国产区91| 欧美a网站| 国产美女人喷水在线观看| 免费播放毛片| 国产成人综合亚洲网址| 亚洲天堂视频网站| 国产精品毛片一区| jizz亚洲高清在线观看| 亚洲免费黄色网| 91外围女在线观看| 欧美成人在线免费| 中文字幕亚洲电影| 国产精品白浆在线播放| 真人高潮娇喘嗯啊在线观看| 精品一区二区三区自慰喷水| 久久久久久久久久国产精品| a在线观看免费| 亚洲天堂视频在线观看免费| 欧美成人影院亚洲综合图| 日本三级精品| 香蕉视频在线观看www| 99视频免费观看| 国产成人无码播放| 91原创视频在线| 999国内精品视频免费| 日韩欧美网址| 免费国产小视频在线观看| 欧美日韩在线亚洲国产人| 四虎永久免费地址| 国产欧美日韩一区二区视频在线| 亚洲伦理一区二区| 香蕉99国内自产自拍视频| 亚洲激情区| 欧美狠狠干| 色男人的天堂久久综合| a天堂视频| 亚洲婷婷在线视频| 最新国产麻豆aⅴ精品无| 国产亚洲精久久久久久无码AV| 另类欧美日韩| 欧美日韩免费在线视频|