隨著將軟件作為云服務(wù)來提供變得越來越普遍,用戶經(jīng)常期望跨其各種設(shè)備的一致體驗。用戶常常期望他們所有的數(shù)據(jù)(例如,文檔、圖像等)在其所有設(shè)備上都可用。用戶還可以具有表示軟件體驗的個性化的數(shù)據(jù)(例如,設(shè)置文件),并且用戶可能期望該個性化數(shù)據(jù)跨設(shè)備可用。
為保護用戶的隱私權(quán)益,當敏感數(shù)據(jù)或用戶特定數(shù)據(jù)被存儲和遞送到各個設(shè)備時,可能出現(xiàn)保護數(shù)據(jù)的問題。保護數(shù)據(jù)的一種方式是通過使用密碼。然而,讓用戶選擇新密碼來保護數(shù)據(jù)給用戶帶來記住密碼的不便,并且很可能用戶已經(jīng)有用于其各種賬戶的若干密碼要記住。
技術(shù)實現(xiàn)要素:
基于云的服務(wù)的用戶特定數(shù)據(jù)可以通過從用戶的生物識別數(shù)據(jù)可識別的加密密鑰來保護,其中用戶可以自愿地選擇提供生物識別數(shù)據(jù),以便獲得“保護數(shù)據(jù)而不必記住密碼”的便利性。當將從云服務(wù)接收加密的用戶特定數(shù)據(jù)并在用戶設(shè)備上使用時,在用戶設(shè)備上運行的客戶端軟件可以收集(通過用戶許可)生物識別數(shù)據(jù),例如指紋、掌紋或虹膜圖像??梢愿鶕?jù)生物識別數(shù)據(jù)生成度量,并且該度量可以用于取回或生成解密密鑰。然后解密密鑰用于解密數(shù)據(jù)。然后可以在給定設(shè)備上使用該數(shù)據(jù)。
為了將用戶特定數(shù)據(jù)與特定密鑰相關(guān)聯(lián),用戶的生物識別數(shù)據(jù)可以與特定群集相關(guān)聯(lián)??梢酝ㄟ^如下來生成群集:取得生物識別數(shù)據(jù)的樣本、為每個樣本生成度量以及將樣本分配給群集。選擇群集可以通過例如以使得群集中項目之間的距離最小化的方式。例如,可以依據(jù)來自給出指紋樣本的人們的適當許可,從龐大人群收集一組指紋??梢詾槊總€指紋分配度量,然后以使得給定群集中的度量之間的距離最小化或減小的方式來創(chuàng)建群集??梢詾槊總€群集分配解密密鑰。然后,密鑰、與密鑰相關(guān)聯(lián)的群集以及將給定指紋分配給群集的算法對用戶設(shè)備上的客戶端軟件可用。當用戶自愿給出指紋樣本以解鎖加密的用戶特定數(shù)據(jù)時,客戶端軟件從樣本生成度量,并確定將指紋將被分配到的群集。然后,軟件使用與所述群集相關(guān)聯(lián)的密鑰來解密用戶的數(shù)據(jù)。然后,解密后的數(shù)據(jù)可用于個性化用戶體驗。
提供該“發(fā)明內(nèi)容”以介紹在后文“具體實施方式”中進一步描述的簡化形式的概念選集。該發(fā)明內(nèi)容并不意圖識別所要求保護主題的關(guān)鍵特征或必要特征,也不打算用來限制所要求保護主題的范圍。
附圖說明
圖1是可以將數(shù)據(jù)下載到設(shè)備的示例性布置的框圖。
圖2是一組示例群集的框圖。
圖3和圖4是可以從用戶處收集數(shù)據(jù)的各種方式的框圖。
圖5是使用數(shù)據(jù)來訪問密碼學密鑰的示例性設(shè)備的框圖。
圖6是其中可以在設(shè)備上使用軟件的示例性過程的流程圖。
圖7是可以結(jié)合本文描述的主題的實現(xiàn)方式使用的示例性組件的框圖。
具體實施方式
隨著將軟件作為云服務(wù)來提供變得普遍,用戶日益期望用于提供跨設(shè)備的一致體驗的軟件。特別地,用戶可能期望他們的數(shù)據(jù)(例如,文檔、圖像等)在任意設(shè)備上都可用,并可能期望任何個性化數(shù)據(jù)(例如,用戶特定設(shè)置)跨設(shè)備可用。這些類型的數(shù)據(jù)是敏感的且要被保護。保護數(shù)據(jù)的一種方式是通過密碼,但是當用戶訂閱的每個服務(wù)要求他或她生成、記住和管理新的密碼時,這對于用戶是不方便的。
避免使用密碼的一種方式是以加密方式將數(shù)據(jù)遞送到設(shè)備,其中解密密鑰可以從生物識別數(shù)據(jù)中容易地取回或計算出,用戶自愿提供所述生物識別數(shù)據(jù)以交換不必使用密碼的便利性。例如,用戶可以給出指紋樣本,并可以基于該樣本生成度量??赡艽嬖谝唤M指紋群集,其中每個群集與特定的解密密鑰相關(guān)聯(lián)??梢詫⒂脩舻臉颖痉峙浣o群集,并且與所述群集相關(guān)聯(lián)的密鑰可以用于加密和解密用戶數(shù)據(jù)。(為了保護用戶的隱私權(quán)益,可以依據(jù)從用戶處獲得的適當許可并在適當公開給用戶之后收集和使用指紋樣本。)
本文的主題提供了一種利用跨多個設(shè)備的軟件服務(wù)使用用戶數(shù)據(jù)的方式??梢栽谟脩魺o需生成、記住和管理針對數(shù)據(jù)的密碼的情況下保護數(shù)據(jù)。用戶被要求提供生物識別數(shù)據(jù),例如指紋。(為了保護用戶的隱私權(quán)益,可以向用戶提供公開內(nèi)容,以解釋生物識別數(shù)據(jù)將被用于的目的,并解釋服務(wù)提供商的關(guān)于這樣的數(shù)據(jù)的用途的策略。當然,如果用戶認為他的隱私權(quán)益比使用生物識別數(shù)據(jù)來保護他的信息更重要,則用戶可以選擇不提供這樣的數(shù)據(jù)。)假設(shè)用戶確實選擇提供生物識別數(shù)據(jù),則計算基于該數(shù)據(jù)的度量,并且將該度量用于識別密碼學密鑰。當將用戶的數(shù)據(jù)從云遞送到用戶的設(shè)備時,接下來所識別出的密碼學密鑰被用于解密數(shù)據(jù)。然后,用戶可以在所述設(shè)備上使用所述數(shù)據(jù)。所述數(shù)據(jù)可以是文本文檔、圖像等,或者可以是用于使用戶體驗個性化的元數(shù)據(jù)(例如,設(shè)置)。
現(xiàn)在轉(zhuǎn)向附圖,圖1示出了示例性系統(tǒng),其中軟件可以用作服務(wù),并且其中用戶的信息被綁定到生物識別數(shù)據(jù)(為了保護用戶的隱私權(quán)益,用戶可以在適當公開之后選擇自愿提供該生物識別數(shù)據(jù))。軟件服務(wù)102可以是任何類型的軟件服務(wù),例如,文字處理器、電子表單、數(shù)據(jù)庫、社交網(wǎng)站、音樂流送服務(wù)等。用戶可以通過各種設(shè)備104、106和108使用軟件服務(wù)。這樣的設(shè)備的例子在圖1中示出:具體地是個人計算機(設(shè)備104)、平板計算機(設(shè)備106)和手機(phone)(設(shè)備108),盡管這些設(shè)備僅是示例,且任意類型的設(shè)備(例如,汽車上的計算機/視頻控制臺、機頂盒等)均可使用。每個設(shè)備可以配備有客戶端軟件110、112和114,以便于在給定設(shè)備上使用軟件服務(wù)102??蛻舳塑浖梢詢H僅是用戶訪問軟件服務(wù)所通過的通用瀏覽器?;蛘撸鳛榱硪焕?,客戶端軟件可以是特制應(yīng)用(“app”),其在一定程度上是為軟件服務(wù)102量身定做的。
客戶端軟件110-114可以維持一組密碼學密鑰116,或者可以以其他方式能夠訪問該組密碼學密鑰116。對密碼學密鑰116的訪問可以采取存儲于給定設(shè)備上的密鑰數(shù)據(jù)庫的形式,或者可以采取允許從一些其它數(shù)據(jù)(例如,根據(jù)在適當公開之后用戶自愿提供的生物識別數(shù)據(jù))構(gòu)造或重構(gòu)給定密鑰的算法的形式??蛻舳塑浖?10-114可以維持在密鑰和生物識別數(shù)據(jù)(例如指紋)之間的關(guān)聯(lián)118。如果密鑰是以數(shù)據(jù)庫形式存儲的,則可以存在將給定密鑰與給定數(shù)據(jù)片段明確地相關(guān)聯(lián)的元數(shù)據(jù)。如果密鑰是從生物識別數(shù)據(jù)生成的,則在密鑰和數(shù)據(jù)之間的關(guān)聯(lián)118可以是隱含的,鑒于密鑰能夠從數(shù)據(jù)生成這一事實。
在使用軟件服務(wù)102期間的某一時刻,用戶特定數(shù)據(jù)120可以被下載到設(shè)備102、104或106之一。用戶特定數(shù)據(jù)120可以是要與軟件一起使用的用戶文件—例如,文本文檔(在軟件是文字處理器的情況下);電子表單(在軟件是電子表單應(yīng)用的情況下);繪圖、音樂、視頻(在軟件是繪圖應(yīng)用、音樂播放器或編輯器、或者視頻播放器或編輯器的情況下);等等。在另一例子中,用戶特定數(shù)據(jù)120可以是元數(shù)據(jù),例如用戶設(shè)置—例如,表示用戶所選背景顏色、字體、縮放水平、段落縮進水平(在文字處理器的情況下)、壓縮格式(在音樂或視頻編輯器的情況下)、或可能對于用戶為特定的任意其它設(shè)置。可以使用任何適當類型的用戶特定數(shù)據(jù)120。
用戶特定數(shù)據(jù)120可以被以加密形式遞送到設(shè)備104-108。如上文所討論的解密密鑰116可以用于恢復(fù)用戶特定數(shù)據(jù)的清晰版本。為了恢復(fù)用戶特定數(shù)據(jù)120,客戶端軟件110(或在設(shè)備104-108上的一些其它軟件)可以從用戶處征求生物識別信息,例如,指紋或虹膜掃描。為了保護用戶的隱私權(quán)益,在征求到生物識別數(shù)據(jù)時,可以關(guān)于用戶正被要求提供的信息的本質(zhì)以及該數(shù)據(jù)將被用來做什么告知用戶(例如,通過對話框)?;蛘撸绻脩舯活l繁地要求提供生物識別數(shù)據(jù),則可能通過周期性地“刷新”提醒,來將風險一次告知用戶。
圖2示出了生物識別數(shù)據(jù)群集的例子。在圖示例子中,生物識別數(shù)據(jù)202是指紋,但是可以使用其它形式的生物識別數(shù)據(jù),例如,虹膜圖像。圖2所示的生物識別數(shù)據(jù)可以是已從公共數(shù)據(jù)庫中獲得的,在所述公共數(shù)據(jù)庫中,為保護人們的隱私權(quán)益,人們在公開之后自愿提供了其指紋的樣例。圖2的指紋被分配到群集204、206、208和210。在一個例子中,度量是基于每個指紋(或其它生物識別數(shù)據(jù)片段)計算的,并且群集邊界是以使群集中的一些統(tǒng)計(例如,距離平方和或方差)最小化的方式選擇的。一旦這些邊界被選擇,則邊界表示關(guān)于如何通過計算度量然后確定該度量所仿射的群集以將任何給定指紋(或其它生物識別數(shù)據(jù))分配給群集的規(guī)則。這樣,可以將任意指紋分配給群集之一。
群集204-210中的每一個與密碼學密鑰相關(guān)聯(lián)。在所示出的例子中,群集204、206、208和210分別與密鑰212、214、216和218相關(guān)聯(lián)。與群集相關(guān)聯(lián)的密鑰可以用于以下文結(jié)合圖6描述的方式恢復(fù)用戶特定數(shù)據(jù)。
圖3和圖4示出了可以從用戶處收集指紋的各種示例性方式。在圖3中,設(shè)備302是智能手機或平板計算機。設(shè)備302具有觸摸屏304。用戶可以將手指306抵靠觸摸屏304按壓(在被請求這樣做時),由此允許觸摸屏304讀取用戶的指紋。在圖4中,設(shè)備402是配備有指紋讀取器404的膝上型計算機。用戶可以利用指紋讀取器404掃描手指(在被請求這樣做時),以使得設(shè)備402可以收集指紋,從而為用戶提供“訪問其用戶特定數(shù)據(jù)而用戶不必輸入密碼”的便利性。應(yīng)當理解的是,設(shè)備可以以不同方式收集生物識別數(shù)據(jù)—例如,設(shè)備可以配備有能夠用于捕捉虹膜圖像的攝像機。
圖5示出了使用生物識別數(shù)據(jù)訪問密碼學密鑰的示例性設(shè)備。(在圖1中介紹的)設(shè)備104包括客戶端軟件110。如以上結(jié)合圖3和4所示,設(shè)備(諸如設(shè)備104)可以從用戶處收集指紋(為保護用戶的隱私權(quán)益,這可以在公開和同意之后完成)。一旦已經(jīng)收集了指紋502,則可以將指紋502提供給指紋度量軟件504,其可以生成指紋度量506。指紋度量506然后可以被提供回客戶端軟件110。客戶端軟件110然后可以使用指紋度量506來查找指紋數(shù)據(jù)庫508中的密鑰510。指紋數(shù)據(jù)庫可以將密鑰與指紋度量的特定群集相關(guān)聯(lián)。如上文結(jié)合圖2所討論的,各種群集的邊界可以被妥善定義,從而能夠根據(jù)給定指紋度量來確定度量屬于哪個群集,并因此確定哪個密鑰與給定指紋相關(guān)聯(lián)。
圖6示出了示例性過程,其中用戶特定數(shù)據(jù)可以在設(shè)備上使用,這是通過使用諸如(用戶可在適當?shù)墓_和同意之后自愿提供的)指紋等生物識別數(shù)據(jù)來促進的。在602處,用戶使用設(shè)備上的軟件服務(wù)。設(shè)備可以是臺式計算機,膝上型計算機、平板計算機、智能手機、機頂盒、汽車計算機、可穿戴計算機,等等。如上所討論的,軟件服務(wù)可以通過云來提供。在604處,在用戶設(shè)備上的客戶端軟件可以接觸軟件服務(wù),以取回用戶特定數(shù)據(jù)。用戶特定數(shù)據(jù)的例子包括用戶文件(例如,文本文檔、圖像等)和/或表示用戶特定設(shè)置的元數(shù)據(jù)。在606處,設(shè)備可以(從云中的軟件服務(wù)處,或者從任意其它適當位置處)接收處于加密形式的用戶特定數(shù)據(jù)。
在608處,設(shè)備可以從用戶處收集生物識別信息,例如指紋。在610處,設(shè)備上的軟件可以基于指紋生成度量。在612處,設(shè)備上的軟件基于度量取回或生成適當?shù)拿艽a學密鑰。如果度量未能清楚無疑地仿射(affine)特定的密鑰群集(例如,“(如果在密鑰和若干群集之間的距離相同或接近相同)”),則可以考慮對于該度量是可能的匹配的任意密鑰,并且這些密鑰可以逐一地應(yīng)用于加密數(shù)據(jù),直到發(fā)現(xiàn)正確的密鑰。在614處,軟件使用密鑰來解密提供給設(shè)備的用戶特定數(shù)據(jù)。在616處,用戶繼續(xù)使用設(shè)備上的軟件服務(wù),但卻是借助于用戶特定數(shù)據(jù),用戶特定數(shù)據(jù)現(xiàn)在已被使得對設(shè)備可用。
圖7示出了可以部署本文描述的主題的各方面的示例性環(huán)境。
設(shè)備700(其中,智能手機、平板計算機、機頂盒、汽車計算機、可穿戴計算機等是例子)包括一個或多個處理器702以及一個或多個數(shù)據(jù)記憶組件704。處理器702通常是微處理器,例如在個人臺式計算機或膝上型計算機、服務(wù)器、手持計算機或另一種計算設(shè)備中發(fā)現(xiàn)的那些。數(shù)據(jù)記憶組件704是能夠短期或長期存儲數(shù)據(jù)的組件。數(shù)據(jù)記憶組件704的例子包括硬盤、可移除盤(包括如CD或DVD等光盤,以及磁盤)、易失性和非易失性隨機存取存儲器(RAM)、只讀存儲器(ROM)、閃存、磁帶等。數(shù)據(jù)記憶組件是計算機可讀存儲介質(zhì)的例子。設(shè)備700可以包括顯示器712或與其相關(guān)聯(lián),顯示器712可以是陰極射線管(CRT)監(jiān)視器、液晶顯示(LCD)監(jiān)視器或任意其它類型的監(jiān)視器。
軟件可以存儲于數(shù)據(jù)記憶組件704中,并可以在一個或多個處理器702上執(zhí)行。這樣的軟件的例子是用戶特定的數(shù)據(jù)安全軟件706,其可以實現(xiàn)上文結(jié)合圖1-6描述的一些或所有功能,盡管也可以使用任意類型的軟件。軟件706可以例如通過一個或多個組件實現(xiàn),所述組件可以是在分布式系統(tǒng)、單獨文件、單獨功能、單獨對象、單獨代碼行等中的組件。在其中程序存儲于硬盤中、加載到RAM內(nèi)并在計算機處理器上執(zhí)行的計算機(例如,個人計算機、服務(wù)器計算機、手持計算機等)代表圖7描述的場景,但是本文描述的主題不限于該例子。
本文描述的主題可以實現(xiàn)為存儲于一個或多個數(shù)據(jù)記憶組件704中并在一個或多個處理器702上執(zhí)行的軟件。作為另一例子,主題可以實現(xiàn)為存儲于一個或多個計算機可讀介質(zhì)上的指令。這種指令在被計算機或其它機器執(zhí)行時,可以使得計算機或其它機器執(zhí)行方法的一個或多個動作。執(zhí)行動作的指令可以存儲于一個介質(zhì)上,或者可以分散在多個介質(zhì)上,從而指令可以集體地出現(xiàn)在一個或多個計算機可讀介質(zhì)上,而不管是否所有的指令碰巧都在同一介質(zhì)上。術(shù)語“計算機可讀介質(zhì)”不包括信號本身;其也不包括單獨作為傳播信號存在的信息。計算機存儲介質(zhì)包括易失性和非易失性、可移除和不可移除介質(zhì),其實現(xiàn)于用于存儲信息(例如,計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù))的任意方法或技術(shù)中。計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光存儲設(shè)備、磁帶盒、磁帶、磁盤存儲設(shè)備或其它磁存儲設(shè)備、或者可以用于存儲以供計算設(shè)備訪問的信息的任意其它非傳輸介質(zhì)。“存儲介質(zhì)”是存儲信息的介質(zhì)。術(shù)語“存儲設(shè)備”用于表示數(shù)據(jù)的持久保留。為了本文的主題,只以傳播信號的形式存在的信息不被認為是“持久”保持的。因此,“存儲介質(zhì)”包括盤、RAM、ROM等,但是不包括只以傳播信號形式存在的信息,因為這種信息不是“存儲的”。相比之下,通信介質(zhì)可以在已調(diào)制數(shù)據(jù)信號(例如載波、或其它傳輸介質(zhì))中實現(xiàn)計算機可讀介質(zhì)、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。如本文定義的,計算機存儲介質(zhì)不包括通信介質(zhì)。
另外,本文描述的任意動作(無論是否在圖中示出)可以由處理器(例如,處理器702中的一個或多個)作為方法的一部分執(zhí)行。因此,如果本文中描述了動作A、B和C,則可以執(zhí)行包括動作A、B和C的方法。此外,如果本文中描述了動作A、B和C,則可以執(zhí)行包括使用處理器來執(zhí)行動作A、B和C的方法。
在一個示例性環(huán)境中,設(shè)備700可以通過網(wǎng)絡(luò)708通信地連接到一個或多個其它設(shè)備。設(shè)備710類似于設(shè)備700的結(jié)構(gòu),其是可以連接到設(shè)備700的設(shè)備的例子,盡管其它類型的設(shè)備也可以這樣連接。
雖然以特定于結(jié)構(gòu)特征和/或方法動作的語言描述了主題,但是應(yīng)理解的是,在所附權(quán)利要求中定義的主題不必限于上述特定特征或動作。相反地,將上述描述的特定特征和動作公開為實現(xiàn)權(quán)利要求的示例性形式。