隨著(zhù)互聯(lián)網(wǎng)絡(luò )應用的普及,越來(lái)越多的人開(kāi)始使用互聯(lián)網(wǎng)上提供的服務(wù)。然而目前提供服務(wù)的網(wǎng)站大多采用用戶(hù)名、口令的方式來(lái)識別用戶(hù)身份,這使得用戶(hù)需要經(jīng)常性的輸入自己的用戶(hù)名、口令。顯然這種認證方式存在著(zhù)弊端:隨著(zhù)用戶(hù)網(wǎng)絡(luò )身份的增多,用戶(hù)相應的需要記憶多組用戶(hù)名、口令,這給用戶(hù)造成記憶上的負擔;另外頻繁的輸入用戶(hù)名、口令,會(huì )相應的增大用戶(hù)的口令密碼被破解的機率。為了改變這一現狀,單點(diǎn)登錄技術(shù)應運而生。
單點(diǎn)登錄技術(shù)的核心思想是通過(guò)一定的方式使得各提供服務(wù)的網(wǎng)站之間建立某種聯(lián)系,用戶(hù)只需要在其中一個(gè)認證網(wǎng)站進(jìn)行登錄后,即可實(shí)現全局登錄,當用戶(hù)再訪(fǎng)問(wèn)其他網(wǎng)站時(shí),不需要再次登錄,其身份就可以被驗證。我們可以看到采用單點(diǎn)登錄技術(shù)后,用戶(hù)只需要記憶一組用戶(hù)名、口令,并且在登錄多個(gè)網(wǎng)站時(shí)只需要輸入一次用戶(hù)名、口令,這就使得用戶(hù)可以更加安全快捷的使用互聯(lián)網(wǎng)上的各種服務(wù)。
單點(diǎn)登錄的一般模型
在單點(diǎn)登錄的一般模型中,一般由三部分構成:(1)用戶(hù) (2)身份提供者 (3)服務(wù)提供者。如圖1所示。
用戶(hù)是指通過(guò)瀏覽器來(lái)使用單點(diǎn)登錄服務(wù)的個(gè)體。身份提供者在單點(diǎn)登錄中提供對個(gè)體的身份驗證服務(wù),相當于一個(gè)權威機構。服務(wù)提供者是指具體為用戶(hù)提供某種服務(wù)的機構。用戶(hù)在身份提供者那里注冊身份,當用戶(hù)進(jìn)行單點(diǎn)登錄時(shí),需要在身份提供者處登錄,進(jìn)行身份驗證,由身份提供者為用戶(hù)標記登錄信息。通常把用戶(hù)在身份提供者處進(jìn)行的登錄稱(chēng)作全局登錄。用戶(hù)在全局登錄后,當訪(fǎng)問(wèn)其它的服務(wù)提供者時(shí),被訪(fǎng)問(wèn)的服務(wù)提供者首先直接與身份提供者進(jìn)行交互,來(lái)詢(xún)問(wèn)該用戶(hù)是否已全局登錄,如果確定該用戶(hù)已全局登錄,則允許該用戶(hù)來(lái)訪(fǎng)問(wèn)自己提供的服務(wù),否則將該用戶(hù)重定向到身份提供者處,進(jìn)行全局登錄。
在具體的單點(diǎn)登錄實(shí)現中,身份提供者和服務(wù)提供者進(jìn)行交互的方式不盡相同。如微軟的Passport單點(diǎn)登錄采用的是在重定向信息中包含加密后的驗證信息來(lái)進(jìn)行交互,而自由聯(lián)盟的單點(diǎn)登錄規范是采用安全聲明標記語(yǔ)言(SAML)來(lái)進(jìn)行交互的。下面本文就通過(guò)介紹當前這兩個(gè)主流的單點(diǎn)登錄協(xié)議:微軟Passport單點(diǎn)登錄協(xié)議和自由聯(lián)盟規范來(lái)進(jìn)一步闡述單點(diǎn)登錄技術(shù)。
一、微軟Passport單點(diǎn)登錄協(xié)議
1.1 微軟Passport服務(wù)
提及微軟Passport單點(diǎn)登錄協(xié)議,我們自然要先介紹的是微軟Passport服務(wù)。在微軟的www.passport.com站點(diǎn)上我們可以看到微軟Passport的使用條款和通告。微軟Passport 是由微軟公司運行的一種Web 服務(wù),該服務(wù)會(huì )使用戶(hù)登錄到網(wǎng)站以及執行電子商務(wù)交易的過(guò)程變得更加簡(jiǎn)便。微軟的Passport服務(wù)是.Net戰略的一部分,通過(guò)一次登錄就可以使用戶(hù)獲得訪(fǎng)問(wèn)很多網(wǎng)站的權限。微軟宣稱(chēng)Passport的目的是使會(huì )員在使用互聯(lián)網(wǎng)和在線(xiàn)購物時(shí)更方便、快捷和安全,它得到了包括1-800-Flowers、CostCo、OfficeMax和Victoria Secret在內的諸多著(zhù)名在線(xiàn)商店的支持。微軟Passport服務(wù)從本質(zhì)上來(lái)說(shuō)是一種由微軟控制的中央統籌式的單一登錄服務(wù)。微軟旗下的Hotmail、Messenger與ISP服務(wù)(MSN)都有加入此機制,目前約有2億個(gè)使用賬戶(hù)。
1.2 微軟Passport單點(diǎn)登錄協(xié)議
在微軟Passport服務(wù)模式中,有三個(gè)主體:(1)使用web瀏覽器的用戶(hù)(假設該用戶(hù)已經(jīng)注冊了Passport服務(wù)),(2)服務(wù)提供者(對用戶(hù)提供某種服務(wù)的網(wǎng)站),(3)Passport登錄服務(wù)器。Passport登錄服務(wù)器保存著(zhù)用戶(hù)的認證信息以及用戶(hù)的個(gè)人信息,服務(wù)提供者在得到用戶(hù)允許的前提下可以到Passport登錄服務(wù)器上獲取用戶(hù)個(gè)人信息。
微軟Passport單點(diǎn)登錄協(xié)議流程如下[1]:當一個(gè)用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)一個(gè)服務(wù)提供者網(wǎng)站時(shí),如果該網(wǎng)站需要驗證用戶(hù)的身份,就把該用戶(hù)的瀏覽器重定向到Passport登錄服務(wù)器。下一步Passport登錄服務(wù)器通過(guò)SSL連接為用戶(hù)提供一個(gè)登錄頁(yè)面,在用戶(hù)登入該服務(wù)器后,被重定向回服務(wù)提供者網(wǎng)站。此時(shí)認證信息被包含在重定向消息中。該認證信息使用三重DES加密算法加密,加密密鑰是由Passport登錄服務(wù)器和服務(wù)提供者網(wǎng)站事先協(xié)商好的。在服務(wù)提供者網(wǎng)站檢驗了認證信息的真實(shí)性后,即可認為該用戶(hù)成功登錄。具體流程圖可參考圖2所示。
微軟Passport單點(diǎn)登錄協(xié)議采用了Kerberos認證機制來(lái)完成身份認證工作。Kerberos是一種為網(wǎng)絡(luò )通信提供可信第三方服務(wù)的面向開(kāi)放系統的認證機制。在Kerberos認證機制中,每當用戶(hù)(client)申請得到某服務(wù)程序(server)的服務(wù)時(shí),用戶(hù)和服務(wù)程序會(huì )首先向Kerberos要求認證對方的身份,認證建立在用戶(hù)(client)和服務(wù)程序(server)對Kerberos的信任的基礎上。在申請認證時(shí),client和server都可看成是Kerberos認證服務(wù)的用戶(hù),為了和其它服務(wù)的用戶(hù)區別,Kerberos用戶(hù)統稱(chēng)為principle,principle既可以是用戶(hù)也可以是某項服務(wù)。當用戶(hù)登錄到工作站時(shí),Kerberos對用戶(hù)進(jìn)行初始認證,通過(guò)認證的用戶(hù)可以在整個(gè)登錄時(shí)間得到相應的服務(wù)。Kerberos既不依賴(lài)用戶(hù)登錄的終端,也不依賴(lài)用戶(hù)所請求的服務(wù)的安全機制,它本身提供了認證服務(wù)器來(lái)完成用戶(hù)的認證工作[7]。簡(jiǎn)單地說(shuō),Kerberos通過(guò)集中存儲的安全信息和分布式的“tickets”來(lái)實(shí)現用戶(hù)身份認證。具體而言,微軟Passport服務(wù)通過(guò)如下步驟實(shí)現用戶(hù)身份驗證:
1、用戶(hù)開(kāi)啟客戶(hù)端應用程序或瀏覽器,打開(kāi)登錄界面,并輸入用戶(hù)名、口令。
2、登錄動(dòng)作引發(fā)客戶(hù)端應用程序或網(wǎng)站向微軟Passport請求一個(gè)登錄確認證明(即“ticket-granting-ticket”,TGT)。
3、微軟Passport驗證用戶(hù)用戶(hù)名、口令,頒發(fā)TGT,確認登錄已經(jīng)成功。在滿(mǎn)足一定安全約束條款的前提下,該TGT在一定時(shí)期內被緩存。
4、客戶(hù)端應用程序或網(wǎng)站向微軟Passport提交TGT,同時(shí)請求頒發(fā)一個(gè)“會(huì )話(huà)證明”。
5、微軟Passport使用TGT來(lái)驗證客戶(hù)端的身份是否有效,確認后向相應的Web Service頒發(fā)“會(huì )話(huà)證明”。
6、客戶(hù)端向所請求的Web Service提交會(huì )話(huà)證明,經(jīng)確認后,客戶(hù)端開(kāi)始同Web Service進(jìn)行信息交換,所有數據都經(jīng)由該“會(huì )話(huà)證明”加密從而確保安全。
1.3 微軟Passport小結
雖然微軟Passport已經(jīng)提供了多年的服務(wù),但是其安全性一直為人們所置疑。首先,其中央統籌的模式是最為大眾所質(zhì)疑的。因為核心的驗證服務(wù)器以及用戶(hù)個(gè)人信息服務(wù)器都是微軟一手控制的,再加上其技術(shù)細節并不對外公開(kāi),而且沒(méi)有依據某一標準,致使人們一直擔憂(yōu)用戶(hù)的個(gè)人資料被泄漏。其次,微軟的Passport系統曾被個(gè)人或黑客多次入侵。這些都限制了微軟Passport服務(wù)的進(jìn)一步推廣。
二、自由聯(lián)盟規范
4.1 自由聯(lián)盟(Liberty Alliance)
自由聯(lián)盟是一個(gè)聯(lián)盟機構的名稱(chēng),該聯(lián)盟的宗旨是創(chuàng )建一個(gè)經(jīng)由與Internet相連的任何器件都能實(shí)現的具有開(kāi)放性的、聯(lián)合的、單一簽字身份識別的解決方案,該機構的目標是為實(shí)現利用因特網(wǎng)進(jìn)行交易時(shí)隨時(shí)隨地的單點(diǎn)登錄認證,并且進(jìn)行有關(guān)標準的制訂。所有商業(yè)機構和非商業(yè)機構都可取得該機構的成員身份。加盟該機構的創(chuàng )始企業(yè)中有服務(wù)提供、汽車(chē)制造、金融服務(wù)、旅行業(yè)、數字媒體、零售業(yè)、電信及技術(shù)相關(guān)業(yè)界的著(zhù)名企業(yè)。目前自由聯(lián)盟由170多家廠(chǎng)商組合,包括Sun、Nokia、American Express等,他們負責提供技術(shù)規范與商業(yè)指南來(lái)當作跨企業(yè)的身份認證服務(wù)。Liberty本身并不產(chǎn)生應用,這方面是由技術(shù)廠(chǎng)商(如Sun、Novell、Peoplesoft與HP等)來(lái)開(kāi)發(fā)支持Liberty標準的兼容應用。自由聯(lián)盟規范可讓不同的服務(wù)供應商加入一個(gè)聯(lián)邦式的信賴(lài)網(wǎng)絡(luò )中[6]。
自由聯(lián)盟的主要目標有如下三個(gè)方面:
使個(gè)人消費者和企業(yè)用戶(hù)能夠安全保管個(gè)人信息;,推進(jìn)無(wú)信息壟斷的、可以相互運用并跨越多個(gè)網(wǎng)絡(luò )的服務(wù)。
制訂實(shí)現“單點(diǎn)登錄”的開(kāi)放標準;,使用戶(hù)在任何1個(gè)WWW站點(diǎn)通過(guò)認證后,不必接受其它站點(diǎn)認證就可以使用其服務(wù)。
制訂所有接入因特網(wǎng)的設備都可以使用的網(wǎng)絡(luò )認證開(kāi)放標準;耸故謾C、車(chē)載設備和信用卡等各種各樣的終端間都能進(jìn)行安全的認證。