專利名稱:一種基于可信平臺模塊的授權方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信技術領域,具體涉及一種基于可信平臺模塊的授權方法和系統(tǒng)。
背景技術:
Android操作系統(tǒng)的開源特性使其在嵌入式領域應用廣泛,隨之而來的安全問題也日益凸顯。在Android設備中加入可信平臺模塊(Trusted Computing Group PlatformModule,簡稱TPM)安全硬件,將其應用程序融入可信計算體系,是一種行之有效的安全解決方案。TPM安全硬件的功能是經過可信計算組織軟件堆棧(Trusted ComputingGroup Software Stack,簡稱TSS)封裝并向上層提供應用程序編程接口(ApplicationProgramming Interface,簡稱API),應用程序調用TSS API使用TPM功能。所有涉及密鑰操作的TPM指令都需要TSS與TPM間通過特定對象認證協(xié)議(Object SpecificAuthorization Protocol,簡稱 0SAP),或者對象獨立認證協(xié)議(0bject-1ndependentAuthorization Protocol,簡稱 0IAP),或者代理特定對象認證協(xié)議(Delegate SpecificAuthorization Protocol,簡稱 DSAP)協(xié)議進行口令認證。在工程實現(xiàn)中,目前實現(xiàn)TPM 口令授權方法主要有:
1.把TPM 口令寫在TSS源代碼中,寫入之后無法二次更改。在對此方法的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),這種方法雖然簡單,易實現(xiàn),但是應用程序可隨意使用該口令對應的全部TPM功能,無法對其進行權限管理。更有少數(shù)情況將口令寫在應用程序的源代碼里,這雖然可以針對某個應用程序授權,但是卻違背了 TPM 口令不能完全開放的前提。2.在應用程序每次需要使用TPM功能時,向使用者提示輸入相應口令。對于這種方法,應用程序不知道口令,口令完全由用戶控制,但是用戶體驗差,如果口令遺忘只有通過重置TPM來恢復,導致用戶資料的丟失。
發(fā)明內容
本發(fā)明實施例提供一種基于可信平臺模塊的授權方法和系統(tǒng),以期在不把TPM相關口令完全開放給應用程序的前提下,對應用程序進行授權。本發(fā)明實施例提供一種基于可信平臺模塊的授權方法,包括:終端中的管理模塊接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給服務器;終端中的應用模塊向所述服務器發(fā)送請求第一 TPM 口令的消息,使得所述服務器根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊;所述應用模塊將接收到的第二子口令傳遞給所述管理模塊;所述管理模塊根據(jù)所述第一子口令和所述第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。
進一步的,所述方法還包括,當所述應用模塊丟失所述第二子口令時,所述應用模塊從所述服務器獲取第三子口令,并將所述第三子口令傳遞給所述管理模塊;所述管理模塊根據(jù)接收到的第一子口令和第三子口令進行重構得到第三TPM 口令,并根據(jù)所述第一 TPM 口令對所述第三TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。進一步的,所述服務器通過加密信道將所述第一子口令發(fā)給所述管理模塊。其中,所述管理模塊具有根用戶權限;所述管理模塊和應用模塊所在的終端中裝載Linux內核開源操作系統(tǒng)。本發(fā)明實施例還提供一種基于可信平臺模塊的授權系統(tǒng),包括終端和服務器;所述終端中包括管理模塊和應用模塊;所述管理模塊用于接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給所述服務器;還用于根據(jù)從服務器處接收到的第一子口令和從所述應用模塊處接收到的第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權;所述應用模塊用于向所述服務器發(fā)送請求第一 TPM 口令的消息;還用于接收所述服務器發(fā)送的第二子口令,并將所述第二子口令傳遞給所述管理模塊;所述服務器用于根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊。本發(fā)明實施例采用將第一 TPM 口令交由服務器存儲,并由服務器對該第一 TPM 口令進行分解,并將分解得到的部分子口令分別分發(fā)給終端的管理模塊和應用模塊,并且應用模塊將得到的子口令傳遞給管理模塊,最后管理模塊由得到的所有子口令進行重構,然后與第一 TPM 口令進行對比認證,若認證通過,則對應用模塊進行TPM授權,由此可見,本發(fā)明提供的授權方法使得用戶在首次輸入TPM 口令之后,無需記住TPM 口令,口令由服務器統(tǒng)一管理、分解和分發(fā),同時應用模塊因無法得到全部口令而被限制了權限,提高了安全性。
圖1是本發(fā)明實施例提供的基于可信平臺模塊的授權方法流程示意圖;圖2是本發(fā)明實施例提供的另一種基于可信平臺模塊的授權方法示意圖;圖3是本發(fā)明實施例提供的一種基于可信平臺模塊的授權系統(tǒng)結構示意圖;圖4是本發(fā)明實施例提供的另一種基于可信平臺模塊的授權系統(tǒng)結構示意圖。
具體實施例方式本發(fā)明實施例提供一種基于可信平臺模塊的授權方法和系統(tǒng),以期在不把TPM相關口令完全開放給應用程序的前提下,對應用程序進行授權。為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供一種基于可信平臺模塊的授權方法,包括:終端中的管理模塊接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給服務器;終端中的應用模塊向所述服務器發(fā)送請求第一 TPM 口令的消息,使得所述服務器根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊;所述應用模塊將接收到的第二子口令傳遞給所述管理模塊;所述管理模塊根據(jù)所述第一子口令和所述第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。需要說明的是,本發(fā)明實施例中所說的授權,是指授權應用模塊對TPM功能的使用;本發(fā)明實施例提供的基于可信平臺模塊的授權方法采用秘密共享機制對TPM 口令(即上文的第一 TPM 口令)進行管理,即用戶在首次使用時輸入TPM 口令,然后由服務器對TPM 口令進行存儲、分解和分發(fā);最后由終端中的管理模塊對接收到的子口令進行重構,例如利用多項式插值公式完成重構;本發(fā)明提供的授權方法適用于裝載Linux內核開源操作系統(tǒng)的終端,如裝載Android操作系統(tǒng)的終端。由上可見,本發(fā)明實施例采用將第一 TPM 口令交由服務器存儲,并由服務器對該第一 TPM 口令進行分解,并將分解得到的部分子口令分別分發(fā)給終端的管理模塊和應用模塊,并且應用模塊將得到的子口令傳遞給管理模塊,最后管理模塊由得到的子口令進行重構,然后與第一 TPM 口令進行對比認證,若認證通過,則對應用模塊進行TPM授權,由此可見,本發(fā)明提供的授權方法使得用戶在首次輸入TPM 口令之后,無需記住TPM 口令,口令由服務器統(tǒng)一管理、分解和分發(fā),同時應用模塊因無法得到全部口令而被限制了權限,提高了安全性。本發(fā)明實施例還提供另一種基于可信平臺模塊的授權方法,參見圖1所示,包括:S101、終端中的管理模塊接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給服務器;其中,第一 TPM 口令由用戶首次使用時輸入。S102、終端中的應用模塊向所述服務器發(fā)送請求第一 TPM 口令的消息,使得所述服務器根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊;S103、所述應用模塊將接收到的第二子口令傳遞給所述管理模塊;S104、所述管理模塊根據(jù)所述第一子口令和所述第二子口令進行重構得到第二TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。其中,第一 TPM 口令分解得到的第三子口令用于口令回復,即當所述應用模塊丟失所述第二子口令時,所述應用模塊從所述服務器獲取第三子口令,并將所述第三子口令傳遞給所述管理模塊;所述管理模塊根據(jù)接收到的第一子口令和第三子口令進行重構得到第三TPM 口令,并根據(jù)所述第一 TPM 口令對所述第三TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。
服務器通過加密信道將第一子口令發(fā)給管理模塊。
需要說明的是,在本發(fā)明實施例中,管理模塊具有根用戶權限,即Root權限。
進一步的,參見圖2所示,本發(fā)明實施例提供的基于可信平臺模塊的授權方法,具體包括以下步驟:
1、口令分解。
本發(fā)明實施例采用秘密共享機制,需要共享的秘密即為TPM 口令,首先服務器將TPM 口令分解成 3 份子口令,分別記為 TSS Share、Backup Share、APK Share。
2、口令分發(fā)。
在本發(fā)明實施例中,終端安裝管理TSS的APK,稱為可信計算組織軟件堆棧管理模塊(Trusted Computing Group Software Stack Management AndroidPackage,簡稱TMAPK)。服務器將子口令TSS Share分發(fā)給TMAPK,將子口令APK Share分發(fā)給應用ΑΡΚ,服務器端保存子口令Backup Share。其中,TSS Share通過加密信道傳輸;
TMAPK同時負責TPM的初始化工作,在終端用戶第一次使用TPM硬件時,需要輸入TPM 口令,TMAPK將該TPM 口令上傳至服務器端進行統(tǒng)一托管;
TPM 口令有多種,應用APK希望使用哪種口令需向服務器端申請,服務器端根據(jù)申請分解特定的口令給應用APK。
3、口令認證。
應用APK獲取APK Share后傳遞給TMAPK,TMAPK使用秘密共享機制Shamir重構口令,然后將重構結果與TPM 口令進行對比認證,并將認證結果返回給應用APK。
4、口令恢復。
當應用APK丟失了自己的APK Share時,要進行口令恢復,口令恢復主要有兩種方法,一種是服務器直接將Backup Share發(fā)給應用APK,以取代APK Share的作用,另一種方法是重復口令分發(fā)過程,重新獲得一個APK Share。
該方法無需用戶記住TPM 口令,口令由服務器同一管理、分解和分發(fā),同時應用APK因無法得到全部口令而被限制了權限。本方法特別適合需要管控的網(wǎng)絡結構,如使用IP協(xié)議傳輸視頻數(shù)據(jù)的電 視(Internet Protocol Television,簡稱IPTV)、互聯(lián)網(wǎng)電視等,即在IPTV或互聯(lián)網(wǎng)電視的管控系統(tǒng)中引入可信計算模塊,并利用管控中心解決TPM 口令授權問題。
由上可見,本發(fā)明實施例采用將TPM 口令交由服務器存儲,并由服務器對該TPM 口令進行分解,并將分解得到的部分子口令分別分發(fā)給終端的管理模塊和應用模塊,并且應用模塊將得到的子口令傳遞給管理模塊,最后管理模塊由得到的所有子口令進行重構,然后與TPM 口令進行對比認證,若認證通過,則對應用模塊進行TPM授權,由此可見,本發(fā)明提供的授權方法使得用戶在首次輸入TPM 口令之后,無需記住TPM 口令,口令由服務器統(tǒng)一管理、分解和分發(fā),同時應用模塊因無法得到全部口令而被限制了權限,提高了安全性。
本發(fā)明實施例還提供一種基于可信平臺模塊的授權系統(tǒng),包括終端和服務器;所述終端中包括管理模塊和應用模塊;
所述管理模塊用于接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給所述服務器;還用于根據(jù)從服務器處接收到的第一子口令和從所述應用模塊處接收到的第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權;
所述應用模塊用于向所述服務器發(fā)送請求第一 TPM 口令的消息;還用于接收所述服務器發(fā)送的第二子口令,并將所述第二子口令傳遞給所述管理模塊;
所述服務器用于根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊。
其中,應用模塊還用于當丟失所述第二子口令時,從所述服務器獲取第三子口令,并將所述第三子口令傳遞給所述管理模塊;所述管理模塊還用于根據(jù)接收到的第一子口令和第三子口令進行重構得到第三TPM 口令,并根據(jù)所述第一 TPM 口令對所述第三TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。
具體參見圖3所示,本發(fā)明實施例提供的一種基于可信平臺模塊的授權系統(tǒng)包括服務器200和終端300 ;終端300中包括管理模塊310和應用模塊320 ;
管理模塊310用于接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給服務器200 ;管理模塊310還用于根據(jù)從服務器200處接收到的第一子口令和從所述應用模塊320處接收到的第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM口令進行對比認證,若認證通過,則對應用模塊320進行TPM授權;
應用模塊320用于向服務器200發(fā)送請求第一 TPM 口令的消息,還用于接收服務器200發(fā)送的第二子口令,并將第二子口令傳遞給管理模塊310 ;
服務器200用于根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給管理模塊310和應用模塊320。
進一步的,服務器200通過加密信道將所述第一子口令發(fā)給管理模塊310。
本發(fā)明適用于裝載Linux內核開源操作系統(tǒng)的終端,如裝載Android操作系統(tǒng)的終端,本發(fā)明實施例中的管理模塊具有根用戶權限,即Root權限。
由上可見,本發(fā)明實施例提供的基于可信平臺模塊的授權系統(tǒng)中包括終端和服務器,該服務器負責TPM 口令的管理、分解和分發(fā),該終端根據(jù)得到的子口令進行重構,并將重構得到的結果與TPM 口令進行對比認證,若認證通過,則對終端中請求TPM 口令的應用模塊進行授權,由此可見,本發(fā)明提供的授權系統(tǒng)使得用戶在首次輸入TPM 口令之后,無需記住TPM 口令,口令由服務器統(tǒng)一管理、分解和分發(fā),同時應用模塊因無法得到全部口令而被限制了權限,提高了安全性。
進一步的,參見圖4提供的一種基于可信平臺模塊的授權系統(tǒng);該系統(tǒng)的終端可以為裝載Android操作系統(tǒng)的機頂盒,也可以是其它類型的電視盒子及一體機等。業(yè)務運營商開發(fā)應用APK之后,必須先交給管控中心審核,該管控中心同時是TPM 口令托管中心,管控中心為其應用APK分配APK Share,重新簽名后發(fā)布。終端下載應用APK后,在安裝前要先行驗證管控中心簽名,正確才會繼續(xù)安裝,同時由終端中的TMAPK向管控中心申請相應的TSS Share。安裝成功后應用APK即可使用TPM的相應功能。由此可見,在不完全開放TPM 口令給應用程序的情況下,也可實現(xiàn)TPM的自動化授權。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,RandomAccess Memory)、磁盤或光盤等。
同時,在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
以上對本發(fā)明實施例所提供的一種基于可信平臺模塊的授權方法和系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種基于可信平臺模塊的授權方法,其特征在于,包括: 終端中的管理模塊接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給服務器; 終端中的應用模塊向所述服務器發(fā)送請求第一 TPM 口令的消息,使得所述服務器根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊; 所述應用模塊將接收到的第二子口令傳遞給所述管理模塊; 所述管理模塊根據(jù)所述第一子口令和所述第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。
2.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括,當所述應用模塊丟失所述第二子口令時,所 述應用模塊從所述服務器獲取第三子口令,并將所述第三子口令傳遞給所述管理模塊; 所述管理模塊根據(jù)接收到的第一子口令和第三子口令進行重構得到第三TPM 口令,并根據(jù)所述第一 TPM 口令對所述第三TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。
3.根據(jù)權利要求2所述的方法,其特征在于,所述服務器通過加密信道將所述第一子口令發(fā)給所述管理模塊。
4.根據(jù)權利要求2所述的方法,其特征在于,所述管理模塊具有根用戶權限。
5.根據(jù)權利要求2所述的方法,其特征在于,所述管理模塊和應用模塊所在的終端中裝載Linux內核開源操作系統(tǒng)。
6.一種基于可信平臺模塊的授權系統(tǒng),其特征在于,包括終端和服務器;所述終端中包括管理模塊和應用模塊; 所述管理模塊用于接收第一 TPM 口令,并將所述第一 TPM 口令傳遞給所述服務器,還用于根據(jù)從服務器處接收到的第一子口令和從所述應用模塊處接收到的第二子口令進行重構得到第二 TPM 口令,并根據(jù)所述第一 TPM 口令對所述第二 TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權; 所述應用模塊用于向所述服務器發(fā)送請求第一 TPM 口令的消息,還用于接收所述服務器發(fā)送的第二子口令,并將所述第二子口令傳遞給所述管理模塊; 所述服務器用于根據(jù)所述消息將所述第一 TPM 口令分解成第一子口令、第二子口令和第三子口令,并將所述第一子口令、第二子口令分別發(fā)送給所述管理模塊和應用模塊。
7.根據(jù)權利要求6所述的授權系統(tǒng),其特征在于,所述應用模塊還用于當丟失所述第二子口令時,從所述服務器獲取第三子口令,并將所述第三子口令傳遞給所述管理模塊; 所述管理模塊還用于根據(jù)接收到的第一子口令和第三子口令進行重構得到第三TPM口令,并根據(jù)所述第一 TPM 口令對所述第三TPM 口令進行對比認證,若認證通過,則對所述應用模塊進行TPM授權。
8.根據(jù)權利要求7所述的授權系統(tǒng),其特征在于,所述服務器通過加密信道將所述第一子口令發(fā)給所述管理模塊。
9.根據(jù)權利要求7所述的授權系統(tǒng),其特征在于,所述管理模塊具有根用戶權限。
10.根據(jù)權利要求7所述的授權系統(tǒng),其特征在于,所述管理模塊和應用模塊所在的終端中裝載Linux內核開源操作系統(tǒng)。
全文摘要
本發(fā)明公開了一種基于可信平臺模塊的授權方法和系統(tǒng),該方法采用將第一TPM口令交由服務器存儲,并由服務器對該第一TPM口令進行分解,并將分解得到的部分子口令分別分發(fā)給終端的管理模塊和應用模塊,并且應用模塊將得到的子口令傳遞給管理模塊,最后管理模塊由得到的子口令進行重構,然后與第一TPM口令進行對比認證,若認證通過,則對應用模塊進行TPM授權,由此可見,本發(fā)明提供的授權方法使得用戶在首次輸入TPM口令之后,無需記住TPM口令,口令由服務器統(tǒng)一管理、分解和分發(fā),同時應用模塊因無法得到全部口令而被限制了權限,提高了安全性。
文檔編號G06F21/30GK103218553SQ20131007390
公開日2013年7月24日 申請日期2013年3月8日 優(yōu)先權日2013年3月8日
發(fā)明者孫卓, 李新國, 余小龍, 桂豐, 肖文濤, 趙寶龍 申請人:深圳數(shù)字電視國家工程實驗室股份有限公司