用于遷移密鑰的方法和裝置的制造方法
【專利摘要】一種目的數(shù)據處理系統(tǒng)(DPS)從源DPS接收密鑰遷移塊。該密鑰遷移塊包括主密鑰的加密版本。該目的DPS接收標識(a)認證策略和(b)上下文策略的用戶輸入。該目的DPS基于該所標識的認證策略從該用戶處收集認證數(shù)據。該目的DPS基于該所標識的上下文策略收集上下文數(shù)據。該目的DPS使用該認證數(shù)據和該上下文數(shù)據來解密該密鑰遷移塊。該認證數(shù)據可以包括多種類型的認證數(shù)據,可能包括生物特征數(shù)據。該用戶還可以輸入索引,并且該目的DPS可以使用該索引從隨機數(shù)服務器檢索數(shù)字。該目的DPS可以使用該數(shù)字來解密該密鑰遷移塊。對其他實施例進行了描述并要求保護。
【專利說明】
用于遷移密鑰的方法和裝置
技術領域
[0001] 在此所描述的實施例總體上涉及數(shù)據處理,并且具體地涉及用于迀移密鑰的方法 和裝置。
【背景技術】
[0002] 數(shù)字密鑰對于計算機安全性的許多不同的方面是至關重要的。例如,為了提供計 算機之間的安全通信,密鑰可以用于對通信進行加密。此外,為了提供對消息的認證,密鑰 可被用于在消息從發(fā)送者發(fā)送到接收者之前對消息進行數(shù)字簽名。
[0003] 為了有效的安全性,必須保持一些類型的密鑰是私密的。例如,公鑰加密涉及一對 密鑰,其中這些密鑰中的一個是公開的并且另一個是私密的。另外,有時需要將私鑰從一個 設備復制或迀移到另一個設備。例如,如果舊個人計算機(PC)的用戶得到新的PC,則用戶可 能需要將一個或多個私鑰從舊PC迀移到新PC。
[0004] 本公開描述了用于迀移密鑰的方法和裝置。
【附圖說明】
[0005] 圖1是具有用于迀移密鑰的特征的示例性分布式數(shù)據處理系統(tǒng)的框圖。
[0006] 圖2是更詳細地展示圖1的源數(shù)據處理系統(tǒng)的框圖。
[0007] 圖3是用于在為密鑰準備密鑰迀移塊之前認證該密鑰的所有者的示例性過程的流 程圖。
[0008] 圖4是用于準備密鑰迀移塊的示例性過程的流程圖。
[0009] 圖5A和5B呈現(xiàn)了用于迀移密鑰的示例性過程的流程圖。 具體實施方案
[0010] 為了本公開的目的,要迀移的密鑰可以被稱為主密鑰。為了將主密鑰從一個設備 迀移到另一個設備,主密鑰的所有者可以將主密鑰保存在文件中,并且該文件隨后可被從 一個設備復制到另一個設備。為了本公開的目的,包含要迀移的主密鑰的文件可以被稱為 檔案文件或密鑰迀移塊。
[0011] 各種公鑰加密標準(PKCS)包括關于密鑰的某些教導。例如,被稱為PKCS#12的標準 描述了可被用來存儲密鑰的文件格式。根據PKCS#12,使用密鑰加密密鑰(KEK)對主密鑰進 行加密,并且然后將主密鑰的該加密版本存儲在檔案文件中。檔案文件也可以被稱為PKCS# 12塊。
[0012] 根據PKCS# 12,使用密鑰導出函數(shù)(KDF)導出或生成KEK。具體地,根據PCKS# 12,用 戶向KDF提供個人標識碼(PIN),并且KDF使用該PIN碼生成KEK。用戶應然后保持PIN為秘密 的,只與期望的目標實體共享它。目標實體可以通過將PIN輸入到PKCS#12算法來獲得明文 KEK。然后目標實體可以使用KEK從PKCS#12塊解密主密鑰。
[0013] 根據PKCS#12,知道或猜出PIN的任何人可以使用PIN與KDF來生成相同的KEK。因 此,PKCS#12標準受到蠻力攻擊,包括對PIN的字典攻擊。例如,攻擊者可以進行離線字典攻 擊以破解PKCS# 12。當PKCS# 12塊公開可用(例如,在可以被遠程地訪問的數(shù)據存儲設備上) 時,這種風險特別嚴重。為了本公開的目的,可以被遠程地訪問的數(shù)據存儲設備可以被統(tǒng)稱 為"云"。目前提供如01?0?8(?、60(?1^0(^3、31^01?1¥£、1〇1)1]0和其他等名稱或商標的云存儲 服務。云存儲服務可以是傳統(tǒng)的密鑰托管和密鑰迀移服務的有吸引力的替代方案。然而,典 型的云存儲服務缺乏實現(xiàn)穩(wěn)健的密鑰迀移所必要的安全性和訪問控制語義。
[0014] 此外,如果PKCS#12塊在云上公開可用,則攻擊者可能會容易地獲得塊的副本來進 行離線字典攻擊。PKCS#12標準描述了一種將密鑰封裝成可傳輸?shù)母袷降姆椒?,但該標準沒 有定義用于管理迀移或訪問的可靠安全的方法。有關PKCS#12的更多信息可以在互聯(lián)網上 找到:en. wikipedia. org/wiki/PKCS_l 2 〇
[0015] 本公開描述了用于更安全地迀移密鑰的方法和裝置。如下面所解釋的,為了說明 的目的,本公開描述了一個或多個示例性實施例。然而,本教導不限于這些特定實施例。
[0016] 本公開描述了一種用于密鑰迀移的方法,該方法是自我導向的,因為密鑰的所有 者具有指定和執(zhí)行迀移過程的更大的能力。在至少一個實施例中,在沒有迀移機構或任何 其他可信或受過訓練的第三方的幫助的情況下執(zhí)行該方法。在另一個實施例中,通過一個 或多個可信第三方和一個或多個受過訓練的第三方而不是通過既可信又受過訓練的第三 方來執(zhí)行該方法。例如,該方法可以使用數(shù)據服務器,該服務器被認為是受過訓練的,因為 它知道密鑰迀移塊的源和目的,但并不被認為是可信的,因為它不知道解開密鑰迀移塊以 獲得經加密密鑰所需的秘密。并且該方法可以使用隨機數(shù)服務器、認證策略服務器和上下 文策略服務器,這些服務器被認為是可信的,因為每個服務器都知道獲得經加密密鑰所需 的秘密中的某個秘密。然而,該方法可能需要隨機數(shù)服務器、認證策略服務器、上下文策略 服務器是分開的且不同的,這樣,攻擊者為了完成攻擊將需要損害所有三個服務器。
[0017] -個實施例針對密鑰導出使用若干附加組件,同時分離這些方法用于包括或獲得 這些組件,從而應用被稱為職責分離的安全性原則。例如,多個服務(其可以在用戶控制下 或外包給可信服務提供者)可以各自貢獻密鑰導出所需的材料的不同的部分。只有當正確 地呈現(xiàn)所有的材料時密鑰迀移才將成功。攻擊者因此在能夠擊敗安全性之前必須損害為密 鑰導出貢獻輸入的所有分級服務。此外,各個分級服務提供者發(fā)布他們的輸入的端點可以 使用可信執(zhí)行環(huán)境(TEE)技術(如由英特爾公司(Intel Corporation)開發(fā)的軟件防護擴展 (SGX)和/或由英特爾公司開發(fā)的聚合安全性引擎(CSE))進行硬化。另外或替代地,端點可 以使用通過安謀控股公司(ARM Holdings PLC)所提供的TRUSTZ0NE商標的安全性擴展、通 過虛擬化技術和/或通過其他硬化技術保護的環(huán)境。CSE是嵌入在片上系統(tǒng)(SoC)中的硬件 安全性引擎,該引擎從主CPU和存儲器隔離執(zhí)行。有關SGX的更多信息可以在互聯(lián)網上找到: software.intel.com/en-us/blogs/2013/09/26/protecting-application_secrets-with-intel-sgx 〇
[0018] 如下面更詳細描述的,本公開描述了一種用于用戶導向的密鑰迀移的方法,該方 法涉及控制迀移的終止點上的訪問的豐富的上下文敏感策略,其中可以使用云存儲服務來 促進迀移。
[0019] 在至少一個實施例中,該方法涉及迀移的源端點和目標端點兩者上的TEE,并且該 方法涉及結合認證、授權和上下文輸入的使用的KDF。成功的迀移需要在目標端點上成功地 重新導出KEK,以便使被包裹的主密鑰被解密并且因此可供使用。
[0020] 將密鑰迀移塊存儲在云服務上可能會將塊暴露給可能已經損害云服務的攻擊者 或具有維護云服務的授權并且因此可以訪問訂戶內容的內部人員。云內容因此受到蠻力攻 擊,包括已知密文攻擊、已知明文攻擊、字典攻擊和中間人攻擊。然而,根據本公開,在至少 一個實施例中,不同的KDF輸入由不同的實體管理。因此,沒有單個的實體保持重新導出KEK 所必要的所有輸入。因此,為了成功侵入在運輸過程中的迀移塊,攻擊者將需要成功地損害 提供輸入的所有實體。
[0021] 圖1是根據一個實施例的具有用于迀移密鑰的特征的示例性分布式數(shù)據處理系統(tǒng) 10的框圖。在圖1的實施例中,分布式數(shù)據處理系統(tǒng)10包括源數(shù)據處理系統(tǒng)(DPS)20和目的 DPS 30。如圖所示,源DPS 20和目的DPS 30被配置成用于提供相應的TEE 22和TEE 32。如下 面更詳細描述的,分布式數(shù)據處理系統(tǒng)10還包括認證策略服務器40、隨機數(shù)服務器70、上下 文策略服務器60以及數(shù)據服務器50。在圖1的實施例中,分布式數(shù)據處理系統(tǒng)10內的各種處 理系統(tǒng)可以經由廣域網(WAN) 12(如因特網)彼此通信。在一個實施例中,認證策略服務器 40、上下文策略服務器60和隨機數(shù)服務器70是可信的,而數(shù)據服務器50是不可信的。類似 地,TEE 22和TEE 32是可信的,而源DPS 20和目的DPS 30還可以包括是不可信的主機軟件。 為了本公開的目的,如果項目具有或"知道"秘密信息,則其可以被認為是可信的,其中秘密 信息是解密密鑰迀移塊所需的信息。相比之下,如果項目不能訪問任何秘密信息,則其可以 被認為是不可彳目的。
[0022] 如圖1中所示,源DPS 20具有存儲在TEE 22中的主密鑰24。在一個實施例中,主密 鑰24是私鑰。此外,如下面更詳細描述的,源DPS 20在TEE 22內執(zhí)行KDF 26以生成KEK 28, 并且源DPS 20然后使用KEK 28生成主密鑰24的密鑰迀移塊52。然后源DPS 20可以將密鑰迀 移塊52復制到數(shù)據服務器50。如下面更詳細描述的,用戶然后可以使用目的DPS 30從數(shù)據 服務器50檢索密鑰迀移塊52;并且如果用戶可以提供和/或獲得所有的必要的輸入,用戶就 可以從TEE 32內的密鑰迀移塊52提取主密鑰24。
[0023]圖2是更詳細地展示源DPS 20的框圖。在圖2的實施例中,源DPS 20包括與處理器 80進行通信的隨機存取存儲器(RAM)86、硬盤驅動(HDD)88、網絡端口 82、可信平臺模塊 (TPM)84、一個或多個生物特征傳感器110以及一個或多個上下文傳感器112。另外或替代 地,源DPS 20可以包括其他類型的存儲設備(例如,快閃存儲器)、其他輸入/輸出(I/O)端 口、多個處理器和/或其他組件。目的DPS 30的組成可以與源DPS 20相同或相似。認證策略 服務器40、數(shù)據服務器50、上下文策略服務器60以及隨機數(shù)服務器70還可以包括像那些在 源DPS 20中的組件和/或任何其他合適的組件。
[0024] 如虛線框所示,RAM 86中的存儲的一部分和HDD 88中的存儲的一部分在TEE 22內 被保護。在TEE 32外執(zhí)行的軟件不能訪問由TEE 22保護的任何存儲區(qū)域。同樣,TEE 32可以 保護目的DPS 30中的RAM和HDD(和/或其他存儲設備)中的存儲區(qū)域的多個部分。并且如以 下所示,不允許軟件在TEE 22內執(zhí)行,除非該軟件已首先被驗證是安全的。
[0025]圖3是用于在準備主密鑰的密鑰迀移塊之前認證該主密鑰的所有者的示例性過程 的流程圖。為了討論的目的,主密鑰的所有者可以被稱為愛麗絲(Alice),并且目標(例如, 愛麗絲想讓其接收主密鑰的人)可被稱為鮑勃(Bob)。然而,在某些情況下(例如,如果愛麗 絲已經獲得新的PC來替換舊PC,并且她正在將密鑰從舊PC迀移到新PC,則愛麗絲也可以充 當鮑勃。
[0026]綜上所述,愛麗絲標識她希望迀移到鮑勃的設備的密鑰。密鑰在愛麗絲相信不被 主機惡意軟件損害的源TEE中被保護。愛麗絲使用她確定的適當強的多因素認證策略向源 TEE進行認證。上下文傳感器可以用于根據生物特征模板收集她的身份的生物特征數(shù)據。她 的可信認證模板提供者(其可以是她已經預訂的可信服務,)將她的身份的她的參考模板提 供給TEE,從而允許TEE向TEE認證愛麗絲。
[0027] 具體地,圖3的過程可以在源DPS 20中操作,在框110處開始,其中源DPS 20的用戶 (例如,愛麗絲)選擇要迀移的私鑰。例如,用戶可以選擇要迀移的主密鑰24。如在圖1和圖2 中所示,主密鑰24由TEE 22在源DPS 20中保護。由于TEE 22的性質,主密鑰24的所有者可以 相信TEE 22不被主機惡意軟件損害。
[0028]例如,TEE 22(和TEE 32)可以提供其中代碼在被從平臺的其余部分隔離的CPU核 心上執(zhí)行并且數(shù)據被存儲在被從平臺的其余部分隔離的儲存器中的TEE環(huán)境。該TEE環(huán)境也 可以具有隔離的信令(例如,中斷)和可信1/〇(例如,使用除了通過TEE不能被訪問的專用1/ 0設備)。此外,在至少一個實施例中,對要在TEE中執(zhí)行的軟件(包括固件)進行簽名,并且被 允許執(zhí)行之前該簽名被驗證。另外,TEE環(huán)境也可以對代碼和數(shù)據進行加密和解密。例如,在 將數(shù)據存儲在可以從該TEE外訪問的設備上之前,該TEE可以對該數(shù)據進行加密。
[0029] 如圖3的框112處所示,用戶還可以針對源DPS 20選擇所有者認證策略用來驗證當 前用戶是主密鑰的所有者。在一個實施例中,TEE 22從認證策略服務器40檢索多種認證策 略定義42,并且然后TEE 22顯示具有這些認證策略的描述或概要的列表以及相應的索引。 然后用戶選擇這些策略中的一個策略。在一個實施例中,策略中的每個策略需要多個認證 因素被驗證以將用戶認證為所有者。例如,TEE 22可以呈現(xiàn)包括以下各項的策略列表:
[0030] ?需要指紋和聲紋的認證的第一個策略;
[0031] ?需要指紋和視網膜圖像的認證的第二個策略;以及
[0032] ?需要聲紋和視網膜圖像的認證的第三個策略。
[0033]認證策略可以包括任何合適的類型的認證數(shù)據和因素,包括但不限于手指靜脈、 手掌靜脈、虹膜掃描、心電圖(ECG)讀數(shù)、智能卡令牌、一次性密碼令牌、電子圍欄接近、用戶 存在感測等。
[0034]為了本公開的目的,生物特征模板是針對特定人的特定類型的生物特征測量(例 如,指紋)的一組生物特征數(shù)據。為了認證一個人是這個人所聲稱的那個人,執(zhí)行新的生物 特征測量以生成新的生物特征模板,并且然后將新的模板與一個或多個參考模板進行比 較。
[0035]如框114處所示,一旦用戶已經選擇認證策略,則TEE 22根據所選擇的策略的需要 從認證策略服務器40獲得主密鑰24的所有者的一個或多個參考生物特征模板。在一個實施 例中,認證策略服務器40提供參考模板44以及認證策略定義42。因此,認證策略服務器40也 可以被稱為認證模板服務器。在其他實施例中,可以使用單獨的認證策略服務器和認證模 板服務器。在圖1的實施例中,認證策略服務器40可以包括具有許多不同的人的生物特征認 證數(shù)據的參考模板,其中包括主密鑰24的所有者的一個或多個參考模板44,如圖1中所示。 參考模板44可以包括主密鑰24的所有者的指紋、聲紋和視網膜圖像的生物特征數(shù)據。在替 代實施例中,一個人的每個不同類型的生物特征數(shù)據可以存儲在不同的模板中。
[0036]如框116處所示,TEE 22然后從當前用戶獲得生物特征數(shù)據。例如,TEE22可以從當 前用戶掃描指紋、掃描視網膜和/或記錄聲紋。如框120處所示,TEE 22然后將來自當前用戶 的生物特征數(shù)據與參考模板44中的生物特征數(shù)據進行比較,以判定當前用戶是否是所有 者。
[0037]因此,用戶使用他或她確定的適當強的多因素認證策略向TEE 22認證。如果生物 特征數(shù)據不匹配,則TEE 22可以顯示錯誤消息,如框130處所示,并且然后過程可以結束。然 而,如果生物特征數(shù)據相匹配,則TEE 22可以前進到準備密鑰迀移塊52,如框140處所示和 下面更詳細描述的。
[0038]圖4是用于準備密鑰迀移塊52的示例性過程的流程圖。在一個實施例中,源DPS 20 使用圖4的過程來實現(xiàn)圖3的框140。
[0039] 愛麗絲希望密鑰迀移塊24受到保護以免受蠻力密碼攻擊。因此,如框210處所示, 圖4的過程從愛麗絲使用TEE 22從隨機數(shù)服務器70獲得隨機數(shù)列表來開始。替代地,愛麗絲 可以使用TEE中的隨機數(shù)發(fā)生器自己生成這樣的列表,并且然后與隨機數(shù)服務器70共享該 列表。在兩種情況下,她并沒有告訴隨機數(shù)服務器70她將在KDF中使用來自列表的哪個數(shù)。 這是為了保證隨機數(shù)服務器70處的員工或其他內部人員無法輕松地了解愛麗絲的選擇。 [0040]如框212處所示,TEE 22然后使用可信I/O技術(如所發(fā)布的名稱或商標為利用受 保護交易顯示的INTEL IDENTITY PROTECTION TECHN0L0GY(英特爾身份保護技術)(INTEL IPT))的技術)向愛麗絲呈現(xiàn)列表。有關利用受保護交易顯示的INTEL IPT的更多詳細信息 可以在互耳關網上找至丨J : www ? intel .com/content/www/us/en/architecture-and-technology/identity-protection/protected-transation-display.html〇$n_|l214^j^f 示,愛麗絲然后可以使用隨機PIN鍵盤顯示器從列表中選擇隨機數(shù)中的一個隨機數(shù),其中該 PIN對應于列表中的行數(shù)。例如,PIN值00001可以表示列表中的第一個條目,并且PIN值 01234可以表示第1234個條目。標識所選擇的隨機數(shù)的PIN也可以被稱為隨機數(shù)PIN或RPIN。 愛麗絲應該記住RPIN值(即,她選擇的行數(shù)),因為最終會需要這個數(shù)字從密鑰迀移塊52提 取主密鑰24。
[0041 ]另外或替代地,愛麗絲可以將一個或多個位附加到RPIN(和/或其他PIN中的任何 PIN)。密鑰迀移軟件可以使用這些位作為到KDF 26的直接輸入,以進一步防止內部人員攻 擊。類似地,當鮑勃在目的DPS 30解開主密鑰24時,鮑勃可能需要附加與愛麗絲所附加的相 同的值,這樣,目的DPS 30處的密鑰迀移軟件也可以使用這些位作為到KDF 26的直接輸入。 [0042]如框220處所示,愛麗絲然后輸入或選擇標識符以標識所期望的目標(即,應該能 夠從密鑰迀移塊52提取主密鑰24的人或實體)。例如,愛麗絲可以將所期望的目標標識為 "IdProvider/鮑勃",其中"IdProvider"是標識特定域的字符串,并且"鮑勃"是該域內的目 標的用戶id。用于在不同的目標之間進行區(qū)分的任何值可用于該域,或如果無需用戶id的 消歧,則可以省略該域。
[0043] 如框222處所示,愛麗絲也可以從認證策略服務器40獲得認證策略列表。該列表可 以包括多種認證策略定義42連同每個認證策略的描述或概要以及相應的索引。在一個實施 例中,認證策略服務器40向TEE 22提供多因素認證(MFA)策略列表。該列表可以包括多個 行,其中每個行具有(a)行數(shù)或索引(例如,"00001")、(b)特定認證策略的文本描述或概要 (例如,"認證英特爾芯片組版本1.0、指紋、人臉、英特爾3D相機vl")以及(c)該策略的完整 表達。例如,示例性認證策略和示例性上下文策略可以表達如下: "device": "ALICE-M0BL2", "sp": " IT MFA Policy Server Pub Key "dciaullMFAPolicics":[ { "environment": "Hast", "aetion"; { "OS logon":[ rieven "actionResulls":[ "UscrCrcdcnlialsRclcased " :T,domain password^, ]//actionResults 1, //level rievel' "2", "actionResults":[ "UscrCrcdcnlialsRclcased M : "domain password". "DcviccCrcdcntialsRcIcased": ^Asymmetric"
[0044] ]//actionResults .//level ]|, //action "MI、aSer:[ f'levd":T\ "environment": "SecurityEngine'', ,,faciorSctn:[ {uenvironment":"SccurhyEngine", "factors":[ I'MaclorTypc": MNFC'\ "cont^nuous5,: fake, 'MactorEnv": "SecurityEngine55, ufaclorEnlailmenf,: "Intel chipset rcl LO59} ]| //Taclors ]//faclorS cl { ."level,,: "2", "environment": "SccurkyEnginc' "faclorSd":[ {"environmenr: "SccurilyEnginc" "factors":[ {"faciorTypc": "imgcrprint", ucontmuous5^: false, ccfactorEnvM: ,'SccurcElcmerU,\ "ractorErUailnicm": "Authcntcc v-1"} ]| vVTactors li -logical OR- {"environment": ?vSecurhyEngincf', 'Taciors":[ 「TtLck"Type": "PTD","a)iuiriiK)us": false, "fhctorEnv": ''SecurityEngine' 1,TactorEnlailmcnl,': "Into! DAL v9'^ 5 S"l、actoi.Type": "3DF£tce'"continuous": true, [0045] "facto丨.Env": ''Host", 'MaclorEnlailmcnf: camcia v 1 ^ ]}//factors ]// factorSet } ]//MfaScl }> { "environment": '物st", "action":丨"V!)N":.[ etc....]} } ]//dc (au 11M (aPo 1 i c i cs "dclaultronlcxiPolicics":[ {"curUaxlSel":[ henvironmcnt'VHost", "context": pa如⑶Type'V'userPresence", "trigger": "oriNcnPa'scnt", "nolil'y":[ "OS Login", "VPN" J, //notify K //trigger "faclorSd":[ {"environmem": "SccuritylZngine", "factor": i''rack)rType'': "irProximity,',"contimicms'': true, "1'aclorEnv": ,lSecurkyEngine' "1'actorEnUiilEnem": "Intel chipset rel 1.0"I, "^aclor,,: !',laclorTypeM: ,,KcyhoardAclivilyt,ntl'conlinuous,'': lalse, "(aclorEnv": 'T)S,\ "1'actorEntailment": "Keyboard Vendor',} j ] //faclorScl '[//context -conlexP: {"contextTypc"廣geoFence'"lbnccDd": "OID-x",
[0046] "trigger": "onEnlcr", "notify":[ "OS Login' " VPN' "FDE' IdP", //etc". ],//notify "idggcr": !,onExir\ "nmify":[ "OS Login' ".WN,, 叩DE' "IdP' //etc",. 3, //notify "factorSct":[ '"eiwironment": "SecurityEngine" "factor": .「factorType": "WiFiLocalion"廣continuous',: true, tulaclorEnv": "SecurityEngine1',
[0047] *TactorEntanmeiU'': "Intel Sensor Hub 1 )//context J| //contcxtSet ]VdcfaultConlcxlPolicics
[0048] 如框224和框226處所示,TEE 22可以使用可信輸出技術呈現(xiàn)列表(或者僅僅來自 列表的索引和文本概要),并且然后愛麗絲可以從列表中選擇所期望的策略來用于認證目 標。例如,愛麗絲可以使用隨機PIN鍵盤顯示器從列表中選擇所期望的認證策略,其中該PIN 與列表中的索引或行號相匹配。標識所選擇的認證策略的PIN也可以被稱為認證策略PIN或 APIN。替代地,對于針對目標的認證策略,TEE 22可以簡單地使用TEE 22用于認證愛麗絲的 相同的認證策略(和相應的APIN)。在這兩種情況下,愛麗絲應該記住索引或APIN值,因為最 終也會需要這個數(shù)字從密鑰迀移塊52提取主密鑰24。
[0049]如框228處所示,然后TEE 22可以使用針對目標的所選擇的認證策略和所指定的 標識符從認證策略服務器40獲得目標的一個或多個參考模板。然后TEE 22可以對參考模板 進行散列。為了尊重目標的隱私策略,TEE 22可以防止模板在TEE 22外暴露。另外,TEE 22 可以對所選擇的認證策略的文本概要和/或完整表達進行散列。
[0050] 如框230處所示,然后TEE 22可以從上下文策略服務器60獲得多個上下文策略定 義62。每個上下文策略定義62可以規(guī)定某些屬性或元素作為在其內密鑰迀移塊52將被解密 的上下文的必要部分。這些屬性可以包括但不限于位置(例如,地理圍欄坐標或邊界)、一天 中的時間、目標TEE軟件的版本等。如框232和框234處所示,TEE 22可以向愛麗絲呈現(xiàn)上下 文策略列表(例如,顯示索引和每個上下文策略的文本描述或概要),愛麗絲可以從列表中 選擇所期望的上下文策略。TEE 22可以使用如上面所描述的那些技術(例如,可信1/0技術) 等技術來呈現(xiàn)列表和從愛麗絲接收輸入(例如,用于標識所選擇的行或索引的PIN)。標識所 選擇的上下文策略的PIN也可以被稱為上下文策略PIN或CPIN。
[0051] 替代地,愛麗絲可以使用策略定義語言(如可擴展訪問控制標記語言(XACML))手 動設計指定這些必需的元素的上下文策略,并且然后她可以將該策略上傳到上下文策略服 務器60。
[0052] 除了指定哪些上下文元素將被考慮,愛麗絲還可以指定這些元素中的某些元素或 所有元素的必要的值。例如,除了指定時間和位置是必需的上下文的一部分,愛麗絲還可以 指定哪些特定時間是可接受的以及哪些特定位置。實際值(參考值)可以與策略一起包括, 或者使用遵循策略的結構的單獨的文件。
[0053]然后TEE 22可以對所選擇的上下文策略的文本概要和/或完整表達進行散列。
[0054] 如框240處所示,TEE 22然后建立KDF 26。在一個實施例中,TEE 22將KDF 26創(chuàng)建 為包括以上元素參考中的許多或全部,如:
[0055] ?愛麗絲所選擇的隨機數(shù)(例如,"Randl234");
[0056] ?相應的RPIN值;
[0057] ?所期望的目標的指定的標識符(例如,"IdProvider/鮑勃");
[0058] ? APIN;
[0059] ?所選擇的認證策略的文本描述的散列值(例如,"AuthPolicy")
[0060] ?目標的每個參考模板的散列值(例如,"RefTplt_Bob");
[0061] .CPIN;以及
[0062] ?所選擇的上下文策略的文本描述的散列值(例如,"ContextPolicy")。
[0063] 如框242處所示,然后TEE 22可以使用KDF 26生成KEK 28。
[0064]因此,在一個實施例中,KDF可以描述如下:
[0065] KEK=KDF(Randl234,RPIN, "IdProvider/Bob",APIN,Hash(AuthPolicy),
[0066] Hash(RefTplt_B°b),CPIN,Hash(ContextPolicy))
[0067] 替代地,KDF可以描述如下: rand = Fetch j'andom jmmber_server(RPlN), context = [auth_yalue = Fetch aulhenlica!ion_templa(e_server(APIN),
[0068] conlexl_value = Fetch _conlexl.jy〇licy_server(CP IN)/. wmp_key = KDF(m:Kd, iabel, context, r:..)
[0069] 如框244處所示,然后愛麗絲可以使用KEK 28創(chuàng)建密鑰迀移塊52。換句話說,愛麗 絲可以使用KEK 28來包裹主密鑰24。例如,密鑰迀移塊52可以是PKCS#12塊。如框250處所 示,然后愛麗絲可以將密鑰迀移塊52復制到數(shù)據服務器50。數(shù)據服務器50可以提供云存儲 服務,并且密鑰迀移塊52可以駐留在數(shù)據服務器50上,直到愛麗絲完成到鮑勃的迀移需要 的時間。一旦迀移已完成,數(shù)據服務器50可以刪除密鑰迀移塊52。可替換地,除了復制/迀移 服務,數(shù)據服務器50還可以封存密鑰迀移塊52-段時間,作為備份/恢復服務。
[0070] 如框252處所示,愛麗絲可以向鮑勃發(fā)送數(shù)據,以為鮑勃配備解開主密鑰24將需要 的信息。例如,愛麗絲可以向鮑勃提供RPIN、APIN和CPIN。其他這樣的數(shù)據項目可以包括由 愛麗絲用作鮑勃的標識符的字符串、所必需的認證因素的描述和任何所必需的上下文條件 等。愛麗絲可以使用任何合適的技術或技術的組合將必要的信息發(fā)送給鮑勃。例如,愛麗絲 可以親自與鮑勃見面以告訴他信息的一個或多個項目(例如,RPIN),和/或愛麗絲可以通過 電子郵件、經由通用串行總線(USB)設備、在一張紙上書寫等將信息的一個或多個項發(fā)送給 鮑勃。
[0071] 準備迀移私鑰24的過程然后可以結束。
[0072]根據一個實施例,KDF 26的第一個參數(shù)是隨機數(shù)。根據國家標準與技術研究院 (NIST)特別出版物800-108 2009年10月Lily Chen的"使用偽隨機函數(shù)的密鑰導出的建議 (Recommendation for Key Derivation Using Pseudorandom Functions)''( "SP800-108")中所描述的慣例,此值也可以被認為是密鑰導出密鑰(KDK) IDF 26的后續(xù)參數(shù)可以 連接在一起并且基本實現(xiàn)為SP800-108中所描述的偽隨機函數(shù)(PRF)的"標簽"參數(shù)的擴展。 KDF 26也可以使用來自SP800-108的其他參數(shù)。如下面更詳細描述的,目標可以使用RPIN、 APIN和CPIN參數(shù)來查找實際值以包括在用來解開私鑰24的KDF中。替代地,可以在根據 SP800-108的PRF中使用所查找的值,其中KDF使用該PRF。這些RPIN、APIN和CPIN參數(shù)被包括 在KDF定義中來顯示什么值需要從愛麗絲被傳送給鮑勃并且然后提供給構建實際PRF的函 數(shù)。
[0073] 在上面所描述的操作中,TEE 22打開與隨機數(shù)服務器70、認證策略服務器40以及 上下文策略服務器60中的每一個的會話以獲得通過RPIN、APIN和CPIN作為索引所標識的元 素。然后這些元素被包括在KDF 26的輸入參數(shù)中。PIN值也可以被包括在KDF中以確保鮑勃 從愛麗絲獲得關于迀移交易的信息并且鮑勃的TEE使用與愛麗絲相同的服務器。KDF 26可 以包括鮑勃的身份的參考模板以斷言僅可以使用特定模板匹配。換句話說,愛麗絲可以選 擇(例如)在2012年1月2日下午1:15收集的參考指紋。并且然后由目標提供的指紋必須與該 特定參考指紋相匹配。KDF 26可以包括CPIN和上下文策略的散列以指定可以在其中解開主 密鑰24的上下文環(huán)境。
[0074]因此,根據本公開,TEE可以通過使用PIN和用于從潛在KDK列表中選擇KDK的算法 或服務來選擇用作PRF參數(shù)的KDK。這種方法的加密價值在于隨機數(shù)服務器或隨機數(shù)提供者 (RNP)可以生成非常大的隨機數(shù)(例如,512個字節(jié)或更多字節(jié))列表。這可以確保KDK中的大 量的熵。它也允許使用一次一密加密,其中隨機數(shù)或KDK比消息更大。PIN是到列表中的索引 值。因此列表的大小可以是小的(相對于KDK的大?。⑶襊IN可以更容易記住和在個人之 間傳輸。在不涉及其他策略要求的實施例中,KDF參數(shù)(和相關聯(lián)的操作)可以被限制到RPIN 或RPIN和隨機數(shù)本身,并且這樣的實施例可以足以確保對密鑰迀移動作的強有力的保護。 [0075]圖5A和5B呈現(xiàn)了用于迀移主密鑰24的示例性過程的流程圖。如下面更詳細描述 的,鮑勃的TEE通過(a)根據需要使用隨機數(shù)服務器70、認證策略服務器40和上下文策略服 務器60重新組裝KDF輸入、(b)應用KDF函數(shù)以重現(xiàn)KEK 28以及(c)使用KEK 28解開密鑰迀移 塊52來完成迀移。
[0076]圖5A的過程在愛麗絲已經將密鑰迀移塊52復制到數(shù)據服務器50之后開始。然后, 如框310處所示,鮑勃從愛麗絲接收所需的迀移參數(shù)(例如,1^預、八?預工?預、目標標識符 等)。此外,如框312處所示,TEE 32從數(shù)據服務器50獲得密鑰迀移塊52。
[0077] 如框314處所示,鮑勃然后使用可信輸入通道將RPIN、APIN和CPIN值輸入到TEE 32。例如,TEE 32可以使用可信I/O技術來提示鮑勃各種輸入參數(shù)。如框316處所示,鮑勃也 可以將被愛麗絲用于標識鮑勃的標識符輸入到TEE 32中。
[0078] 如框320、框322和框334處所示,TEE 32然后使用RPIN、APIN和CPIN從隨機數(shù)服務 器70、認證策略服務器40和上下文策略服務器60檢索正確的隨機數(shù)、認證策略定義42和上 下文策略定義62。換句話說,鮑勃打開與每個所需服務器的會話來接收查詢結果(使用 RPIN、APIN、CPIN作為相應的索引)。另外,如框326處所示,TEE 32可以從認證策略服務器40 檢索指定的認證策略所需要的任何認證模板。
[0079] 如框330處所示,TEE 32然后使用目的DPS 30的上下文傳感器獲得當前上下文的 數(shù)據。如框332處所示,TEE 32然后使用目的DPS 30的生物特征傳感器從當前用戶獲得生物 特征數(shù)據。替代地,如果認證策略需要或允許,TEE 32可以使用較早收集并且然后本地存儲 的參考模板將目的DPS 30認證為屬于鮑勃。
[0080]如框340處所示,TEE 32然后判定(a)來自當前用戶的生物特征數(shù)據是否與從認證 策略服務器40檢索的認證模板相匹配和(b)當前上下文的數(shù)據是否滿足從上下文策略服務 器60檢索的上下文策略定義62中所定義的上下文要求。如框342處所示,如果生物特征數(shù)據 不匹配和/或如果當前上下文不滿足上下文要求,則TEE 32生成錯誤消息,并且過程結束, TEE 32沒有解開主密鑰24。
[0081] 然而,如框360處所示,如果生物特征與上下文與要求相匹配,則TEE 32然后根據 愛麗絲先前所選擇的選項基于在目的DPS 30處要求的參數(shù)創(chuàng)建KDF。例如,TEE 32可以生成 使用包括以下各項的參數(shù)的KDF:由鮑勃輸入的RPIN、CPIN和APIN、來自隨機數(shù)服務器70的 相應的隨機數(shù)、來自認證策略服務器40和上下文策略服務器60的相應的認證策略和上下文 策略、目的DPS 30的當前上下文數(shù)據、特定認證參考模板以及來自目的DPS 30的當前用戶 的生物特征數(shù)據。因此,在一個實施例中或在一種情況下,TEE 32生成具有包括一個或多個 上下文策略和一個或多個實際上下文值(例如要求迀移必須從相同的位置開始和結束的策 略和標識設備的當前地理坐標的實際上下文值)的參數(shù)的KDF。所采樣的傳感器值可以被包 括在內,因為它們在起點的時間和完成的時間兩者是已知的。在圖1的實施例中,TEE 32生 成與TEE 22中的KDF 26相匹配的KDF 26。
[0082]在不同的實施例中或在不同的情況下,TEE可以生成具有不同組參數(shù)的KDF。例如, 所選擇的上下文策略定義可能要求目的設備在午夜前完成迀移,并且當前上下文數(shù)據可能 指示當前時間為晚上11:30。因此TEE可以斷定當前上下文是可接受的。并且TEE然后可以從 KDF參數(shù)列表中省略當前上下文數(shù)據。類似地,如果上下文策略要求目的設備位于德克薩斯 州(Texas),則TEE可以生成具有針對上下文策略(例如,"如果位置是德克薩斯州,則允許") 的參數(shù)的KDF,并且沒有針對所采樣的實際上下文值(例如,目的設備的當前地理坐標)的參 數(shù)。策略設計者可以判定所收集的上下文值的粒度是否為使得假設可以對它們進行重復以 完成迀移將是實際的。
[0083] 在TEE 32生成KDF之后,TEE 32然后使用KDF生成KEK,如框362處所示。如果TEE 32 向KDF提供所有的正確的參數(shù),則所生成的KEK 28將與源DPS 20的KEK 28相匹配。如框364 處所示,TEE 32然后使用KEK 28來解密密鑰迀移塊52并且提取或解開主密鑰24。然后目的 DPS 30可以將主密鑰24保存在TEE 32中。
[0084] 然而,再次參考框362,如果任何的KDF輸入不正確,則所生成的KEK將不與KEK 28 相匹配。因此,TEE 32將無法解密密鑰迀移塊52以訪問主密鑰24。因此,在圖1中,KDF 26和 KEK 28在TEE 32中使用虛線輪廓示出,以表示它們可能不與TEE 22中的KDF和KEK相匹配。 [0085]本公開描述了用于管理被饋送到KDF中的輸入的新穎的和有用的方式。一個實施 例的優(yōu)點是攻擊者將需要損害每個支持服務以收集重構KDF所必要的所有的輸入。使用服 務來提供潛在元素列表以及使用PIN來從這些列表中標識所選擇的元素也提供好處。例如, 可以在列表中列舉MFA策略,并且作為迀移動作的一部分可以方便地使用APIN從列表傳送 特定策略。類似地,可以使用列舉包括各種選項和選項的組合的上下文策略陳述的服務來 指定上下文策略(如一天中的時間限制和位置地理圍欄限制),作為KDF的一部分。
[0086]在一個實施例中,如果目的TEE提供正確的數(shù)據,則隨機數(shù)服務器向目的TEE提供 與被提供到源TEE的相同的隨機數(shù),認證策略服務器向目的TEE提供與被提供到源TEE的相 同的認證策略,并且上下文策略服務器向目的TEE提供與被提供到源TEE的相同的上下文策 略。然而,在周期的完成之后(例如,在密鑰迀移已經完成之后),服務器可以修改、重新組織 或替換它們相應的列表,使得由愛麗絲和鮑勃使用的RPIN、APIN和CPIN將標識不同的隨機 數(shù)、認證策略和上下文策略。
[0087] 在一個實施例中,隨機數(shù)服務器提供大列表。例如,該列表可以使用八個字符的 PIN(使用阿拉伯數(shù)字)。因此,該列表可以包括1億條目。替代地,該列表可以使用八個字符 的PIN(使用所有美國信息交換標準代碼(ASCII)打印字符)。因此,該列表可以包括超過6千 萬億條目。不同的實施例可以使用擴展ASCII字符集或任何其他合適的字符編碼方案來實 現(xiàn)列表索引值,其中索引被轉換成較大的數(shù)值。此外,不同的實施例可以針對PIN或索引使 用不同的大小,包括但不限于PIN實現(xiàn)為四個、五個、六個、七個或八個ASCII編碼的二進制 字節(jié)。其他實施例可以使用小于16字節(jié)的大小的PIN。
[0088] 相比于PIN指向的隨機數(shù)的大小,PIN的大小可以相對是小的。例如,不同的實施例 可以使用大小為16、32或64字節(jié)(8卩,128、256或512位)或更多字節(jié)的隨機數(shù)。因此,?預可以 被認為是小的,并且隨機數(shù)可以被認為是大的或非常大的。因此,猜測被用于密鑰迀移塊的 隨機數(shù)將是不切實際的。攻擊者將需要使用來自隨機數(shù)服務器列表或數(shù)據庫。但隨機數(shù)服 務器可以監(jiān)控并拒絕可疑的查詢。例如,隨機數(shù)服務器可以拒絕與密碼猜測攻擊的簽名相 匹配的查詢。
[0089] 在一個實施例中,愛麗絲從列表中手動隨機選擇RPIN。在另一個實施例中,源DPS 中的TEE使用隨機數(shù)發(fā)生器自動隨機選擇RPIN。換句話說,RPIN可以是系統(tǒng)生成的PIN。 [0090]本公開指的是由源DPS和目的DPS中的TEE執(zhí)行的各種操作。在一個實施例中,源 TEE和目的TEE包括推動這個過程的一個或多個軟件組件。例如,TEE可以包括密鑰迀移軟件 27,并且密鑰迀移軟件27可以包括KDF發(fā)生器29。
[0091]因此,在TEE 22和TEE 32中,密鑰迀移軟件27可以提示愛麗絲和鮑勃輸入需要的 用戶輸入數(shù)據(例如,RPIN、APIN、CPIN等)。密鑰迀移軟件27可以使用可信I/O通道獲得用戶 輸入,如上面所描述的。密鑰迀移軟件27還可以收集生物特征和上下文數(shù)據。密鑰迀移軟件 27還可以使用KDF發(fā)生器29來基于用戶輸入生成KDF。然后密鑰迀移軟件27可以使用所得 KDF生成KEK。并且然后密鑰迀移軟件27可以使用所得KEK來加密或解密密鑰迀移塊52。 [0092]為了本公開的目的,如"隨機數(shù)"和"隨機數(shù)發(fā)生器"等術語應該被理解為包括偽隨 機數(shù)和偽隨機數(shù)發(fā)生器。
[0093]鑒于在此所描述和展示的原理和示例性實施例,將認識到可以在不背離這些原理 的情況下在排列和細節(jié)上對所展示的實施例進行修改。此外,上述的討論集中于特定的實 施例,但設想其他配置。此外,盡管在此使用如"一個實施例(an embodiment)"、"一個實施 例(one embodiment)"、"另一實施例(another embodiment)"等表達,但這些短語意在一般 指實施例可能性,并且不旨在將本發(fā)明限制到特定實施例配置。如在此所使用的,這些短語 可以指相同的實施例或不同的實施例,并且這些實施例可以組合到其他實施例中。
[0094]任何合適的操作環(huán)境和編程語言(或操作環(huán)境和編程語言的組合)可以被用來實 現(xiàn)在此所描述的組件。如上所述,本發(fā)明的教導可用于在許多不同類型的數(shù)據處理系統(tǒng)中 獲得益處。示例性數(shù)據處理系統(tǒng)包括但不限于分布式計算系統(tǒng)、超級計算機、高性能計算系 統(tǒng)、計算集群、大型計算機、小型計算機、客戶端-服務器系統(tǒng)、個人計算機(PC)、工作站、月艮 務器、便攜式計算機、膝上型計算機、平板計算機、個人數(shù)字助理(PDA)、電話、手持式設備、 娛樂設備(如音頻設備、視頻設備、音頻/視頻設備(例如,電視機和機頂盒))、車輛用處理系 統(tǒng)以及用于處理或發(fā)送信息的其他設備。因此,除非另有明確說明或上下文需要,對任何特 定類型的數(shù)據處理系統(tǒng)(例如,移動設備)的引用應該被理解為也包括其他類型的數(shù)據處理 系統(tǒng)。此外,除非另有明確說明,被描述為耦合到彼此、彼此通信、響應于彼此等的元件不需 要是彼此連續(xù)通信的并且不需要直接耦合到彼此。同樣,當一個組件被描述為從另一個組 件接收數(shù)據或向另一個組件發(fā)送數(shù)據時,該數(shù)據可通過一個或多個中間組件來發(fā)送或接 收,除非另有明確說明。另外,可以將數(shù)據處理系統(tǒng)的一些組件實現(xiàn)為具有用于與總線進行 通信的接口(例如,連接器)的適配卡。替代地,可以使用如可編程或不可編程邏輯設備或陣 列、專用集成電路(ASIC)、嵌入式計算機、智能卡等組件將設備或組件實現(xiàn)為嵌入式控制 器。為了本公開的目的,術語"總線"包括可以由兩個以上的設備共享的路徑以及點對點路 徑。
[0095]本公開可以指指令、函數(shù)、過程、數(shù)據結構、應用程序、微代碼、配置設置以及其他 類型的數(shù)據。如上面所描述的,當數(shù)據被機器或設備訪問時,機器或設備可以通過執(zhí)行任 務、定義抽象數(shù)據類型或低級硬件上下文和/或執(zhí)行其他操作作出響應。例如,數(shù)據儲存器、 RAM和/或快閃存儲器可以包括各種指令集,這些指令集當被執(zhí)行時執(zhí)行各種操作。這樣的 指令集可以一般地被稱為軟件。另外,術語"程序"可以一般用于覆蓋范圍廣泛的軟件構造, 包括應用、例程、模塊、驅動程序、子程序、過程以及其他類型的軟件組件。此外,在上文被描 述為在一個示例性實施例中駐留在特定設備上的應用和/或其他數(shù)據在其他實施例中可以 駐留在一個或多個其他設備上。并且在上文被描述為在一個示例性實施例中在一個特定設 備上執(zhí)行的計算操作在其他實施例中可以由一個或多個其他設備執(zhí)行。
[0096]還應該理解,在此所描述的硬件和軟件組件表示合理地自包含使得每個功能元件 可以基本上獨立于其他功能元件被設計、構造或更新的功能元件。在替代實施例中,組件中 的許多組件可以實現(xiàn)為硬件、軟件或硬件和軟件的組合,用于提供在此所描述和展示的功 能。例如,替代實施例包括用于執(zhí)行本發(fā)明的操作的機器可訪問媒體編碼指令或控制邏輯。 這樣的實施例也可以被稱為程序產品。這樣的機器可訪問介質可以包括但不限于有形存儲 介質(如磁盤、光盤、RAM、只讀存儲器(ROM)等)以及處理器、控制器和包括RAM、R0M和/或其 他存儲設備的其他組件。為了本公開的目的,術語"ROM"可以一般用于指非易失性存儲器設 備,如可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、快閃R0M、快閃存儲器等。在 一些實施例中,用于實現(xiàn)所描述的操作的控制邏輯中的一些或全部可以以硬件邏輯來實現(xiàn) (例如,作為集成電路芯片的一部分、可編程門陣列(PGA)、ASIC等)。在至少一個實施例中, 所有組件的指令可以存儲在非瞬態(tài)機器可訪問介質中。在至少一個其他實施例中,可以使 用兩個或更多個非瞬態(tài)機器可訪問介質來存儲組件的指令。例如,一個組件的指令可以存 儲在一個介質中,并且另一個組件的指令可以存儲在另一個介質中。替代地,一個組件的指 令的一部分可以存儲在一個介質中,并且該組件的其他指令(以及其他組件的指令)可以存 儲在一個或多個其他介質中。指令還可以在分布式環(huán)境中使用,并且可以被本地和/或遠程 地存儲以供單處理器或多處理器機器訪問。
[0097]此外,雖然已經關于以特定順序執(zhí)行的特定操作描述了一個或多個示例性過程, 但是可以對這些過程應用許多修改以得到本發(fā)明的許多替代實施例。例如,替代實施例可 以包括使用比所有所公開的操作更少的操作的過程、使用附加操作的過程以及其中在此所 公開的個別操作被組合、細分、重新排列或以其他方式改變的過程。
[0098]鑒于從在此所描述的示例性實施例可以容易地得出的多種有用的排列,該詳細描 述旨在僅作為說明性的,并且不應被視為限制覆蓋的范圍。
[0099] 下面的示例涉及進一步的實施例。
[0100] 示例A1是一種具有密鑰迀移能力的數(shù)據處理系統(tǒng)。所述數(shù)據處理系統(tǒng)包括處理元 件、響應于所述處理元件的機器可訪問介質以及在所述機器可訪問介質中的數(shù)據。當所述 數(shù)據由所述處理元件訪問時,所述數(shù)據使所述數(shù)據處理系統(tǒng)能夠成為執(zhí)行包括以下各項的 操作的目的數(shù)據處理系統(tǒng):(a)從源數(shù)據處理系統(tǒng)接收包括主密鑰的加密版本的密鑰迀移 塊;(b)接收標識認證策略的用戶輸入;(c)接收標識上下文策略的用戶輸入;(d)基于所述 標識的認證策略從所述目的數(shù)據處理系統(tǒng)的用戶處收集認證數(shù)據;(e)基于所述標識的上 下文策略收集所述目的數(shù)據處理系統(tǒng)的上下文數(shù)據;以及(f)使用所述認證數(shù)據和所述上 下文數(shù)據來解密所述密鑰迀移塊。
[0101] 示例A2包括示例A1的特征,并且所述機器可訪問介質被配置成在所述目的數(shù)據處 理系統(tǒng)中提供可信執(zhí)行環(huán)境(TEE)。此外,在所述機器可訪問介質中的所述數(shù)據包括被配置 成在所述TEE中執(zhí)行的密鑰迀移軟件,并且所述密鑰迀移軟件被配置成使用所述認證數(shù)據 和所述上下文數(shù)據來在所述目的數(shù)據處理系統(tǒng)的所述TEE中解密所述密鑰迀移塊。
[0102] 示例A3包括示例A1的特征,并且收集認證數(shù)據的所述操作包括從所述目的數(shù)據處 理系統(tǒng)的所述用戶處收集生物特征數(shù)據。示例A3還可以包括示例A2的特征。
[0103]示例A4包括示例A1的特征,并且基于所述標識的認證策略收集認證數(shù)據的所述操 作包括基于所述標識的認證策略收集兩種或更多種不同類型的認證數(shù)據。示例A4還可以包 括示例A2至A3中任何一項或多項的特征。
[0104]示例A5包括示例A1的特征,并且所述操作進一步包括:(a)接收對被用于加密所述 密鑰迀移塊中的所述主密鑰的隨機數(shù)進行標識的用戶輸入;以及(b)使用所述隨機數(shù)來解 密所述密鑰迀移塊。示例A5還可以包括示例A2至A4中任何一項或多項的特征。
[0105]示例A6包括示例A5的特征,并且接收對被用于加密所述密鑰迀移塊中的所述主密 鑰的所述隨機數(shù)進行標識的用戶輸入的所述操作包括接收大小小于16字節(jié)的索引。此外, 所述隨機數(shù)具有大于或等于16字節(jié)的大小;并且所述操作進一步包括使用所述索引從遠程 隨機數(shù)服務器檢索所述隨機數(shù)。示例A5還可以包括示例A2至A4中任何一項或多項的特征。
[0106] 示例A7包括示例A1的特征,并且所述操作進一步包括基于標識所述上下文策略的 所述用戶輸入從遠程上下文策略服務器檢索所述上下文策略。示例A7還可以包括示例A2至 A6中任何一項或多項的特征。
[0107] 示例B1是一種用于迀移密鑰的方法。所述方法包括:(a)在目的數(shù)據處理系統(tǒng)處, 從源數(shù)據處理系統(tǒng)接收包括主密鑰的加密版本的密鑰迀移塊;(b)在所述目的數(shù)據處理系 統(tǒng)處,接收標識認證策略的用戶輸入;(c)在所述目的數(shù)據處理系統(tǒng)處,接收標識上下文策 略的用戶輸入;(d)基于所述標識的認證策略從所述目的數(shù)據處理系統(tǒng)的用戶處收集認證 數(shù)據;(e)基于所述標識的上下文策略收集所述目的數(shù)據處理系統(tǒng)的上下文數(shù)據;以及(f) 在所述目的數(shù)據處理系統(tǒng)處,使用所述認證數(shù)據和所述上下文數(shù)據來解密所述密鑰迀移 塊。
[0108] 示例B2包括示例B1的特征。另外,所述目的數(shù)據處理系統(tǒng)包括可信執(zhí)行環(huán)境 (TEE);并且由在所述目的數(shù)據處理系統(tǒng)的所述TEE中執(zhí)行的密鑰迀移軟件來執(zhí)行使用所述 認證數(shù)據和所述上下文數(shù)據來解密所述密鑰迀移塊的所述操作。
[0109]示例B3包括示例B1的特征。另外,收集認證數(shù)據的所述操作包括從所述目的數(shù)據 處理系統(tǒng)的所述用戶處收集生物特征數(shù)據。示例B3還可以包括示例B2的特征。
[0110]示例B4包括示例B1的特征。另外,基于所述標識的認證策略收集認證數(shù)據的所述 操作包括基于所述標識的認證策略收集兩種或更多種不同類型的認證數(shù)據。示例B4還可以 包括示例B2至B3中的任何一項或多項的特征。
[0111]示例B5包括示例B1的特征。另外,所述方法包括:(a)在所述目的數(shù)據處理系統(tǒng)處, 接收對被用于加密所述密鑰迀移塊的所述主密鑰的隨機數(shù)進行標識的用戶輸入;以及(b) 使用所述隨機數(shù)來解密所述密鑰迀移塊。示例B5還可以包括示例B2至B4中的任何一項或多 項的特征。
[0112]示例B6包括示例B5的特征。另外,接收對被用于加密所述密鑰迀移塊中的所述主 密鑰的所述隨機數(shù)進行標識的用戶輸入的所述操作包括接收大小小于16字節(jié)的索引。此 外,所述隨機數(shù)具有大于或等于16字節(jié)的大小;并且所述方法進一步包括使用所述索引從 遠程隨機數(shù)服務器檢索所述隨機數(shù)。示例B6還可以包括示例B2至B4中任何一項或多項的特 征。
[0113] 示例B7包括示例B1的特征。另外,所述方法包括:基于標識所述上下文策略的所述 用戶輸入從遠程上下文策略服務器檢索所述上下文策略。示例B7還可以包括示例B2至B6中 任何一項或多項的特征。
[0114] 示例B8包括示例B1的特征。另外,所述方法包括:基于標識所述認證策略的所述用 戶輸入從遠程認證策略服務器檢索所述認證策略。示例B8還可以包括示例B2至B7中任何一 項或多項的特征。
[0115] 示例B9包括示例B1的特征。另外,使用所述認證數(shù)據和所述上下文數(shù)據來解密所 述密鑰迀移塊的所述操作包括:(a)在密鑰導出函數(shù)(KDF)中使用所述認證數(shù)據和所述上下 文數(shù)據;(b)使用所述KDF來生成密鑰加密密鑰(KEK);以及(c)使用所述KEK來解密所述密鑰 迀移塊。示例B9還可以包括示例B2至B8中任何一項或多項的特征。
[0116] 示例B10包括示例B1的特征。另外,所述方法包括:(a)在所述目的數(shù)據處理系統(tǒng)處 接收所述密鑰迀移塊之前,在所述源數(shù)據處理系統(tǒng)處從所述主密鑰的所有者處接收用戶輸 入,其中,所述用戶輸入選擇所述認證策略和所述上下文策略;以及(b)響應于接收到選擇 所述認證策略和所述上下文策略的所述用戶輸入,使用所述選擇的認證策略和所述選擇的 上下文策略來創(chuàng)建包括所述主密鑰的所述加密版本的所述密鑰迀移塊。示例B10還可以包 括示例B2至B9中任何一項或多項的特征。
[0117] 示例B11包括示例B10的特征。另外,所述源數(shù)據處理系統(tǒng)包括可信執(zhí)行環(huán)境 (TEE),并且所述主密鑰的明文版本駐留在所述源數(shù)據處理系統(tǒng)的所述TEE中。此外,在所述 源數(shù)據處理系統(tǒng)的所述TEE中執(zhí)行(a)接收選擇所述認證策略和所述上下文策略的所述用 戶輸入和(b)使用所述選擇的認證策略和所述選擇的上下文策略來創(chuàng)建所述密鑰迀移塊的 所述操作。示例B11還可以包括示例B2至B9中任何一項或多項的特征。
[0118] 示例B12包括示例B10的特征。另外,所述方法包括:(a)在所述源數(shù)據處理系統(tǒng)處 從遠程隨機數(shù)服務器接收隨機數(shù)列表和相應的索引;(b)在從所述遠程隨機數(shù)服務器接收 到所述隨機數(shù)列表之后,接收從所述隨機數(shù)列表中選擇隨機數(shù)的用戶輸入;以及(c)在接收 到選擇所述隨機數(shù)的所述用戶輸入之后,使用所述選擇的隨機數(shù)來生成所述密鑰迀移塊。 示例B12也可以包括示例B2至B11中任何一項或多項的特征。
[0119]示例C是包括用于迀移密鑰的計算機指令的至少一個機器可訪問介質。所述計算 機指令響應于在數(shù)據處理系統(tǒng)上被執(zhí)行而使所述數(shù)據處理系統(tǒng)能夠執(zhí)行根據示例B1至B12 中任何一項或多項的方法。
[0120]示例D是一種具有密鑰迀移能力的數(shù)據處理系統(tǒng)。所述數(shù)據處理系統(tǒng)包括處理元 件、響應于所述處理元件的至少一個機器可訪問介質以及至少部分地存儲在所述至少一個 機器可訪問介質中的計算機指令。另外,響應于被執(zhí)行,所述計算機指令使所述數(shù)據處理系 統(tǒng)能夠執(zhí)行根據示例B1至B12中任何一項或多項的方法。
[0121]示例E是一種具有密鑰迀移能力的數(shù)據處理系統(tǒng)。所述數(shù)據處理系統(tǒng)包括用于執(zhí) 行示例B1至B12中任何一項或多項的方法的裝置。
[0122] 示例F1是一種用于促進密鑰迀移的裝置。所述裝置包括非瞬態(tài)機器可訪問介質和 在所述機器可訪問介質中的數(shù)據,所述數(shù)據當由目的數(shù)據處理系統(tǒng)訪問時使所述目的數(shù)據 處理系統(tǒng)能夠執(zhí)行包括以下各項的操作:(a)從源數(shù)據處理系統(tǒng)接收包括主密鑰的加密版 本的密鑰迀移塊;(b)接收標識認證策略的用戶輸入;(c)接收標識上下文策略的用戶輸入; (d)基于所述標識的認證策略從所述目的數(shù)據處理系統(tǒng)的用戶處收集認證數(shù)據;(e)基于所 述標識的上下文策略收集所述目的數(shù)據處理系統(tǒng)的上下文數(shù)據;以及(f)使用所述認證數(shù) 據和所述上下文數(shù)據來解密所述密鑰迀移塊。
[0123] 示例F2包括示例F1的特征。此外,在所述機器可訪問介質中的所述數(shù)據包括被配 置成在所述目的數(shù)據處理系統(tǒng)的可信執(zhí)行環(huán)境(TEE)中執(zhí)行的密鑰迀移軟件。此外,所述密 鑰迀移軟件被配置成使用所述認證數(shù)據和所述上下文數(shù)據來在所述目的數(shù)據處理系統(tǒng)的 所述TEE中解密所述密鑰迀移塊。
[0124]示例F3包括示例F1的特征。此外,收集認證數(shù)據的所述操作包括從所述目的數(shù)據 處理系統(tǒng)的所述用戶處收集生物特征數(shù)據。示例F3還可以包括示例F2的特征。
[0125]示例F4包括示例F1的特征。此外,基于所述標識的認證策略收集認證數(shù)據的所述 操作包括基于所述標識的認證策略收集兩種或更多種不同類型的認證數(shù)據。示例F4還可以 包括示例F2至F3中任何一項或多項的特征。
[0126] 示例F5包括示例F1的特征,并且所述操作進一步包括:(a)接收對被用于加密所述 密鑰迀移塊中的所述主密鑰的隨機數(shù)進行標識的用戶輸入;以及(b)使用所述隨機數(shù)來解 密所述密鑰迀移塊。示例F5還可以包括示例F2至F4中任何一項或多項的特征。
[0127] 示例F6包括示例F5的特征。此外,接收對被用于加密所述密鑰迀移塊中的所述主 密鑰的所述隨機數(shù)進行標識的用戶輸入的所述操作包括接收大小小于16字節(jié)的索引。此 外,所述隨機數(shù)具有大于或等于16字節(jié)的大小;并且所述操作進一步包括使用所述索引從 遠程隨機數(shù)服務器檢索所述隨機數(shù)。示例F6還可以包括示例F2至F4中任何一項或多項的特 征。
[0128] 示例F7包括示例F1的特征。此外,所述操作進一步包括基于標識所述上下文策略 的所述用戶輸入從遠程上下文策略服務器檢索所述上下文策略。示例F7還可以包括示例F2 至F6中任何一項或多項的特征。
【主權項】
1. 一種具有密鑰迀移能力的數(shù)據處理系統(tǒng),所述數(shù)據處理系統(tǒng)包括: 處理元件; 響應于所述處理元件的機器可訪問介質;以及 在所述機器可訪問介質中的數(shù)據,所述數(shù)據當由所述處理元件訪問時使所述數(shù)據處理 系統(tǒng)能夠成為執(zhí)行包括以下各項的操作的目的數(shù)據處理系統(tǒng): 從源數(shù)據處理系統(tǒng)接收包括主密鑰的加密版本的密鑰迀移塊; 接收標識認證策略的用戶輸入; 接收標識上下文策略的用戶輸入; 基于所述標識的認證策略從所述目的數(shù)據處理系統(tǒng)的用戶處收集認證數(shù)據; 基于所述標識的上下文策略收集所述目的數(shù)據處理系統(tǒng)的上下文數(shù)據;以及 使用所述認證數(shù)據和所述上下文數(shù)據來解密所述密鑰迀移塊。2. 根據權利要求1所述的數(shù)據處理系統(tǒng),其中: 所述機器可訪問介質被配置成在所述目的數(shù)據處理系統(tǒng)中提供可信執(zhí)行環(huán)境(TEE); 在所述機器可訪問介質中的所述數(shù)據包括被配置成在所述TEE中執(zhí)行的密鑰迀移軟 件;并且 所述密鑰迀移軟件被配置成使用所述認證數(shù)據和所述上下文數(shù)據來在所述目的數(shù)據 處理系統(tǒng)的所述TEE中解密所述密鑰迀移塊。3. 根據權利要求1所述的數(shù)據處理系統(tǒng),其中,收集認證數(shù)據的所述操作包括從所述目 的數(shù)據處理系統(tǒng)的所述用戶處收集生物特征數(shù)據。4. 根據權利要求1所述的數(shù)據處理系統(tǒng),其中,基于所述標識的認證策略收集認證數(shù)據 的所述操作包括: 基于所述標識的認證策略收集兩種或更多種不同類型的認證數(shù)據。5. 根據權利要求1所述的數(shù)據處理系統(tǒng),其中,所述操作進一步包括: 接收對被用于加密所述密鑰迀移塊中的所述主密鑰的隨機數(shù)進行標識的用戶輸入;以 及 使用所述隨機數(shù)來解密所述密鑰迀移塊。6. 根據權利要求5所述的數(shù)據處理系統(tǒng),其中: 接收對被用于加密所述密鑰迀移塊中的所述主密鑰的所述隨機數(shù)進行標識的用戶輸 入的所述操作包括接收大小小于16字節(jié)的索引; 所述隨機數(shù)具有大于或等于16字節(jié)的大小;并且 所述操作進一步包括使用所述索引從遠程隨機數(shù)服務器檢索所述隨機數(shù)。7. 根據權利要求1所述的數(shù)據處理系統(tǒng),其中,所述操作進一步包括: 基于標識所述上下文策略的所述用戶輸入從遠程上下文策略服務器檢索所述上下文 策略。8. -種用于迀移密鑰的方法,所述方法包括: 在目的數(shù)據處理系統(tǒng)處,從源數(shù)據處理系統(tǒng)接收包括主密鑰的加密版本的密鑰迀移 塊; 在所述目的數(shù)據處理系統(tǒng)處,接收標識認證策略的用戶輸入; 在所述目的數(shù)據處理系統(tǒng)處,接收標識上下文策略的用戶輸入; 基于所述標識的認證策略從所述目的數(shù)據處理系統(tǒng)的用戶處收集認證數(shù)據; 基于所述標識的上下文策略收集所述目的數(shù)據處理系統(tǒng)的上下文數(shù)據;以及 在所述目的數(shù)據處理系統(tǒng)處,使用所述認證數(shù)據和所述上下文數(shù)據來解密所述密鑰迀 移塊。9. 根據權利要求8所述的方法,其中: 所述目的數(shù)據處理系統(tǒng)包括可信執(zhí)行環(huán)境(TEE);并且 由在所述目的數(shù)據處理系統(tǒng)的所述TEE中執(zhí)行的密鑰迀移軟件來執(zhí)行使用所述認證數(shù) 據和所述上下文數(shù)據來解密所述密鑰迀移塊的所述操作。10. 根據權利要求8所述的方法,其中,收集認證數(shù)據的所述操作包括從所述目的數(shù)據 處理系統(tǒng)的所述用戶處收集生物特征數(shù)據。11. 根據權利要求8所述的方法,其中,基于所述標識的認證策略收集認證數(shù)據的所述 操作包括: 基于所述標識的認證策略收集兩種或更多種不同類型的認證數(shù)據。12. 根據權利要求8所述的方法,進一步包括: 在所述目的數(shù)據處理系統(tǒng)處,接收對被用于加密所述密鑰迀移塊的所述主密鑰的隨機 數(shù)進行標識的用戶輸入;以及 使用所述隨機數(shù)來解密所述密鑰迀移塊。13. 根據權利要求12所述的方法,其中: 接收對被用于加密所述密鑰迀移塊中的所述主密鑰的所述隨機數(shù)進行標識的用戶輸 入的所述操作包括接收大小小于16字節(jié)的索引; 所述隨機數(shù)具有大于或等于16字節(jié)的大小;并且 所述方法進一步包括使用所述索引從遠程隨機數(shù)服務器檢索所述隨機數(shù)。14. 根據權利要求8所述的方法,進一步包括: 基于標識所述上下文策略的所述用戶輸入從遠程上下文策略服務器檢索所述上下文 策略。15. 根據權利要求8所述的方法,進一步包括: 基于標識所述認證策略的所述用戶輸入從遠程認證策略服務器檢索所述認證策略。16. 根據權利要求8所述的方法,其中,使用所述認證數(shù)據和所述上下文數(shù)據來解密所 述密鑰迀移塊的所述操作包括: 在密鑰導出函數(shù)(KDF)中使用所述認證數(shù)據和所述上下文數(shù)據; 使用所述KDF來生成密鑰加密密鑰(KEK);以及 使用所述KEK來解密所述密鑰迀移塊。17. 根據權利要求8所述的方法,進一步包括: 在所述目的數(shù)據處理系統(tǒng)處接收所述密鑰迀移塊之前,在所述源數(shù)據處理系統(tǒng)處從所 述主密鑰的所有者處接收用戶輸入,其中,所述用戶輸入選擇所述認證策略和所述上下文 策略;以及 響應于接收到選擇所述認證策略和所述上下文策略的所述用戶輸入,使用所述選擇的 認證策略和所述選擇的上下文策略來創(chuàng)建包括所述主密鑰的所述加密版本的所述密鑰迀 移塊。18. 根據權利要求17所述的方法,其中: 所述源數(shù)據處理系統(tǒng)包括可信執(zhí)行環(huán)境(TEE); 所述主密鑰的明文版本駐留在所述源數(shù)據處理系統(tǒng)的所述TEE中;并且 在所述源數(shù)據處理系統(tǒng)的所述TEE中執(zhí)行(a)接收選擇所述認證策略和所述上下文策 略的所述用戶輸入和(b)使用所述選擇的認證策略和所述選擇的上下文策略來創(chuàng)建所述密 鑰迀移塊的所述操作。19. 根據權利要求17所述的方法,進一步包括: 在所述源數(shù)據處理系統(tǒng)處從遠程隨機數(shù)服務器接收隨機數(shù)列表和相應的索引; 在從所述遠程隨機數(shù)服務器接收到所述隨機數(shù)列表之后,接收從所述隨機數(shù)列表中選 擇隨機數(shù)的用戶輸入;以及 在接收到選擇所述隨機數(shù)的所述用戶輸入之后,使用所述選擇的隨機數(shù)來生成所述密 鑰迀移塊。20. 包括用于迀移密鑰的計算機指令的至少一個機器可訪問介質,其中,所述計算機指 令響應于在數(shù)據處理系統(tǒng)上被執(zhí)行而使所述數(shù)據處理系統(tǒng)能夠執(zhí)行根據權利要求8至19中 任一項所述的方法。21. -種具有密鑰迀移能力的數(shù)據處理系統(tǒng),所述數(shù)據處理系統(tǒng)包括: 處理元件; 響應于所述處理元件的至少一個機器可訪問介質;以及 至少部分地存儲在所述至少一個機器可訪問介質中的計算機指令,其中,所述計算機 指令響應于被執(zhí)行而使所述數(shù)據處理系統(tǒng)能夠執(zhí)行根據權利要求8至19中任一項所述的方 法。22. -種具有密鑰迀移能力的數(shù)據處理系統(tǒng),所述數(shù)據處理系統(tǒng)包括:用于執(zhí)行根據權 利要求8至19中任一項所述的方法的裝置。23. -種用于促進密鑰迀移的裝置,所述裝置包括: 非瞬態(tài)機器可訪問介質;以及 在所述機器可訪問介質中的數(shù)據,所述數(shù)據當由目的數(shù)據處理系統(tǒng)訪問時使所述目的 數(shù)據處理系統(tǒng)能夠執(zhí)行包括以下各項的操作: 從源數(shù)據處理系統(tǒng)接收包括主密鑰的加密版本的密鑰迀移塊; 接收標識認證策略的用戶輸入; 接收標識上下文策略的用戶輸入; 基于所述標識的認證策略從所述目的數(shù)據處理系統(tǒng)的用戶處收集認證數(shù)據; 基于所述標識的上下文策略收集所述目的數(shù)據處理系統(tǒng)的上下文數(shù)據;以及 使用所述認證數(shù)據和所述上下文數(shù)據來解密所述密鑰迀移塊。24. 根據權利要求23所述的裝置,其中,所述操作進一步包括: 接收對被用于加密所述密鑰迀移塊中的所述主密鑰的隨機數(shù)進行標識的用戶輸入;以 及 使用所述隨機數(shù)來解密所述密鑰迀移塊。25. 根據權利要求24所述的裝置,其中: 接收對被用于加密所述密鑰迀移塊中的所述主密鑰的所述隨機數(shù)進行標識的用戶輸 入的所述操作包括接收大小小于16字節(jié)的索引; 所述隨機數(shù)具有大于或等于16字節(jié)的大小;并且 所述操作進一步包括使用所述索引從遠程隨機數(shù)服務器檢索所述隨機數(shù)。
【文檔編號】H04L9/06GK105960775SQ201480074834
【公開日】2016年9月21日
【申請日】2014年3月3日
【發(fā)明人】N·M·史密斯, A·奈舒圖特
【申請人】英特爾公司