基於可信計算平臺的權限委託方法
2023-05-31 22:53:41 1
專利名稱:基於可信計算平臺的權限委託方法
技術領域:
本發明涉及權限委託,具體涉及一種基於可信計算平臺的權限委託方法,能夠提高委託的安全性和隱私性。
背景技術:
當前,各種有授權管理的應用中,為了實現權限的委託,採用包括用戶、角色和口令的普通體系,或PMI(Privilege ManagementInfrastructure,權限管理基礎架構)。上述的普通體系的缺點是需要針對每個應用單獨開發和安全性較弱。也就是,各類授權數據採用純軟體的方式進行保護。上述的PMI的缺點是需要搭建完整的PKI(PublicKey Infrastructure,公鑰基礎架構)和PMI體系架構,導致部署比較複雜,投入較大,對網絡要求高。因此,PMI對於中小型應用特別是桌面應用來說,實現成本太高。
發明內容鑑於上述問題,完成了本發明。本發明的目的是提供一種基於可信計算平臺且與業務分離的權限委託方法,以提高權限委託的安全性和隱私性。
在本發明的一個方面,提出了一種基於可信計算平臺的、委託由密鑰表示的權限的方法,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信硬體存儲有憑證數據、根密鑰和具有至少一個計數器的計數器表,所述軟體協議棧中存儲有具有至少一個密鑰的密鑰表和具有至少一項委託的委託表,所述方法包括步驟將至少一項委託和相應的密鑰、委託口令以及密鑰的訪問口令輸入到可信硬體;可信硬體利用根密鑰解密密鑰,提取密鑰訪問口令,以驗證輸入的訪問口令是否正確;在輸入的訪問口令正確的情況下,將委託和密鑰相關聯;用根密鑰加密委託口令,並填入委託中,利用憑證數據計算完整性值並填入委託中,產生授權的委託;將授權的委託返回給軟體協議棧,以填入委託信息表中。
根據本發明的一個實施例,在該方法中,所述將委託和密鑰相關聯的步驟包括可信硬體讀取計數器表中與該密鑰相對應的計數器的校驗值,填入委託的對應欄位,並計算當前密鑰的雜湊值,填入委託的密鑰摘要欄位。
根據本發明的一個實施例,在該方法中,所述軟體協議棧還存儲有具有至少一組策略的策略組表,該方法還包括策略設定步驟可信硬體所有者為一委託策略創建一個策略組,包括設置有效的計數器標識符、標記以及描述,連同根密鑰的訪問口令一起傳送給可信硬體;可信硬體檢查根密鑰的訪問口令;在根密鑰的訪問口令正確的情況下,在計數器表中建立對應的計數器,根據策略設定計數器的狀態;將該計數器的信息返回軟體協議棧,以更新策略組表。
根據本發明的一個實施例,在該方法中,還包括步驟被委託方將授權的委託、密鑰、相應的操作和委託口令輸入到可信硬體內;可信硬體驗證委託口令是否正確和相應的操作是否在委託範圍之內;在驗證成功的情況下,被委託方執行該操作。
根據本發明的一個實施例,在該方法中,通過用根密鑰解密委託來驗證委託口令是否正確。
根據本發明的一個實施例,在該方法中,可信硬體校驗委託的委託摘要、密鑰摘要。
根據本發明的一個實施例,在該方法中,可信硬體檢查與該密鑰相對應的計數器的狀態和校驗值。
根據本發明的一個實施例,在該方法中,所述完整性值是HMAC值。
根據本發明的一個實施例,在該方法中,所述根密鑰是RSA密鑰對。
根據本發明的一個實施例,在該方法中,所述密鑰是RSA密鑰對。
在本發明的另一方面,提出了一種基於可信計算平臺的撤銷授權委託的方法,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信硬體存儲有根密鑰和具有至少一個計數器的計數器表,所述軟體協議棧中存儲有具有至少一個密鑰的密鑰表和具有至少一項委託的委託表,所述方法包括步驟從委託表中選擇待撤銷的委託,與相應的密鑰和密鑰的所有者口令輸入到可信硬體;在可信硬體內通過用根密鑰解密所述密鑰來驗證所有者口令;在驗證成功的情況下,檢查委託信息的完整性以及委託信息與密鑰是否匹配;在檢查結果是肯定的情況下,可信硬體修改計數器值;在軟體協議棧刪除所述委託表中的該委託。
在本發明的又一方面,提出了一種基於可信計算平臺的撤銷授權委託的方法,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信硬體存儲有根密鑰和具有至少一個計數器的計數器表,所述軟體協議棧中存儲有具有至少一個密鑰的密鑰表、具有至少一項委託的委託表和具有至少一組策略的策略組表,所述方法包括步驟可信硬體所有者從策略組表中選擇要撤回的策略組,連同所有者口令一起傳送給可信硬體;可信硬體驗證用戶輸入的所有者訪問口令是否正確;在驗證成功的情況下,檢查委託信息的完整性以及委託信息與密鑰是否匹配;在檢查結果是肯定的情況下,可信硬體修改計數器值;在軟體協議棧刪除所述委託表中的該委託。
利用本發明的方法,委託方可以定製對被委託方開放哪些授權操作;被委託方不會知道委託方訪問該資源的授權信息;外部在缺少可信硬體或者資源的所有者授權情況下,不能修改委託信息,更不能執行委託的權限之外的任何操作。此外,本發明的配置與平臺緊密集成,而且與具體業務剝離。
圖1示出了根據本發明實施例的可信計算平臺的總體結構;圖2示出了在圖1所示的可信計算平臺中使用的數據結構的示意 圖3示出了根據本發明實施例的權限委託過程;圖4示出了根據本發明實施例的使用權限委託的過程;圖5示出了根據本發明實施例的由委託方撤回權限委託的過程;圖6示出了根據本發明實施例的由可信硬體所有者撤回權限委託的過程;圖7示出了根據本發明實施例的設定委託策略的過程。
具體實施方式下面對照附圖詳細說明本發明的具體實施例。
可信計算平臺的構成
圖1示出了根據本發明實施例的可信計算平臺的總體構成。如圖1所示,根據本發明實施例的可信計算平臺包括軟體平臺100和可信硬體200。平臺用戶300通過軟體平臺100接受可信硬體200提供的服務。
在可信硬體200中,輸入輸出模塊210負責與上層的軟體平臺100的數據交換和命令的調度。權限委託模塊220可以提供「權限委託」、「委託撤銷」、「委託鑑別」和「委託策略管理」等基本的權限委託服務。
此外,密鑰生成模塊240用於在可信硬體內部隨機地生成根密鑰(RootKey)以及普通的密鑰(Key)。持久存儲模塊230在晶片內部持久存儲憑證數據(ProofData)231、根密鑰(RootKey)232以及計數器表(Counter Table)233。持久存儲模塊230所使用的存儲介質比如是快閃記憶體。
可信硬體200中的其它模塊240包括可信硬體需要的其它功能,但與權限委託關係不大的模塊,這裡不詳細描述。
在持久存儲模塊230中存儲有憑證數據(ProofData)231,它是在可信硬體200的製造階段固化的隱秘數據。可信硬體200的製造方應確保該數據不被可信硬體以外的任何實體所知。每一個可信硬體都有與眾不同的憑證數據。可以用該憑證數據對可信硬體200產生的數據進行HMAC(一種需要密鑰的雜湊函數,支持完整性校驗和身份鑑別)運算,以確保這些數據不被竄改和偽造。
此外,持久存儲模塊230中還存儲有可信硬體200的根密鑰(RootKey)232,它用來加密委託信息中的隱秘數據。此外,該根密鑰232也用來加密可信硬體200產生的其它密鑰。根據本發明的一個實施例,根密鑰和密鑰可能是2048位的RSA密鑰對。根密鑰只能保存在可信硬體200內部並在可信硬體內部使用。此外,在可信硬體200創建根密鑰的同時,也生成了訪問根密鑰的訪問口令,並且它作為根密鑰的一部分保存,並在用戶使用根密鑰的時候用於驗證用戶輸入的訪問口令。
此外,持久存儲模塊230中還存儲有計數器表(Counter Table)233。該計數器表233的大小受可信硬體200的存儲空間限制。如圖2中的(D)所示,每一個計數器除了有用於標識自身的ID(標識)欄位外,還包括校驗值(VerificationNumber,該值只能增加,不能減小)欄位、Enabled欄位(使能欄位,0表示不能使用,則所有與該計數器相關的委託信息都暫時無效,並且只能由可信硬體所有者修改)、Locked欄位(鎖止欄位,1表示鎖止,則任何人不得修改計數器值。只有可信硬體所有者可以修改Locked值)。
在軟體平臺100中,輸入輸出模塊110負責與上層的應用軟體以及底層的可信硬體200的數據交換和命令的調度。
此外,權限委託模塊120為上層應用提供「權限委託」、「委託撤銷」、「委託鑑別」和「委託策略管理」等基本的權限委託服務。當然,這些功能最終是通過調用可信硬體200的相應功能來實現的。
持久存儲模塊130在持久化存儲介質上存取密鑰表(Key Table)131、委託表(Delegation Table)132以及組表(Group Table)133。持久存儲模塊130使用的存儲介質比如是硬碟。
軟體平臺100中的其它模塊140包括軟體平臺需要的其它功能,即與權限委託關係不大的模塊,比如密鑰的生成、刪除、修改等。因此這裡不詳細描述其它模塊140的功能。
在持久存儲模塊130中存儲有登記了多個密鑰的密鑰表131,其中每個密鑰在可信硬體200內部生成,並且由根密鑰加密。如前所述。密鑰可能是2048位的RSA密鑰對。與根密鑰類似,密鑰在創建時也生成訪問該密鑰的訪問口令,並作為該密鑰的一部分被根密鑰一併加密保存,如圖2中的(A)所示。
此外,持久存儲模塊130中存儲有登記了多個委託的委託表(Delegation Table)132。本發明中指的委託,都是對密鑰的委託。即,密鑰的所有者(知道密鑰的訪問口令的用戶)把對密鑰的使用權限,以委託的形式允許其它用戶有限地使用密鑰的功能。如圖2中的(B)所示,委託包含了計數器標識符(CounterID,即對應的Counter的ID,也就是GroupID,因為GroupID總是與CounterID一致)、密鑰標識符(KeyID,即所委託的Key的ID)、委託信息(DelegationInfo,即具體能使用的Key的操作列表)、校驗值(VerificationNumber,其與Counter中的VerificationNumber對應)、密鑰摘要(KeyDigest,即所對應密鑰的一個雜湊結果)、加密的委託口令(Enc(DelSecret))、委託摘要(DelDigest,委託的HMAC結果)等欄位。
此外,持久存儲模塊130中存儲有組表(Group Table),即策略組信息數據表,其允許用戶建立委託的策略組。如圖2中的(C)所示,每個組對應可信硬體中的一個計數器,並可與多個委託相關聯。每個委託必須受所在組策略的約束。標記(Label)表示用戶可讀的簡短的策略組標識,描述(Description)則表明當前組策略的詳細信息,摘要(Digest)是該組的數據的一個HMAC結果。
可信計算平臺的操作
下面分別對照圖3~圖7詳細描述根據本發明實施例的可信計算平臺的操作過程。圖3示出了根據本發明實施例的權限委託過程。圖4示出了根據本發明實施例的使用權限委託的過程。圖5示出了根據本發明實施例的由委託方撤回權限委託的過程。圖6示出了根據本發明實施例的由可信硬體所有者撤回權限委託的過程。圖7示出了根據本發明實施例的設定委託策略的過程。
A)委託方(即某個密鑰的所有者)進行權限委託的過程步驟S110,委託方設定要對某密鑰進行權限委託,編輯好該委託能使用的密鑰的操作權限列表以及該委託所屬的策略組(即對應了一個可信硬體內部的計數器)。然後,把編輯好的委託連同密鑰、策略信息、委託口令以及密鑰的訪問口令一起傳給可信硬體200。
步驟S120和S130,可信硬體200利用根密鑰解密密鑰的隱秘信息,提取其中的密鑰訪問口令,驗證用戶輸入的訪問口令是否正確,如果錯誤則直接退出。然後,檢查對應的計數器的Enabled欄位,如果是0,則直接退出。隨後,檢查對應的計數器的Locked欄位。根據策略信息決定是否繼續執行以及是否要修改Locked值。這裡,策略信息是一個數值,0表示locked為1則退出;1表示無論locked為何值都加入。
步驟S140,在可信硬體200內對密鑰和委託進行關聯,即讀取對應計數器的校驗值(VerificationNumber),填入委託的對應欄位。然後,計算當前密鑰的雜湊值,填入KeyDigest(密鑰摘要)欄位。
步驟S150,用根密鑰加密委託口令,存入加密的委託口令(Enc(DelSecret))欄位。然後,對委託中的委託摘要(DelDigest)之前的所有數據利用憑證數據計算HMAC值,並把結果填入委託摘要欄位。
步驟S160,將授權委託返回給上層的軟體平臺100,然後填入委託表中。
B)利用委託的權限訪問資源的過程步驟S210,被委託方輸入委託授權信息,連同密鑰、希望執行的操作、操作參數以及權限委託一起傳送給可信硬體200。
步驟S220和S230,可信硬體利用根密鑰解密委託的加密委託口令,驗證用戶輸入的委託口令是否正確。如果錯誤,則直接退出。
步驟S240,可信硬體200校驗委託的委託摘要(DelDigest)值,發現委託不合法,則直接退出。可信硬體200校驗委託的密鑰摘要(KeyDigest)值,發現與傳入的密鑰不一致,則直接退出。可信硬體200檢查對應的計數器,如果該計數器的Enabled欄位的值為0,則直接退出。可信硬體檢查對應計數器的校驗值(VerificationNumber),如果與委託不一致,則直接退出。可信硬體校驗希望執行的操作是否在委託的委託信息(DelegationInfo)指定的範圍內。如果錯誤,則直接退出。
步驟S250,在希望的操作在委託的委託信息指定的範圍內時,執行該操作。
C)委託方(即密鑰的所有者)進行權限撤回的過程步驟S310,委託方從委託表中選擇需要撤銷的權限委託,連同對應的密鑰以及密鑰的訪問口令一起傳送給可信硬體。
步驟S320和S330,可信硬體利用根密鑰解密密鑰的隱秘信息,提取其中的密鑰訪問口令,驗證用戶輸入的訪問口令是否正確。錯誤則直接退出。
步驟S340,可信硬體檢查委託摘要(DelDigest),判斷該委託是否被竄改。不一致則退出。可信硬體檢查密鑰摘要(KeyDigest),判斷是否與提交的密鑰對應。不一致則退出。然後,檢查對應計數器的Enabled和Locked欄位。如果Enabled為0(不可用),則直接退出,不然,如果Locked為1,則退出。
步驟S350,可信硬體修改對應計數器的校驗值(verificationNumber,該值只能增加,不能減小,以確保不會出現重複的值),返回給上層軟體允許刪除該權限委託的指令。
步驟S360,上層軟體刪除對應的委託信息。需要注意的是密鑰的所有者不負責更新其它密鑰的委託的計數器值。對於一個計數器關聯了多個委託的情形,可信硬體所有者制定策略,鎖止計數器,不允許單個委託的撤回。
此外,需要指出,可以允許可信硬體所有者執行權限撤回操作,但該操作必須是針對策略組執行。圖5示出了在這種情況下撤回權限委託的過程。
C』)可信硬體所有者進行權限撤回的過程步驟S410,所有者選擇要執行撤回的策略組,連同所有者口令一起傳送給可信硬體。
步驟S420和S430,可信硬體驗證用戶輸入的所有者訪問口令是否正確。錯誤則直接退出。
步驟S440和S450,可信硬體檢查策略組的摘要,判斷該策略組是否被竄改。不一致則退出。
步驟S460,修改對應計數器的Locked欄位為0;修改對應計數器的校驗值(verificationNumber,該值只能增加,不能減小,以確保不會出現重複的值),並返回給上層軟體允許刪除該權限委託的指令。
步驟S470,上層軟體從委託表中刪除該策略組關聯的所有委託。
D)可信硬體所有者設定委託策略組的過程(以新建一個委託策略組為例)步驟S510,可信硬體所有者設定一個委託策略,比如「2006年1月1日收回委託」,為該策略創建一個關聯的策略組,包括設置有效的計數器標識符(CounterID)、標記(Label)以及描述(Description)等,連同根密鑰的訪問口令一起傳送給可信硬體200。
步驟S520和S530,可信硬體首先鑑定所有者身份,即檢查根密鑰的訪問口令。錯誤則直接退出。
步驟S540建立對應的計數器,根據策略設定Locked值,然後把數據存入計數器表中。
步驟S550,把結果返回軟體平臺,軟體平臺更新策略組表。
此外,修改以及刪除一條策略組信息的過程與上述的過程類似,因此不再詳細說明。
需要指出的是,策略可以是由上層應用自由指定的。比如,一個策略組的描述可以是「在周末晚上8點撤回改組所有委託」,而另一個策略組的描述可以是「該組委託可由委託方在任何時候撤回」。
此外,計數器表以及策略組表的條目數量是受可信硬體的存儲空間限制的。
例子
下面給出一個本發明的方法的實例,其中使用了基於可信計算平臺的電子籤章系統。
在該實例中,可信硬體採用TPM晶片,軟體平臺採用TSS軟體,而上層應用是籤章系統。
此外,根密鑰是2048位的RSA公鑰,而密鑰是2048位的RSA公鑰,且憑證數據是20位元組的隨機數。
一個電子籤章和一個TPM晶片產生的密鑰所對應。撇開電子籤章的其它部分不談,籤章最後的籤名事實上就是在TPM晶片內部利用密鑰的私鑰對公文的一個雜湊值進行籤名並返回給用戶。
一個完整的電子籤章系統是一臺PC,PC中至少包含了TPM晶片、TSS軟體以及籤章系統。只有在該PC上,用戶輸入密鑰的訪問口令,才可以使用該密鑰進行籤名,即利用電子籤章對公文蓋章。
假設用戶A是密鑰A的所有者,即籤章A的所有者。當用戶A因為本周要出差而希望把用籤章A進行蓋章的權限轉交給用戶B的時候,他需要進行如下操作假設用戶A就是TPM晶片的所有者,即平臺的管理員,則他首先要設定委託策略。不妨為如下兩組策略策略一,委託方隨時可收回該委託;策略二,周一收回委託。
隨後,用戶A設定委託Da,指定委託口令,並指明僅僅委託密鑰A的籤名功能,然後把Da與策略一關聯。
用戶A離開後,用戶B可以使用A設定的委託口令(委託口令可以通過其它途徑傳遞,比如親口告之)使用籤章A進行蓋章。但是用戶B不能修改委託、不能修改委託口令以及密鑰A的訪問口令。
用戶A回來之後,可以執行「委託撤回」過程,收回委託。用戶B無法再使用。
以上所述,僅為本發明中的具體實施方式
,但本發明的保護範圍並不局限於此,任何熟悉該技術的人在本發明所披露的技術範圍內,可輕易想到的變換或替換,都應涵蓋在本發明的包含範圍之內。因此,本發明的保護範圍應該以權利要求
書的保護範圍為準。
權利要求
1.一種基於可信計算平臺的、委託由密鑰表示的權限的方法,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信硬體存儲有憑證數據、根密鑰和具有至少一個計數器的計數器表,所述軟體協議棧中存儲有具有至少一個密鑰的密鑰表和具有至少一項委託的委託表,所述方法包括步驟將至少一項委託和相應的密鑰、委託口令以及密鑰的訪問口令輸入到可信硬體;可信硬體利用根密鑰解密密鑰,提取密鑰訪問口令,以驗證輸入的訪問口令是否正確;在輸入的訪問口令正確的情況下,將委託和密鑰相關聯;用根密鑰加密委託口令,並填入委託中,利用憑證數據計算完整性值並填入委託中,產生授權的委託;將授權的委託返回給軟體協議棧,以填入委託信息表中。
2.如權利要求
1所述的方法,其特徵在於,所述將委託和密鑰相關聯的步驟包括可信硬體讀取計數器表中與該密鑰相對應的計數器的校驗值,填入委託的對應欄位,並計算當前密鑰的雜湊值,填入委託的密鑰摘要欄位。
3.如權利要求
1所述的方法,其特徵在於,所述軟體協議棧還存儲有具有至少一組策略的策略組表,所述方法還包括策略設定步驟可信硬體所有者為一委託策略創建一個策略組,包括設置有效的計數器標識符、標記以及描述,連同根密鑰的訪問口令一起傳送給可信硬體;可信硬體檢查根密鑰的訪問口令;在根密鑰的訪問口令正確的情況下,在計數器表中建立對應的計數器,根據策略設定計數器的狀態;將該計數器的信息返回軟體協議棧,以更新策略組表。
4.如權利要求
1所述的方法,其特徵在於,還包括步驟被委託方將授權的委託、密鑰、相應的操作和委託口令輸入到可信硬體內;可信硬體驗證委託口令是否正確和相應的操作是否在委託範圍之內;在驗證成功的情況下,被委託方執行該操作。
5.如權利要求
4所述的方法,其特徵在於,通過用根密鑰解密委託來驗證委託口令是否正確。
6.如權利要求
4所述的方法,其特徵在於,可信硬體校驗委託的委託摘要、密鑰摘要。
7.如權利要求
6所述的方法,其特徵在於,可信硬體檢查與該密鑰相對應的計數器的狀態和校驗值。
8.如權利要求
1所述的方法,其特徵在於,所述完整性值是HMAC值。
9.如權利要求
2或3所述的方法,其特徵在於,所述根密鑰是RSA密鑰對。
10.如權利要求
2或3所述的方法,其特徵在於,所述密鑰是RSA密鑰對。
11.一種基於可信計算平臺的撤銷授權委託的方法,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信硬體存儲有根密鑰和具有至少一個計數器的計數器表,所述軟體協議棧中存儲有具有至少一個密鑰的密鑰表和具有至少一項委託的委託表,所述方法包括步驟從委託表中選擇待撤銷的委託,與相應的密鑰和密鑰的所有者口令輸入到可信硬體;在可信硬體內通過用根密鑰解密所述密鑰來驗證所有者口令;在驗證成功的情況下,檢查委託信息的完整性以及委託信息與密鑰是否匹配;在檢查結果是肯定的情況下,可信硬體修改計數器值;在軟體協議棧刪除所述委託表中的該委託。
12.一種基於可信計算平臺的撤銷授權委託的方法,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信計算平臺包括可信硬體和處於該可信硬體上的軟體協議棧,所述可信硬體存儲有根密鑰和具有至少一個計數器的計數器表,所述軟體協議棧中存儲有具有至少一個密鑰的密鑰表、具有至少一項委託的委託表和具有至少一組策略的策略組表,所述方法包括步驟可信硬體所有者從策略組表中選擇要撤回的策略組,連同所有者口令一起傳送給可信硬體;可信硬體驗證用戶輸入的所有者訪問口令是否正確;在驗證成功的情況下,檢查委託信息的完整性以及委託信息與密鑰是否匹配;在檢查結果是肯定的情況下,可信硬體修改計數器值;在軟體協議棧刪除所述委託表中的該委託。
專利摘要
公開了一種基於可信計算平臺的、委託由密鑰表示的權限的方法,可信計算平臺包括可信硬體和軟體協議棧,可信硬體存儲有憑證數據、根密鑰和具有至少一個計數器的計數器表,軟體協議棧中存儲有具有至少一個密鑰的密鑰表和具有至少一項委託的委託表,該方法包括將至少一項委託和相應的密鑰、委託口令以及密鑰的訪問口令輸入到可信硬體;可信硬體利用根密鑰解密密鑰,提取密鑰訪問口令,以驗證輸入的訪問口令是否正確;在輸入的訪問口令正確的情況下,將委託和密鑰相關聯;用根密鑰加密委託口令,並填入委託中,利用憑證數據計算完整性值並填入委託中,產生授權的委託;將授權的委託返回給軟體協議棧,以填入委託信息表中。
文檔編號H04L9/08GK1992714SQ200510135576
公開日2007年7月4日 申請日期2005年12月29日
發明者馮榮峰, 王凱, 郭軼尊, 李俊 申請人:聯想(北京)有限公司導出引文BiBTeX, EndNote, RefMan