技術(shù)領(lǐng)域
本發(fā)明整體涉及數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更具體地講,本發(fā)明涉及使用安全傳輸協(xié)議建立信任的系統(tǒng)和方法。
相關(guān)領(lǐng)域說(shuō)明
還已經(jīng)設(shè)計(jì)了使用生物計(jì)量傳感器經(jīng)由網(wǎng)絡(luò)提供安全用戶驗(yàn)證的系統(tǒng)。在此類系統(tǒng)中,可經(jīng)由網(wǎng)絡(luò)發(fā)送由驗(yàn)證器生成的得分和/或其他驗(yàn)證數(shù)據(jù),以向遠(yuǎn)程服務(wù)器驗(yàn)證用戶。例如,專利申請(qǐng)No.2011/0082801(“‘801申請(qǐng)”)描述了一種在網(wǎng)絡(luò)上進(jìn)行用戶注冊(cè)和驗(yàn)證的框架,這種框架提供強(qiáng)驗(yàn)證(例如,防御身份竊取和網(wǎng)絡(luò)釣魚(yú))、安全交易(例如,防御交易中的“瀏覽器中的惡意軟件”和“中間人”攻擊)和客戶端驗(yàn)證令牌的登記/管理(例如,指紋讀取器、面部識(shí)別裝置、智能卡、可信平臺(tái)模塊等等)。
本申請(qǐng)的受讓人已經(jīng)開(kāi)發(fā)出對(duì)‘801申請(qǐng)中所描述的驗(yàn)證框架的多種改進(jìn)。這些改進(jìn)中的一些在以下一組美國(guó)專利申請(qǐng)(“共同未決的申請(qǐng)”)中描述,這些美國(guó)專利申請(qǐng)都被轉(zhuǎn)讓給本受讓人:序列號(hào)13/730,761,名稱為“Query System and Method to Determine Authentication Capabilities”(用于確定驗(yàn)證功能的查詢系統(tǒng)和方法);序列號(hào)13/730,776,名稱為“System and Method for Efficiently Enrolling,Registering,and Authenticating With Multiple Authentication Devices”(使用多個(gè)驗(yàn)證裝置有效地進(jìn)行登記、注冊(cè)和驗(yàn)證的系統(tǒng)和方法);序列號(hào)13/730,780,名稱為“System and Method for Processing Random Challenges Within an Authentication Framework”(用于在驗(yàn)證框架內(nèi)處理隨機(jī)質(zhì)詢的系統(tǒng)和方法);序列號(hào)13/730,791,名稱為“System and Method for Implementing Privacy Classes Within an Authentication Framework”(用于在驗(yàn)證框架內(nèi)實(shí)施隱私類別的系統(tǒng)和方法);序列號(hào)13/730,795,名稱為“System and Method for Implementing Transaction Signaling Within an Authentication Framework”(用于在驗(yàn)證框架內(nèi)實(shí)施交易信令的系統(tǒng)和方法);以及序列號(hào)14/218,504,名稱為“Advanced Authentication Techniques and Applications”(高級(jí)驗(yàn)證技術(shù)和應(yīng)用)(下文中稱為“‘504申請(qǐng)”)。
簡(jiǎn)而言之,在這些共同未決的申請(qǐng)描述的驗(yàn)證技術(shù)中,用戶向客戶端裝置上的驗(yàn)證裝置(或驗(yàn)證器)諸如生物計(jì)量裝置(例如,指紋傳感器)登記。當(dāng)用戶向生物計(jì)量裝置登記時(shí),(例如,通過(guò)輕掃手指、拍攝照片、記錄語(yǔ)音等)捕捉生物計(jì)量參考數(shù)據(jù)。用戶可隨后經(jīng)由網(wǎng)絡(luò)向一個(gè)或多個(gè)服務(wù)器(例如,配備有安全交易服務(wù)的網(wǎng)站或其他依賴方,如共同待決的申請(qǐng)中所述)注冊(cè)驗(yàn)證裝置;并且隨后使用在注冊(cè)過(guò)程中交換的數(shù)據(jù)(例如,預(yù)置到驗(yàn)證裝置中的密鑰)向那些服務(wù)器驗(yàn)證。一旦通過(guò)驗(yàn)證,用戶便獲許與網(wǎng)站或其他依賴方執(zhí)行一個(gè)或多個(gè)在線交易。在共同未決的申請(qǐng)所描述的框架中,敏感信息(諸如指紋數(shù)據(jù)和可用于唯一地標(biāo)識(shí)用戶的其他數(shù)據(jù))可本地保持在用戶的驗(yàn)證裝置上,以保護(hù)用戶的隱私。‘504申請(qǐng)描述了多種額外的技術(shù),包括以下技術(shù):設(shè)計(jì)復(fù)合驗(yàn)證器、智能地生成驗(yàn)證保證等級(jí)、使用非侵入式用戶核驗(yàn)、將驗(yàn)證數(shù)據(jù)傳送到新的驗(yàn)證裝置、用客戶端風(fēng)險(xiǎn)數(shù)據(jù)擴(kuò)充驗(yàn)證數(shù)據(jù)、自適應(yīng)地應(yīng)用驗(yàn)證策略,以及創(chuàng)建信任圈等等。
附圖說(shuō)明
可結(jié)合下列附圖從以下具體實(shí)施方式更好地理解本發(fā)明,其中:
圖1A至圖1B示出了安全驗(yàn)證系統(tǒng)架構(gòu)的兩個(gè)不同實(shí)施例;
圖2是示出了可如何將密鑰注冊(cè)到驗(yàn)證裝置中的交易圖;
圖3示出了顯示遠(yuǎn)程驗(yàn)證的交易圖;
圖4示出了向依賴方進(jìn)行的驗(yàn)證可能如何使用依賴方應(yīng)用程序;
圖5示出了用于通過(guò)使用安全通信協(xié)議建立信任來(lái)進(jìn)行驗(yàn)證的系統(tǒng)的一個(gè)實(shí)施例;
圖6示出了用于通過(guò)使用安全通信協(xié)議建立信任來(lái)進(jìn)行驗(yàn)證的方法的一個(gè)實(shí)施例;
圖7示出了用于實(shí)施本文所述的客戶端和/或服務(wù)器的示例性數(shù)據(jù)處理架構(gòu);以及
圖8示出了用于實(shí)施本文所述的客戶端和/或服務(wù)器的另一個(gè)示例性數(shù)據(jù)處理架構(gòu);
具體實(shí)施方式
下文描述用于實(shí)施高級(jí)驗(yàn)證技術(shù)及相關(guān)聯(lián)應(yīng)用的設(shè)備、方法和機(jī)器可讀介質(zhì)的實(shí)施例。在整個(gè)描述中,出于解釋的目的,本文陳述了許多特定細(xì)節(jié)以便透徹理解本發(fā)明。然而,本領(lǐng)域的技術(shù)人員將容易明白,可在沒(méi)有這些特定細(xì)節(jié)中的一些的情況下實(shí)踐本發(fā)明。在其他情況下,為免模糊本發(fā)明的基本原理,已熟知的結(jié)構(gòu)和裝置未示出或以框圖形式示出。
下文論述的本發(fā)明的實(shí)施例涉及具有用戶核實(shí)功能(諸如生物計(jì)量形式或PIN輸入)的驗(yàn)證裝置。這些裝置在本文中有時(shí)稱為“令牌”、“驗(yàn)證裝置”或“驗(yàn)證器”。盡管某些實(shí)施例注重于面部識(shí)別硬件/軟件(例如,用于識(shí)別用戶面部并且跟蹤用戶的眼球運(yùn)動(dòng)的相機(jī)和相關(guān)聯(lián)軟件),但有些實(shí)施例可利用額外的生物計(jì)量裝置,包括(例如)指紋傳感器、聲音識(shí)別硬件/軟件(例如,用于識(shí)別用戶聲音的麥克風(fēng)和相關(guān)聯(lián)軟件)以及光學(xué)識(shí)別能力(例如,用于掃描用戶視網(wǎng)膜的光學(xué)掃描器和相關(guān)聯(lián)軟件)。用戶驗(yàn)證功能還可包括非生物計(jì)量形式,如PIN輸入。驗(yàn)證器可使用裝置,如可信平臺(tái)模塊(TPM)、智能卡和安全元件,來(lái)進(jìn)行密碼操作與密鑰存儲(chǔ)。
在移動(dòng)式生物計(jì)量的具體實(shí)施中,生物計(jì)量裝置可遠(yuǎn)程于依賴方。如本文所用,術(shù)語(yǔ)“遠(yuǎn)程”意味著生物計(jì)量傳感器不是其以通信方式耦接到的計(jì)算機(jī)的安全邊界的一部分(例如,生物計(jì)量傳感器未嵌入到與依賴方計(jì)算機(jī)相同的物理外殼中)。舉例來(lái)說(shuō),生物計(jì)量裝置可經(jīng)由網(wǎng)絡(luò)(例如,因特網(wǎng)、無(wú)線網(wǎng)絡(luò)鏈路等)或經(jīng)由外圍輸入(諸如USB端口)耦接到依賴方。在這些條件下,依賴方可能無(wú)法知道裝置是否為得到依賴方授權(quán)的裝置(例如,提供可接受等級(jí)的驗(yàn)證強(qiáng)度和完整性保護(hù)的裝置)以及/或者黑客是否已經(jīng)危及或甚至已經(jīng)替換了生物計(jì)量裝置。生物計(jì)量裝置的置信度取決于裝置的特定實(shí)施。
本文中使用的術(shù)語(yǔ)“本地”指的是用戶正親自在特定位置處(諸如在自動(dòng)取款機(jī)(ATM)或銷售點(diǎn)(POS)零售結(jié)賬處)進(jìn)行交易的事實(shí)。然而,如下文所論述,用于驗(yàn)證用戶的驗(yàn)證技術(shù)可能涉及非位置組件,諸如經(jīng)由網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器和/或其他數(shù)據(jù)處理裝置的通信。此外,盡管本文中描述了特定實(shí)施例(諸如ATM和零售點(diǎn)),但應(yīng)該指出的是,可在由最終用戶在其內(nèi)本地發(fā)起交易的任何系統(tǒng)的環(huán)境中實(shí)施本發(fā)明的基本原理。
本文中有時(shí)使用術(shù)語(yǔ)“依賴方”來(lái)不僅指嘗試與之進(jìn)行用戶交易的實(shí)體(例如,執(zhí)行用戶交易的網(wǎng)站或在線服務(wù)),也指安全交易服務(wù)器(有時(shí)稱為代表那個(gè)實(shí)體實(shí)施的,該實(shí)體可執(zhí)行本文所述的基礎(chǔ)驗(yàn)證技術(shù))。安全交易服務(wù)器可由依賴方擁有并且/或者在依賴方的控制下,或者可在作為商業(yè)安排的一部分向依賴方提供安全交易服務(wù)的第三方的控制下。
本文中使用的術(shù)語(yǔ)“服務(wù)器”指的是在一個(gè)硬件平臺(tái)上(或跨多個(gè)硬件平臺(tái))執(zhí)行的軟件,其經(jīng)由網(wǎng)絡(luò)從客戶端接收請(qǐng)求,然后作為響應(yīng)來(lái)執(zhí)行一個(gè)或多個(gè)操作,并且將響應(yīng)傳輸?shù)娇蛻舳?,該響?yīng)通常包括操作的結(jié)果。服務(wù)器對(duì)客戶端請(qǐng)求做出響應(yīng),從而向客戶端提供或幫助向客戶端提供網(wǎng)絡(luò)“服務(wù)”。值得注意的是,服務(wù)器不限于單個(gè)計(jì)算機(jī)(例如,用于執(zhí)行服務(wù)器軟件的單個(gè)硬件裝置),而是實(shí)際上可散布在多個(gè)硬件平臺(tái)上,有可能位于多個(gè)地理位置處。
示例性系統(tǒng)架構(gòu)和交易
圖1A和圖1B示出了包括用于注冊(cè)驗(yàn)證裝置和驗(yàn)證用戶的客戶端側(cè)組件和服務(wù)器側(cè)組件的系統(tǒng)架構(gòu)的兩個(gè)實(shí)施例。圖1A所示的實(shí)施例使用基于web瀏覽器插件的架構(gòu)來(lái)與網(wǎng)站通信,而圖1B所示的實(shí)施例不需要web瀏覽器。本文所述的各種技術(shù)諸如向驗(yàn)證裝置登記用戶、向安全服務(wù)器注冊(cè)驗(yàn)證裝置和核驗(yàn)用戶可在這些系統(tǒng)構(gòu)架中的任一者上實(shí)施。因此,雖然圖1A所示的架構(gòu)用于展示下述若干實(shí)施例的操作,但相同的基本原理可在圖1B所示的系統(tǒng)上容易地實(shí)施(例如,通過(guò)刪除瀏覽器插件105,該瀏覽器插件充當(dāng)用于在服務(wù)器130與客戶端上的安全交易服務(wù)101之間通信的中介)。
首先轉(zhuǎn)到圖1A,所示實(shí)施例包括配備有一個(gè)或多個(gè)用于登記和核驗(yàn)最終用戶的驗(yàn)證裝置110至112(這些驗(yàn)證裝置在本領(lǐng)域中有時(shí)稱為驗(yàn)證“令牌”或“驗(yàn)證器”)的客戶端100。如上所述,驗(yàn)證裝置110至112可包括生物計(jì)量裝置,諸如指紋傳感器、聲音識(shí)別硬件/軟件(例如,用于識(shí)別用戶聲音的麥克風(fēng)和相關(guān)聯(lián)軟件)、面部識(shí)別硬件/軟件(例如,用于識(shí)別用戶面部的相機(jī)和相關(guān)聯(lián)軟件)和光學(xué)識(shí)別功能(例如,用于掃描用戶視網(wǎng)膜的光學(xué)掃描器和相關(guān)聯(lián)軟件),并且支持非生物計(jì)量形式(諸如PIN核驗(yàn))。驗(yàn)證裝置可使用可信平臺(tái)模塊(TPM)、智能卡或安全元件用于密碼操作以及密鑰存儲(chǔ)。
驗(yàn)證裝置110至112通過(guò)由安全交易服務(wù)101暴露的接口102(例如,應(yīng)用程序編程接口或API)以通信方式耦接到客戶端。安全交易服務(wù)101是用于經(jīng)由網(wǎng)絡(luò)與一個(gè)或多個(gè)安全交易服務(wù)器132至133通信以及用于與在web瀏覽器104的環(huán)境內(nèi)執(zhí)行的安全交易插件105介接的安全應(yīng)用程序。如圖所示,接口102還可提供對(duì)客戶端100上的安全存儲(chǔ)裝置120的安全訪問(wèn),該安全存儲(chǔ)裝置存儲(chǔ)與每個(gè)驗(yàn)證裝置110至112相關(guān)的信息,諸如裝置識(shí)別代碼、用戶識(shí)別代碼、受驗(yàn)證裝置保護(hù)的用戶登記數(shù)據(jù)(例如,所掃描的指紋或其他生物計(jì)量數(shù)據(jù)),以及用于執(zhí)行本文所述安全驗(yàn)證技術(shù)的由驗(yàn)證裝置包封的密鑰。例如,如下文詳細(xì)論述,唯一密鑰可被存儲(chǔ)到每個(gè)驗(yàn)證裝置中并且在經(jīng)由網(wǎng)絡(luò)(諸如因特網(wǎng))與服務(wù)器130通信時(shí)使用。
如下文論述,安全交易插件105支持某些類型的網(wǎng)絡(luò)交易,諸如與網(wǎng)站131或其他服務(wù)器的HTTP或HTTPS交易。在一個(gè)實(shí)施例中,響應(yīng)于由安全企業(yè)或Web目的地130內(nèi)的網(wǎng)絡(luò)服務(wù)器131(下文中有時(shí)簡(jiǎn)稱為“服務(wù)器130”)插入到網(wǎng)頁(yè)HTML代碼中的特定HTML標(biāo)簽來(lái)啟動(dòng)安全交易插件。響應(yīng)于檢測(cè)到此類標(biāo)簽,安全交易插件105可將交易轉(zhuǎn)發(fā)到安全交易服務(wù)101以進(jìn)行處理。另外,對(duì)于某些類型的交易(例如,安全密鑰交換),安全交易服務(wù)101可開(kāi)啟與當(dāng)?shù)亟灰追?wù)器132(即,與網(wǎng)站位于同一地點(diǎn))或異地交易服務(wù)器133的直接通信信道。
安全交易服務(wù)器132至133耦接到安全交易數(shù)據(jù)庫(kù)120,安全交易數(shù)據(jù)庫(kù)120用于存儲(chǔ)用戶數(shù)據(jù)、驗(yàn)證裝置數(shù)據(jù)、密鑰以及支持下文所述的安全驗(yàn)證交易所需要的其他安全信息。然而,應(yīng)該指出的是,本發(fā)明的基本原理不需要分離圖1A所示的安全企業(yè)或web目的地130內(nèi)的邏輯組件。例如,網(wǎng)站131和安全交易服務(wù)器132至133可在單個(gè)物理服務(wù)器或分開(kāi)的多個(gè)物理服務(wù)器內(nèi)實(shí)施。此外,網(wǎng)站131和交易服務(wù)器132至133可在用于執(zhí)行下文所述的功能的一個(gè)或多個(gè)服務(wù)器上所執(zhí)行的集成軟件模塊內(nèi)實(shí)施。
如上所述,本發(fā)明的基本原理不限于圖1A所示的基于瀏覽器的架構(gòu)。圖1B示出替代性具體實(shí)施,其中獨(dú)立應(yīng)用程序154利用由安全交易服務(wù)101提供的功能來(lái)經(jīng)由網(wǎng)絡(luò)驗(yàn)證用戶。在一個(gè)實(shí)施例中,應(yīng)用程序154被設(shè)計(jì)為建立與一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)151的通信會(huì)話,這些網(wǎng)絡(luò)服務(wù)依賴于安全交易服務(wù)器132至133來(lái)執(zhí)行下文詳細(xì)描述的用戶/客戶端驗(yàn)證技術(shù)。
在圖1A和圖1B所示的任一個(gè)實(shí)施例中,安全交易服務(wù)器132至133可生成密鑰,這些密鑰接著被安全地傳輸?shù)桨踩灰追?wù)101并存儲(chǔ)到安全存儲(chǔ)裝置120內(nèi)的驗(yàn)證裝置中。另外,安全交易服務(wù)器132至133管理服務(wù)器端上的安全交易數(shù)據(jù)庫(kù)120。
與遠(yuǎn)程注冊(cè)驗(yàn)證裝置并向依賴方進(jìn)行驗(yàn)證相關(guān)的某些基本原理將結(jié)合圖2至圖5進(jìn)行描述,然后詳細(xì)介紹使用安全通信協(xié)議建立信任的本發(fā)明實(shí)施例。
圖2示出了用于在客戶端(例如,圖1A至圖1B中的客戶端100上的裝置110-112)上注冊(cè)驗(yàn)證裝置的一系列交易。為了簡(jiǎn)單起見(jiàn),安全交易服務(wù)101和接口102被組合在一起作為驗(yàn)證客戶端201,包括安全交易服務(wù)器132至133的安全企業(yè)或Web目的地130被表示為依賴方202。
在注冊(cè)驗(yàn)證器(例如,指紋驗(yàn)證器、語(yǔ)音驗(yàn)證器等)期間,在驗(yàn)證客戶端201和依賴方202之間共享與驗(yàn)證器相關(guān)聯(lián)的密鑰?;仡檲D1A至圖1B,密鑰存儲(chǔ)在客戶端100的安全存儲(chǔ)裝置120和由安全交易服務(wù)器132至133使用的安全交易數(shù)據(jù)庫(kù)120內(nèi)。在一個(gè)實(shí)施例中,密鑰是由安全交易服務(wù)器132至133中的一個(gè)生成的對(duì)稱密鑰。然而,在下文論述的另一個(gè)實(shí)施例中,使用了不對(duì)稱密鑰。在該實(shí)施例中,可以由安全交易服務(wù)器132至133生成公共/私有密鑰對(duì)。公共密鑰然后可由安全交易服務(wù)器132至133存儲(chǔ),并且相關(guān)私有密鑰可存儲(chǔ)在客戶端上的安全存儲(chǔ)裝置120中。在一個(gè)另選的實(shí)施例中,密鑰可在客戶端100上生成(例如,由驗(yàn)證裝置或驗(yàn)證裝置接口而不是安全交易服務(wù)器132至133生成)。本發(fā)明的基本原理不限于任何特定類型的密鑰或生成密鑰的方式。
在一個(gè)實(shí)施例中采用一種安全密鑰預(yù)置協(xié)議以通過(guò)安全通信信道與客戶端共享密鑰。密鑰預(yù)置協(xié)議的一個(gè)示例是動(dòng)態(tài)對(duì)稱密鑰預(yù)置協(xié)議(DSKPP)(例如,參見(jiàn)請(qǐng)求注釋(RFC)6063)。然而,本發(fā)明的基本原理不限于任何特定密鑰預(yù)置協(xié)議。在一個(gè)特定實(shí)施例中,客戶端生成公共/私有密鑰對(duì)并向服務(wù)器發(fā)送公共密鑰,可以利用證實(shí)密鑰證實(shí)它們。
轉(zhuǎn)到圖2所示的具體細(xì)節(jié),要啟動(dòng)注冊(cè)流程,依賴方202生成隨機(jī)生成的質(zhì)詢(例如,密碼隨機(jī)數(shù)),驗(yàn)證客戶端201必須在裝置注冊(cè)期間呈現(xiàn)此質(zhì)詢。該隨機(jī)質(zhì)詢可在有限時(shí)間段內(nèi)有效。作為響應(yīng),驗(yàn)證客戶端201發(fā)起與依賴方202的帶外安全連接(例如,帶外交易),并使用密鑰預(yù)置協(xié)議(例如,上文提到的DSKPP協(xié)議)與依賴方202通信。為了發(fā)起安全連接,驗(yàn)證客戶端201可以向依賴方202返回隨機(jī)質(zhì)詢(可能帶有在隨機(jī)質(zhì)詢上生成的簽名)。此外,驗(yàn)證客戶端201可以傳輸用戶的身份(例如,用戶ID或其他代碼)和待注冊(cè)的驗(yàn)證裝置的身份(例如,使用唯一地識(shí)別所注冊(cè)的驗(yàn)證裝置的類型的驗(yàn)證證實(shí)ID(AAID))。
該依賴方利用用戶名或ID代碼(例如,在用戶賬戶數(shù)據(jù)庫(kù)中)定位用戶,(例如,使用簽名或簡(jiǎn)單地比較隨機(jī)質(zhì)詢與發(fā)送過(guò)的質(zhì)詢)證實(shí)隨機(jī)質(zhì)詢,證實(shí)驗(yàn)證裝置的驗(yàn)證代碼(如果發(fā)送了驗(yàn)證代碼(例如,AAID)),并在安全交易數(shù)據(jù)庫(kù)(例如,圖1A至圖1B中的數(shù)據(jù)庫(kù)120)中為用戶和驗(yàn)證裝置創(chuàng)建新條目。在一個(gè)實(shí)施例中,依賴方維護(hù)其接受驗(yàn)證的驗(yàn)證裝置的數(shù)據(jù)庫(kù)。它可以通過(guò)AAID(或其他驗(yàn)證裝置代碼)查詢此數(shù)據(jù)庫(kù),以確定所注冊(cè)的驗(yàn)證裝置是否是驗(yàn)證可接受的。如果是,那么它將繼續(xù)進(jìn)行注冊(cè)過(guò)程。
在一個(gè)實(shí)施例中,依賴方202為注冊(cè)的每個(gè)驗(yàn)證裝置生成驗(yàn)證密鑰。它向安全數(shù)據(jù)庫(kù)寫(xiě)入密鑰,并利用密鑰預(yù)置協(xié)議向驗(yàn)證客戶端201發(fā)回密鑰。一旦完成,驗(yàn)證裝置與依賴方202便在使用對(duì)稱密鑰的情況下共享相同密鑰,或者在使用不對(duì)稱密鑰的情況下共享不同密鑰。例如,如果使用不對(duì)稱密鑰,那么依賴方202可以存儲(chǔ)公共密鑰并向驗(yàn)證客戶端201提供私有密鑰。在從依賴方202接收私有密鑰時(shí),驗(yàn)證客戶端201向驗(yàn)證裝置中預(yù)置密鑰(在與驗(yàn)證裝置相關(guān)聯(lián)的安全存儲(chǔ)裝置之內(nèi)存儲(chǔ)密鑰)。然后它可以在驗(yàn)證用戶期間使用該密鑰(如下所述)。在一個(gè)另選的實(shí)施例中,密鑰由驗(yàn)證客戶端201生成并使用密鑰預(yù)置協(xié)議向依賴方202提供密鑰。在任一種情況下,一旦完成預(yù)置,驗(yàn)證客戶端201和依賴方202均具有密鑰,且驗(yàn)證客戶端201通知依賴方已完成。
圖3示出用于向注冊(cè)的驗(yàn)證裝置驗(yàn)證用戶的一系列交易。一旦完成裝置注冊(cè)(如圖2中所述),依賴方201將接受由客戶端上的本地驗(yàn)證裝置生成的驗(yàn)證響應(yīng)(有時(shí)稱為“令牌”)作為有效的驗(yàn)證響應(yīng)。
轉(zhuǎn)向圖3中所示的具體細(xì)節(jié),響應(yīng)于用戶發(fā)起與依賴方202的需要驗(yàn)證的交易(例如,發(fā)起從依賴方網(wǎng)站進(jìn)行支付,訪問(wèn)私有用戶賬戶數(shù)據(jù)等),依賴方202生成包括隨機(jī)質(zhì)詢(例如,密碼隨機(jī)數(shù))的驗(yàn)證請(qǐng)求。在一個(gè)實(shí)施例中,隨機(jī)質(zhì)詢具有與其關(guān)聯(lián)的時(shí)間限制(例如,它在指定的一段時(shí)間內(nèi)是有效的)。依賴方還可以標(biāo)識(shí)要由驗(yàn)證客戶端201用于驗(yàn)證的驗(yàn)證器。如上文所提及,依賴方可以注冊(cè)客戶端上可用的每個(gè)驗(yàn)證裝置,并且存儲(chǔ)每個(gè)注冊(cè)的驗(yàn)證器的公共密鑰。因此,它可以使用驗(yàn)證器的公共密鑰或可以使用驗(yàn)證器ID(例如,AAID)來(lái)標(biāo)識(shí)要使用的驗(yàn)證器?;蛘?,它可以為客戶端提供驗(yàn)證選項(xiàng)的列表,用戶可以從該列表進(jìn)行選擇。
響應(yīng)于接收到驗(yàn)證請(qǐng)求,可以為用戶呈現(xiàn)請(qǐng)求驗(yàn)證的圖形用戶界面(GUI)(例如,形式為驗(yàn)證應(yīng)用/應(yīng)用的網(wǎng)頁(yè)或GUI)。用戶然后進(jìn)行驗(yàn)證(例如,在指紋讀取器上輕掃手指等)。作為響應(yīng),驗(yàn)證客戶端201生成驗(yàn)證響應(yīng),該驗(yàn)證響應(yīng)包含隨機(jī)質(zhì)詢上的簽名,帶有與驗(yàn)證器相關(guān)聯(lián)的私有密鑰。它還可以包括其他相關(guān)數(shù)據(jù),例如,驗(yàn)證響應(yīng)中的用戶ID代碼。
在接收驗(yàn)證響應(yīng)時(shí),依賴方可以證實(shí)隨機(jī)質(zhì)詢上的簽名(例如,使用與驗(yàn)證器相關(guān)聯(lián)的公共密鑰)并確認(rèn)用戶的身份。一旦完成驗(yàn)證,用戶便獲許進(jìn)入與依賴方的安全交易,如圖所示。
可以使用安全通信協(xié)議,例如傳輸層安全(TLS)或安全套接字層(SSL)在依賴方201和驗(yàn)證客戶端202之間建立用于圖2至圖3所示的任何或所有交易的安全連接。
使用安全傳輸協(xié)議建立信任的系統(tǒng)和方法
如上文所提及,在使用遠(yuǎn)程驗(yàn)證的某些具體實(shí)施中,諸如TLS或SSL的安全通信協(xié)議可以用于在依賴方與驗(yàn)證客戶端之間安全地交換數(shù)據(jù)。簡(jiǎn)而言之,TLS和SSL是在通常不安全的通信信道(例如,因特網(wǎng))上提供安全通信的密碼協(xié)議。這些協(xié)議使用實(shí)施非對(duì)稱密碼的X.509證書(shū)來(lái)交換對(duì)稱密鑰。然后在通信會(huì)話期間使用此對(duì)稱密鑰來(lái)加密雙方之間的數(shù)據(jù)信道。盡管此詳細(xì)描述的其余部分將集中于TLS的使用,但是可以使用諸如SSL的其他密碼協(xié)議來(lái)實(shí)施本發(fā)明的基本原理。
在一個(gè)實(shí)施例中,TLS用于保護(hù)依賴方與驗(yàn)證客戶端之間的通信信道并驗(yàn)證發(fā)送者的身份。也就是說(shuō),通過(guò)使用X.509證書(shū)所支持的非對(duì)稱密碼,一方(例如,驗(yàn)證客戶端)能夠驗(yàn)證對(duì)方(例如,依賴方)的身份,或反之亦然。對(duì)方的身份可以體現(xiàn)在代碼或名稱中,該代碼或名稱例如識(shí)別依賴方(例如,“RPNAME”)或識(shí)別驗(yàn)證客戶端、或該客戶端上用于與依賴方建立通信信道的特定應(yīng)用程序(例如,“AppID”)。當(dāng)驗(yàn)證客戶端與依賴方之間存在直接信道時(shí)(如上文提供的示例中),由于通常通過(guò)因特網(wǎng)發(fā)送數(shù)據(jù)并且TLS總是可用的,使用TLS可很好地滿足此用途。
然而,在諸如iOSTM、AndroidTM和近場(chǎng)通信(NFC)交易的某些計(jì)算裝置平臺(tái)上,此TLS假設(shè)不成立。如圖4大致所示,在這些平臺(tái)上,預(yù)期第三方代碼(例如,依賴方應(yīng)用程序410)管理依賴方402與驗(yàn)證客戶端401之間的所有通信。因此,依賴方應(yīng)用程序410基本上類似于依賴方402與驗(yàn)證客戶端401之間的中間人。此外,驗(yàn)證客戶端401沒(méi)有關(guān)于依賴方應(yīng)用程序410所建立的TLS連接的有效性的信息。它必須僅依賴第三方代碼來(lái)做出此決定,并使用IPC機(jī)制來(lái)轉(zhuǎn)交驗(yàn)證請(qǐng)求(如圖所示)。這些IPC機(jī)制可以訪問(wèn)發(fā)送應(yīng)用程序的識(shí)別代碼(例如,“集束ID”),但是使用集束ID核驗(yàn)發(fā)送者/接收者的身份(例如,RPNAME、AppID)的真實(shí)性主要依賴于操作系統(tǒng)、以及對(duì)分發(fā)依賴方應(yīng)用程序的應(yīng)用程序商店所實(shí)施的審查過(guò)程的關(guān)注。
在使用NFC時(shí),情況甚至更糟,因?yàn)闆](méi)有諸如伴隨傳輸機(jī)制的集束ID的識(shí)別代碼。NFC由一般的多用途互聯(lián)網(wǎng)郵件擴(kuò)展(MIME)處理程序處理。驗(yàn)證客戶端401必須假定聲稱的任何識(shí)別代碼(例如,RPNAME)是正確的,并且驗(yàn)證請(qǐng)求來(lái)自有效源。
更具體地講,在iOS裝置上,使用多重驗(yàn)證客戶端的AppDelegate代碼中的openURL()調(diào)用的sourceApplication參數(shù)來(lái)確定正在與驗(yàn)證客戶端401通信的應(yīng)用程序410:-(BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
在此示例中,sourceApplication包含調(diào)用應(yīng)用程序的集束ID。集束ID是調(diào)用應(yīng)用程序的plist清單中的唯一字符串,其識(shí)別AppleTM數(shù)據(jù)庫(kù)中的應(yīng)用程序。建議以相反表示法使用公司的基礎(chǔ)URL(例如,com.paypal.app)來(lái)部分構(gòu)建集束ID。這樣,假定Apple審查此字符串以確保應(yīng)用程序不試圖欺騙其他應(yīng)用程序。
對(duì)于Android裝置,首先從系統(tǒng)Binder調(diào)用getCallingUid(),以返回分配給依賴方進(jìn)程的Linux uid,該依賴方進(jìn)程將當(dāng)前交易發(fā)送到正在處理的多重驗(yàn)證進(jìn)程,例如:
int callerUId=Binder.getCallingUid();;
然后,應(yīng)用程序從系統(tǒng)PackageManager檢索與用戶ID相關(guān)聯(lián)的包。使用依賴方的基礎(chǔ)URL作為組成部分但以相反表示法為包命名(例如,“com.fido.android.sample.app.paypal”)。例如:
String packageNames[]=mPackageManager.getPackagesForUid(callerUId);;
在使用NFC時(shí),不存在可以映射到對(duì)方標(biāo)識(shí)符(例如,RPNAME或AppID)的可信任信息片段。在Android上使用NFC時(shí),請(qǐng)求通過(guò)多用途互聯(lián)網(wǎng)郵件擴(kuò)展(MIME)處理程序到達(dá),并且不可識(shí)別調(diào)用者。因此,包含在請(qǐng)求中的任何標(biāo)識(shí)符可以是有效的,也可以不是有效的。
本發(fā)明的一個(gè)實(shí)施例通過(guò)使用可信證書(shū)簽名驗(yàn)證請(qǐng)求和源標(biāo)識(shí)符來(lái)解決這些限制問(wèn)題??舍槍?duì)移動(dòng)裝置的根證書(shū)存儲(chǔ)進(jìn)行驗(yàn)證的來(lái)自web服務(wù)器的SSL X.509證書(shū)是在一個(gè)實(shí)施例中采用的一個(gè)選項(xiàng)。然而,依賴方的驗(yàn)證服務(wù)器可能沒(méi)有訪問(wèn)該密鑰的權(quán)限。專門(mén)為驗(yàn)證服務(wù)器生成新X.509證書(shū)是另一個(gè)選項(xiàng),但這意味著管理又一個(gè)X.509證書(shū)的附加開(kāi)銷。
為了避免這些問(wèn)題,圖5所示的本發(fā)明的一個(gè)實(shí)施例使用來(lái)自分散式公共密鑰基礎(chǔ)設(shè)施(PKI)的自簽名證書(shū)來(lái)簽名來(lái)自依賴方502的驗(yàn)證服務(wù)器520的驗(yàn)證請(qǐng)求和對(duì)應(yīng)的源標(biāo)識(shí)符(例如,“RPNAME”標(biāo)識(shí)符)。具體地講,在一個(gè)實(shí)施例中,自簽名證書(shū)包括私有密鑰522、以及存儲(chǔ)在驗(yàn)證服務(wù)器520上的公共密鑰文件525中的一個(gè)或多個(gè)公共密鑰。不同于X.509證書(shū),這些自簽名證書(shū)不能被它們自身信任,因?yàn)闆](méi)有將它們連接到根可信證書(shū)的鏈。
在一個(gè)實(shí)施例中,為了建立信任,通過(guò)使用可信證書(shū)526(例如,用于打開(kāi)TLS連接的現(xiàn)有X.509可信證書(shū))建立的安全通信信道,將存儲(chǔ)在web服務(wù)器上的公共密鑰文件525中的公共密鑰傳輸?shù)娇蛻舳搜b置500(例如,移動(dòng)智能電話)上的驗(yàn)證客戶端530。使用TLS可確保從正確的所有者獲得公共密鑰文件525中的易受攻擊的自簽名公共密鑰,因?yàn)榭梢葬槍?duì)根證書(shū)存儲(chǔ)(如果使用X.509或其他已知標(biāo)準(zhǔn))核驗(yàn)用于通過(guò)因特網(wǎng)從web服務(wù)器傳輸這些密鑰的可信證書(shū)/密鑰526。然后,文件526中的那些自簽名公共密鑰可以被隱含地信任,并且用于核驗(yàn)包括源標(biāo)識(shí)符(例如,RPNAME)的驗(yàn)證請(qǐng)求523。
驗(yàn)證服務(wù)器520可能以與上文參考圖3描述的相同方式和相同情況生成驗(yàn)證請(qǐng)求523。例如,驗(yàn)證服務(wù)器520可以生成隨機(jī)質(zhì)詢并且識(shí)別待使用的客戶端側(cè)驗(yàn)證器(例如,使用針對(duì)驗(yàn)證器注冊(cè)的公共密鑰)。隨機(jī)質(zhì)詢和驗(yàn)證器ID信息可以封裝在驗(yàn)證請(qǐng)求523中。
另外,在一個(gè)實(shí)施例中,使用分散式PKI的私有密鑰522來(lái)簽名驗(yàn)證請(qǐng)求523。如所提及的,在一個(gè)實(shí)施例中,私有密鑰522對(duì)應(yīng)于文件525中的公共密鑰。例如,可以使用公共密鑰中的一個(gè)來(lái)證實(shí)私有密鑰522所生成的任何簽名。
再次,為了建立信任,通過(guò)使用可信證書(shū)521(例如,用于打開(kāi)TLS連接的現(xiàn)有X.509可信證書(shū))建立的安全通信信道,將使用驗(yàn)證服務(wù)器520上的私有密鑰522簽名的驗(yàn)證請(qǐng)求523傳輸?shù)娇蛻舳搜b置500上的依賴方應(yīng)用程序510。在一個(gè)實(shí)施例中,可信證書(shū)521與可信證書(shū)526相同,后者用于與驗(yàn)證客戶端530建立TLS信道。然后,使用TLS信道將私有密鑰簽名的驗(yàn)證請(qǐng)求523連同源標(biāo)識(shí)符(例如,用于識(shí)別依賴方的RPNAME)一起傳輸?shù)揭蕾嚪綉?yīng)用程序510。
在一個(gè)實(shí)施例中,依賴方應(yīng)用程序510提取底層私有密鑰簽名的驗(yàn)證請(qǐng)求(即,拆解TLS數(shù)據(jù)),并且將該驗(yàn)證請(qǐng)求提供給客戶端裝置500上的驗(yàn)證客戶端530。依賴方應(yīng)用程序510可以使用已知的進(jìn)程間通信(IPC)機(jī)制與驗(yàn)證客戶端530通信。然而,本發(fā)明的基本原理不限于用于在客戶端裝置500上交換信息的任何特定通信機(jī)制。
在接收私有密鑰簽名的驗(yàn)證請(qǐng)求523時(shí),驗(yàn)證客戶端530使用來(lái)自公共密鑰文件的公共密鑰來(lái)驗(yàn)證簽名。如果簽名是有效的,則其接著如上所述生成驗(yàn)證響應(yīng)。例如,響應(yīng)于用戶的成功驗(yàn)證,其可以使用驗(yàn)證器的私有密鑰來(lái)生成包括在驗(yàn)證請(qǐng)求523中的隨機(jī)質(zhì)詢上的簽名,并且將所得的驗(yàn)證響應(yīng)傳輸?shù)津?yàn)證服務(wù)器520(例如,直接傳輸或經(jīng)由依賴方應(yīng)用程序510傳輸)。一旦驗(yàn)證服務(wù)器520使用對(duì)應(yīng)的公共驗(yàn)證器密鑰核驗(yàn)該簽名,向依賴方502驗(yàn)證用戶并且允許用戶完成期望的交易。
使用本文所述的技術(shù),驗(yàn)證請(qǐng)求523和源標(biāo)識(shí)符(例如,RPNAME)由集中式SSL X.509密鑰以加密方式核驗(yàn),同時(shí)仍保持分散式PKI提供的靈活性和極小的管理開(kāi)銷。通過(guò)利用包含那些證書(shū)的文件位于某個(gè)確定的web服務(wù)器上的事實(shí),隱含地信任自簽證書(shū)的有效性具有一定風(fēng)險(xiǎn)。任何能夠在web服務(wù)器上修改此文件的人都可以更改公共密鑰。然而,只要像能夠管理X.509證書(shū)一樣謹(jǐn)慎地保護(hù)對(duì)文件的訪問(wèn),通過(guò)任一解決方案授予的信任都應(yīng)當(dāng)是類似的。
圖6中示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。該方法可使用圖5所示的架構(gòu)來(lái)實(shí)施,但不限于任何具體架構(gòu)。
在601處,在代表依賴方的驗(yàn)證服務(wù)器處生成第一驗(yàn)證相關(guān)通信。在一個(gè)實(shí)施例中,第一驗(yàn)證相關(guān)通信包括上文所提及的驗(yàn)證請(qǐng)求523(例如,包含隨機(jī)質(zhì)詢、驗(yàn)證器ID等)。
在602處,使用來(lái)自分散式公共密鑰基礎(chǔ)設(shè)施(PKI)的自簽名證書(shū)的第一密鑰來(lái)簽名第一驗(yàn)證相關(guān)通信。在一個(gè)實(shí)施例中,第一密鑰包括上文所論述的私有密鑰522。
在603處,使用現(xiàn)有可信通信基礎(chǔ)設(shè)施,與客戶端裝置上的依賴方應(yīng)用程序建立第一安全信道。在一個(gè)實(shí)施例中,使用現(xiàn)有可信通信基礎(chǔ)設(shè)施包括使用可信X.509證書(shū)與依賴方建立安全傳輸層安全(TLS)信道。
在604處,通過(guò)第一安全通信信道將第一驗(yàn)證相關(guān)通信傳輸?shù)揭蕾嚪綉?yīng)用程序。如所提及的,在一個(gè)實(shí)施例中,與通信一同提供的源標(biāo)識(shí)符(例如,RPNAME)。
在605處,使用現(xiàn)有可信通信基礎(chǔ)設(shè)施,與客戶端裝置上的驗(yàn)證客戶端建立第二安全通信信道。如所提及的,在一個(gè)實(shí)施例中,使用現(xiàn)有可信通信基礎(chǔ)設(shè)施包括使用可信X.509證書(shū)與依賴方建立安全TLS信道。
在606處,通過(guò)第二安全通信信道將來(lái)自分散式PKI的自簽名證書(shū)的第二密鑰傳輸?shù)津?yàn)證客戶端。在一個(gè)實(shí)施例中,第二密鑰包括與來(lái)自分散式PKI的自簽名證書(shū)相關(guān)聯(lián)的公共密鑰。還可以經(jīng)由公共密鑰文件526(如上文所論述)提供一個(gè)或多個(gè)附加密鑰。
在607處,從依賴方應(yīng)用程序向驗(yàn)證客戶端提供具有簽名的第一驗(yàn)證相關(guān)通信。在一個(gè)實(shí)施例中,這是遵循客戶端裝置上的現(xiàn)有進(jìn)程間通信(IPC)機(jī)制來(lái)執(zhí)行的。
在608處,驗(yàn)證客戶端使用第二密鑰驗(yàn)證通過(guò)第一密鑰生成的簽名。如果驗(yàn)證成功,則驗(yàn)證客戶端響應(yīng)于第一驗(yàn)證相關(guān)通信而生成第二驗(yàn)證相關(guān)通信。例如,如上文所論述,如果第一驗(yàn)證相關(guān)通信包含驗(yàn)證請(qǐng)求,則第二驗(yàn)證相關(guān)通信可包含驗(yàn)證響應(yīng)。為了生成響應(yīng),驗(yàn)證客戶端可以首先要求用戶在客戶端裝置上執(zhí)行驗(yàn)證(例如,輕掃手指、記錄語(yǔ)音、輸入代碼等)。如果驗(yàn)證成功,則驗(yàn)證客戶端可以傳輸成功驗(yàn)證的指示以及其他可核驗(yàn)的信息(例如,隨驗(yàn)證請(qǐng)求一起提供的隨機(jī)質(zhì)詢)。一旦驗(yàn)證服務(wù)器接收到第二驗(yàn)證相關(guān)通信,可以向依賴方驗(yàn)證用戶,并且允許用戶進(jìn)入與依賴方的交易。
示例性數(shù)據(jù)處理裝置
圖11是示出可在本發(fā)明的一些實(shí)施例中使用的示例性客戶端和服務(wù)器的框圖。應(yīng)當(dāng)理解,盡管圖11示出計(jì)算機(jī)系統(tǒng)的各種組件,但其并非意圖表示互連組件的任何特定架構(gòu)或方式,因?yàn)榇祟惣?xì)節(jié)與本發(fā)明并不密切相關(guān)。應(yīng)當(dāng)理解,具有更少組件或更多組件的其他計(jì)算機(jī)系統(tǒng)也可與本發(fā)明一起使用。
如圖7所示,計(jì)算機(jī)系統(tǒng)700,其為一種形式的數(shù)據(jù)處理系統(tǒng),包括總線750,該總線與處理系統(tǒng)720、電源725、存儲(chǔ)器730和非易失性存儲(chǔ)器740(例如,硬盤(pán)驅(qū)動(dòng)器、快閃存儲(chǔ)器、相變存儲(chǔ)器(PCM)等)耦接??偩€750可通過(guò)如本領(lǐng)域中熟知的各種橋接器、控制器和/或適配器來(lái)彼此連接。處理系統(tǒng)720可從存儲(chǔ)器730和/或非易失性存儲(chǔ)器740檢索指令,并執(zhí)行這些指令以執(zhí)行如上所述的操作??偩€750將以上組件互連在一起,并且還將那些組件互連到可選底座760、顯示控制器與顯示裝置770、輸入/輸出裝置780(例如,NIC(網(wǎng)絡(luò)接口卡)、光標(biāo)控件(例如,鼠標(biāo)、觸摸屏、觸摸板等)、鍵盤(pán)等)和可選無(wú)線收發(fā)器790(例如,藍(lán)牙、WiFi、紅外等)。
圖8是示出可在本發(fā)明的一些實(shí)施例中使用的示例性數(shù)據(jù)處理系統(tǒng)的框圖。例如,數(shù)據(jù)處理系統(tǒng)800可為手持式計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、移動(dòng)電話、便攜式游戲系統(tǒng)、便攜式媒體播放器、平板計(jì)算機(jī)或手持式計(jì)算裝置(其可包括移動(dòng)電話、媒體播放器和/或游戲系統(tǒng))。又如,數(shù)據(jù)處理系統(tǒng)800可為網(wǎng)絡(luò)計(jì)算機(jī)或在另一個(gè)裝置內(nèi)的嵌入式處理裝置。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,數(shù)據(jù)處理系統(tǒng)800的示例性架構(gòu)可用于上文所述的移動(dòng)裝置。數(shù)據(jù)處理系統(tǒng)800包括處理系統(tǒng)820,其可包括一個(gè)或多個(gè)微處理器和/或集成電路上的系統(tǒng)。處理系統(tǒng)820與存儲(chǔ)器810、電源825(其包括一個(gè)或多個(gè)電池)、音頻輸入/輸出840、顯示控制器與顯示裝置860、可選輸入/輸出850、輸入裝置870和無(wú)線收發(fā)器830耦接。應(yīng)當(dāng)理解,在本發(fā)明的某些實(shí)施例中,圖8中未示出的其他組件也可為數(shù)據(jù)處理系統(tǒng)800的一部分,并且在本發(fā)明的某些實(shí)施例中,可使用比圖8所示更少的組件。另外,應(yīng)當(dāng)理解,圖8中未示出的一個(gè)或多個(gè)總線可用于使如本領(lǐng)域中熟知的各種組件互連。
存儲(chǔ)器810可存儲(chǔ)數(shù)據(jù)和/或程序以供數(shù)據(jù)處理系統(tǒng)800執(zhí)行。音頻輸入/輸出840可包括麥克風(fēng)和/或揚(yáng)聲器以(例如)播放音樂(lè),以及/或者通過(guò)揚(yáng)聲器和麥克風(fēng)提供電話功能。顯示控制器與顯示裝置860可包括圖形用戶界面(GUI)。無(wú)線(例如,RF)收發(fā)器830(例如,WiFi收發(fā)器、紅外收發(fā)器、藍(lán)牙收發(fā)器、無(wú)線蜂窩電話收發(fā)器等)可用于與其他數(shù)據(jù)處理系統(tǒng)通信。所述一個(gè)或多個(gè)輸入裝置870允許用戶向系統(tǒng)提供輸入。這些輸入裝置可為小鍵盤(pán)、鍵盤(pán)、觸控面板、多點(diǎn)觸控面板等??蛇x的其他輸入/輸出850可為底座的連接器。
本發(fā)明的實(shí)施例可包括如上文陳述的各種步驟。這些步驟可體現(xiàn)為致使通用處理器或?qū)S锰幚砥鲌?zhí)行某些步驟的機(jī)器可執(zhí)行指令?;蛘撸@些步驟可由包含用于執(zhí)行這些步驟的硬連線邏輯的特定硬件組件執(zhí)行,或由編程的計(jì)算機(jī)組件和定制硬件組件的任何組合執(zhí)行。
本發(fā)明的元件還可被提供為用于存儲(chǔ)機(jī)器可執(zhí)行程序代碼的機(jī)器可讀介質(zhì)。機(jī)器可讀介質(zhì)可包括但不限于軟盤(pán)、光盤(pán)、CD-ROM和磁光盤(pán)、ROM、RAM、EPROM、EEPROM、磁卡或光卡、或者適合于存儲(chǔ)電子程序代碼的其他類型的介質(zhì)/機(jī)器可讀介質(zhì)。
在整個(gè)前述描述中,出于解釋的目的,陳述了許多特定細(xì)節(jié)以便透徹理解本發(fā)明。然而,本領(lǐng)域的技術(shù)人員將容易明白,可在沒(méi)有這些特定細(xì)節(jié)中的一些的情況下實(shí)踐本發(fā)明。例如,本領(lǐng)域的技術(shù)人員將容易明白,本文所述的功能模塊和方法可被實(shí)施為軟件、硬件或其任何組合。此外,雖然本文在移動(dòng)計(jì)算環(huán)境的情形內(nèi)描述本發(fā)明的一些實(shí)施例,但本發(fā)明的基本原理不限于移動(dòng)計(jì)算具體實(shí)施。在一些實(shí)施例中,可使用幾乎任何類型的客戶端或?qū)Φ葦?shù)據(jù)處理裝置,包括(例如)臺(tái)式計(jì)算機(jī)或工作站計(jì)算機(jī)。因此,應(yīng)依據(jù)所附權(quán)利要求書(shū)確定本發(fā)明的范圍和精神。
本發(fā)明的實(shí)施例可包括如上文陳述的各種步驟。這些步驟可體現(xiàn)為致使通用處理器或?qū)S锰幚砥鲌?zhí)行某些步驟的機(jī)器可執(zhí)行指令?;蛘?,這些步驟可由包含用于執(zhí)行這些步驟的硬連線邏輯的特定硬件組件執(zhí)行,或由編程的計(jì)算機(jī)組件和定制硬件組件的任何組合執(zhí)行。