show toc
歡迎來到 MSDN >
Windows 開發(fā)Windows CardSpace 介紹
發(fā)布日期: 2007-06-06 | 更新日期: 2007-06-06
David Chappell
Chappell & Associates
適用于:
Windows CardSpace
Windows Vista
Windows XP
Windows Server 2003
摘要:本文介紹了一組代號(hào)為 CardSpace 的 Windows 新功能,該組功能提供了一種基于標(biāo)準(zhǔn)的解決方案,用于使用和管理不同的數(shù)字標(biāo)識(shí)。
本頁內(nèi)容
了解數(shù)字標(biāo)識(shí)Windows CardSpace 提供了哪些功能檢查信息卡與 Windows CardSpace 進(jìn)行互操作 Windows CardSpace 和其他 Microsoft 技術(shù)結(jié)束語更多參考資料了解數(shù)字標(biāo)識(shí)
您是誰? 這個(gè)問題很簡單,但答案卻并不簡單。 您的身份表示方法會(huì)因所到之處的不同而有所變化。 當(dāng)您在機(jī)場的出入境通關(guān)口出示護(hù)照時(shí),您的身份是某一國家的公民。 當(dāng)您由于超速行駛而被警察攔截并出示自己的駕駛執(zhí)照時(shí),您的身份是居住在某一地區(qū)的合法司機(jī)。 當(dāng)您使用信用卡在書店購買最暢銷的小說時(shí),您的身份是具有某一特定賬號(hào)的顧客。 不同的環(huán)境中需要使用不同的標(biāo)識(shí),每種標(biāo)識(shí)的表示方法和所提供的信息均不盡相同。
(本文還包含指向英文網(wǎng)頁的鏈接。)
在所有這些環(huán)境中,您可以通過一些便于理解的方法來確定自己的標(biāo)識(shí)。 但在一個(gè)非常重要的環(huán)境,即網(wǎng)絡(luò)環(huán)境中,標(biāo)識(shí)的確定目前還比較混亂。 正如在現(xiàn)實(shí)環(huán)境中一樣,我們都擁有多種數(shù)字標(biāo)識(shí),并以不同的方法表達(dá)它們。 但是,現(xiàn)在并沒有一種統(tǒng)一的方法來處理這些數(shù)字標(biāo)識(shí)。 相反,我們?nèi)匀辉谝粋€(gè)復(fù)雜、混亂且不安全的環(huán)境中苦苦掙扎。
然而,不同種類的數(shù)字標(biāo)識(shí)始終是必不可少的,因?yàn)橹粦{單個(gè)標(biāo)識(shí)不可能滿足全部需求。 實(shí)際上,這些標(biāo)識(shí)始終是由一些不同的源所提供的,因?yàn)橹粦{單個(gè)標(biāo)識(shí)提供者同樣不可能滿足全部的需求。 這就意味著解決之道不是去強(qiáng)制要求使用一個(gè)數(shù)字標(biāo)識(shí)系統(tǒng),更合適的做法是尋找一致的方法來使用多個(gè)數(shù)字標(biāo)識(shí)系統(tǒng)。 我們需要的是由多個(gè)主要用于處理標(biāo)識(shí)的元系統(tǒng)所組成的系統(tǒng)。
需要通過合作來實(shí)現(xiàn)該標(biāo)識(shí)元系統(tǒng)。 單個(gè)組織只憑一己之力不可能完成一個(gè)解決方案。 幸運(yùn)的是,可以通過使用與供應(yīng)商無關(guān)的通信標(biāo)準(zhǔn)來解決此問題。 這些標(biāo)準(zhǔn)基于 SOAP 和 XML,包括 WS-Security、WS-Trust、WS-MetadataExchange 和 WS-SecurityPolicy。 通過使用這些 Web 服務(wù)技術(shù),可以定義一致的方法,來使用由任何源通過任何標(biāo)識(shí)技術(shù)所創(chuàng)建的任何數(shù)字標(biāo)識(shí)。
Microsoft 與其他公司通力協(xié)作,在定義此基于標(biāo)準(zhǔn)的標(biāo)識(shí)元系統(tǒng)方面起著舉足輕重的作用。 Microsoft 還在 Windows 中添加了新功能,從而幫助實(shí)現(xiàn)標(biāo)識(shí)元系統(tǒng)。 任何 Windows 應(yīng)用程序,包括諸如下一版的 Internet Explorer 等 Microsoft 技術(shù)產(chǎn)品,以及由其他方開發(fā)的應(yīng)用程序,都可以通過 Windows CardSpace(最初代號(hào)為“InfoCard”)為用戶提供一種通用的方法來使用數(shù)字標(biāo)識(shí)。 CardSpace 作為 .NET Framework 3.0 的一部分,計(jì)劃于 2007 年初發(fā)布,適用于 Windows Vista、Windows XP 和 Windows Server 2003。
Windows 是一種廣泛使用的操作系統(tǒng),因而 Cardspace 便成為實(shí)現(xiàn)標(biāo)識(shí)元系統(tǒng)的重要部分。 除非其他組織也實(shí)現(xiàn)了此方案,否則該解決方案仍然無法成功實(shí)施。 因此,Microsoft 積極鼓勵(lì)創(chuàng)建和使用能參與到標(biāo)識(shí)元系統(tǒng)中的軟件。 其目的是讓相關(guān)人員可以在運(yùn)行任何操作系統(tǒng)的任何機(jī)器上,就像當(dāng)前在現(xiàn)實(shí)環(huán)境中使用標(biāo)識(shí)那樣,方便、有效和安全地使用數(shù)字標(biāo)識(shí)。
介紹數(shù)字標(biāo)識(shí)
同現(xiàn)實(shí)環(huán)境中的標(biāo)識(shí)一樣,數(shù)字標(biāo)識(shí)也擁有各種形式和大小。 例如,您或許擁有一個(gè) Yahoo 的電子郵件帳戶,它通過電子郵件地址進(jìn)行標(biāo)識(shí)。 您可能還擁有諸如 Amazon 或 eBay 等各種商業(yè)組織的數(shù)字標(biāo)識(shí),以及諸如 MySpace.com 等站點(diǎn)的標(biāo)識(shí)。這些組織和站點(diǎn)一般由您定義的用戶名來標(biāo)識(shí)。 在工作中,您可能還擁有雇主分配給您的數(shù)字標(biāo)識(shí),由您的網(wǎng)絡(luò)登錄信息進(jìn)行標(biāo)識(shí)。 此標(biāo)識(shí)可能由某些目錄服務(wù)進(jìn)行維護(hù),例如 Active Directory,并且通常只在公司網(wǎng)絡(luò)范圍內(nèi)可用。
正如在現(xiàn)實(shí)環(huán)境中那樣,我們有充分的理由在不同環(huán)境中使用不同的數(shù)字標(biāo)識(shí)。 例如,通常需要將不同的信息與每個(gè)標(biāo)識(shí)關(guān)聯(lián)起來。 您使用的 Amazon 標(biāo)識(shí)可以允許您訪問信用卡號(hào),而 MySpace.com 標(biāo)識(shí)則不允許此操作。 每個(gè)標(biāo)識(shí)的獲取規(guī)則也不盡相同。 在 Amazon 獲取數(shù)字標(biāo)識(shí)比較容易, 只需創(chuàng)建一個(gè)用戶名和密碼即可。 從您的雇主那里獲取數(shù)字標(biāo)識(shí)可能有點(diǎn)困難,因?yàn)槟辽傩枰玫竭\(yùn)行公司網(wǎng)絡(luò)的管理員的批準(zhǔn)。
表示數(shù)字標(biāo)識(shí):安全令牌
盡管數(shù)字標(biāo)識(shí)間存在差異,但它們都擁有一個(gè)重要的共性: 當(dāng)在網(wǎng)絡(luò)上傳輸數(shù)字標(biāo)識(shí)時(shí),每個(gè)標(biāo)識(shí)都由某種安全令牌表示。 安全令牌其實(shí)是用于表達(dá)數(shù)字標(biāo)識(shí)信息的一組字節(jié)。 如圖 1 所示,此信息由一個(gè)或多個(gè)聲明組成,每個(gè)聲明包含此標(biāo)識(shí)所傳遞的總信息的某一部分。 一個(gè)簡單的安全令牌可能只包括一個(gè)含有用戶名的聲明,而稍復(fù)雜一點(diǎn)的安全令牌可能包括含有用戶的名、姓、家庭住址及更多信息的多個(gè)聲明。 某些數(shù)字標(biāo)識(shí)的安全令牌可能還包括含有諸如信用卡號(hào)等敏感性信息的聲明。
圖 1. 安全令牌
大多數(shù)安全令牌都提供了某些信息,以證實(shí)這些聲明確實(shí)屬于提出這些聲明的用戶。 執(zhí)行此操作的一個(gè)簡單(且目前比較常用)的方法是將密碼連同聲明一起發(fā)送。 一個(gè)較為有效的方法是使用私有密鑰對(duì)全部或部分聲明進(jìn)行數(shù)字簽名,然后提供相應(yīng)的公共密鑰(可能包裝在證書中)。 此外,表示數(shù)字標(biāo)識(shí)的安全令牌通常還會(huì)提供某種證明,供令牌接收方驗(yàn)證此令牌確實(shí)代表擁有該標(biāo)識(shí)的個(gè)人或組織。
每個(gè)安全令牌的基本理念都是相同的,即都是一個(gè)聲明的集合,現(xiàn)今使用各種不同的格式來表示這些令牌。 最簡單的例子是一個(gè)只用文本字符串表示的用戶名,但較為復(fù)雜的格式,例如 X.509 證書和 Kerberos 票證也比較常見。 這些格式的設(shè)計(jì)都不允許傳遞一組任意的聲明,盡管一些聲明對(duì)于某些數(shù)字標(biāo)識(shí)而言十分有用。 使用安全聲明標(biāo)記語言(SAML,一個(gè)由行業(yè)組織 OASIS 創(chuàng)建的標(biāo)準(zhǔn))創(chuàng)建的令牌則允許執(zhí)行此操作。 SAML 基于 XML,可以用于定義含有任何所需聲明集的安全令牌。
一直以來,數(shù)字標(biāo)識(shí)主要用于驗(yàn)證。 現(xiàn)今最為常見的安全令牌格式,如用戶名、X.509 證書和 Kerberos 票證,就反映了這一點(diǎn),因?yàn)檫@些安全令牌格式所包含的信息主要集中于驗(yàn)證標(biāo)識(shí)方面。 但為什么數(shù)字標(biāo)識(shí)不能像實(shí)際標(biāo)識(shí)那樣得到廣泛應(yīng)用呢? 您錢夾中的每張卡都反映了某種標(biāo)識(shí),而且其上還帶有某機(jī)構(gòu)證實(shí)的有用信息。 例如,您的駕駛執(zhí)照中包括您的姓名、年齡、或許還有您的照片和其他信息,這些都是經(jīng)過某政府機(jī)構(gòu)證實(shí)的信息。 表達(dá)此信息的數(shù)字標(biāo)識(shí)有助于了解多方面的情況,例如證實(shí)您年滿 21 周歲,或者您的確戴有眼鏡。 類似地,您的每張信用卡上都帶有卡號(hào)、過期日期及您的姓名。 正如這些卡在現(xiàn)實(shí)環(huán)境中很有用一樣,為每張卡創(chuàng)建數(shù)字標(biāo)識(shí)(用于生成帶有正確聲明的安全令牌)也非常有用。
盡管安全令牌一直以來只著重于傳遞驗(yàn)證信息,但有必要認(rèn)識(shí)到數(shù)字標(biāo)識(shí)的概念要比這寬泛得多。 例如,通常我們不會(huì)使用信用卡來驗(yàn)證自己的身份,但此標(biāo)識(shí)所傳遞的信息(例如信用卡號(hào))仍然是有價(jià)值的。 實(shí)際上,術(shù)語“安全令牌”本身就是用詞不當(dāng),因?yàn)榱钆瓶梢园c安全性無關(guān)的信息。 使用 SAML 或其他方法可以定義幾乎包含任何所需信息的安全令牌。 數(shù)字標(biāo)識(shí)目前在網(wǎng)絡(luò)環(huán)境中已得到廣泛應(yīng)用,正如我們?cè)诂F(xiàn)實(shí)環(huán)境中所使用的許多標(biāo)識(shí)一樣。
使用數(shù)字標(biāo)識(shí): Windows CardSpace 和標(biāo)識(shí)元系統(tǒng)
如果能對(duì)所有事物使用由單個(gè)安全令牌格式表示的單個(gè)數(shù)字標(biāo)識(shí),生活就簡單多了。 然而在現(xiàn)實(shí)環(huán)境中我們擁有不同的標(biāo)識(shí),同理,在數(shù)字環(huán)境中我們也需要擁有不同的標(biāo)識(shí)。 因此,所面臨的挑戰(zhàn)就是以一種既容易理解而又行之有效的方法來創(chuàng)建、使用和管理這些不同的數(shù)字標(biāo)識(shí)。
這正是標(biāo)識(shí)元系統(tǒng)所要解決的問題。 標(biāo)識(shí)元系統(tǒng)不是通過創(chuàng)造另一種技術(shù)來創(chuàng)建和表示數(shù)字標(biāo)識(shí),而是提供了一致的方法來使用多個(gè)數(shù)字標(biāo)識(shí),無論這些數(shù)字標(biāo)識(shí)使用的是何種安全令牌。 標(biāo)識(shí)元系統(tǒng)使用任何人可以在任何平臺(tái)上執(zhí)行的標(biāo)準(zhǔn)協(xié)議,允許獲取和使用任何種類的安全令牌以傳遞標(biāo)識(shí)。
Windows CardSpace 為用戶提供了一種選擇標(biāo)識(shí)和更多信息的方法,因此是標(biāo)識(shí)元系統(tǒng)的重要組成部分。 本文介紹了 CardSpace 以及它如何適合標(biāo)識(shí)元系統(tǒng)。 目的在于讓您了解此技術(shù)所提供的功能及工作原理。 但請(qǐng)注意,這里的介紹基于系統(tǒng)的 Beta 版本。 通常,在技術(shù)的最終版本發(fā)布之前,某些內(nèi)容可能會(huì)有所變動(dòng)。
返回頁首Windows CardSpace 提供了哪些功能
此技術(shù)有四個(gè)比較突出、也是最為重要的方面:
•
支持任何數(shù)字標(biāo)識(shí)系統(tǒng)
•
一致的數(shù)字標(biāo)識(shí)用戶控件
•
替代基于密碼的 Web 登錄
•
提高了用戶對(duì)遠(yuǎn)程應(yīng)用程序標(biāo)識(shí)的信任度
此部分介紹 CardSpace(作為標(biāo)識(shí)元系統(tǒng)的一部分)如何提供這四方面的功能。
支持任何數(shù)字標(biāo)識(shí)系統(tǒng)
我們使用的多個(gè)數(shù)字標(biāo)識(shí)來自幾個(gè)不同的源,而且其表示方法也是多樣的。 換句話說,我們通常依賴于許多不同的數(shù)字標(biāo)識(shí)系統(tǒng),其中每個(gè)標(biāo)識(shí)系統(tǒng)可能使用了一種不同的底層技術(shù)。 要從總體上考慮這種差異性,定義三個(gè)不同的角色會(huì)很有幫助:
•
用戶 — 也稱為主體,它是與數(shù)字標(biāo)識(shí)關(guān)聯(lián)的實(shí)體。 用戶通常指人,但組織、應(yīng)用程序、計(jì)算機(jī)和其他事物也可以擁有數(shù)字標(biāo)識(shí)。
•
標(biāo)識(shí)提供者 — 顧名思義,標(biāo)識(shí)提供者是指 可以為用戶提供數(shù)字標(biāo)識(shí)的事物。 例如,對(duì)于雇主分配給您的數(shù)字標(biāo)識(shí),其標(biāo)識(shí)提供者一般指諸如 Active Directory 之類的系統(tǒng)。 對(duì)于您所使用的 Amazon 數(shù)字標(biāo)識(shí),標(biāo)識(shí)提供者實(shí)際上就是您,因?yàn)槟约憾x了用戶名和密碼。 不同標(biāo)識(shí)提供者所創(chuàng)建的數(shù)字標(biāo)識(shí)可以包含不同的信息,并提供不同的用戶真實(shí)身份保證級(jí)別。
•
依賴方 — 依賴方是一個(gè)應(yīng)用程序,以某種方式依賴于數(shù)字標(biāo)識(shí)。 依賴方將頻繁使用標(biāo)識(shí)(即組成該標(biāo)識(shí)安全令牌的聲明中包含的信息)來驗(yàn)證用戶,然后作出授權(quán)決定,如允許該用戶訪問某些信息等。 依賴方也會(huì)使用該標(biāo)識(shí)獲得信用卡號(hào),來驗(yàn)證不同時(shí)間或出于不同目的而進(jìn)行訪問的同一用戶。 依賴方的典型示例包括 Internet 網(wǎng)站,如網(wǎng)上書店、拍賣站點(diǎn),以及其他通過 Web 服務(wù)接受請(qǐng)求的所有應(yīng)用程序。
給定這三個(gè)角色后,對(duì)于 Windows CardSpace 和標(biāo)識(shí)元系統(tǒng)支持任何數(shù)字標(biāo)識(shí)的方式就不難理解了。 圖 2 顯示了三個(gè)角色間的基本交互。
圖 2. 用戶、標(biāo)識(shí)提供者和依賴方角色間的交互
如圖 2 所示,用戶可以依賴支持 CardSpace 的應(yīng)用程序(例如 Web 瀏覽器)來訪問幾個(gè)依賴方中的任何一方。 還可以從一組標(biāo)識(shí)提供者中進(jìn)行選擇,作為要顯示給這些依賴方的數(shù)字標(biāo)識(shí)源。 無論用戶進(jìn)行哪種選擇,這三方間的基本信息交換都可分為以下三個(gè)步驟:
•
第一步,應(yīng)用程序獲取用戶想要訪問的依賴方的安全令牌要求。 此信息包含在依賴方的策略中,其中還包含了諸如依賴方將接受的安全令牌格式,以及這些令牌必須包含的聲明等信息。
•
應(yīng)用程序一旦擁有了此依賴方所需安全令牌的詳細(xì)信息,就會(huì)將該信息傳遞給 CardSpace,并要求其從適當(dāng)?shù)臉?biāo)識(shí)提供者處請(qǐng)求令牌。
•
CardSpace 接收到此安全令牌后,隨即會(huì)將其傳給應(yīng)用程序,然后再傳給依賴方。
接下來,依賴方就可以使用此令牌驗(yàn)證用戶或用于其他目的。
此高級(jí)視圖說明了交換過程中最為重要的方面。 如下所示:
•
Windows CardSpace 和標(biāo)識(shí)元系統(tǒng)對(duì)于從標(biāo)識(shí)提供者處請(qǐng)求繼而傳遞到依賴方的安全令牌格式完全不知。 事實(shí)上,CardSpace 甚至不知道此令牌所采用的格式。正是由于這個(gè)原因,CardSpace 可以通過任何類型的安全令牌(包括簡單的用戶名、X.509 證書、Kerberos 票證、SAML 令牌或其他類型)來使用任何數(shù)字標(biāo)識(shí)系統(tǒng)。 這允許 CardSpace 和標(biāo)識(shí)元系統(tǒng)與任何適當(dāng)?shù)臄?shù)字標(biāo)識(shí)技術(shù)結(jié)合使用。 還允許插入現(xiàn)在需要?jiǎng)?chuàng)建、也許會(huì)在將來問世的數(shù)字標(biāo)識(shí)系統(tǒng)。
•
由標(biāo)識(shí)元系統(tǒng)定義并由 CardSpace 實(shí)現(xiàn)的所有交換,都是使用已發(fā)布的開放協(xié)議來執(zhí)行的。
在最基本的方案中,通過 WS-SecurityPolicy 描述依賴方策略,使用 WS-MetadataExchange 對(duì)策略進(jìn)行檢索,利用 WS-Trust 獲得安全令牌,并使用 WS-Security 將該令牌傳遞給依賴方。實(shí)現(xiàn)上述所有操作的前提是,啟用標(biāo)識(shí)元系統(tǒng)中標(biāo)識(shí)令牌安全交換所必需的 WS-* 協(xié)議已提交或即將提交給標(biāo)準(zhǔn)主體。
在 Web 瀏覽器與網(wǎng)站交互這種較簡單(大概也比較普遍)的方案中,可以通過 HTML 表達(dá)依賴方策略,并且可使用 HTTPS 在該策略信息與站點(diǎn)之間以及安全令牌與站點(diǎn)之間進(jìn)行交換。 雖然與標(biāo)識(shí)提供者的交互仍要依賴于 WS-Trust,但網(wǎng)站不需要實(shí)現(xiàn)任何 WS-* 規(guī)范以充當(dāng)依賴方角色。
在以上任意一種方案中,都不需要通過依賴方或標(biāo)識(shí)提供者實(shí)施任何專用協(xié)議來使用 CardSpace。
如圖 2 所示,只有當(dāng)標(biāo)識(shí)提供者和依賴方實(shí)現(xiàn)了標(biāo)識(shí)元系統(tǒng)所使用的協(xié)議時(shí),CardSpace 才有用。 雖然 Microsoft 致力于元系統(tǒng)定義的研究,并且已經(jīng)創(chuàng)建了可以為 Windows 提供重要元系統(tǒng)組件的 Windows CardSpace,但沒有其他組織的參與是不可能成功的。
一致的數(shù)字標(biāo)識(shí)用戶控件
通過標(biāo)準(zhǔn)協(xié)議獲取和傳輸安全令牌確實(shí)非常有效。 然而,如果沒有某種方法可供用戶理解這些令牌所代表的數(shù)字標(biāo)識(shí)并對(duì)其作出明智的決定,則系統(tǒng)將會(huì)癱瘓,呈現(xiàn)出無用的復(fù)雜狀態(tài)。 因此,CardSpace 和標(biāo)識(shí)元系統(tǒng)的主要目標(biāo)之一,就是讓包括從安全專員到您的父母在內(nèi)的所有用戶對(duì)數(shù)字標(biāo)識(shí)的使用作出良好的決策。
為此,CardSpace 實(shí)現(xiàn)了一個(gè)直觀的用戶界面來使用數(shù)字標(biāo)識(shí)。 圖 3 顯示了標(biāo)識(shí)選擇屏幕,這可能是此界面中最為重要的部分。
圖 3. CardSpace 標(biāo)識(shí)選擇屏幕
如屏幕快照中所示,每個(gè)數(shù)字標(biāo)識(shí)都顯示為一個(gè)信息卡,有時(shí)還將其簡寫為 InfoCard(此技術(shù)代號(hào)的源)。 每張卡都代表一個(gè)用戶有可能呈現(xiàn)給依賴方的數(shù)字標(biāo)識(shí)。 屏幕快照上直觀地顯示了這些卡,且每張卡上還包含有關(guān)特定數(shù)字標(biāo)識(shí)的信息。 此信息包括:為獲取此標(biāo)識(shí)的安全令牌所要聯(lián)系的標(biāo)識(shí)提供者、此標(biāo)識(shí)提供者可以發(fā)行的令牌種類,以及確切來說這些令牌可以包含的聲明。 (如本文稍后所述,每張信息卡事實(shí)上是由標(biāo)識(shí)提供者創(chuàng)建的,然后安裝在用戶的計(jì)算機(jī)上。) 當(dāng)用戶選擇某一特定卡時(shí),實(shí)際上選擇的是請(qǐng)求由特定標(biāo)識(shí)提供者創(chuàng)建的帶有特定聲明集的特定安全令牌。 但是,這種技術(shù)上的復(fù)雜性被隱藏起來了,這樣用戶就可以隨意去思考那些有意義的事情。 圖 4(在圖 2 的基礎(chǔ)上略加引申)顯示了用戶的決定適合于該過程的哪一階段。
圖 4. 選擇標(biāo)識(shí)
如前文所述,該過程中首先應(yīng)用程序要請(qǐng)求依賴方策略。 我們知道,該策略指出了此依賴方可以接受的安全令牌種類,以及這些令牌所必須包含的聲明。 此信息返回并傳遞給 CardSpace 后,系統(tǒng)隨即顯示卡選擇屏幕。 要為用戶提供一致的體驗(yàn),則應(yīng)顯示他們?cè)诖讼到y(tǒng)上所擁有的每張信息卡,就像打開錢夾時(shí)可以看到其中的每張卡一樣。 但只有某些卡可以在任何情況下使用,因此,與安全令牌和聲明關(guān)聯(lián)的信息卡如果不符合此依賴方的要求,就會(huì)變暗,即用戶無法進(jìn)行提交操作。 用戶單擊某一特定卡后,CardSpace 隨即會(huì)向此卡所關(guān)聯(lián)的標(biāo)識(shí)提供者發(fā)出請(qǐng)求(如前文所述)。 同樣,標(biāo)識(shí)提供者隨后返回一個(gè)安全令牌,該令牌將傳遞給依賴方。
重要的是應(yīng)該為用戶提供一致的方法來選擇數(shù)字標(biāo)識(shí),這主要有兩方面的原因:
•
用戶擁有一致的、可預(yù)測的方法來使用數(shù)字標(biāo)識(shí)。 如果沒有這樣的方法,恐怕除了專家級(jí)用戶外,其他用戶一定會(huì)覺得結(jié)果令人困惑且是錯(cuò)誤的。 為了使用 CardSpace 而創(chuàng)建的每個(gè)應(yīng)用程序?qū)⒁酝耆嗤臋C(jī)制來使用數(shù)字標(biāo)識(shí),并通過完全相同的界面將數(shù)字標(biāo)識(shí)呈現(xiàn)給用戶。
•
即使用戶在安全技術(shù)知識(shí)方面存在差異也無所謂。 您無需考慮某一特定標(biāo)識(shí)的安全令牌是使用 X.509 證書還是使用 SAML 或某種其他方法表達(dá)的。 CardSpace 通過為用戶提供簡單而直觀的表示方法,確保用戶可以避免面對(duì)這種不必要的復(fù)雜性。 所有事物都是根據(jù)與用戶相聯(lián)系的信息來表達(dá)的: 標(biāo)識(shí)本身及其包含的信息。
為了確保更加安全,用戶可以選擇使用個(gè)人標(biāo)識(shí)號(hào) (PIN) 來保護(hù)個(gè)人信息卡,這樣用戶在使用信息卡之前必須輸入該個(gè)人標(biāo)識(shí)號(hào)。 并且為進(jìn)一步阻止本地攻擊,CardSpace 還為標(biāo)識(shí)選擇屏幕(用于選擇卡片)創(chuàng)建了專用的 Windows 桌面。 這類似于隔離 Windows 登錄屏幕所使用的機(jī)制,而且還阻止了其他本地運(yùn)行的進(jìn)程的攻擊。
值得注意的是,為用戶提供一致的機(jī)制,以便選擇要使用的數(shù)字標(biāo)識(shí),這是標(biāo)識(shí)元系統(tǒng)的實(shí)質(zhì)所在。 本文主要介紹了 CardSpace(一種 Windows 技術(shù)),但要在其他操作系統(tǒng)上實(shí)現(xiàn),則應(yīng)提供相應(yīng)的直觀屏幕以進(jìn)行卡片的選擇。
替代基于密碼的 Web 登錄
現(xiàn)今 Internet 上最為常見的一種安全令牌就是用戶名。 要證明一個(gè)用戶名確實(shí)歸您所有,最常見的方法就是提供與此用戶名關(guān)聯(lián)的密碼。 雖然一般情況下由您自己選擇用戶名和密碼,但有時(shí)您所訪問的站點(diǎn)也會(huì)為您分配用戶名和密碼。 而這樣的網(wǎng)站通常使用 SSL 與您的瀏覽器之間進(jìn)行通信,所以此方法可以認(rèn)為是非常安全的。 SSL 可以確保整個(gè)通信都經(jīng)過加密,因此攻擊者無法通過監(jiān)聽通信來竊取密碼。
然而此類基于密碼的方案比較容易受到另一種攻擊: 網(wǎng)頁仿冒。 攻擊者通過發(fā)送欺騙性電子郵件,試圖欺騙用戶登錄到一個(gè)假冒真實(shí)站點(diǎn)的站點(diǎn)上,從而使其暴露密碼或者其他個(gè)人信息。 假如密碼不是 Web 上的主要身份驗(yàn)證機(jī)制,則這種網(wǎng)頁仿冒的威脅性會(huì)小一些,因?yàn)椴淮嬖诳筛`取的密碼。 為實(shí)現(xiàn)此目的,并從整體上提高 Web 登錄的安全性,CardSpace 允許使用一種更加強(qiáng)大的機(jī)制來替代基于密碼的 Web 登錄。
依賴方(例如網(wǎng)站)不通過密碼來驗(yàn)證用戶,而是使用安全令牌來驗(yàn)證用戶。 例如,某公司提供了一系列的網(wǎng)站,它可能還會(huì)提供一個(gè)運(yùn)行在某臺(tái)機(jī)器上并可由任何客戶訪問的標(biāo)識(shí)提供者,該標(biāo)識(shí)提供者能夠發(fā)行該系列中所有站點(diǎn)都可以接受的令牌。 此方法將密碼的使用程度降到了最低,的確是一種可以同 CardSpace 一起使用的方法。 該方法仍只適用于特定的一組站點(diǎn),因?yàn)闆]有單個(gè)的標(biāo)識(shí)提供者可以被所有的網(wǎng)站接受以發(fā)行安全令牌。
那么如果由用戶選擇自己的用戶名和密碼,情況會(huì)如何? 此方法目前在網(wǎng)站上已得到了非常廣泛的應(yīng)用,原因之一是因?yàn)槠浔容^簡單: 不需要第三方標(biāo)識(shí)提供者。 該方法不提供過多有關(guān)用戶真實(shí)身份的擔(dān)保,因?yàn)檎军c(diǎn)無從知曉用戶所提供的姓名是否真實(shí)。 對(duì)于使用此方法的站點(diǎn)而言,通常只需要在用戶每次登錄時(shí)識(shí)別該特定用戶,而用戶只需擁有唯一的數(shù)字標(biāo)識(shí),其中不一定含有任何真實(shí)信息。
簡言之,問題在于: 依賴方希望接收由標(biāo)識(shí)提供者創(chuàng)建的安全令牌,從而可以允許替代可能會(huì)被網(wǎng)頁仿冒的基于密碼的登錄。 然而在大多數(shù)情況下,不存在能被廣泛接受的第三方標(biāo)識(shí)提供者來創(chuàng)建這些令牌。 但目的僅是識(shí)別由同一用戶進(jìn)行的多個(gè)訪問,所以不需要使用復(fù)雜的數(shù)字標(biāo)識(shí)。
為解決此問題,CardSpace 包括一個(gè)自發(fā)行標(biāo)識(shí)提供者。 如圖 5 所示,該自發(fā)行標(biāo)識(shí)提供者在本地 Windows 系統(tǒng)上運(yùn)行,并且像任何其他的標(biāo)識(shí)提供者一樣可以創(chuàng)建信息卡。 (事實(shí)上,為了區(qū)分外部標(biāo)識(shí)提供者和自發(fā)行標(biāo)識(shí)提供者類型,外部提供者通常稱為托管標(biāo)識(shí)提供者,而且它們創(chuàng)建的信息卡被稱為托管卡。) 在圖 5 所示的例子中,用戶擁有三張從外部標(biāo)識(shí)提供者處獲取的信息卡,以及一張從自發(fā)行標(biāo)識(shí)提供者處獲取的信息卡。
圖 5. 用戶擁有來自自發(fā)行標(biāo)識(shí)提供者的信息卡
由自發(fā)行標(biāo)識(shí)提供者創(chuàng)建的信息卡可以只包含諸如用戶名、通訊地址、電子郵件地址和電話號(hào)碼等基本信息。 當(dāng)用戶選擇將其中的一張信息卡提交給依賴方時(shí),該用戶系統(tǒng)上的自發(fā)行標(biāo)識(shí)提供者會(huì)生成一個(gè) SAML 令牌,其中包含用戶在此卡中放置的信息。 自發(fā)行標(biāo)識(shí)提供者還會(huì)生成一個(gè)公共/私有密鑰對(duì),使用私有密鑰對(duì)安全令牌進(jìn)行簽名。 為了防止攻擊者重新使用,令牌中包含了一個(gè)時(shí)間戳以及其他一些信息,使得它對(duì)于初始用戶以外的任何人都沒什么用處。 然后應(yīng)用程序?qū)⒋艘押灻牧钆七B同其關(guān)聯(lián)的公共密鑰一起發(fā)送給依賴方。 依賴方可以使用此公共密鑰驗(yàn)證安全令牌的數(shù)字簽名,這樣就確保了由正確的令牌所有者來呈現(xiàn)該令牌。 為阻止依賴方相互之間通過比較用戶的公共密鑰來跟蹤用戶活動(dòng),自發(fā)行標(biāo)識(shí)提供者為使用此信息卡訪問的每個(gè)依賴方都創(chuàng)建了一個(gè)不同的密鑰對(duì)(盡管該細(xì)節(jié)對(duì)用戶是隱藏的,用戶只能看到一張?jiān)摌?biāo)識(shí)的信息卡)。
主要思想就是: 因?yàn)榇蠖鄶?shù)標(biāo)識(shí)提供者所發(fā)行的安全令牌均不使用密碼,其中包括那些由 CardSpace 的自發(fā)行標(biāo)識(shí)提供者創(chuàng)建的令牌,所以依賴方(包括網(wǎng)站和其他應(yīng)用程序)可以使用這些令牌而非密碼來驗(yàn)證用戶。 如果站點(diǎn)不使用密碼,則網(wǎng)頁仿冒者就無法欺騙用戶暴露這些密碼。
網(wǎng)頁仿冒是一個(gè)很嚴(yán)重的問題。 如果 Windows CardSpace 和標(biāo)識(shí)元系統(tǒng)專注于減少此問題的發(fā)生,則當(dāng)前的聯(lián)機(jī)環(huán)境會(huì)得到明顯改善。
提高了用戶對(duì) Web 應(yīng)用程序標(biāo)識(shí)的信任度
減少網(wǎng)站對(duì)基于密碼登錄的依賴性有助于減少網(wǎng)頁仿冒情況的發(fā)生,但并不能徹底消除此問題。 如果用戶受到欺騙訪問了網(wǎng)頁仿冒者的站點(diǎn),則該站點(diǎn)可以接受該用戶所提供的、自發(fā)行或其他方式的任何安全令牌,然后要求用戶輸入諸如信用卡號(hào)等信息。 網(wǎng)頁仿冒者不會(huì)獲得它所仿冒站點(diǎn)的用戶密碼,但毫無疑問可以獲知其他一些有用的信息。
問題的根本在于用戶不能區(qū)別真正的網(wǎng)站(比如說用戶的銀行)和網(wǎng)頁仿冒者創(chuàng)建的仿冒站點(diǎn)。 二者可以顯示相同的徽標(biāo)及其他圖形。 二者甚至還可以使用 SSL 來保護(hù)通信,因?yàn)榫W(wǎng)頁仿冒者同樣可以獲取證書。 如果用戶點(diǎn)擊了網(wǎng)頁仿冒者電子郵件中所提供的鏈接,他會(huì)發(fā)現(xiàn)自己連到了一個(gè)外觀酷似銀行站點(diǎn)的站點(diǎn)。 Internet Explorer 的右下角甚至還會(huì)顯示小鎖標(biāo)記,表明該通信受 SSL 保護(hù)。
可通過以下兩種方法解決此問題:
•
高度確認(rèn)方法,網(wǎng)站使用此方法向用戶驗(yàn)證其標(biāo)識(shí)
•
一致性方法,用戶使用此方法了解站點(diǎn)用于驗(yàn)證其標(biāo)識(shí)的確認(rèn)級(jí)別,然后對(duì)是否信任該站點(diǎn)作出正確的選擇。
Windows CardSpace 和標(biāo)識(shí)元系統(tǒng)解決了這兩個(gè)問題。
第一個(gè)問題的解決,以及網(wǎng)站向用戶驗(yàn)證其標(biāo)識(shí)的方法的改進(jìn),均依賴于執(zhí)行此操作所使用的證書的改進(jìn)。 現(xiàn)今,網(wǎng)站通常使用 SSL 通信所用的證書來驗(yàn)證其標(biāo)識(shí)。 情況多少有所改善,但 SSL 證書事實(shí)上只證實(shí)了給定站點(diǎn)擁有一個(gè)特定的 DNS 名稱。 但并不能保證此 DNS 名稱對(duì)應(yīng)于該站點(diǎn)上所顯示的信息。 網(wǎng)頁仿冒者可以使用為他所擁有的 DNS 名稱發(fā)行的證書,例如,保護(hù)與一個(gè)經(jīng)過仔細(xì)加工看上去酷似銀行的站點(diǎn)間進(jìn)行通信。 因此,SSL 證書并不足以解決此問題。
為此,Microsoft 與同行業(yè)的其他公司進(jìn)行合作,以創(chuàng)建一個(gè)新級(jí)別的證書。 該證書可包含比傳統(tǒng) SSL 證書更多的信息,其中包括證書所要發(fā)行到的組織的名稱、位置和徽標(biāo)。 此高度確認(rèn)證書還將成為較權(quán)威的信息來源,這是因?yàn)樽C書的獲取比較困難,需要與發(fā)行機(jī)構(gòu)達(dá)成高度一致。 標(biāo)識(shí)提供者以及依賴方都可以使用這種新的證書向 CardSpace 應(yīng)用程序的用戶驗(yàn)證其標(biāo)識(shí)。
在上述兩個(gè)問題中,通過創(chuàng)建高度確認(rèn)證書可解決第一個(gè)問題。 但最終還是需要由用戶來決定信任哪一個(gè)站點(diǎn)。 CardSpace 使得這種決定更加明確,它要求每位用戶批準(zhǔn)使用其想要訪問的每個(gè)標(biāo)識(shí)提供者和依賴方。 信息卡首次安裝到用戶系統(tǒng)上時(shí),將出現(xiàn)一個(gè)屏幕,要求用戶驗(yàn)證其想要接收的安全令牌,該安全令牌由發(fā)行此信息卡的標(biāo)識(shí)提供者創(chuàng)建。 類似地,首次訪問依賴方(例如網(wǎng)站)時(shí),會(huì)出現(xiàn)一個(gè)屏幕,要求用戶指明其是否希望向該依賴方發(fā)送數(shù)字標(biāo)識(shí)信息。 圖 6 顯示了用戶首次訪問依賴方時(shí)所顯示屏幕的示例:
圖 6. 首次訪問依賴方時(shí)所顯示的屏幕
如示例所示,屏幕上可以包括標(biāo)識(shí)經(jīng)過批準(zhǔn)的組織(例如 Overdue Media)的名稱、位置、網(wǎng)站 URL 和徽標(biāo)。 還可以包括已對(duì)此信息進(jìn)行過驗(yàn)證的組織(例如 VeriSign)的名稱和徽標(biāo)。
為了幫助用戶更好地作出決定,需要根據(jù)標(biāo)識(shí)提供者或依賴方提供的證書種類相應(yīng)地改變屏幕上所顯示的內(nèi)容。 如果提供了前文所述的高度確認(rèn)證書,則屏幕會(huì)指出已經(jīng)過驗(yàn)證的組織的名稱、位置、網(wǎng)站 URL 和徽標(biāo),如圖 6 所示。這可以向用戶表明該組織是比較值得信任的。 如果只提供了 SSL 證書,則屏幕會(huì)指出授權(quán)了一個(gè)較低級(jí)別的信任。 而且,如果甚至提供了更弱的證書或者根本沒有證書,則屏幕會(huì)指出沒有任何證據(jù)可以表明該站點(diǎn)的真實(shí)身份。 其目的在于幫助用戶作出明智的決定:允許哪些標(biāo)識(shí)提供者為其提供數(shù)字標(biāo)識(shí),以及允許哪些依賴方接收這些數(shù)字標(biāo)識(shí)。
所有這些都引出了一個(gè)嚴(yán)肅的問題: 這真的會(huì)對(duì)一般的 Windows 用戶有所幫助嗎? 對(duì)于不了解分布式安全性的人(即不知道證書是什么,更不用說信任哪些證書頒發(fā)機(jī)構(gòu)),他真能通過使用 CardSpace 作出更好的決定嗎? 最起碼,為訪問新的站點(diǎn)提供一致的、可預(yù)測的體驗(yàn),應(yīng)該會(huì)有所幫助。 在 CardSpace 上創(chuàng)建的每個(gè)應(yīng)用程序(包括下一個(gè)版本的 Internet Explorer),都會(huì)要求用戶明確同意使用其通過 CardSpace 訪問的每個(gè)標(biāo)識(shí)提供者和依賴方。 用戶始終會(huì)看到相同的操作屏幕,而且這些屏幕可為用戶提供指導(dǎo),幫助用戶確定可在多大程度上保證該站點(diǎn)的真實(shí)身份。 而且,用戶只需在第一次訪問某站點(diǎn)時(shí)作出是否要信任該站點(diǎn)的決定。 以后(甚至數(shù)月后)再訪問該站點(diǎn)時(shí),則不會(huì)再顯示類似圖 6 所示的屏幕。如果用戶訪問某個(gè)以前確實(shí)曾經(jīng)訪問過的站點(diǎn)時(shí)出現(xiàn)了該屏幕,很明顯,這說明該用戶由于某種原因受到欺騙而訪問了仿冒的站點(diǎn)。
使用 Windows CardSpace:示例情景
要準(zhǔn)確了解 CardSpace 和標(biāo)識(shí)元系統(tǒng)的使用方式,最直觀的方法就是查看一些典型示例。 例如,回想一下在訪問某個(gè)網(wǎng)上商店(如 Internet 書店)時(shí)發(fā)生了什么情況。 在最簡單的情況下,不涉及到任何數(shù)字標(biāo)識(shí) — 任何人都可以瀏覽出售的書籍,而無需告訴銷售商自己的身份。 但是,如果試圖訂購書籍的話,就需要提供數(shù)字標(biāo)識(shí)登錄。 現(xiàn)在,輸入用戶名和密碼是最常見的方式,這兩者都由自己提前設(shè)定。 如果該網(wǎng)上商店支持 CardSpace 和標(biāo)識(shí)元系統(tǒng),則還會(huì)提供另一個(gè)選項(xiàng)以供您進(jìn)行身份驗(yàn)證: 使用信息卡。 為便于操作,該商店可能在其登錄屏幕上配置一個(gè)特定按鈕,可通過單擊該按鈕來使用信息卡登錄,而無需輸入用戶名和密碼。
單擊此按鈕將會(huì)讓瀏覽器使用 CardSpace 來登錄該站點(diǎn)。 通常會(huì)顯示 CardSpace 選擇屏幕,此時(shí)可以選擇一張卡以作為日后登錄該商店時(shí)驗(yàn)證身份之用。 雖然不要求全部如此,但在這種情況下所選擇的信息卡很可能是由自發(fā)行標(biāo)識(shí)提供者創(chuàng)建的 — 亦即您自己創(chuàng)建的信息卡。 因?yàn)樗姓军c(diǎn)此時(shí)需要做的就是將您標(biāo)識(shí)為唯一的客戶,因此這種簡單形式的數(shù)字標(biāo)識(shí)足以滿足要求。 付款時(shí),像平常那樣在 Web 窗體中輸入自己的信用卡信息和帳單郵寄地址即可。
上述簡單示例中,CardSpace 提供了一種無需使用密碼便可登錄到網(wǎng)上商店的方法。 這種方法很有用,并且朝著 Internet 數(shù)字標(biāo)識(shí)的方向邁進(jìn)了一步。 但對(duì)于數(shù)字標(biāo)識(shí)的眾多用途而言,這僅僅是一個(gè)開始。 例如,在此示例的支付步驟中,還可以使用信息卡來將信用卡信息發(fā)送到該站點(diǎn)。 假設(shè)發(fā)行信用卡的公司提供了一個(gè)標(biāo)識(shí)提供者,則可以利用此標(biāo)識(shí)提供者請(qǐng)求一個(gè)與信用卡相對(duì)應(yīng)的信息卡。 無需將信用卡信息輸入 Web 窗體,站點(diǎn)會(huì)在支付屏幕上提供一個(gè)按鈕,以便您提供信息卡。 單擊此按鈕,系統(tǒng)便會(huì)顯示 CardSpace 選擇屏幕,然后選擇可用于支付該站點(diǎn)款項(xiàng)的信息卡。 單擊其中的一張卡會(huì)使 CardSpace 聯(lián)系該卡發(fā)行者的標(biāo)識(shí)提供者,獲取包含信用卡信息的安全令牌,然后將該令牌提供給網(wǎng)上商店。
正如本例所示,數(shù)字標(biāo)識(shí)并不僅僅用來驗(yàn)證您的身份。 像您錢夾中各種卡所表示的物理標(biāo)識(shí)一樣,數(shù)字標(biāo)識(shí)也可以用于付款或其他用途。 例如,假設(shè)您當(dāng)?shù)匕l(fā)行駕駛執(zhí)照的組織提供了標(biāo)識(shí)提供者。 那么現(xiàn)在,就可以使用該數(shù)字標(biāo)識(shí)來驗(yàn)證發(fā)送到任何依賴方的個(gè)人信息。 例如在美國,客戶必須證明他們已經(jīng)年滿 21 歲才能購買酒類飲料。 某個(gè)網(wǎng)上酒類商店可能要求其客戶提供他們駕駛執(zhí)照的 CardSpace 版本,其中就包括出生日期,或許還接受 CardSpace 版的信用卡來支付相關(guān)費(fèi)用。
此駕駛執(zhí)照標(biāo)識(shí)提供者還可提供其他類型的信息卡。 例如,某些人可能希望在不透露自己姓名或其他標(biāo)識(shí)信息的情況下,有辦法證明他們已經(jīng)年滿 21 歲。 駕駛執(zhí)照標(biāo)識(shí)提供者知道您的年齡,因此可能會(huì)提供包含執(zhí)照上所有內(nèi)容的信息卡,也可能提供更簡單的只包含年齡的信息卡。 對(duì)符合要求的人,標(biāo)識(shí)提供者甚至可能提供這樣一種信息卡:只包含一條您已經(jīng)年滿 21 歲的聲明,而不會(huì)顯示其他任何如年齡這一類潛在的敏感信息。 盡管被稱為“數(shù)字標(biāo)識(shí)”,但在標(biāo)識(shí)特定用戶時(shí),卻也沒有要求其中必須包含該用戶的所有信息。 大多情況下,需要的只是有一種方法來進(jìn)行某個(gè)聲明,例如已經(jīng)年滿 21 歲,所有信息皆由可信任的機(jī)構(gòu)備份。
關(guān)于 Windows CardSpace 和標(biāo)識(shí)元系統(tǒng)的其他用途,還有更多示例。 移動(dòng)電話服務(wù)運(yùn)營商也可以提供信息卡,使其用戶能夠?qū)⒕W(wǎng)上采購費(fèi)用記入他們的電話帳單。 雇主可能會(huì)為其雇員提供多個(gè)數(shù)字標(biāo)識(shí),每種標(biāo)識(shí)都具有自己的信息卡,以在公司網(wǎng)絡(luò)上使用。 一個(gè)標(biāo)識(shí)可用于正常訪問,而另一個(gè)標(biāo)識(shí)則可能除了證明此人為公司員工外不包含其他任何信息,而提供這樣一個(gè)標(biāo)識(shí)的唯一目的或許就是為了方便員工對(duì)公司管理提出匿名建議。 如同現(xiàn)實(shí)世界中的標(biāo)識(shí)包含不同信息并具有不同用途一樣,數(shù)字標(biāo)識(shí)也可通過多種方式使用。 CardSpace 和標(biāo)識(shí)元系統(tǒng)的目標(biāo)是盡可能獲得最廣泛的應(yīng)用。
返回頁首檢查信息卡
從用戶的角度來看,信息卡是他(或她)可在其屏幕上看到的數(shù)字標(biāo)識(shí)的可視化表現(xiàn)形式。 但是,對(duì)于 CardSpace 而言,信息卡實(shí)際上是存儲(chǔ)在用戶 Windows 計(jì)算機(jī)上的一個(gè) XML 文檔。 在這種情況下,重要的是了解獲得信息卡的方式以及卡中所包含的內(nèi)容。 本節(jié)將著重介紹此類相關(guān)問題。
如何獲得信息卡
每個(gè)信息卡都由相應(yīng)的標(biāo)識(shí)提供者創(chuàng)建。 對(duì)于自發(fā)行標(biāo)識(shí)提供者,CardSpace 提供了可讓用戶創(chuàng)建卡的圖形工具。 對(duì)于其他標(biāo)識(shí)提供者,通常運(yùn)行于其他計(jì)算機(jī)之上,用戶必須通過一些途徑來獲得合適的卡,如通過標(biāo)識(shí)提供者的網(wǎng)站,或通過由標(biāo)識(shí)提供者發(fā)送的電子郵件。 實(shí)現(xiàn)此操作的方式由每個(gè)標(biāo)識(shí)提供者定義 — 沒有硬性規(guī)定獲得信息卡的方法。
無論采用哪種方法獲得信息卡,即使由自發(fā)行標(biāo)識(shí)提供者創(chuàng)建,都由發(fā)行卡的標(biāo)識(shí)提供者進(jìn)行了數(shù)字簽名,并附帶有標(biāo)識(shí)提供者的認(rèn)證。 此簽名用于驗(yàn)證標(biāo)識(shí)提供者的身份。 只要卡在用戶的計(jì)算機(jī)上,雙擊該卡便會(huì)出現(xiàn)一個(gè)屏幕,允許用戶將此卡安裝到 CardSpace 標(biāo)準(zhǔn)存儲(chǔ)區(qū)。 當(dāng)用戶必須批準(zhǔn)標(biāo)識(shí)提供者作為安全令牌的源時(shí),情況也是這樣,如前文所述(盡管由自發(fā)行標(biāo)識(shí)提供者創(chuàng)建的信息卡不需要該批準(zhǔn))。 用戶進(jìn)行該操作后,便可使用該卡來請(qǐng)求安全令牌。
卡中包含的信息
信息卡的內(nèi)容將以智能方式幫助用戶選擇數(shù)字標(biāo)識(shí)。 利用這些內(nèi)容,CardSpace 可使卡符合依賴方的要求,并從發(fā)行該卡的標(biāo)識(shí)提供者處獲取合適的安全令牌。 為了實(shí)現(xiàn)這兩個(gè)目標(biāo),每個(gè)信息卡都會(huì)包含下列內(nèi)容:
•
JPEG 或 GIF 文件,含有用戶可在其屏幕上看到的信息卡圖像,以及所顯示的信息卡名稱。
•
可從該標(biāo)識(shí)提供者處請(qǐng)求的一個(gè)或多個(gè)類型的安全令牌,以及每個(gè)令牌可能包含的聲明列表。 這樣,CardSpace 可將依賴方策略與能夠創(chuàng)建符合依賴方要求安全令牌的標(biāo)識(shí)提供者進(jìn)行匹配。
•
訪問標(biāo)識(shí)提供者上一個(gè)或多個(gè)端點(diǎn)請(qǐng)求安全令牌所需的 URL。
•
標(biāo)識(shí)該標(biāo)識(shí)提供者上可獲得其策略的端點(diǎn)的 URL。 如下一節(jié)所述,此信息還會(huì)指示 CardSpace 應(yīng)當(dāng)怎樣對(duì)發(fā)送給標(biāo)識(shí)提供者的請(qǐng)求進(jìn)行身份驗(yàn)證。
•
創(chuàng)建信息卡的日期和時(shí)間。
•
信息卡的 CardSpace 引用,是以 URI 形式指定的全局唯一標(biāo)識(shí)符。 此標(biāo)識(shí)符由發(fā)行信息卡的標(biāo)識(shí)提供者創(chuàng)建,并且每一次使用信息卡請(qǐng)求安全令牌時(shí),會(huì)將此標(biāo)識(shí)符傳回給該提供者。
同樣重要的是應(yīng)該注意信息卡中不包含的內(nèi)容: 關(guān)于此標(biāo)識(shí)的敏感數(shù)據(jù)。 例如,由信用卡公司創(chuàng)建的信息卡不會(huì)包含用戶的信用卡號(hào)碼。 盡管此類敏感信息可能作為聲明出現(xiàn)在標(biāo)識(shí)提供者創(chuàng)建的安全令牌中,但其始終是存儲(chǔ)在標(biāo)識(shí)提供者的系統(tǒng)中。 在安全令牌中發(fā)送此信息時(shí),通常會(huì)加密以確保攻擊者和 CardSpace 無法進(jìn)行訪問。 關(guān)鍵在于信息卡中從未包含此敏感信息,因此用戶計(jì)算機(jī)上也從未存儲(chǔ)此敏感信息。 但是,信息卡的擁有者也可以使用 CardSpace 來預(yù)覽那些使用該卡創(chuàng)建的安全令牌中的信息。 當(dāng)用戶要求查看此信息時(shí),將會(huì)從發(fā)行卡的標(biāo)識(shí)提供者處提取此信息。 顯示之后,接著會(huì)將該敏感信息從用戶系統(tǒng)中刪除。
信息卡的漫游
人們通常希望不同的計(jì)算機(jī)可以提供相同的數(shù)字標(biāo)識(shí)。 有許多人在工作時(shí)使用一臺(tái)計(jì)算機(jī),在家中使用第二臺(tái)計(jì)算機(jī),而旅行時(shí)使用第三臺(tái)計(jì)算機(jī)。 為了在這些不同的計(jì)算機(jī)之間進(jìn)行漫游,CardSpace 提供了一種卡導(dǎo)出功能。 此選項(xiàng)允許使用外部存儲(chǔ)媒體(如 USB 密鑰)來保存信息卡副本。 然后可以將這些卡安裝在其他計(jì)算機(jī)上,并允許用戶以相同的方式請(qǐng)求來自標(biāo)識(shí)提供者的安全令牌,無論是家用計(jì)算機(jī)、辦公室計(jì)算機(jī)還是出門旅行時(shí)用的便攜式計(jì)算機(jī)皆可。 為預(yù)防攻擊,會(huì)使用從用戶選擇密碼短語派生的密鑰對(duì)導(dǎo)出的信息卡進(jìn)行加密。 這就確保即使存儲(chǔ)媒體丟失,也只有知道密碼短語才可以解密存儲(chǔ)媒體所包含的信息卡。
但有些情況并不適用這一解決方案。 例如,假設(shè)某人想要在網(wǎng)吧使用基于 CardSpace 的標(biāo)識(shí)。 這樣就需要將信息卡安裝在公眾場合的計(jì)算機(jī)系統(tǒng)上。 為了使用自管理標(biāo)識(shí)提供者創(chuàng)建的現(xiàn)有標(biāo)識(shí),還需要安裝同這些標(biāo)識(shí)相關(guān)聯(lián)的密鑰。 但是把所有信息放到共享的公共計(jì)算機(jī)上不是什么好做法。 雖然 CardSpace 的第一個(gè)版本無法解決這一問題,但計(jì)劃在不久的將來,可實(shí)現(xiàn)將 CardSpace 存儲(chǔ)區(qū)和完整的自發(fā)行標(biāo)識(shí)提供者全部安裝到基于 USB 的硬件上。 一旦實(shí)現(xiàn)該目標(biāo),用戶就能夠?qū)⒋嗽O(shè)備插入計(jì)算機(jī),然后直接從中請(qǐng)求安全令牌,而無需在使用的計(jì)算機(jī)上安裝信息卡或密鑰。
撤銷信息卡
CardSpace 必須解決的另一個(gè)問題是撤銷。 標(biāo)識(shí)提供者向用戶發(fā)行信息卡之后,如想撤銷這張卡可以采取哪些措施呢? 在最簡單的情況下,標(biāo)識(shí)提供者本身可能希望停止發(fā)行基于此卡的安全令牌。 使用此標(biāo)識(shí)提供者可能還需要付費(fèi)訂購,而用戶并未繼續(xù)付款。 在這種情況下要撤銷非常簡單: 標(biāo)識(shí)提供者只需停止接受使用此卡做出的對(duì)安全令牌的請(qǐng)求即可。 每個(gè)請(qǐng)求都帶有唯一的 CardSpace 引用,因此標(biāo)識(shí)提供者很容易就可以識(shí)別出使用已撤銷信息卡發(fā)出的請(qǐng)求。
當(dāng)用戶想要撤銷一張信息卡時(shí),情況就會(huì)稍微復(fù)雜一些。 或許某個(gè)攻擊者竊取了用戶的便攜式計(jì)算機(jī),該計(jì)算機(jī)中安裝了由外部標(biāo)識(shí)提供者發(fā)行的信息卡。 正如我們前面提到的,可以為每個(gè)信息卡分配一個(gè)每次使用時(shí)都必須輸入的 PIN。 如果這樣做了,攻擊者便無法使用竊取的卡,除非他/她也知道每張卡的 PIN。 此外,某些標(biāo)識(shí)提供者可能要求用戶在每次使用特定信息卡請(qǐng)求新的安全令牌時(shí),都要輸入密碼或使用智能卡。 對(duì)于不具有其中任意一個(gè)保護(hù)措施的卡,用戶將需要聯(lián)系與其相應(yīng)的標(biāo)識(shí)提供者,并告知標(biāo)識(shí)提供者不再接受這些卡。 同獲取卡一樣,要實(shí)現(xiàn)這種支持也沒有任何標(biāo)準(zhǔn)機(jī)制。 每個(gè)標(biāo)識(shí)提供者必須為其用戶提供自己的程序來取消此信息卡,然后停止接受此卡做出的請(qǐng)求。
但是對(duì)于由自發(fā)行標(biāo)識(shí)提供者創(chuàng)建的卡,該如何處理呢? 就被盜竊的便攜式計(jì)算機(jī)來說,連同這些卡的標(biāo)識(shí)提供者也被盜竊了,因此沒有辦法告訴標(biāo)識(shí)提供者停止接受請(qǐng)求。 這種情況非常類似于丟失密碼,唯一的解決方案就是告知接受該密碼的那些組織,密碼丟失了。 如果信息卡連同創(chuàng)建它們的自發(fā)行標(biāo)識(shí)提供者一起丟失了,則卡的擁有者將需要在每一個(gè)接受安全令牌(使用這些已丟失信息卡所創(chuàng)建)的依賴方手動(dòng)取消他/她的帳戶。 CardSpace 提供了卡歷史記錄功能,可記錄卡在其中使用過的所有站點(diǎn),因此被盜便攜式計(jì)算機(jī)的擁有者可使用其信息卡的備份副本來確定需要聯(lián)系哪些站點(diǎn)。
返回頁首與 Windows CardSpace 進(jìn)行互操作
Windows CardSpace 是 .NET Framework 3.0 的一部分,并且在其上構(gòu)建的應(yīng)用程序必須是 Windows 應(yīng)用程序。 但是,將在其他平臺(tái)和設(shè)備上實(shí)現(xiàn)與 CardSpace 兼容的標(biāo)識(shí)選擇器,并且標(biāo)識(shí)提供者和依賴方不必是 Windows 應(yīng)用程序。 本節(jié)將概述為了與采用 CardSpace 的 Windows 應(yīng)用程序配合使用,標(biāo)識(shí)提供者和依賴方需要怎么做。
創(chuàng)建標(biāo)識(shí)提供者
可在任何操作系統(tǒng)上、使用任何開發(fā)平臺(tái)來構(gòu)建標(biāo)識(shí)提供者。 無論以何種方式創(chuàng)建,每個(gè)標(biāo)識(shí)提供者都必須滿足四個(gè)條件,方可使用 CardSpace:
•
必須能創(chuàng)建同 Microsoft 定義的卡格式兼容的信息卡,并且必須提供一種方式來將這些卡提供給用戶。
•
必須按照 WS-Trust 規(guī)范的定義來執(zhí)行安全令牌服務(wù) (STS)。 該規(guī)范基于 SOAP 定義了一種標(biāo)準(zhǔn)方式來請(qǐng)求特定類型的安全令牌,其中包含來自 STS 的特定聲明。 每個(gè)標(biāo)識(shí)提供者都必須至少執(zhí)行一種 STS,但是 STS 能夠以任何格式發(fā)行安全令牌 — 沒有硬性規(guī)定要采用特定的令牌類型。 雖然不要求全部如此,但還是強(qiáng)烈建議標(biāo)識(shí)提供者也支持由 Microsoft 為標(biāo)識(shí)元系統(tǒng)定義的 WS-Trust 特定的擴(kuò)展。
•
必須使用 WS-SecurityPolicy 來定義其策略,然后允許使用 WS-MetadataExchange 對(duì)該策略進(jìn)行訪問。 正如先前所述,每個(gè)信息卡都包含一個(gè)端點(diǎn),可以通過這個(gè)端點(diǎn)來檢索標(biāo)識(shí)提供者的策略。 在圖 2 和圖 4 中忽略了此步驟,但在客戶端應(yīng)用程序通過標(biāo)識(shí)提供者請(qǐng)求安全令牌之前,CardSpace 會(huì)首先要求標(biāo)識(shí)提供者提供自己的策略。
•
必須在其策略中指明應(yīng)如何對(duì)安全令牌的請(qǐng)求進(jìn)行身份驗(yàn)證。 在 CardSpace 的第一個(gè)版本中,對(duì)標(biāo)識(shí)提供者提供了四個(gè)選項(xiàng)來驗(yàn)證用戶身份:
•
用戶名/密碼(每次使用卡時(shí),可能都要求用戶輸入此標(biāo)識(shí)提供者的密碼)
•
Kerberos 票證
•
X.509 v3 證書(基于軟件或來自智能卡)
•
由自發(fā)行標(biāo)識(shí)提供者創(chuàng)建的 SAML 安全令牌。
•
標(biāo)識(shí)提供者可選擇支持這些選項(xiàng)的任何一個(gè)或全部。
作為其策略的一部分,標(biāo)識(shí)提供者還可以指示當(dāng)用戶針對(duì)某依賴方請(qǐng)求安全令牌時(shí),必須提供該依賴方的標(biāo)識(shí)。 默認(rèn)情況下,請(qǐng)求令牌時(shí),CardSpace 不會(huì)將依賴方的標(biāo)識(shí)透露給標(biāo)識(shí)提供者。 這樣可保護(hù)用戶隱私,因?yàn)檫@樣可不讓標(biāo)識(shí)提供者知道用戶想要使用此令牌訪問哪個(gè)服務(wù)。 但某些標(biāo)識(shí)提供者可能需要在發(fā)行請(qǐng)求的令牌之前了解依賴方的標(biāo)識(shí)。 例如,一個(gè) Kerberos 服務(wù)器需要知道客戶端將訪問的服務(wù)的標(biāo)識(shí),才能為該服務(wù)創(chuàng)建票證。 更常見的情況是,某個(gè)建立標(biāo)識(shí)提供者來供自己網(wǎng)站使用的組織,可能只允許標(biāo)識(shí)提供者發(fā)行用于那些自己網(wǎng)站的安全令牌 — 不允許任何不速之客為他們自己的目的來使用此標(biāo)識(shí)提供者。
CardSpace 還定義了一些可在產(chǎn)生錯(cuò)誤時(shí)發(fā)送的 SOAP 錯(cuò)誤。 例如,訪問一個(gè)標(biāo)識(shí)提供者可能會(huì)生成一些錯(cuò)誤,指明請(qǐng)求安全令牌時(shí)所引用的信息卡無效或已到期,或該標(biāo)識(shí)提供者無法創(chuàng)建一個(gè)包含所請(qǐng)求聲明的安全令牌。
創(chuàng)建依賴方
類似于標(biāo)識(shí)提供者,可在任何操作系統(tǒng)上、使用任何開發(fā)平臺(tái)來構(gòu)建依賴方。 同樣類似于標(biāo)識(shí)提供者,依賴方也必須滿足幾個(gè)條件方可使用 CardSpace。 對(duì)依賴方的要求是:
•
必須能夠接受安全令牌。 最常見的方法是執(zhí)行 WS-Security,但網(wǎng)站還可以接受使用 HTTP 發(fā)送的令牌。
•
必須定義自身策略。 同樣,應(yīng)當(dāng)選擇使用 WS-SecurityPolicy 來定義其策略,然后允許使用 WS-MetadataExchange 對(duì)該策略進(jìn)行訪問。 網(wǎng)站也可以使用 HTML 描述其策略并使用 HTTP 傳輸。
•
必須提供證書。 對(duì)于執(zhí)行 WS-* 規(guī)范的依賴方來說,可以使用 Microsoft 定義的 WS-Addressing 端點(diǎn)引用擴(kuò)展來進(jìn)行該操作。 通過將標(biāo)識(shí)元素添加到 WS-Addressing EndpointReference,該擴(kuò)展可提供一個(gè)標(biāo)準(zhǔn)方法來向客戶端顯示依賴方的證書。
依賴方可自由接受任何類型的安全令牌。 雖然不要求必須這樣做,但許多依賴方會(huì)接受由 CardSpace 自發(fā)行標(biāo)識(shí)提供者生成的安全令牌。 (Microsoft 定義了依賴方可放置在其策略中的特定值,以表示支持這些令牌。) 無論依賴方接受何種安全令牌,都可以隨時(shí)將該信息映射到本地標(biāo)識(shí),比如,將一個(gè) SAML 令牌轉(zhuǎn)換到 Windows 安全標(biāo)識(shí)符 (SID) 或 UNIX 用戶標(biāo)識(shí)符 (uid)。
同標(biāo)識(shí)提供者一樣,CardSpace 定義了一些在依賴方與 Web 服務(wù)交互期間,產(chǎn)生錯(cuò)誤的情況下發(fā)送用的 SOAP 錯(cuò)誤。 例如,訪問依賴方可能會(huì)產(chǎn)生錯(cuò)誤,指明安全令牌中的一個(gè)聲明無效或請(qǐng)求的聲明丟失。
返回頁首Windows CardSpace 和其他 Microsoft 技術(shù)
同大多數(shù)的 Microsoft 新產(chǎn)品一樣,CardSpace 將對(duì) Windows 環(huán)境的其他部分產(chǎn)生影響。 受到這種新數(shù)字標(biāo)識(shí)方法影響的最重要的技術(shù)是 Internet Explorer (IE)、Windows Communication Foundation (WCF)、Active Directory 和 Windows Live ID。本節(jié)將著重介紹每一個(gè)技術(shù)與 CardSpace 之間的聯(lián)系。
Windows CardSpace 和 Internet Explorer
Microsoft Web 瀏覽器的下一個(gè)版本 Internet Explorer 7,將允許用戶使用 CardSpace 來管理其數(shù)字標(biāo)識(shí)。 因?yàn)?IE 是現(xiàn)今最廣泛使用的訪問 Internet 的工具,因此對(duì)于此新的標(biāo)識(shí)技術(shù)而言是一個(gè)重要的應(yīng)用程序。 在最常見的情況下,CardSpace 完全使用基于 SOAP 的協(xié)議進(jìn)行通信。 但是,正如先前所述,網(wǎng)站還可通過使用 HTML 和 HTTP 來同 IE 7(以及可能同其他 Web 瀏覽器)進(jìn)行交互。
圖 7 顯示了進(jìn)行該操作的一個(gè)方法。
圖 7. Windows CardSpace 和 Internet Explorer 7
1.
當(dāng)瀏覽器用戶在網(wǎng)站上訪問一個(gè)受保護(hù)的頁面時(shí),例如網(wǎng)上商店上用于購買產(chǎn)品的頁面,這一過程就會(huì)開始。 此時(shí),網(wǎng)站會(huì)要求用戶進(jìn)行登錄,因而該站點(diǎn)會(huì)將瀏覽器重定向到其登錄頁面。
2.
重定向操作會(huì)使站點(diǎn)向?yàn)g覽器發(fā)送一個(gè)登錄窗體。 利用該窗體,用戶可像平時(shí)一樣通過提供用戶名和密碼來登錄到站點(diǎn),但是如果該站點(diǎn)支持 CardSpace 登錄,則傳遞窗體的頁面還將包含一個(gè)特定 OBJECT 標(biāo)記或 XHTML 語法。 此信息包含站點(diǎn)的策略,并且將使得瀏覽器向用戶顯示一個(gè) Windows CardSpace 登錄選項(xiàng)。
3.
如果用戶選擇該選項(xiàng),則 IE 7 將執(zhí)行由 OBJECT 標(biāo)記或 XHTML 語法標(biāo)識(shí)的代碼,在登錄過程中需要請(qǐng)求 CardSpace 的參與。
4.
隨即將顯示 CardSpace 屏幕,且用戶可以選擇一個(gè)標(biāo)識(shí)。
5.
到目前為止,所有同該站點(diǎn)的通信都使用了 HTTP。 但是,用戶選擇了一個(gè)標(biāo)識(shí)后,CardSpace 通常會(huì)使用 WS-Trust 聯(lián)系相關(guān)的標(biāo)識(shí)提供者,并獲取安全令牌。
6.
然后作為登錄過程的一部分,使用 HTTP POST 將此令牌發(fā)送到網(wǎng)站。
Web 應(yīng)用程序便可使用此令牌驗(yàn)證用戶身份或用于任何其他目的。
在這種情況下,標(biāo)識(shí)提供者可能是在用戶系統(tǒng)上本地運(yùn)行的自發(fā)行標(biāo)識(shí)提供者,也可能是一些外部提供者。 網(wǎng)站本身也能夠提供自己的安全令牌服務(wù),可用來生成由該站點(diǎn)使用的自定義令牌。 對(duì)于希望提供應(yīng)用程序特定令牌或高流量的網(wǎng)站而言,此選項(xiàng)非常有用,因?yàn)樗试S在專用服務(wù)器上進(jìn)行大部分的驗(yàn)證工作。
另外更重要的一點(diǎn)是此過程中不存在任何特定于 IE 的內(nèi)容。 任何操作系統(tǒng)上的任何瀏覽器都能以相同的方式使用標(biāo)識(shí)元系統(tǒng)。 在 Windows 上,Microsoft 所提出的目標(biāo)是允許任何應(yīng)用程序(包括其他供應(yīng)商的 Web 瀏覽器在內(nèi))通過 CardSpace 管理和使用數(shù)字標(biāo)識(shí)。
Windows CardSpace 和 Windows Communication Foundation
Windows Communication Foundation 是即將推出的一款 Microsoft 平臺(tái),用于構(gòu)建面向服務(wù)的應(yīng)用程序。 WCF 可執(zhí)行所有由 CardSpace 和標(biāo)識(shí)元系統(tǒng)使用的能夠互操作的協(xié)議,其中包括 WS-Security、WS-SecurityPolicy、WS-Trust 和 WS-MetadataExchange,并且 CardSpace 本身大部分也基于 WCF 而構(gòu)建。 毫不奇怪,使用 WCF 來創(chuàng)建用作依賴方、標(biāo)識(shí)提供者或 CardSpace 客戶端的應(yīng)用程序?qū)⒑芎唵巍?div style="height:15px;">
若要知道如何實(shí)現(xiàn)此目的,就需要了解一些有關(guān) WCF 服務(wù)(執(zhí)行操作)和 WCF 客戶端(調(diào)用這些操作)的信息。 每個(gè) WCF 服務(wù)都會(huì)顯示一個(gè)或多個(gè)端點(diǎn),通過這些端點(diǎn)可對(duì)該服務(wù)的操作進(jìn)行訪問。 每個(gè) WCF 客戶端都會(huì)指明想要與之進(jìn)行通信的端點(diǎn)。 服務(wù)和客戶端共同指定對(duì)端點(diǎn)的綁定,該綁定會(huì)定義將使用什么協(xié)議來傳送 SOAP 消息、如何實(shí)現(xiàn)安全性等。 例如,名為 WsHttpBinding 的綁定指示應(yīng)通過 HTTP(支持 WS-Security)發(fā)送 SOAP 消息,等等。 WCF 還可自動(dòng)創(chuàng)建應(yīng)用程序策略的可訪問描述,使用 WS-SecurityPolicy 表示。
雖然沒有要求必須如此,但大多數(shù)人還是傾向于使用 WCF,在支持 NET Framework 3.0 版本的 Windows 系統(tǒng)上實(shí)現(xiàn)標(biāo)識(shí)提供者和依賴方的構(gòu)建。 要?jiǎng)?chuàng)建標(biāo)識(shí)提供者或依賴方,需要做的就是構(gòu)建一個(gè)符合上節(jié)內(nèi)容所列要求的 WCF 服務(wù)。 只要應(yīng)用程序符合這些要求并選擇了合適的 WCF 綁定,如 WsHttpBinding,就可以參與到 CardSpace 中。
但是,創(chuàng)建一個(gè)能夠讓用戶以 CardSpace 來指定數(shù)字標(biāo)識(shí)的 WCF 客戶端應(yīng)用程序,需要直接使用 CardSpace 軟件。 提供了一個(gè)特殊的綁定來指示 WCF 應(yīng)用程序應(yīng)使用 CardSpace 進(jìn)行身份驗(yàn)證。 如果 WCF 客戶端為與之進(jìn)行通信的端點(diǎn)指定此綁定(不管執(zhí)行該端點(diǎn)的依賴方是否基于 WCF 而構(gòu)建),將會(huì)在需要安全令牌時(shí)自動(dòng)調(diào)用 CardSpace。 通常會(huì)顯示 CardSpace 選擇屏幕,讓用戶選擇將要發(fā)送的數(shù)字標(biāo)識(shí)。 CardSpace 將自動(dòng)聯(lián)系適當(dāng)?shù)臉?biāo)識(shí)提供者以獲取安全令牌,然后將令牌插入 WCF 應(yīng)用程序的傳出請(qǐng)求。 開發(fā)人員僅需指定應(yīng)使用正確的綁定,而 CardSpace 將完成剩余的全部操作。
Active Directory 顯然是標(biāo)識(shí)提供者的重要備選者。 CardSpace 預(yù)定于 2007 年年初發(fā)布,而暫時(shí)還沒有發(fā)布新版 Active Directory 的計(jì)劃。 Microsoft 已經(jīng)提出 Active Directory 最終將能夠起到標(biāo)識(shí)提供者的作用,但并未宣布該功能何時(shí)將會(huì)實(shí)現(xiàn)。
更直接的問題是 CardSpace 如何同 Active Directory 聯(lián)合身份驗(yàn)證服務(wù) (ADFS) 發(fā)生聯(lián)系。 ADFS 現(xiàn)在就已可使用,而且初看起來與 CardSpace 極為類似。 但事實(shí)上,這兩種技術(shù)完全不同。 CardSpace 會(huì)提供一個(gè)標(biāo)識(shí)選擇器和一個(gè)自發(fā)行標(biāo)識(shí)提供者,二者都可在客戶端計(jì)算機(jī)上運(yùn)行。 ADFS 是一種基于服務(wù)器的軟件,該軟件允許某個(gè)組織通過 WS-Federation 連同其他組織,使用 Active Directory 來對(duì)其標(biāo)識(shí)進(jìn)行聯(lián)合身份驗(yàn)證。 另一個(gè)重要的區(qū)別在于,如上一節(jié)所述使用 CardSpace 的瀏覽器起到了極為積極的作用,而使用 ADFS 的瀏覽器則沒有這個(gè)意識(shí)完全處于被動(dòng)狀態(tài)。 當(dāng)二者都涉及到標(biāo)識(shí)時(shí),CardSpace 和 ADFS 會(huì)執(zhí)行完全不同的功能。
Microsoft Windows Live ID 系統(tǒng)(以前稱作 Passport),最初用來提供可供 Internet 上的任何站點(diǎn)使用的標(biāo)準(zhǔn)身份驗(yàn)證系統(tǒng)。 現(xiàn)在,從最初形式發(fā)展而來的網(wǎng)絡(luò)主要包括由 Microsoft 本身運(yùn)行的一些站點(diǎn)。 即使 Windows Live ID 現(xiàn)在一天能處理近十億次登錄,但事實(shí)很明顯: 哪怕是一個(gè)像 Microsoft 這樣大的組織,都不可能成為 Internet 上所有內(nèi)容唯一的標(biāo)識(shí)提供者。
CardSpace 和標(biāo)識(shí)元系統(tǒng)具有非常多的標(biāo)識(shí)及標(biāo)識(shí)提供者的常規(guī)視圖,代表了完全不同的方法。 Microsoft 已經(jīng)表示將修改 Windows Live ID 使之起到標(biāo)識(shí)提供者的作用,并且用戶將能夠通過 CardSpace 登錄到他們的 Windows Live ID 帳戶。 然而 CardSpace 與 Windows Live ID 不存在任何依賴關(guān)系,并且總有一天 Windows Live ID 提供的標(biāo)識(shí)提供者將不會(huì)在標(biāo)識(shí)元系統(tǒng)中起到任何特定的作用。
不可否認(rèn),標(biāo)識(shí)元系統(tǒng)解決的問題以及所提供的解決方案都非常重要。 提供標(biāo)準(zhǔn)方法來使用各種數(shù)字標(biāo)識(shí),可讓網(wǎng)絡(luò)世界變得像現(xiàn)實(shí)世界一樣方便和安全。 讓用戶控制在何種情況下使用何種標(biāo)識(shí),使人們可以直接負(fù)責(zé)使用其數(shù)字標(biāo)識(shí)的方式。 使用包括自發(fā)行標(biāo)識(shí)在內(nèi)的數(shù)字標(biāo)識(shí),可減少對(duì)基于密碼的 Web 登錄的需求,同時(shí)增強(qiáng)用戶對(duì)網(wǎng)站標(biāo)識(shí)的信任度,還可減少困擾許多用戶的網(wǎng)頁仿冒攻擊。
Windows CardSpace 是這些解決方案的關(guān)鍵部分。 要想實(shí)現(xiàn)上述美好目標(biāo),就需要為其他操作系統(tǒng)創(chuàng)建軟件、構(gòu)建標(biāo)識(shí)提供者、提供依賴方和執(zhí)行標(biāo)準(zhǔn)的 Web 服務(wù)協(xié)議,使元系統(tǒng)得以存在并實(shí)現(xiàn)互操作。 Microsoft 通過為 Windows 提供軟件來履行其職責(zé),但是只憑一己之力還無法完成標(biāo)識(shí)元系統(tǒng)的偉大設(shè)想。 其他個(gè)人和組織也應(yīng)該了解通過更有效使用數(shù)字標(biāo)識(shí)將得到的益處,并且積極地參與進(jìn)來。
盡管如此,CardSpace 仍就是用途廣泛。 由于 CardSpace 底層的標(biāo)識(shí)元系統(tǒng)是基于開放協(xié)議,因此可以在任何平臺(tái)或設(shè)備上針對(duì)標(biāo)識(shí)提供者、依賴方以及其他標(biāo)識(shí)選擇器構(gòu)建與 CardSpace 相兼容的軟件。 而且由于 CardSpace 顯示的界面簡單直觀,因此可以斷定任何 Windows 軟件都能夠使用 CardSpace。 基于所有上述事實(shí),我們必須承認(rèn) Windows CardSpace 對(duì)于所有對(duì)數(shù)字標(biāo)識(shí)感興趣的人而言具有重要意義。
是加利福尼亞州舊金山 Chappell & Associates 的負(fù)責(zé)人。 他通過講演、撰稿和咨詢,幫助全球的技術(shù)專業(yè)人員了解和使用企業(yè)軟件,并制定更佳的決策。
©2009 Microsoft Corporation. 版權(quán)所有.