相關(guān)申請的交叉引用
本申請要求提交于2014年11月14日的題為“accountrecoveryprotocol(賬戶恢復(fù)協(xié)議)”的美國專利申請?zhí)?2/080,125以及提交于2015年10月30日的題為“accountrecoveryprotocol(賬戶恢復(fù)協(xié)議)”的美國專利申請?zhí)?4/928,443的權(quán)益和優(yōu)先權(quán),所述美國專利申請的全部內(nèi)容通過引用以其全文結(jié)合在此。
本申請涉及計算領(lǐng)域,并且更具體地涉及一種用于用戶賬戶恢復(fù)的系統(tǒng)、方法和協(xié)議。
背景技術(shù):
隨著可用于用戶的服務(wù)和應(yīng)用的普及,通常特定用戶變得有必要記住與用戶相關(guān)聯(lián)的眾多服務(wù)和/或應(yīng)用賬戶的登錄憑證,如口令。如果用戶忘記或丟失與賬戶相關(guān)聯(lián)的口令,則用戶通常必須啟動口令恢復(fù)過程來重新獲得對賬戶的訪問。然而,許多現(xiàn)有口令恢復(fù)過程引入了安全漏洞。
附圖說明
在附圖的圖示中通過示例而非限制的方式描述了實施例,在這些附圖中,相似的參考表示類似的元素,并且其中:
圖1展示了根據(jù)一個實施例的用于用戶賬戶恢復(fù)的高級架構(gòu),包括客戶端側(cè)組件和服務(wù)器側(cè)組件;
圖2展示了根據(jù)一個實施例的用于用戶賬戶恢復(fù)的通信系統(tǒng);
圖3a至圖3b展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議設(shè)置和管理的過程流程的示例;
圖4a至圖4b展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議的賬戶恢復(fù)請求建立過程流程的示例;
圖5展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議的賬戶恢復(fù)請求邀請過程流程的示例;
圖6a至圖6b展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議的賬戶恢復(fù)請求完成過程流程的示例;
圖7是客戶端設(shè)備的實施例的簡化框圖;以及
圖8是認證服務(wù)器的實施例的簡化框圖。
具體實施方式
一個或多個示例實施例涉及一種用于賬戶恢復(fù)協(xié)議(accountrecoveryprotocol,arp)的系統(tǒng)和方法,作為一種用于在用戶忘記相關(guān)聯(lián)的“主口令”的情況下重置主口令并且允許口令管理器的用戶恢復(fù)對其賬戶以及與網(wǎng)絡(luò)服務(wù)(如在云服務(wù)中)相關(guān)聯(lián)的經(jīng)加密的所存儲的數(shù)據(jù)的訪問的機制。在一個或多個實施例中,系統(tǒng)操作員不保持有與服務(wù)本身相關(guān)聯(lián)的主口令的知識。在特定實施例中,賬戶恢復(fù)協(xié)議幫助與“主口令”恢復(fù)相反的“賬戶/訪問”恢復(fù),因為為了保護用戶隱私和數(shù)據(jù)機密性,一些口令管理器并不在任何時候都維持主口令的所存儲的副本,即使是來自服務(wù)提供方的站點的口令管理器。
在一個或多個實施例中,口令管理器是包括用于如本文中所描述的鞏固用戶認證的多方面架構(gòu)的認證平臺的一部分。在各個實施例中,口令管理器提供對網(wǎng)絡(luò)服務(wù)(如云中的服務(wù))集中的認證訪問。在一個或多個實施例中,訂閱認證服務(wù)的服務(wù)或?qū)嶓w(被稱為“依賴方”(rp))使用認證服務(wù)來在rp向用戶提供其服務(wù)之前建立用戶所需要的認證因素。在一個或多個實施例中,口令管理器應(yīng)用呈現(xiàn)儀表盤,所述儀表盤在儀表盤中向訂閱它的用戶顯示用戶使用的所有云服務(wù),以便允許輸入對用戶使用的服務(wù)的認證請求,當被要求時提供所請求的認證因素,并且在沒有冗余且單獨的登錄嘗試的情況下以集中的方式訪問這些服務(wù)??诹罟芾砥餍枰脩艚H賬戶持有者已知的主口令。主口令很像其他口令那樣用于用戶認證,并且?guī)椭卿涃~戶并獲得對用戶服務(wù)的訪問,但是它還有另一個重要角色,生成用于對用戶數(shù)據(jù)進行加密的密鑰以及用于幫助恢復(fù)過程的其他密鑰。
圖1展示了根據(jù)一個實施例的用于用戶賬戶恢復(fù)的高級架構(gòu)100,包括客戶端側(cè)組件和服務(wù)器側(cè)組件。在圖1中所展示的特定實施例中,架構(gòu)100包括認證組件102和登記/管理組件104。認證組件102包括如本文中將進一步描述的一個或多個認證模塊,所述一個或多個認證模塊被配置成用于處理來自客戶端設(shè)備的認證請求。在所展示的實施例中,認證組件102的認證模塊包括流程和動作處置器模塊、管理配置應(yīng)用編程接口(api)、配置存儲設(shè)備、表述性狀態(tài)轉(zhuǎn)移(representationalstatetransfer,rest)服務(wù)器、會話存儲設(shè)備、以及restapi。在特定實施例中,根據(jù)oauth開放標準來配置認證模塊。登記/管理組件104包括上下文數(shù)據(jù)模塊、依賴方管理工具、用戶/應(yīng)用策略管理模塊以及私有restapi。
認證組件102和登記/管理組件104各自進一步與云服務(wù)106、服務(wù)器108和身份認證服務(wù)110進行通信。云服務(wù)106進一步包括數(shù)據(jù)抽象層(dal)、上下文模塊、用戶簡檔模塊、風(fēng)險分析引擎、以及restapi。服務(wù)器108包括硬件登記/驗證模塊、證明模塊以及restapi。身份認證服務(wù)110包括被配置成用于促進與架構(gòu)100內(nèi)的其他組件進行通信的restapi。云服務(wù)106與一個或多個數(shù)據(jù)庫112進一步通信。在特定的所展示的實施例中,數(shù)據(jù)庫112包括會話數(shù)據(jù)庫、生物特征數(shù)據(jù)庫以及認證數(shù)據(jù)庫。
架構(gòu)100進一步包括依賴方網(wǎng)站114以及駐留在與一個或多個依賴方實體相關(guān)聯(lián)的一個或多個服務(wù)器中的依賴方應(yīng)用116。依賴方網(wǎng)站114和依賴方應(yīng)用116中的每一個都與認證組件102進行通信。依賴方網(wǎng)站包括web軟件開發(fā)工具包(sdk)并且與認證web接口118進一步通信。認證web接口118與登記/管理組件104進一步通信。依賴方應(yīng)用116與認證客戶端應(yīng)用120進一步通信。認證客戶端應(yīng)用120與登記/管理組件104進一步通信。架構(gòu)100進一步包括與登記/管理組件104通信的認證os登錄組件122。認證客戶端應(yīng)用120和認證os登錄組件122中的每一個都包括用于幫助從用戶處獲得生物特征數(shù)據(jù)的本地生物特征庫。
認證組件102被配置成用于處置對認證功能的認證請求,并且創(chuàng)建與如用戶簡檔、策略和生物特征組件等組件進行交互的認證指定流程和動作處置器以便處理認證請求。在登記過程期間,登記/管理組件104經(jīng)由私有restapi與各個組件對接,并且為特定用戶創(chuàng)建用戶簡檔并將用戶簡檔與標識特定rp客戶端的依賴方(rp)客戶端標識符(id)相關(guān)聯(lián)。在一個或多個實施例中,創(chuàng)建用戶簡檔和rp客戶端策略并將其存儲在一個或多個數(shù)據(jù)庫(db)112中。在特定實施例中,用戶簡檔、rp應(yīng)用策略和上下文數(shù)據(jù)的db結(jié)構(gòu)與用于認證請求的認證模塊102共享。
在一個示例實施例中,一個或多個認證服務(wù)器中的策略引擎管理用戶對一個或多個rp實體進行認證的策略。在一個特定實施例中,與用戶相關(guān)聯(lián)的策略可通過訂閱rp實體和用戶自身的安全設(shè)置兩者進行配置,以便控制用戶訪問rp實體所提供的資源。在特定實施例中,設(shè)置用于使用認證因素的最小安全等級,并且用戶和/或rp實體可以增加認證的因素的等級和數(shù)量,但是不能減少它。
根據(jù)各個實施例,賬戶恢復(fù)協(xié)議(arp)在各個實施例中作為恢復(fù)機制被提供給用戶。在一個或多個實施例中,用戶可以被提供有事先建立恢復(fù)機制的選項,從而使得在用戶忘記相關(guān)聯(lián)的主口令的情況下用戶可以從對用戶服務(wù)的訪問的丟失中恢復(fù)并對其進行修復(fù)。
圖2展示了根據(jù)一個實施例的用于用戶賬戶恢復(fù)的通信系統(tǒng)200。通信系統(tǒng)200包括與用戶a相關(guān)聯(lián)的第一客戶端設(shè)備202a、與用戶b相關(guān)聯(lián)的第二客戶端設(shè)備202b、與用戶c相關(guān)聯(lián)的第三客戶端設(shè)備202c、與用戶d相關(guān)聯(lián)的第四客戶端設(shè)備202d、與用戶e相關(guān)聯(lián)的第五客戶端設(shè)備202e、以及與用戶f相關(guān)聯(lián)的第六客戶端設(shè)備202f。客戶端設(shè)備202a至202f中的每個客戶端設(shè)備經(jīng)由一個或多個網(wǎng)絡(luò)204與認證服務(wù)器206進行通信。(多個)網(wǎng)絡(luò)204可以包括移動接入網(wǎng)絡(luò)、因特網(wǎng)或任何其他合適的網(wǎng)絡(luò)中的一者或多者,以便允許客戶端設(shè)備202a至202f與認證服務(wù)器206進行通信。認證服務(wù)器206經(jīng)由因特網(wǎng)208進一步與依賴方(rp)服務(wù)器210進行通信。第一客戶端設(shè)備202a包括第一口令應(yīng)用212a,第二客戶端設(shè)備202b包括第二口令應(yīng)用212b,第三客戶端設(shè)備202c包括第三口令應(yīng)用212c,第四客戶端設(shè)備202d包括第四口令應(yīng)用212d,第五客戶端設(shè)備202e包括第五口令應(yīng)用212e,并且第六客戶端設(shè)備202f包括第六口令應(yīng)用212f??诹顟?yīng)用212a至212f中的每一個都被配置成用于允許用戶的對應(yīng)客戶端設(shè)備202a至202f的用戶與認證服務(wù)器102進行通信,以便執(zhí)行如本文中進一步描述的各種口令設(shè)置和恢復(fù)過程。
認證服務(wù)器206包括認證組件102。認證組件包括口令應(yīng)用restapi214。在特定實施例中,認證服務(wù)器206可以位于服務(wù)提供方的核心網(wǎng)絡(luò)中。口令應(yīng)用restapi214被配置成用于與客戶端設(shè)備202a至202f的對應(yīng)口令應(yīng)用212a至212f對接,以便允許認證組件102執(zhí)行如本文中所描述的口令設(shè)置和隨后的口令恢復(fù)操作,進而允許與客戶端設(shè)備202a至202f中的一個或多個客戶端設(shè)備相關(guān)聯(lián)的用戶訪問與rp服務(wù)器210相關(guān)聯(lián)的資源、服務(wù)、應(yīng)用和/或內(nèi)容(如流式音頻、流式視頻、視頻內(nèi)容、音頻內(nèi)容或rp服務(wù)器210提供的任何其他期望的內(nèi)容)。
客戶端設(shè)備202a至202f可以包括能夠訪問由rp服務(wù)器210所提供的資源的任何電子或計算設(shè)備。這些客戶端設(shè)備202a至202f可以包括例如:移動電話、臺式pc、膝上型計算機、平板計算機、個人數(shù)字助理(pad)、智能電話、便攜式媒體文件播放器、電子書閱讀器、便攜式計算機、頭戴式顯示器、交互信息亭、移動電話、上網(wǎng)本、單板計算機(sbc)、嵌入式計算機系統(tǒng)、可穿戴計算機(例如,手表或眼鏡)、游戲控制臺、家庭影院pc(htpc)、tv、dvd播放器、數(shù)字有線電視盒、數(shù)字錄像機(dvr)、能夠運行web瀏覽器的計算機系統(tǒng)、或這些中的任何兩個或更多個的組合。計算設(shè)備可以使用包括但不限于android、berkeley軟件分布(bsd)、iphoneos(ios)、linux、osx、類unix實時操作系統(tǒng)(例如,qnx)、microsoftwindows、windowphone、以及ibmz/os的操作系統(tǒng)。
依賴方(rp)服務(wù)器210可以包括與實體(如網(wǎng)站、供應(yīng)商以及需要其用戶在訪問其資源之前被識別和認證的其他數(shù)據(jù)、服務(wù)和應(yīng)用的提供方)相關(guān)聯(lián)的服務(wù)器。
在示例實施方式中,客戶端設(shè)備202a至202f、認證服務(wù)器206以及rp服務(wù)器210是網(wǎng)絡(luò)元件,它們意味著包含網(wǎng)絡(luò)電器、服務(wù)器、路由器、交換機、網(wǎng)關(guān)、橋接器、負載均衡器、處理器、模塊,或任何其他適當?shù)脑O(shè)備、組件、元件、或可運行以在網(wǎng)絡(luò)環(huán)境中交換信息的對象。網(wǎng)絡(luò)元件可以包括任何適當?shù)挠布④浖?、組件、模塊、或便于其運行的對象,以及用于在網(wǎng)絡(luò)環(huán)境中接收、發(fā)射、和/或另外傳達數(shù)據(jù)或信息的適當接口。這可以包括允許數(shù)據(jù)或信息的有效交換的適當?shù)乃惴ê屯ㄐ艆f(xié)議。
關(guān)于與通信系統(tǒng)200相關(guān)聯(lián)的內(nèi)部結(jié)構(gòu),客戶端設(shè)備202a至202f、認證服務(wù)器206以及rp服務(wù)器210中的每一個都可以包括存儲器元件,所述存儲器元件用于存儲有待用于本文中所概述的操作的信息。客戶端設(shè)備202a至202f、認證服務(wù)器206以及rp服務(wù)器210中的每一個可以將信息保持在任何適當?shù)拇鎯ζ髟?例如,隨機存取存儲器(ram)、只讀存儲器(rom)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、專用集成電路(asic)等)、軟件、硬件、固件中,或(在合適的情況下并基于具體需要)任何其他適當?shù)慕M件、設(shè)備、元件、或?qū)ο笾?。本文中所討論的存儲器項中的任何一個應(yīng)當被理解為包含在寬泛術(shù)語‘存儲器元件’內(nèi)。而且,可以在任何數(shù)據(jù)庫、寄存器、隊列、表格、高速緩存、控制列表、或其他存儲結(jié)構(gòu)(所有這些可以在任何適當?shù)臅r間幀被引用)中提供在通信系統(tǒng)200中被使用、追蹤、發(fā)送、或接收的信息。任何此類存儲選項也可以包括在如本文中所使用的寬泛術(shù)語‘存儲器元件’內(nèi)。
在某些示例實施方式中,本文中所概述的功能可以通過被邏輯編碼在一種或多種有形介質(zhì)(例如,asic中所提供的嵌入式邏輯、數(shù)字信號處理器(dsp)指令、有待由處理器執(zhí)行的軟件(潛在地包括對象代碼和源代碼)、或其他類似機器等)中來實現(xiàn),所述一種或多種有形介質(zhì)可以包括非瞬態(tài)計算機可讀介質(zhì)。在這些實例的一部分中,存儲器元件可以存儲用于本文中所描述的操作的數(shù)據(jù)。這包括存儲器元件能夠存儲軟件、邏輯、計算機代碼或被執(zhí)行以便實施本文中所描述的活動的處理器指令。
在示例實施方式中,通信系統(tǒng)200的網(wǎng)絡(luò)元件,如客戶端設(shè)備202a至202f、認證服務(wù)器206以及rp服務(wù)器210,可以包括軟件模塊用于實現(xiàn)或用于培養(yǎng)本文中所概述的操作。這些模塊可以通過任何適當?shù)姆绞胶线m地組合,這可以基于具體配置和/或規(guī)定需要。在某些實施例中,可以由硬件實施這些操作、將其實施到這些元件的外部或?qū)⑵浒ㄔ谀硞€其他網(wǎng)絡(luò)設(shè)備中,以便實現(xiàn)預(yù)期功能。此外,所述模塊可以被實現(xiàn)為軟件、硬件、固件或其任何合適的組合。這些元件還可以包括軟件,所述軟件可以與其他網(wǎng)絡(luò)元件協(xié)調(diào)以便實現(xiàn)如本文中所概述的操作。
此外,客戶端服務(wù)器202a至202f、認證服務(wù)器206以及rp服務(wù)器210中的每一個可以包括可以執(zhí)行軟件或算法的處理器以執(zhí)行本文中所討論的活動。處理器可以執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何類型的指令以便實現(xiàn)本文中詳細說明的操作。在一個示例中,所述處理器可以將元件或物品(例如,數(shù)據(jù))從一種狀態(tài)或事物變換成另一種狀態(tài)或事物。在另一個示例中,本文中所概述的活動可以使用固定邏輯或可編程邏輯(例如,由處理器執(zhí)行的軟件/計算機指令)實施,并且本文中所識別的元件可以是某種類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(fpga)、eprom、eeprom)或包括數(shù)字邏輯、軟件、計算機代碼、電子指令或其任何合適的組合的asic。本文中所描述的可能的處理元件、模塊以及機器中的任何一個可以被理解為包含在寬泛術(shù)語‘處理器’中。
根據(jù)一個或多個實施例,如果賬戶恢復(fù)變得必要,則本文中所描述的賬戶恢復(fù)協(xié)議(arp)可以被實現(xiàn)為由待使用的口令管理器應(yīng)用的用戶建立的可選特征。在一個或多個實施例中,賬戶持有者(如與第一客戶端202相關(guān)聯(lián)的用戶a)建立主口令來獲得對口令管理器應(yīng)用的訪問。根據(jù)一個或多個實施例,主口令具有兩種用途:1)用戶認證;以及2)對用戶數(shù)據(jù)進行加密。根據(jù)各個實施例,從主口令中導(dǎo)出兩個密碼密鑰,一個將賬戶持有者電子郵件地址用作鹽(salt)(用于認證),并且第二個使用用于對用戶數(shù)據(jù)進行加密的唯一/隨機鹽。鹽是被用作用于生成密碼密鑰的附加輸入的數(shù)據(jù)。
本文中所描述的賬戶恢復(fù)協(xié)議(arp)的一個或多個實施例背后的主要概念是賬戶恢復(fù)密鑰(accountrecoverykey,ark),所述賬戶恢復(fù)密鑰是用于對賬戶恢復(fù)工具套裝(accountrecoverybundle,arb)進行加密的隨機生成的秘密密鑰。在特定實施例中,arb是采用javascript對象注釋(json)格式的文件,所述格式除其他恢復(fù)屬性之外還包含以下兩條重要恢復(fù)數(shù)據(jù):認證令牌一次性口令(onetimepassword,otp)和內(nèi)容加密密鑰(contentencryptionkey,cek)。在特定實施例中,需要otp和cek兩者來恢復(fù)賬戶并保持服務(wù)器上的機密直到需要它們來完成賬戶恢復(fù)請求(arr)。
在一個或多個特定實施例中,使用被稱為arb_ark的ark對arb進行加密。ark秘密僅由賬戶持有者(例如,健忘的用戶)持有或存儲。在一個或多個實施例中,ark秘密被分割成預(yù)定數(shù)量m塊,并且使用將被保存在第三方中直到需要的arp可信朋友(arptf)來共享每一塊,而ark秘密的內(nèi)容和塊被從arptf的視角處隱藏。
在一個或多個實施例中,arptf自身也是合法口令管理器應(yīng)用賬戶持有者。在特定實施例中,可信朋友受到賬戶持有者的邀請成為arptf,并且具有接受或拒絕所述邀請的選項。在特定實施例中,賬戶持有者可以隨意修改artf列表。在一個或多個實施例中,ark秘密被分割并經(jīng)由沙米爾秘密共享(shamir’ssecretsharing)(sss)被共享給arptf。sss是密碼算法,在所述密碼算法中,秘密被分成預(yù)定數(shù)量的部分,給予每個參與者其自身唯一的部分,其中,需要所述部分中的一些或全部來重建秘密。在一些實施例中,用戶控制下的對象或設(shè)備(例如,電話、平板計算機、pc、usb密鑰、具有印刷條碼的一張紙)還可以通過持有來自sss的一段來充當arptf。在圖2中所展示的實施例中,與第二客戶端設(shè)備202b相關(guān)聯(lián)的用戶b、與第三客戶端設(shè)備202c相關(guān)聯(lián)的用戶c、與第四客戶端設(shè)備202d相關(guān)聯(lián)的用戶d、與第五客戶端設(shè)備202e相關(guān)聯(lián)的用戶e、以及與第六客戶端設(shè)備202f相關(guān)聯(lián)的用戶f中的每一個均被指定為與第一客戶端設(shè)備202a相關(guān)聯(lián)的賬戶持有者用戶a的可信朋友或arptf。
如果有必要恢復(fù)賬戶,則賬戶持有者向認證服務(wù)器206發(fā)出賬戶恢復(fù)請求。在啟動恢復(fù)過程之后,向賬戶持有者呈現(xiàn)確認循環(huán)。在特定實施例中,確認循環(huán)包括收集賬戶持有者的電子郵件地址、對captcha質(zhì)詢的響應(yīng)(例如,文本驗證或證明活度的圖像)以及用戶選擇和輸入以用于恢復(fù)過程中的臨時主密鑰。captcha(“completelyautomatedpublicturingtesttotellcomputersandhumansapart(用于區(qū)分計算機與人類的全自動公共圖靈測試)”的首字母縮寫)是一種用于判定用戶是否是人類的質(zhì)詢-響應(yīng)測試。認證服務(wù)器206然后生成帶外確認碼(occ),向arptf提供小的秘密(例如,4位代碼)并且arptf出于確認目的使用所述小的秘密以便確認在沒有被篡改的情況下完成了帶外(oob)通信。
在一個或多個實施例中,認證服務(wù)器206然后指導(dǎo)賬戶持有者聯(lián)系arptf列表的成員,向它們通知用于在恢復(fù)中幫助的請求,并且向arptf成員中的每個成員提供occ。在特定實施例中,認證服務(wù)器206驗證沿著路徑的所有條目和實體。arptf各自接收用于幫助進行賬戶恢復(fù)的請求(包括occ),并且被提示確認所述請求。在接收確認之后,允許認證服務(wù)器206檢索arptf的恢復(fù)令牌。賬戶持有者的口令應(yīng)用然后對經(jīng)檢索的令牌中的每個令牌進行解密并且建立arptf響應(yīng)的共識。在一個或多個實施例中,建立sss參數(shù),從而使得如果從arptf處接收到預(yù)定數(shù)量的響應(yīng)或響應(yīng)的部分(例如,>=50%或5個中的3個等),則達到共識狀態(tài)。一旦達到共識狀態(tài),就對接收到的恢復(fù)令牌進行解密和組裝以便重建ark。ark用于對arb進行解密,以便執(zhí)行恢復(fù)過程。在恢復(fù)過程期間,采用程序來重新生成所有需要的種子、密鑰、新塊、以及新的新鮮密鑰材料,并且進行重新加密以便將臨時主密鑰提升為新主密鑰,由此允許用戶經(jīng)由新主密鑰登錄并且重新獲得對用戶賬戶和資源的控制。
本文中所描述的各個實施例利用主口令作為用于認證和用戶數(shù)據(jù)加密兩者的密碼密鑰生成的源。在一個或多個實施例中,認證服務(wù)器206使用同一秘密(例如,主口令)對用戶數(shù)據(jù)進行基于加密的認證和恢復(fù),其中,在可信實體與經(jīng)驗證實體當中分配恢復(fù)知識,同時認證服務(wù)器206也不知道恢復(fù)密鑰的準確內(nèi)容,以便隔離其自身并且對抗針對密碼和恢復(fù)數(shù)據(jù)的安全威脅。
根據(jù)一個或多個實施例,提供恢復(fù)機制,在所述恢復(fù)機制中臨時口令經(jīng)歷檢查和密碼操作,并且僅當基于數(shù)據(jù)的經(jīng)分配的知識而完全驗證時,所述臨時口令才被接受用于替代先前已知的良好主口令。在特定實施例中,sss算法用于在多個可信實體當中斷裂并分配恢復(fù)密鑰。以下部分概括了根據(jù)一個或多個指定實施例的針對arp的各種順序的示例高級操作。一個或多個實施例使用aes-ccm,所述aes-ccm是具有關(guān)聯(lián)數(shù)據(jù)的認證加密(authenticatedencryptionwithassociateddata,aead)算法,一類可以在其認證整條消息的同時對部分或整條消息進行加密的塊密碼操作模式。高級加密標準(aes)是用于對系統(tǒng)中的所有數(shù)據(jù)進行加密的塊密碼,并且具有cbc-mac的計數(shù)器(ccm)是與aes一起用來提供經(jīng)加密的數(shù)據(jù)的機密性和完整性兩者的塊密碼操作模式。根據(jù)一個或多個實施例,僅部分消息被加密,而剩余部分不被加密但經(jīng)過認證。在特定實施中,(enc)被用作對經(jīng)加密+經(jīng)認證的指示,而(mac)僅經(jīng)認證。
在以下示例順序中,使用以下實體:
用戶a—一由于他在某些時候忘記他的主口令因此而使用arp的“忘記者”。用戶a與第一客戶端設(shè)備202a相關(guān)聯(lián),所述第一客戶端設(shè)備具有用戶a用來與認證服務(wù)器206進行交互的客戶端應(yīng)用,口令應(yīng)用212a。
用戶b,c,d,e,f——是用戶a的可信朋友的成員(即arptf),用戶a與所述可信朋友共享多條其賬戶恢復(fù)密鑰(ark)。如所討論的,ark是隨機生成的秘密密鑰,所述秘密密鑰用于對僅由賬戶持有者(用戶a)持有的并且被分割成m塊的arb進行加密,所述m塊中的每一塊都被可信朋友(例如,用戶b,c,d,e,f)安全地共享。在特定實施例中,用戶b至用戶f與對應(yīng)的客戶端設(shè)備202b至202f相關(guān)聯(lián),每個客戶端設(shè)備具有對應(yīng)的口令管理器應(yīng)用212b至212f。
口令restapi214——認證服務(wù)器206的認證組件102內(nèi)認證、存儲資產(chǎn)、允許共享并且充當對arp的控制的服務(wù)。
圖3a至圖3b展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議設(shè)置和管理的過程流程300的示例。在設(shè)置之前,用戶a創(chuàng)建與口令應(yīng)用212a相關(guān)聯(lián)的賬戶。在一個或多個實施例中,創(chuàng)建賬戶包括為賬戶指定主口令。在賬戶創(chuàng)建之后,用戶a向作為與其賬戶相關(guān)聯(lián)的朋友的用戶b、用戶c、用戶d、用戶e和用戶f中的每一個發(fā)送邀請請求。在一個或多個實施例中,用戶b、用戶c、用戶d、用戶e和用戶f可能已經(jīng)具有其自身的賬戶或者被提示用于響應(yīng)于接收請求而創(chuàng)建其自身的賬戶。用戶b、用戶c、用戶d、用戶e和用戶f中的一個或多個可以確認友好請求,從而使得用戶a具有足夠的朋友鏈接至其賬戶以便繼續(xù)賬戶恢復(fù)協(xié)議(arp)設(shè)置階段。在一個或多個實施例中,用戶a與用戶b、用戶c、用戶d、用戶e和用戶f中的每一個之間的朋友關(guān)系由認證服務(wù)器206存儲在數(shù)據(jù)庫中。
在302中,第一客戶端設(shè)備202a的用戶a使用其主口令啟動到第一客戶端設(shè)備202a的口令應(yīng)用212a的登錄過程。在特定實施例中,用戶a使用與第一客戶端設(shè)備202a相關(guān)聯(lián)的圖形用戶界面(ui)將電子郵件地址和主口令輸入到口令應(yīng)用212a中。用戶a然后可以引導(dǎo)到ui內(nèi)的arp設(shè)置屏幕以便啟動arp設(shè)置。在304中,口令應(yīng)用212a向認證服務(wù)器206的口令應(yīng)用restapi214發(fā)送對用戶a的認證請求(post/api_登錄(api_login))。在特定實施例中,認證請求包括與用戶a相關(guān)聯(lián)的電子郵件地址和認證令牌。在306中,認證服務(wù)器206使用電子郵件地址和認證令牌針對數(shù)據(jù)庫認證用戶a。在308中,口令應(yīng)用212a從認證服務(wù)器206處接收指示用戶a已經(jīng)被認證的認證響應(yīng)(http200auth_ok)。在特定實施例中,認證響應(yīng)包括會話令牌。在310中,口令應(yīng)用212a向用戶a提供用戶a已經(jīng)登錄的指示。
在312中,用戶a查看ui內(nèi)由口令管理器應(yīng)用212a提供的arp設(shè)置屏幕并啟動arp設(shè)置。在314中,口令應(yīng)用212a向認證服務(wù)器206發(fā)送請求,以便檢索包含與已經(jīng)被指定為用戶a的朋友的賬戶(例如,用戶b,用戶c,用戶d,用戶e,用戶f)相對應(yīng)的聯(lián)系人列表的成員對象((httpget/成員(member)/{成員_id(member_id)}/)。在316中,口令管理器應(yīng)用212a接收與用戶a的賬戶相關(guān)聯(lián)的聯(lián)系人(例如,朋友)列表,在所述聯(lián)系人列表中,朋友中的一些朋友可能已經(jīng)被指定為可信朋友(即,arptf)。如果已經(jīng)針對arp設(shè)置了賬戶,則其包含arb_arkjson屬性但不包含認證令牌一次性口令(authenticationtokenone-time-password,auth-tok-otp)json屬性,因為其保持為存儲在認證服務(wù)器206上的秘密。包括接收到的聯(lián)系人列表的響應(yīng)消息(/聯(lián)系人(contacts)/)可能擁有一些被認為是arptf的聯(lián)系人。作為arptf的聯(lián)系人具有ark-pxjson屬性——即,將向其發(fā)送以便保持在第三方中的ark塊。在318中,口令管理器應(yīng)用212a判定用戶a是否具有足夠的聯(lián)系人來繼續(xù)設(shè)置賬戶恢復(fù)協(xié)議。如果用戶a具有足夠的聯(lián)系人,則設(shè)置過程繼續(xù)。否則,口令管理器應(yīng)用212a提示用戶a邀請更多朋友來參與賬戶恢復(fù)。
在320中,口令管理器應(yīng)用212a顯示用戶a的聯(lián)系人列表。在322中,用戶a從用戶a信任作為arptf來參與賬戶恢復(fù)協(xié)議(arp)的聯(lián)系人列表中選擇朋友。在324中,口令應(yīng)用212a向用戶a顯示更新的聯(lián)系人列表,并且提示用戶a確認選擇。在326中,用戶a確認對口令管理器應(yīng)用212a的arptf邀請。
在328中,口令應(yīng)用212a為用戶a生成新鮮的賬戶恢復(fù)密鑰(ark)。在特定實施例中,口令應(yīng)用212a使用密碼地安全偽隨機數(shù)發(fā)生器(csprng)生成256位賬戶恢復(fù)密鑰(ark)以便充當用于生成秘密密鑰的原語。在330中,口令應(yīng)用212a生成新鮮的認證令牌一次性口令(auth-tok-otp)。在特定實施例中,auth-tok-otp是256位值。在332中,口令應(yīng)用212a創(chuàng)建包括auth-tok-otp以及使用ark加密的內(nèi)容加密密鑰(cek)的經(jīng)加密的賬戶恢復(fù)工具套裝(arb)。在一個或多個實施例中,arb是包括標識工具套裝方案和創(chuàng)建日期的消息認證代碼(mac)部分以及包括auth-token-otp(enc)和賬戶的內(nèi)容加密密鑰(cek)-(enc)的加密部分的json文件。
在334中,口令應(yīng)用212a將ark分割成預(yù)定數(shù)量m塊(所選擇的arptf的數(shù)量)。在特定實施例中,口令應(yīng)用212a使用沙米爾秘密共享(sss)將ark分割成預(yù)定數(shù)量的塊。因此,生成共享塊的完整列表,在所述列表中,每個共享塊(ark-px)如隱藏在arptf賬戶中那樣保持在第三方中,并且可以稍后用于恢復(fù)ark。在一個或多個實施例中,建立sss參數(shù),從而使得存在用戶a需要的arptf的共識(例如,>=50%)-—即5個中的3個,以便恢復(fù)ark。在特定實施例中,這些安全參數(shù)可以被調(diào)整為便利與共識之間的折衷。
在336中,口令應(yīng)用212a使用用ark加密的arb(arb_ark)和auth-tok-otp更新存儲在認證服務(wù)器206處的用戶a的成員對象。在特定實施例中,口令應(yīng)用212a向認證服務(wù)器205的口令應(yīng)用restapi214發(fā)送包括arb_ark和auth-tok-otp以及用戶a的標識(成員_id)的httpput/成員/{成員_id}/消息。在338中,口令應(yīng)用restapi214返回更新的成員對象的副本,所述副本不包含auth-tok-otp,因為其保持為存儲在認證服務(wù)器206上的秘密。
在340中,口令應(yīng)用212a使用對用戶a的arptf中的每一個的arp邀請(arpi)來共享具有用戶a的不同arptf的每個塊ark-px。在特定實施例中,口令應(yīng)用212a向由聯(lián)系人標識符(聯(lián)系人_id(contact_id))標識的每個arptf發(fā)送httpput/聯(lián)系人(contact)/{聯(lián)系人_id(contact_id)}/消息,所述聯(lián)系人標識符包括更新的聯(lián)系人對象,所述更新的聯(lián)系人對象包含使用此arptf的公共密鑰加密的特定ark-px??诹顁estapi214通過將ark-px塊從arptf的視角中隱藏來將其保持在第三方中。在一個或多個實施例中,為了完成arp邀請(arpi),arptf接收解釋接收方的聯(lián)系人中的一個聯(lián)系人已經(jīng)要求他變成arptf的通知。接收方可以接收或拒絕arpi。在特定實施例中,口令restapi214發(fā)送包括指示特定arptf是否接受邀請的http200消息。
在342中,口令應(yīng)用212a向用戶a發(fā)送確認消息,所述確認消息包括對邀請已發(fā)送的確認以及對arptf中的每一個是否接受邀請的指示。在稍后的時間,在特定實施例中,用戶a可以通過再次執(zhí)行先前描述的過程中的一個或多個過程來管理arptf列表。如果用戶a已經(jīng)成功完成先前過程至少一次,則用戶a可以隨后修改的現(xiàn)有屬性由認證服務(wù)器206存儲。
圖4a至圖4b展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議的賬戶恢復(fù)請求建立過程流程400的示例。賬戶恢復(fù)請求建立過程建立新賬戶恢復(fù)請求。圖4a至圖4b的示例第一過程流程假設(shè)用戶a已經(jīng)具有足夠的arptf來直接執(zhí)行arp設(shè)置。在圖4a至圖4b的實施例中,用戶a已經(jīng)不幸地忘記了他的主口令,并且不能登錄其賬戶。然而,由于用戶a過去已經(jīng)設(shè)置了arp,因此可以使用arptf來恢復(fù)對其賬戶的訪問。在402中,用戶a忘記了他的主口令。在404中,用戶a點擊由客戶端設(shè)備202a的口令應(yīng)用212a提供的圖形用戶界面內(nèi)的“我忘記了我的主口令”選項。
在406中,口令應(yīng)用212a向認證服務(wù)器206發(fā)送檢索新鮮captcha質(zhì)詢的請求。在特定實施例中,口令應(yīng)用212a向認證服務(wù)器206的口令應(yīng)用restapi214發(fā)送get/captcha消息來請求captcha質(zhì)詢。在408中,客戶端設(shè)備202a的口令應(yīng)用212a從認證服務(wù)器206處接收captcha質(zhì)詢響應(yīng)消息。在特定實施例中,認證服務(wù)器206向客戶端設(shè)備202a發(fā)送http200captcha質(zhì)詢。
在410中,客戶端設(shè)備202a的口令應(yīng)用212a響應(yīng)于接收到captcha質(zhì)詢響應(yīng)消息而向圖形用戶界面內(nèi)的用戶a顯示賬戶恢復(fù)建立屏幕。在一個或多個實施例中,賬戶恢復(fù)建立屏幕顯示包括以下各項中的一項或多項的gui表格:電子郵件表格字段;captcha質(zhì)詢的圖像表示;captcha回答表格字段;用于輸入臨時主口令的口令字段;以及“請求賬戶恢復(fù)”按鈕。在412中,客戶端設(shè)備202a的口令應(yīng)用212a向圖形用戶界面內(nèi)的用戶a顯示captcha圖像。在414中,用戶a查看賬戶恢復(fù)建立屏幕內(nèi)的表格,并且在416中,用戶a填寫所述表格,并且點擊確認按鈕。
在418中,客戶端設(shè)備202a的口令應(yīng)用212a使用臨時主口令和電子郵件得到臨時認證令牌(pbkdf2)。在420中,口令應(yīng)用212a生成暫時性李維斯特沙米爾阿德爾曼(rsa)密鑰對(ephkeypair)。在特定實施例中,ephkeypair是2048位rsa密鑰對。在422中,口令應(yīng)用212a生成暫時性密鑰加密密鑰(kek)導(dǎo)出鹽(ephkeksalt)。密鑰加密密鑰(keyencryptionkey,kek)是從主口令以及隨機生成的鹽中導(dǎo)出的秘密密鑰。在特定實施例中,ephkeksalt是256位值。在424中,口令應(yīng)用212a生成帶外確認代碼(occ)。在特定實施例中,occ是四位數(shù)代碼。在426中,口令應(yīng)用212a導(dǎo)出暫時性密鑰加密密鑰(ephkek)(pbkdf2w/ephkeksalt,主口令)。密鑰加密密鑰(kek)是從主口令以及隨機生成的鹽中導(dǎo)出的(pbkdf2)秘密密鑰。在428中,口令應(yīng)用212a使用ephkek封裝ephkeypair,并且在430中,口令應(yīng)用212a使用ephkek封裝occ。
在432中,客戶端設(shè)備202a的口令應(yīng)用212a創(chuàng)建賬戶恢復(fù)請求消息,并且向認證服務(wù)器206的口令應(yīng)用restapi214發(fā)送賬戶恢復(fù)請求消息。在特定實施例中,賬戶恢復(fù)請求消息被格式化成包括json請求主體的未經(jīng)認證的post/賬戶_恢復(fù)(account_recovery)/消息,所述json請求主體包括:電子郵件地址;captcha_質(zhì)詢(captcha_challenge);captcha_回答(captcha_answer);臨時_認證_令牌(provisional_auth_token)(導(dǎo)出的新主口令作為認證令牌);暫時性_kek_導(dǎo)出_鹽(ephemeral_kek_derivation_salt);暫時性_公有_密鑰(ephemeral_public_key);經(jīng)加密的_暫時性_密鑰對(encrypted_ephemeral_keypair);以及經(jīng)加密的_occ(encrypted_occ)(帶外確認代碼)。在434中,認證服務(wù)器206的口令應(yīng)用restapi214向客戶端設(shè)備202a的口令應(yīng)用212a發(fā)送賬戶恢復(fù)響應(yīng)消息。在特定實施例中,賬戶恢復(fù)響應(yīng)消息是包括json響應(yīng)主體的http200消息,所述json響應(yīng)主體具有:賬戶恢復(fù)請求id(arr_id);創(chuàng)建_日期(creation_date)=現(xiàn)在(now);到期_日期(expiration_date)=現(xiàn)在(now)+到期間隔(例如,48小時);以及狀態(tài)(status)=“請求_確認_未決(request_confirmation_pending)”。在特定實施例中,賬戶恢復(fù)請求id是在成功創(chuàng)建新arr之后由口令restapi214返回的唯一隨機id。
在接收賬戶恢復(fù)響應(yīng)消息之后,在436中,客戶端設(shè)備202a的口令應(yīng)用212a提示用戶a閱讀電子郵件并且通過點擊包括在剛發(fā)送的電子郵件中的鏈接來確認請求。在438中,用戶a閱讀電子郵件。在440中,用戶a點擊確認鏈接,并且客戶端設(shè)備202a的口令應(yīng)用212a向認證服務(wù)器206的口令應(yīng)用restapi214發(fā)送指示確認的確認消息。在一個或多個實施例中,確認消息包括請求確認令牌(請求_確認_令牌(request_confirmation_token))。在特定實施例中,請求確認令牌是用于通過電子郵件驗證循環(huán)確認arp的開始的隨機生成的令牌。
在442中,認證服務(wù)器206的口令應(yīng)用restapi214向用戶b、用戶c、用戶d、用戶e和用戶f中的每一個發(fā)送指示用戶a已經(jīng)請求用戶的幫助來恢復(fù)其賬戶的消息。在444中,認證服務(wù)器206的restapi214向客戶端設(shè)備202a的口令應(yīng)用212a發(fā)送確認。在446中,客戶端設(shè)備的口令應(yīng)用212a可以然后向用戶a顯示occ,并且顯示指導(dǎo)用戶a與每個arptf聯(lián)系的指令。在特定實施例中,消息可以包括電子郵件,所述電子郵件包括確認鏈接。在特定實施例中,如果用戶a忘記了一個或多個arptf的身份,則用戶a可以使用gui來召回arptf的與用戶a相關(guān)聯(lián)的身份。在448中,用戶a聯(lián)系每個arptf并向其提供occ作為防止網(wǎng)絡(luò)釣魚的方式,并且確保確實通過協(xié)議外的其他方式與可信朋友聯(lián)系。過程400結(jié)束。在特定實施例中,用戶a可以使用客戶端設(shè)備202a聯(lián)系每個arptf。
在圖4a至圖4b中所描述的特定實施例中,電子郵件確認循環(huán)被用作用于觸發(fā)賬戶恢復(fù)過程的認證方式。相當部分的用戶幾乎恒定地通過使用電子設(shè)備(如智能電話)來訪問電子郵件。因此,對這些用戶而言,發(fā)生特定用戶可能忘記他的或她的主口令并且同時丟失對電子郵件的所有形式的訪問的情況的可能性很小。然而,由于對所述電子郵件賬戶的訪問對恢復(fù)的安全性有一些影響(帶外確認代碼提供其他部分),因此在其他實施例中,可以使用觸發(fā)賬戶恢復(fù)請求建立過程的其他方法。例如,在特定實施例中,基于圖像的認證(imagebasedauthentication,iba)或小額支付可以用于驗證或斷言賬戶的所有權(quán)。
圖5展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議的賬戶恢復(fù)請求邀請過程流程500的示例。在一個或多個實施例中,在圖4a至圖4b的賬戶恢復(fù)請求建立流程結(jié)束之后自動地啟動過程流程500。在502中,用戶a通過其自身的方式聯(lián)系用戶b(可信朋友),并且向用戶b提供帶外確認代碼(occ)作為指示用戶a正在請求用戶的幫助來恢復(fù)他的或她的賬戶。盡管未在圖5中展示,但是用戶a還聯(lián)系了arptf中的每一個(例如,可信朋友)并向其提供occ。在504中,用戶a等待來自用戶b和每個artpf的響應(yīng)。在506中,用戶b使用第二用戶設(shè)備202b執(zhí)行登錄到用戶b的口令應(yīng)用212。在508中,第二口令應(yīng)用212b發(fā)送指示用戶b登錄到認證服務(wù)器206的口令restapi214的登錄調(diào)用。在特定實施例中,登錄調(diào)用是postapi調(diào)用。在510中,口令restapi214向第二口令應(yīng)用212b發(fā)送包括會話令牌(會話令牌(session_token))的登錄確認。在512中,第二口令應(yīng)用212b經(jīng)由第二客戶端設(shè)備212的gui提供成功登錄用戶b的指示。
在514中,第二口令應(yīng)用212b向認證服務(wù)器206的口令restapi214發(fā)送用于檢索任何賬戶恢復(fù)請求邀請的請求。在特定實施例中,請求具有以下形式:get/賬戶_恢復(fù)(account_recovery)/請求_邀請(request_invitations)。在516中,口令api214認證用戶b作為arptf,并且向第二口令應(yīng)用212b發(fā)送賬戶恢復(fù)請求邀請列表。在特定實施例中,賬戶恢復(fù)請求邀請列表包括:成員標識符(成員_id)、賬戶恢復(fù)請求共享返回標識符(arr_共享_返回_id(arr_share_back_id))、暫時性公鑰(暫時性_公有_密鑰(ephemeral_public_key))、以及使用用戶b的公鑰加密的賬戶恢復(fù)密鑰共享塊(ark_px_pub_密鑰(ark_px_pub_key))。在518中,如果第二口令應(yīng)用212b接收非空列表,則第二口令應(yīng)用212b提示用戶b共享回他的或她的保持在第三方中的ark共享塊(ark-px)以便幫助賬戶恢復(fù)。在520中,用戶b向第二口令應(yīng)用212提供occ和確認以便確認賬戶恢復(fù)。在特定實施例中,用戶b可以輸入occ并且點擊第二用戶設(shè)備202b的gui中的“確認”按鈕。
在522中,第二口令應(yīng)用212b使用用戶b自身的私鑰對“ark_px_公有_密鑰(ark_px_pub_key)”進行解密,給出明文ark-px,即塊中的一個。在524中,第二口令應(yīng)用212b使用暫時性公鑰(ephpubkey)對明文ark-px進行重新加密。在526中,第二口令應(yīng)用212b使用以帶外確認代碼(occ)為密鑰的帶密鑰散列消息認證代碼(hmac)對oob交易進行簽名{hmac(occ,ark-px)。在特定實施例中,使用sha-256密碼散列函數(shù)對交易進行簽名。在528中,第二口令應(yīng)用212b向認證服務(wù)器206的口令restapi214發(fā)送arr共享返回id{arr_共享_返回id(arr_share_backid)}、使用arr暫時性公鑰(arrephpubk)加密的ark-px{ark_px_eph_pub_key}、以及以帶外確認代碼為密鑰的ark_px的hmac{hmac_occ_ark_px}。在特定實施例中,arr暫時性公鑰是僅在arr的持續(xù)時間內(nèi)有效的公鑰。在特定實施例中,第二口令應(yīng)用202b使用具有包括arr_共享_返回_id、ark_px_eph_pub_key、以及hmac_occ_ark_px的json請求主體的post/賬戶_恢復(fù)/成員/{成員_id}/形式的post消息。在530中,口令restapi214向第二口令應(yīng)用212b發(fā)送確認。在特定實施例中,確認是http200消息。在532中,第二口令應(yīng)用212b向用戶b呈現(xiàn)指示已經(jīng)成功共享特定ark-px塊的確認消息。用戶a的剩余arptf中的一個或多個使用其對應(yīng)的口令應(yīng)用(在所述口令應(yīng)用中,口令restapi214從每個arptf處接收一個或多個共享ark-px塊)重復(fù)502至532的過程。當口令restapi214接收到足夠的共享ark-px塊時,口令restapi214將賬戶恢復(fù)請求的狀態(tài)更新到534中的“共識_達到(consensus_reached)”并且過程500結(jié)束。
圖6a至圖6b展示了根據(jù)一個實施例的用于賬戶恢復(fù)協(xié)議的賬戶恢復(fù)請求完成過程流程600的示例。在一個或多個實施例中,在圖5的賬戶恢復(fù)請求邀請過程流程結(jié)束之后啟動過程流程600,在圖5的過程流程中,已經(jīng)關(guān)于賬戶恢復(fù)請求而達到共識。在602中,用戶a重新開始賬戶恢復(fù)請求過程。在特定實施例中,用戶a輸入他的或她的需要導(dǎo)出臨時認證令牌(pbkdf2)的臨時主口令。在604中,第一口令應(yīng)用212b發(fā)送請求以便從認證服務(wù)器206的口令restapi214中檢索arr記錄的更新的版本。在特定實施例中,檢索請求是具有g(shù)et/賬戶_恢復(fù)/{arr_id}/形式的get請求。在特定實施例中,請求是未經(jīng)認證的,但僅經(jīng)由通用唯一標識符(uuid)可訪問,并且所有數(shù)據(jù)被加密且只讀。在606中,口令restapi214發(fā)送包括賬戶恢復(fù)所必須的信息的響應(yīng)。在特定實施例中,響應(yīng)是具有以下json響應(yīng)主體的http200響應(yīng):
a.賬戶恢復(fù)請求id(arr_id)
b.存儲器id(成員_id)
c.請求創(chuàng)建日期(創(chuàng)建_日期)
d.請求到期日期(到期_日期)
e.狀態(tài)=“共識_達到”
f.arr共享返回id(arr_共享_返回_id)
g.使用ark加密的arb(arb_ark)
h.暫時性密鑰加密密鑰(kek)導(dǎo)出鹽(暫時性_kek_導(dǎo)出_鹽)
i.暫時性公鑰(暫時性_公有_密鑰)
i.經(jīng)加密的暫時性密鑰對{經(jīng)加密的_暫時性_密鑰對}
k.經(jīng)加密的occ(經(jīng)加密的_occ)
l.arptf列表(arptf_列表)(json陣列)
1.昵稱
2.ark_px_eph_pub_key-對已經(jīng)參與的arptf而言非‘空’
3.hmac_occ_ark_px
在608中,第一口令應(yīng)用212a向用戶a發(fā)送對當前arr狀態(tài)=“共識達到”的指示。在610中,用戶a繼續(xù)賬戶恢復(fù)。在612中,第一口令應(yīng)用212a使用臨時主口令和隨機生成的鹽導(dǎo)出暫時性密鑰加密密鑰(ephkek)。在614中,第一口令應(yīng)用212a封裝提供對暫時性rsa私鑰(ephprivkey)的訪問的暫時性密鑰對(ephkeypair)。在616中,第一口令應(yīng)用212a封裝經(jīng)加密的occ。然后,第一口令應(yīng)用212a輸入每個ark-px重復(fù)的循環(huán)620。在622中,第一口令應(yīng)用212b使用暫時性rsa私鑰(ephprivkey)對每個經(jīng)加密的ark-px進行解密。在624中,第一口令應(yīng)用212a計算帶密鑰的散列消息認證代碼{hmac(occ,ark-px)}。在626中,第一口令應(yīng)用212a將帶密鑰散列消息認證代碼(hmac)與以帶外確認代碼為密鑰的hmac(hmac_occ_ark_px)進行比較,以便判定條件hmac(occ,ark-px)==hmac_occ_ark_px是否滿足指示已經(jīng)恢復(fù)了正確的ark-px。對從arptf處接收到的每個ark-px執(zhí)行622至626的循環(huán),直到恢復(fù)并確認了每個ark-px。
在630中,第一口令應(yīng)用212a使用sss組合所有經(jīng)解密的ark-px,以便恢復(fù)使用賬戶恢復(fù)密鑰加密的賬戶恢復(fù)工具套裝(arb)(arb_ark)。在632中,第一口令應(yīng)用212a對arb_ark進行解密以便恢復(fù)賬戶恢復(fù)工具套裝(arb)。在634中,第一口令應(yīng)用212a從arb中提取認證令牌一次性口令(auth-tok-otp)和內(nèi)容加密密鑰(cek)。
在636中,第一口令應(yīng)用212a生成新kek導(dǎo)出鹽。在638中,第一口令應(yīng)用212a使用新鹽和臨時主口令中導(dǎo)出更新的kek。在640中,第一口令應(yīng)用212a使用更新的kek封裝經(jīng)提取的cek。
在642中,第一口令應(yīng)用212b向認證服務(wù)器206的口令restapi214發(fā)送經(jīng)認證的賬戶恢復(fù)請求消息。經(jīng)認證的賬戶恢復(fù)請求消息包括:將在完成請求之后有效的auth-tok-otp、將與此請求的臨時認證令牌相競爭的臨時_auth_令牌、以及新kek的新鮮的鹽(更新的_kek_導(dǎo)出_鹽)、以及更新的內(nèi)容加密密鑰密鑰加密密鑰(更新的_cek_kek)。在特定實施例中,請求消息是具有包括auth-tok-otp、臨時_auth_令牌、更新的_kek_導(dǎo)出_鹽-新kek的新鮮的鹽、以及更新的_cek_kek的json請求主體的put/賬戶_恢復(fù)/{arr_id}/形式的put消息。在644中,口令restapi214向第一口令應(yīng)用212a發(fā)送對完成賬戶恢復(fù)請求的確認。在特定實施例中,確認消息是http200消息。在646中,第一口令應(yīng)用212a向用戶a提供對完成賬戶恢復(fù)請求的確認。在648中,用戶a可以使用已經(jīng)提升為主口令的臨時主口令來登錄到第一口令應(yīng)用212a,以便重新獲得對賬戶的訪問。然后,流程600結(jié)束。
現(xiàn)在參照圖7,圖7是客戶端設(shè)備202a的實施例的簡化框圖。客戶端設(shè)備202a包括(多個)處理器702、存儲器元件704、圖形用戶界面706、以及口令應(yīng)用212a。(多個)處理器702被配置成用于執(zhí)行用于執(zhí)行如本文中所描述的客戶端設(shè)備202a的各種操作的軟件指令。存儲器元件704可以被配置成用于存儲與客戶端設(shè)備202a相關(guān)聯(lián)的軟件指令和數(shù)據(jù)。(多個)處理器702可以是任何類型的處理器,如微處理器、嵌入式處理器、數(shù)字信號處理器(dsp)、網(wǎng)絡(luò)處理器或用于執(zhí)行代碼的其他設(shè)備。盡管圖7中僅展示了一個處理器702,但是應(yīng)當理解的是,在一些實施例中,客戶端設(shè)備202a可以包括多于一個處理器。
圖形用戶界面706被配置成用于向客戶端設(shè)備202a的用戶提供圖形用戶界面,以便幫助如本文中所描述的口令設(shè)置和恢復(fù)過程??诹顟?yīng)用212a被配置成用于執(zhí)行如本文中所描述的與客戶端設(shè)備202a相關(guān)聯(lián)的口令設(shè)置和恢復(fù)功能。
現(xiàn)在參照圖8,圖8是認證服務(wù)器206的實施例的簡化框圖。認證服務(wù)器206包括(多個)處理器802、存儲器元件804、認證組件102以及口令restapi214。(多個)處理器802被配置成用于執(zhí)行用于執(zhí)行如本文中所描述的認證服務(wù)器206的各種操作的軟件指令。存儲器元件804可以被配置成用于存儲與認證服務(wù)器206相關(guān)聯(lián)的軟件指令和數(shù)據(jù)。(多個)處理器802可以是任何類型的處理器,如微處理器、嵌入式處理器、數(shù)字信號處理器(dsp)、網(wǎng)絡(luò)處理器或用于執(zhí)行代碼的其他設(shè)備。盡管圖8中僅展示了一個處理器602,但是應(yīng)當理解的是,在一些實施例中,認證服務(wù)器206可以包括多于一個處理器。
認證組件102被配置成用于幫助如本文中所描述的認證服務(wù)器206的認證和口令恢復(fù)功能,并且口令restapi214被配置成用于幫助如本文中所描述的口令restapi214的口令設(shè)置和恢復(fù)功能。
一個或多個實施例可以提供現(xiàn)有解決方案上的以下優(yōu)點中的一個或多個:1)使用同一口令認證用戶以及對用戶數(shù)據(jù)進行加密以便稍后進行恢復(fù);2)其不維持主口令的副本(無論是經(jīng)加密的還是未加密的);3)其不保持用戶主口令的數(shù)據(jù)庫,以及4)盡管在恢復(fù)過程期間賬戶持有者的初始驗證期間,其可以使用常規(guī)驗證方法(如電子郵件確認、用于消除bot活動的captcha驗證等),但是其不利用驗證用戶身份(例如,詢問簡單的安全問題)并且然后允許他們基于此初始驗證簡單地重置口令的其他常規(guī)方法,以及5)出于安全原因,其不具有主口令自身的指定知識。替代地,在可信實體中的任何可信實體不具有令牌的內(nèi)容的指定知識的情況下,其以將保持在第三方中的經(jīng)加密的令牌的形式在若干可信實體當中分配主口令恢復(fù)密鑰的知識塊,以便在需要時被要求拼湊并幫助健忘的用戶從失敗狀態(tài)恢復(fù),由此恢復(fù)到他們的資源的適當訪問。因此,在沒有單個失敗點的情況下,這呈現(xiàn)更加安全的恢復(fù)方法。
為了認證目的,常規(guī)系統(tǒng)主要使用系統(tǒng)口令。相比而言,arp使用同一口令生成單獨的密碼密鑰,以便認證用戶并對其數(shù)據(jù)進行加密。常規(guī)系統(tǒng)使用用戶事先建立的簡單安全問題,或者基于與用戶有關(guān)的一些已知事實詢問問題,并且非常易于偷竊和再利用以便侵入用戶賬戶。保存的口令和口令文件經(jīng)受偷竊和再利用。本文中所描述的arp的一個或多個實施例通過經(jīng)由所述過程中的各種密碼操作而加強密碼密鑰和內(nèi)容的使用和傳輸周圍的安全性來消除對其的許多類似安全威脅,并且以導(dǎo)致重新加密用戶資產(chǎn)而不是簡單地用一個訪問令牌代替另一個的新穎性方式進行恢復(fù)。
盡管本文中所描述的一個或多個實施例涉及口令管理器和主口令的使用,但是應(yīng)當理解的是,本文中所描述的原理適應(yīng)于如用于恢復(fù)對任何類型的用戶的所存儲的/經(jīng)加密的資產(chǎn)(例如,文件共享服務(wù)上的文件、經(jīng)加密的備份等)的訪問的其他基于口令的用戶數(shù)據(jù)加密系統(tǒng)和/或應(yīng)用。
示例
以下示例涉及進一步實施例。
示例1是至少一種用于存儲計算機代碼的非瞬態(tài)計算機存儲介質(zhì),所述至少一種非瞬態(tài)計算機存儲介質(zhì)包括:用于接收與用戶相關(guān)聯(lián)的賬戶的恢復(fù)請求的計算機代碼;用于向與所述用戶相關(guān)聯(lián)的用戶設(shè)備發(fā)送captcha質(zhì)詢的計算機代碼;用于接收對所述captcha質(zhì)詢的回答以及由從臨時主口令中導(dǎo)出的加密密鑰封裝的確認代碼的計算機代碼;用于向與所述用戶相關(guān)聯(lián)的一個或多個可信實體發(fā)送所述恢復(fù)請求的通知的計算機代碼;以及用于從所述可信實體中的一個或多個可信實體處接收對所述請求的確認的計算機代碼,所述確認包括與所述特定可信實體相關(guān)聯(lián)的恢復(fù)令牌以及經(jīng)加密的確認代碼。
在示例2中,如示例1所述的主題可以可選地包括:用于響應(yīng)于從所述一個或多個可信實體處接收到預(yù)定數(shù)量的所述恢復(fù)令牌而確定已經(jīng)達到共識狀態(tài)的計算機代碼;以及用于向所述用戶設(shè)備發(fā)送與所述一個或多個可信實體中的每個可信實體相關(guān)聯(lián)的所述恢復(fù)令牌的計算機代碼。
在示例3中,如示例2所述的主題可以可選地包括:用于向所述用戶設(shè)備發(fā)送對所述共識狀態(tài)的指示的計算機代碼。
在示例4中,如示例2所述的主題可以可選地包括:用于響應(yīng)于確定已經(jīng)達到所述共識狀態(tài)而重置所述賬戶的新主口令的計算機代碼。
在示例5中,如示例4所述的主題可以可選地包括:其中,使用所述接收到的恢復(fù)令牌重置所述新主口令。
在示例6中,如示例5所述的主題可以可選地包括:其中,使用暫時性私鑰對所述接收到的恢復(fù)令牌進行解密,并且所述經(jīng)加密的確認代碼被用作對所述恢復(fù)令牌的驗證。
在示例7中,如示例6所述的主題可以可選地包括:其中,基于組合所述經(jīng)解密的恢復(fù)令牌重置所述新主口令。
在示例8中,如示例4所述的主題可以可選地包括:其中,由所述用戶設(shè)備生成所述新主口令。
在示例9中,如示例1至8中任一項所述的主題可以可選地包括:用于從所述用戶處接收對所述一個或多個可信實體的指定的計算機代碼。
示例10是一種系統(tǒng),所述系統(tǒng)包括至少一個處理器和至少一個存儲器元件,其中,所述系統(tǒng)被配置成用于:接收與用戶相關(guān)聯(lián)的賬戶的恢復(fù)請求;向與所述用戶相關(guān)聯(lián)的用戶設(shè)備發(fā)送captcha質(zhì)詢;接收對所述captcha質(zhì)詢的回答以及由從臨時主口令中導(dǎo)出的加密密鑰封裝的確認代碼;向與所述用戶相關(guān)聯(lián)的一個或多個可信實體發(fā)送所述恢復(fù)請求的通知;以及從所述可信實體中的一個或多個可信實體處接收對所述請求的確認,所述確認包括與所述特定可信實體相關(guān)聯(lián)的恢復(fù)令牌以及經(jīng)加密的確認代碼。
在示例11中,如示例19所述的主題可以可選地包括:其中,所述系統(tǒng)被進一步配置成用于:響應(yīng)于從所述一個或多個可信實體處接收到預(yù)定數(shù)量的所述恢復(fù)令牌而確定已經(jīng)達到共識狀態(tài);以及向所述用戶設(shè)備發(fā)送與所述一個或多個可信實體中的每個可信實體相關(guān)聯(lián)的所述恢復(fù)令牌。
在示例12中,如示例11所述的主題可以可選地包括:其中,所述系統(tǒng)被進一步配置成用于向所述用戶設(shè)備發(fā)送對所述共識狀態(tài)的指示。
在示例13中,如示例12所述的主題可以可選地包括:其中,所述系統(tǒng)被進一步配置成用于響應(yīng)于確定已經(jīng)達到所述共識狀態(tài)而生成所述賬戶的新主口令。
在示例14中,如示例13所述的主題可以可選地包括:其中,使用所述接收到的恢復(fù)令牌重置所述新主口令。
在示例15中,如示例14所述的主題可以可選地包括:其中,使用暫時性私鑰對所述接收到的恢復(fù)令牌進行解密,并且所述經(jīng)加密的確認代碼被用作對所述恢復(fù)令牌的驗證。
在示例16中,如示例13所述的主題可以可選地包括:其中,由所述用戶設(shè)備生成所述新主口令。
在示例17中,如示例10至16中任一項所述的主題可以可選地包括:其中,所述系統(tǒng)被進一步配置成用于從所述用戶處接收對所述一個或多個可信實體的指定。。
示例18是一種計算機實現(xiàn)的方法,包括:接收與用戶相關(guān)聯(lián)的賬戶的恢復(fù)請求;向與所述用戶相關(guān)聯(lián)的用戶設(shè)備發(fā)送captcha質(zhì)詢;接收對所述captcha質(zhì)詢的回答以及由從臨時主口令中導(dǎo)出的加密密鑰封裝的確認代碼;向與所述用戶相關(guān)聯(lián)的一個或多個可信實體發(fā)送所述恢復(fù)請求的通知;以及從所述可信實體中的一個或多個可信實體處接收對所述請求的確認,所述確認包括與所述特定可信實體相關(guān)聯(lián)的恢復(fù)令牌以及經(jīng)加密的確認代碼。
在示例19中,如示例18所述的主題可以可選地包括:響應(yīng)于從所述一個或多個可信實體處接收到預(yù)定數(shù)量的所述恢復(fù)令牌而確定已經(jīng)達到共識狀態(tài);以及向所述用戶設(shè)備發(fā)送與所述一個或多個可信實體中的每個可信實體相關(guān)聯(lián)的所述恢復(fù)令牌。
在示例20中,如示例19所述的主題可以可選地包括:向所述用戶設(shè)備發(fā)送對所述共識狀態(tài)的指示。
在示例21中,如示例19所述的主題可以可選地包括:響應(yīng)于確定已經(jīng)達到所述共識狀態(tài)而重置所述賬戶的新主口令。
在示例22中,如示例21所述的主題可以可選地包括:其中,使用所述接收到的恢復(fù)令牌重置所述新主口令。
在示例23中,如示例22所述的主題可以可選地包括:其中,使用暫時性私鑰對所述接收到的恢復(fù)令牌進行解密,并且所述經(jīng)加密的確認代碼被用作對所述恢復(fù)令牌的驗證。
在示例24中,如示例23所述的主題可以可選地包括:其中,由所述用戶設(shè)備生成所述新主口令。
在示例25中,如示例18至24中任一項所述的主題可以可選地包括:其中,所述系統(tǒng)被進一步配置成用于從所述用戶處接收對所述一個或多個可信實體的指定。
示例26是一種用于賬戶恢復(fù)的設(shè)備,所述設(shè)備包括:用于接收與用戶相關(guān)聯(lián)的賬戶的恢復(fù)請求的裝置;用于向與所述用戶相關(guān)聯(lián)的用戶設(shè)備發(fā)送captcha質(zhì)詢的裝置;用于接收對所述captcha質(zhì)詢的回答以及由從臨時主口令中導(dǎo)出的加密密鑰封裝的確認代碼的裝置;用于向與所述用戶相關(guān)聯(lián)的一個或多個可信實體發(fā)送所述恢復(fù)請求的通知的裝置;以及用于從所述可信實體中的一個或多個可信實體處接收對所述請求的確認的裝置,所述確認包括與所述特定可信實體相關(guān)聯(lián)的恢復(fù)令牌以及經(jīng)加密的確認代碼。
在示例27中,如示例26所述的主題可以可選地包括:用于響應(yīng)于從所述一個或多個可信實體處接收到預(yù)定數(shù)量的所述恢復(fù)令牌而確定已經(jīng)達到共識狀態(tài)的裝置;以及用于向所述用戶設(shè)備發(fā)送與所述一個或多個可信實體中的每個可信實體相關(guān)聯(lián)的所述恢復(fù)令牌的裝置。
在示例28中,如示例27所述的主題可以可選地包括:用于響應(yīng)于確定已經(jīng)達到所述共識狀態(tài)而生成所述賬戶的新主口令的裝置。
示例29是一種設(shè)備,包括用于執(zhí)行如任一前述示例中所述的方法的裝置。
示例30是一種包括機器可讀指令的機器可讀存儲器,所述機器可讀指令當被執(zhí)行時用于實施如任一前述示例所描述的方法或?qū)崿F(xiàn)如任一前述示例所描述的裝置。