• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Duplication Authority 的TPM2.0 密鑰遷移協(xié)議?

    2019-10-28 11:21:34,
    軟件學(xué)報 2019年8期
    關(guān)鍵詞:解密密鑰加密

    譚 良 , 宋 敏

    1(四川師范大學(xué) 計算機(jī)科學(xué)學(xué)院,四川 成都 610101)

    2(中國科學(xué)院 計算技術(shù)研究所,北京 100190)

    可信計算技術(shù)的基本思想是:在通用計算平臺上嵌入一個防篡改的硬件可信安全芯片,利用芯片的安全特性保證系統(tǒng)按照預(yù)期的行為執(zhí)行,從根本上提高終端的安全性[1].TPM(trusted platform module)[2]是國際廣泛使用的是符合可信平臺模塊標(biāo)準(zhǔn)的安全芯片,具有密碼學(xué)功能和受保護(hù)的存儲空間,能夠為可信計算平臺提供密鑰管理、平臺數(shù)據(jù)保護(hù)、完整性存儲與報告、身份標(biāo)識等功能[2?4].

    密鑰管理是TPM 非常重要的功能,它是TPM 能夠有效地提供其他各項功能的前提和基礎(chǔ).為了滿足密鑰的安全存儲、分發(fā)和備份,TPM 采用層次型的存儲保護(hù)體系,并提供密鑰遷移(復(fù)制)接口.TPM1.1[5]規(guī)范中定義的密鑰遷移接口是TPM_AuthorizeMigrationKey,TPM_CreateMigratedBlob和TPM_convertMigratedBlob等;TPM1.2[6]規(guī)范定義的密鑰遷移接口是TPM_AuthorizeMigratinKey(),TPM_CMK_ApproveMA(),TPM_CMK_CreateKey(),TPM_CMK_CreateTicket(),TPM_CMK_CreateBlob()和TPM_CMK_ConvertMigration()等;TPM2.0[7]規(guī)范定義的密鑰復(fù)制接口是TPM2_Duplicate()和TPM2_Import().通常,用戶或上層應(yīng)用可以通過以上接口設(shè)計密鑰遷移協(xié)議,將源TPM 中的密鑰遷移到目的TPM 中,以實現(xiàn)TPM 芯片間密鑰的共享.為了保證整個遷移過程的安全,需要提供機(jī)密性、完整性和認(rèn)證性.

    然而,TPM2.0 的密鑰遷移協(xié)議設(shè)計會更加復(fù)雜.一方面,由于TPM2.0 已支持對稱密鑰對象,使得在設(shè)計密鑰遷移協(xié)議時需要考慮更多的遷移組合.因為遷移密鑰既可以是對稱密鑰也可以是非對稱密鑰,而新父密鑰也可以是對稱密鑰或非對稱密鑰,不同的遷移需求組合在協(xié)議設(shè)計過程中需要進(jìn)行不同的設(shè)計.另一方面,TPM2.0是通過遷移密鑰對象的復(fù)制屬性(fixedTPM,fixedParen,encryptedDuplication)和新父密鑰的newParentHandle類型來決定遷移方式和遷移過程.不同的組合,其遷移方式和遷移過程是不同的,特別是在密鑰復(fù)制過程中是否進(jìn)行innerwrap和outerwrap,是保證密鑰遷移的機(jī)密性、完整性和認(rèn)證性的關(guān)鍵.通過進(jìn)一步研究發(fā)現(xiàn),基于密鑰復(fù)制接口的密鑰遷移協(xié)議至少存在3 個問題:一是缺少交互雙方TPM 的相互認(rèn)證,會導(dǎo)致密鑰能夠在敵手和TPM 間遷移;二是當(dāng)遷移密鑰的屬性encryptedDuplication=0 且新父密鑰的句柄newParentHandle=TPM_RH_NULL時,復(fù)制接口不能實施innerwrap和outerwrap,遷移密鑰將以明文傳輸而造成泄露;三是當(dāng)新父密鑰是對稱密鑰時,innerwrap中的對稱加密密鑰以及outerwrap中的密鑰種子如何在源TPM 與目標(biāo)TPM 之間安全交換,《TPM-Rev-2.0-Part-1-Architecture-01.38》并沒有給出具體的解決辦法.

    為此,本文提出了基于Duplication Authority 的密鑰遷移協(xié)議.該協(xié)議以Duplication Authority 為認(rèn)證和控制中心,通過判定遷移密鑰的復(fù)制屬性、新父密鑰的密鑰類型和句柄類型來決定遷移流程.最后,對該協(xié)議進(jìn)行了安全分析和實驗驗證.

    本文第1 節(jié)簡介TPM 密鑰遷移的相關(guān)背景知識.第2 節(jié)介紹現(xiàn)有的TPM 密鑰遷移協(xié)議并指出其存在的問題.第3 節(jié)詳述本文提出的基于Duplication Authority 的密鑰遷移協(xié)議.第4 節(jié)對提出的協(xié)議進(jìn)行分析.第5 節(jié)是實驗驗證和性能對比分析.第6 節(jié)介紹可信安全芯片密鑰遷移的相關(guān)研究工作.第7 節(jié)總結(jié)全文.

    1 背景知識

    本節(jié)從TPM 2.0 的密鑰類型和結(jié)構(gòu)、密鑰對象管理保護(hù)體系、密鑰遷移類接口這3 個方面介紹本文的背景知識.

    1.1 TPM2.0的密鑰類型和結(jié)構(gòu)

    相比于TPM1.2,TPM2.0 的密鑰類型和結(jié)構(gòu)發(fā)生了較大的變化.下面我們對此進(jìn)行詳細(xì)的介紹.

    1.1.1 TPM2.0 的密鑰類型

    1.按照密鑰功能組合分類

    TPM2.0 中密鑰對象的基本屬性包括:

    · Restricted Attribute:專用屬性,表明該密鑰只能對特定對象進(jìn)行操作.

    · Sign Attribute:簽名屬性,表明該密鑰對象是否可以用于簽名.

    · Decrypt Attribute:機(jī)密屬性,表明該對象是否可以用于加解密.

    根據(jù)以上3 個屬性,TPM2.0 將密鑰對象分為8 類,見表1.

    這8 類密鑰與TPM1.2 中7 種類型密鑰(簽注密鑰(endorsement key,簡稱EK)、存儲密鑰(storage key,簡稱SK)、身份認(rèn)證密鑰(attestation identity key,簡稱AIK)、簽名密鑰(signing key)、綁定密鑰(binding key)、繼承密鑰(legacy key)和驗證密鑰(authentication keys))的對應(yīng)關(guān)系見表2.

    Table 2 Key type correspondence between TPM1.2 and TPM2.0表2 TPM1.2 與TPM2.0 的密鑰類型對應(yīng)關(guān)系

    由此可見,TPM2.0 的密鑰類型更精確,其中,對應(yīng)于TPM1.2 中的TPM_KEY_SIGNING,TPM_KEY_IDENTITY這兩類密鑰功能略有增加.

    2.按照密鑰復(fù)制屬性分類

    TPM2.0 中,密鑰對象除了基本屬性外,還包括一些其他屬性,如fixedTPM和fixedParent,stclear,sensitiveDataOrigin,userWithAuth,adminWithPolicy,noDA和encryptedDuplication.根據(jù)fixedTPM和fixedParent的屬性組合,可以將密鑰對象分為可復(fù)制密鑰和不可復(fù)制密鑰.如表3 所示.本文所指的可復(fù)制密鑰,就是指fixedTPM=0 和fixedParent=0 的密鑰.

    Table 3 Key classification for duplication表3 密鑰可復(fù)制分類表

    1.1.2 TPM2.0 的密鑰結(jié)構(gòu)

    TPM2.0 中,密鑰對象的基本結(jié)構(gòu)包括3 個域:PublicArea,SensitiveArea或PrivateArea,對TPM2.0 內(nèi)部的任意密鑰k,表示為k=(PublicArea,SensitiveArea);外部的任意密鑰,通常表示為k=(PublicArea,PrivateArea),其中,

    ·PublicArea

    1)type:密鑰類型.

    2)nameAlg:此密鑰支持的密碼算法.

    3)objectAttributes:密鑰屬性,包括功能(Sign,Decrypt和Restricted)、授權(quán)(userWithAuth,adminWithPolicy和noDA)、復(fù)制(fixedTPM,fixedParent和encryptedDuplication)、生成方式(sensitiveDataOrigin)以及重置(stclear).

    4)authPolicy:授權(quán)策略.

    5)parameters:此類密碼算法的參數(shù).

    6)unique:非對稱密鑰此項代表公鑰;對稱密鑰此項代表其SensitiveArea的摘要值.

    ·SensitiveArea

    1)sensitiveType:敏感數(shù)據(jù)類型.

    2)authValue:授權(quán)值.

    3)seedValue:對于對稱的和非對稱的存儲密鑰,由該值產(chǎn)生保護(hù)child 對象的密鑰.對于非對稱密鑰的非存儲密鑰當(dāng)前無用.對于其他對象,該值與sensitive一起HASH 產(chǎn)生unique摘要值.

    4)sensitive:敏感參數(shù)值.對于非對稱密鑰,此值表示私鑰:對于對稱密鑰,此值就是key;對于消息碼,此值就是key;對于數(shù)據(jù)對象,此值就是敏感數(shù)據(jù).

    ·PrivateArea

    1)encyptedsensitivearea:此密文是由父密鑰的seedValue產(chǎn)生的key對sensitivearea加密的值.

    2) HMAC 消息碼:此消息碼是由父密鑰的seedValue產(chǎn)生的key對sensitivearea進(jìn)行HMAC 的值.

    1.2 TPM2.0密鑰對象管理存儲保護(hù)體系

    TPM2.0 可通過TPM2_CreatePrimary,TPM2_Create和TPM2_CreateLoaded生成種子密鑰對象、普通密鑰對象和派生密鑰對象,所有的密鑰對象形成一棵密鑰樹,其中,種子密鑰對象一般作為根密鑰保護(hù)所在層次的子密鑰,如圖1 所示.在此密鑰樹中,TPM2.0 將密鑰對象分為可復(fù)制密鑰對象、可跟隨父密鑰復(fù)制密鑰對象以及不可復(fù)制密鑰對象.不可復(fù)制密鑰對象只能與原TPM 芯片綁定,不能被復(fù)制;而可復(fù)制密鑰對象可以復(fù)制到其他TPM 中使用,而可跟隨父密鑰復(fù)制密鑰對象的存在使得在密鑰樹中一次能復(fù)制一棵子樹,比TPM1.2 中的密鑰遷移更靈活,效率更高.

    Fig.1 TPM2.0 key protect tree圖1 TPM2.0 的密鑰樹

    在 TPM2.0 密鑰樹中,存儲父密鑰采用對稱加密方法保護(hù)孩子密鑰,加密密鑰由父密鑰的密鑰種子seedValue產(chǎn)生,加密算法由父密鑰的nameAlg指定.這一點與TPM1.2 中用非對稱密鑰的私鑰對孩子的私鑰進(jìn)行加密保護(hù)不同,因此在TPM2.0 的密鑰樹中,無論是對稱密鑰還是非對稱密鑰,只要是存儲密鑰,都可以作為父節(jié)點.如圖2 所示.

    Fig.2 Key hierarchy protection model of TPM2.0圖2 TPM2.0 的密鑰層次保護(hù)模型

    1.3 TPM2.0密鑰對象復(fù)制接口

    TPM2.0 完整的密鑰復(fù)制流程是將源TPM 的密鑰對象復(fù)制到目標(biāo)TPM,因此,密鑰復(fù)制應(yīng)該包括兩個接口:

    其一是復(fù)制數(shù)據(jù)的生成;其二是復(fù)制數(shù)據(jù)的加載.

    · 接口1:復(fù)制數(shù)據(jù)生成接口:

    其中,objectHandle為復(fù)制密鑰的句柄;newParentHandle是新父密鑰句柄;encryptionKeyIn是innerwrap加密密鑰,該密鑰或由caller 傳入,或是由TPM 產(chǎn)生;symmetricAlg是對稱加密算法.該函數(shù)執(zhí)行后返回3 個值:其一是encryptionKeyOut,encryptionKeyOut返回的是由TPM 產(chǎn)生的內(nèi)部加密密鑰,如果TPM 沒產(chǎn)生內(nèi)部加密密鑰,該值返回null;其二是duplicate,duplicate是復(fù)制數(shù)據(jù),封裝了被復(fù)制密鑰的Sensitive Area;最后是outSymSeed,outSymSeed是outerwrap的密鑰種子,由它可以產(chǎn)生外部對稱加密的密鑰.

    該接口的執(zhí)行過程如下.

    (1) 檢查遷移密鑰的屬性fixedTPM和fixedParent:如果設(shè)置不是(0,0),就結(jié)束復(fù)制過程.

    (2) 檢查遷移密鑰的屬性encryptedDuplication:

    取各組大鼠右側(cè)踝關(guān)節(jié)組織適量,經(jīng)4%多聚甲醛溶液中固定2 d、EDTA脫鈣液中脫鈣10 d后,用大量水清洗,經(jīng)乙醇(體積分?jǐn)?shù)分別為80%、95%、100%)梯度脫水、石蠟包埋、切片(厚度5 μm)后,行HE染色,以中性樹膠封片,置于光學(xué)顯微鏡下觀察大鼠踝關(guān)節(jié)組織病變情況。

    ? 如果設(shè)置為1,則判斷newParentHandle是否為TPM_RH_NULL:如果為TPM_RH_NULL,則結(jié)束復(fù)制過程;否則,轉(zhuǎn)到步驟(3);

    ? 如果設(shè)置為0,則轉(zhuǎn)到步驟(4).

    (3) 執(zhí)行innerwrap,用encrptionKeyIn對復(fù)制密鑰的sensitiveArea進(jìn)行加密,生成encSensitive.

    (4) 執(zhí)行outerwrap,用密鑰種子seed生成加密密鑰和HMAC 密鑰,對encSensitive進(jìn)行加密和HAMC 運(yùn)算,得到dupSensitive和outerHMAC.

    · 接口2:復(fù)制數(shù)據(jù)導(dǎo)入接口:

    其中,newparentHandle是新父密鑰句柄;encryptionKey是源TPM 內(nèi)的innerwrap密鑰,其值由TPM2_Duplicate的返回值encryptionKeyOut提供;duplicate是復(fù)制數(shù)據(jù),此值由TPM2_Duplicate的返回值duplicate提供;inSymSeed是源TPM 內(nèi)的outerwrap密鑰種子,此值由TPM2_Duplicate的返回值outSymSeed提供.

    該接口的執(zhí)行過程如下:

    (1) 檢查復(fù)制密鑰的屬性fixedTPM和fixedParent:如果設(shè)置不是(0,0),就結(jié)束導(dǎo)入過程.

    (2) 檢查新父密鑰是否為存儲密鑰:如不是,結(jié)束導(dǎo)入過程.

    (3) 檢查innerwrap的加密密鑰encryptionKey是否正確:如果不正確,結(jié)束導(dǎo)入過程.

    (4) 檢查outerwrap的密鑰種子inSymSeed是否正確:如果不正確,結(jié)束導(dǎo)入過程.

    (5) 由inSymSeed和newparentHandle恢復(fù)出源TPM 的outerwrap的HAMC 密鑰,通過outerHAMC驗證dupsensitive及其name的真實性和完整性;然后再恢復(fù)出outerwrap的對稱密鑰,對dupsensitive解密得到encsensitive.

    (6) 用encryptionKey對encsensitive進(jìn)行解密,得到被復(fù)制密鑰的sensitive;并對sensitive及其name進(jìn)行完整性校驗.

    通過對TPM2_Duplication接口和TPM2_Import接口的分析可知:采用TPM2.0 的密鑰復(fù)制接口來設(shè)計密鑰遷移協(xié)議,需要將新父密鑰從目標(biāo)TPM 傳遞到源TPM,源TPM 調(diào)用TPM2_Duplication接口得到被遷移密鑰的復(fù)制數(shù)據(jù),目標(biāo)TPM 調(diào)用TPM2_Import將復(fù)制數(shù)據(jù)載入.基本的流程如下.

    (1) 目標(biāo)TPM 將新父密鑰傳遞給源TPM.

    (2) 源 TPM 調(diào)用TPM2_Duplication接口,根據(jù)遷移密鑰的復(fù)制屬性(fixedTPM,fixedParen,encryptedDuplication)和新父密鑰的newParentHandle類型實施innerwrap和outerwrap,得復(fù)制數(shù)據(jù).

    (3) 將復(fù)制數(shù)據(jù)傳遞給目標(biāo)TPM,目標(biāo)TPM 調(diào)用TPM2_Import將被遷移密鑰加載到新父密鑰下.

    1.4 innerwrap和outerwrap過程

    由第1.3 節(jié)可以看出,在利用TPM2_Duplication接口和TPM2_Import接口進(jìn)行密鑰遷移時,復(fù)制過程的安全性不僅依賴innnerwrap,而且依賴outerwrap.下面我們對innnerwrap和outerwrap進(jìn)行分析.

    1.4.1innerwrap過程

    通過對《TPM-Rev-2.0-Part-1-Architecture-01.38》和《TPM-Rev-2.0-Part-3-Commands-01.38-code》分析發(fā)現(xiàn),密鑰復(fù)制過程中是否進(jìn)行innerwrap是由遷移密鑰的屬性encryptedDuplication和新父密鑰的密鑰句柄類型決定,只有當(dāng)encryptedDuplication=1 且newParentHandle!=TPM_RH_NULL時,innerwrap才能發(fā)生.innerwrap過程中需要的對稱加密密鑰由caller 決定,caller 可以選擇輸入,也可以選擇由TPM 自行產(chǎn)生.

    innerwrap可以在復(fù)制過程中為遷移密鑰提供完整性和機(jī)密性,包括兩個步驟:首先是用復(fù)制密鑰的Hash算法計算復(fù)制密鑰sensitive和name的哈希值innerIntegrity,保證復(fù)制密鑰的完整性;然后,用某對稱加密算法的CBF 模式對innerIntegrity||sensitive進(jìn)行加密,得到encSensitive,其中,需要的對稱加密算法和密鑰由caller 將其作為參數(shù)傳入TPM2_Duplication.

    從以上過程可以看出,源TPM 要完成innerwrap,需要確保加密密鑰安全地傳遞到目的TPM.因此,如何將此加密密鑰安全地傳遞到目的TPM,是需要考慮的重要問題.需要考慮如下3 種情況.

    (1) 如果新父密鑰是非對稱密鑰,無論遷移密鑰是對稱密鑰還是非對稱密鑰,innerwrap中需要的對稱加密密鑰可以由源TPM 產(chǎn)生或由caller 輸入,且可以采用《TPM-Rev-2.0-Part-1-Architecture-01.38》中B.10.3 或C.6.3 中規(guī)定的算法進(jìn)行保護(hù)交換.

    (2) 如果新父密鑰是對稱密鑰,而復(fù)制密鑰是非對稱密鑰,則innerwrap中需要的對稱加密密鑰可以由目的TPM 產(chǎn)生,且可以采用《TPM-Rev-2.0-Part-1-Architec-ture-01.38》中B.10.3 或C.6.3 中規(guī)定的算法進(jìn)行保護(hù)交換.

    (3) 如果新父密鑰是對稱密鑰,而遷移密鑰也是對稱密鑰,則innerwrap中需要的密鑰無論是由源TPM 產(chǎn)生或目的TPM 產(chǎn)生或caller 輸入,《TPM-Rev-2.0-Part-1-Architecture-01.38》中還未給出此密鑰的保護(hù)交換辦法.

    1.4.2 outerwrap 過程

    通過對《TPM-Rev-2.0-Part-1-Architecture-01.38》和《TPM-Rev-2.0-Part-3-Commands-01.38-code》的分析發(fā)現(xiàn),密鑰復(fù)制過程中是否進(jìn)行outerwrap是由新父密鑰的密鑰句柄類型決定,當(dāng)newParentHandle!=TPM_RH_NULL時,outerwrap就會發(fā)生;當(dāng)newParentHandle=TPM_RH_NULL時,outerwrap不會發(fā)生.究其原因是:outerwrap過程主要由新父密鑰控制,如果新父密鑰的句柄為TPM_RH_NULL,則新父密鑰不能為outerwrap提供需要的算法及參數(shù).

    outerwrap可以在復(fù)制過程中為遷移密鑰提供機(jī)密性、完整性以及對新父密鑰的認(rèn)證性,包括兩個步驟.

    · 一是對encSensitive進(jìn)行加密,具體過程為:首先,獲得一個密鑰種子seed;然后,將此密鑰種子、新父密鑰的npNameAlg和遷移密鑰的Name作為KDFa()的參數(shù),產(chǎn)生對稱加密密鑰;最后,采用新父密鑰的對稱加密算法對encSensitive進(jìn)行加密,得到dupSensitive.

    · 二是對dupSensitive和Name進(jìn)行HAMC 運(yùn)算,產(chǎn)生消息碼outerHMAC.具體過程為:首先,用Seed和新父密鑰的npNameAlg作為KDFa()的參數(shù),產(chǎn)生HAMC 密鑰;然后,采用新父密鑰的HMAC 算法進(jìn)行運(yùn)算,獲得消息碼outerHMAC.

    從以上過程可以看出,源TPM 要完成outerwrap不僅需要獲得新父密鑰的相關(guān)參數(shù),而且需要確保密鑰種子seed能在源TPM 和目的TPM 之間安全地交換.需要考慮的3 種情況與innerwrap要考慮的3 種情況一致.

    2 問題分析

    本節(jié)先基于TPM2.0 的密鑰復(fù)制接口設(shè)計最初的密鑰遷移協(xié)議,然后詳細(xì)分析其存在的問題[8].

    該初始遷移協(xié)議包括6 個參與實體:源TPM、源TPM 的所有者、目標(biāo)TPM、目標(biāo)TPM 的所有者、源TPM所在的主機(jī)、目標(biāo)TPM 所在的主機(jī),其中,前4 個實體是可信的,而源和目標(biāo)TPM 所在的主機(jī)被認(rèn)為是不可信的.為了敘述方便,我們定義如下符號及函數(shù),見表4.

    Table 4 Symbols and functions表4 符號及函數(shù)

    2.1 基于密鑰復(fù)制接口的密鑰遷移協(xié)議

    基于第1 節(jié)介紹的背景知識,并根據(jù)《TPM-Rev-2.0-Part-1-Architecture-01.38》和《TPM-Rev-2.0-Part-3-Commands-01.38-code》規(guī)范的要求,我們設(shè)計出基于復(fù)制接口的密鑰遷移協(xié)議,其流程如下.

    1.HD→HS:newParent.publicAera,newparentHandle,symmetrical.

    2.OS:

    (1) 獲得objectHandle,newparentHandle.

    (2) 決定encryptionKeyin的產(chǎn)生方式,可以輸入,也可以由TPM 內(nèi)部產(chǎn)生.

    (3) 調(diào)用接口TPM2_Duplication(objectHandle,newParentHandle,encrptionKeyIn,symmetricAlg).

    3.TS:執(zhí)行復(fù)制過程:

    (1) 檢查遷移密鑰的屬性fixedTPM和fixedParent:如果設(shè)置不是(0,0),就結(jié)束復(fù)制過程,轉(zhuǎn)到步驟10.

    (2) 檢查遷移密鑰的屬性encryptedDuplication:

    ? 如果設(shè)置為1,則判斷newParentHandle是否為TPM_RH_NULL:如果為TPM_RH_NULL,則結(jié)束復(fù)制過程,轉(zhuǎn)到步驟10;否則轉(zhuǎn)到步驟3 中的(3);

    ? 如果設(shè)置為0:newParentHandle不為TPM_RH_NULL,則轉(zhuǎn)到步驟3.(5);否則,轉(zhuǎn)向步驟3.(7).

    (3) 執(zhí)行innerwrap,由 caller 輸入或 TPM 產(chǎn)生encrptionKeyIn,并用encrptionKeyIn對遷移密鑰的sensitiveArea進(jìn)行加密,生成encSensitive.

    (4) 對encrptionKeyIn進(jìn)行保護(hù),分為兩種情況:

    ? 如果新父密鑰是非對稱密鑰,如RSA 或ECC 密鑰,則用新父密鑰的公鑰加密encrptionKeyIn,即

    ? 如果新父密鑰是對稱密鑰,則直接sysmetrickey=encrptionKeyIn.

    (5) 執(zhí)行outerwrap,由TPM 產(chǎn)生密鑰種子seed,用密鑰種子seed生成加密密鑰和HMAC 密鑰,對encSensitive進(jìn)行加密和HAMC 運(yùn)算,得到dupSensitive和outerHMAC.

    (6) 對Seed進(jìn)行保護(hù),分兩種情況:

    ? 如果新父密鑰是非對稱密鑰,如RSA 或ECC 密鑰,則用新父密鑰的公鑰加密Seed,即CSeed=RSA_OAEP(newParentHandle,Seed)或ECC_ECDH(newParentHandle,Seed),并將sysmetricSeed=Cseed;

    ? 如果新父密鑰是對稱密鑰,則直接sysmetricSeed=Seed.結(jié)束復(fù)制過程,轉(zhuǎn)到步驟4.

    (7) 對復(fù)制密鑰既不進(jìn)行innerwrap,也不進(jìn)行outerwrap,將dupSensitive=sensitiveArea,sysmetrickey=NULL,sysmetricSeed=NULL.

    4.TS→OS:dupSensitive,outerHMAC,sysmetrickey,sysmetricSeed.

    5.OS→HS:dupSensitive,outerHMAC,sysmetrickey,sysmetricSeed.

    6.HS→HD:dupSensitive,outerHMAC,sysmetrickey,sysmetricSeed.

    7.HD→OD:dupSensitive,outerHMAC,sysmetrickey,sysmetricSeed.

    8.OD→TD:dupSensitive,outerHMAC,sysmetrickey,sysmetricSeed.

    9.TD:執(zhí)行導(dǎo)入過程:

    (1) 檢查遷移密鑰的屬性fixedTPM和fixedParent:如果設(shè)置不是(0,0),就結(jié)束導(dǎo)入過程,轉(zhuǎn)到步驟10.

    (2) 檢查新父密鑰是否為存儲密鑰:如不是,結(jié)束導(dǎo)入過程,轉(zhuǎn)到步驟10.

    (3) 根據(jù)sysmetricSeed參數(shù)是否為NULL來判斷是否進(jìn)行了outerwrap.

    ? 如果為NULL,則轉(zhuǎn)到下一步;

    ? 否則,直接得到seed或用私鑰解密sysmetricSeed得到seed,按照symmetricAlg算法生成HMAC密鑰HMACkey,并對dupSensitive||name進(jìn)行HAMC 運(yùn)算,將得到的值與outerHMAC比較:如果不相等,終止導(dǎo)入過程,轉(zhuǎn)到步驟10;如果相等,則用seed生成對稱加密密鑰symkey并解密dupSensitive,得到encSensitive.

    (4) 根據(jù)sysmetrickey參數(shù)是否為NULL來判斷是否進(jìn)行了innerwrap.

    ? 如果為NULL,則轉(zhuǎn)到步驟10;

    ? 否則,直接得到encrptionKeyIn或用新父密鑰的私鑰解密sysmetrickey得到encrptionKeyIn,用symmetricAlg算法對encSensitive進(jìn)行解密,得到Sensitive和name,用Hash 算法對Sensitive||name進(jìn)行完整性驗證:驗證通過,則表明遷移成功,轉(zhuǎn)到步驟10;驗證不通過,則表明遷移不成功,轉(zhuǎn)到步驟10;

    10. 結(jié)束遷移過程.

    2.2 存在問題

    從第2.1 節(jié)可以看出,基于TPM2.0 密鑰復(fù)制接口設(shè)計的密鑰遷移協(xié)議存在如下安全問題.

    · 問題1:該協(xié)議缺少源TPM 和目標(biāo)TPM 間的身份認(rèn)證,導(dǎo)致密鑰能夠在敵手和TPM 間遷移.存在著如下兩種情況:(1) 源TPM 不能認(rèn)證newParent是否是目標(biāo)TPM 的密鑰,導(dǎo)致敵手可以用其控制的密鑰遷移源TPM 的密鑰,并獲得密鑰明文;(2) 目標(biāo)TPM 不能認(rèn)證遷移數(shù)據(jù)是否來自源TPM,使敵手可以將其控制的密鑰遷移到目標(biāo)TPM 中.

    · 問題2:當(dāng)復(fù)制密鑰的屬性encryptedDuplication=0 且新父密鑰的句柄newParentHandle=TPM_RH_NULL時,復(fù)制接口不能實施innerwrap和outerwrap,遷移密鑰將以明文傳輸而造成泄露.

    · 問題3:當(dāng)新父密鑰是對稱密鑰時,innerwrap中的對稱加密密鑰以及outerwrap中的密鑰種子如何在源TPM 與目標(biāo)TPM 之間安全交換,《TPM-Rev-2.0-Part-1-Architecture-01.38》并沒有給出具體的解決辦法.

    另外,第2.1 節(jié)的密鑰遷移協(xié)議中復(fù)制流程比較復(fù)雜,其中有幾個關(guān)鍵的因素決定復(fù)制流程:首先,密鑰能否復(fù)制是由復(fù)制密鑰的屬性(fixedTPM,fixedParent)決定;其次,復(fù)制過程中是否實施innerwrap由復(fù)制密鑰的encryptedDuplication屬性決定;第三,復(fù)制過程中是否實施outerwrap由新父密鑰的句柄類型決定;第四,innerwrap中對稱密鑰和outerwrap中密鑰種子的保護(hù)交換還依賴新父密鑰的密鑰類型.不同的屬性值決定了不同的復(fù)制流程,在所有的流程中,部分流程的輸出結(jié)果是存在安全隱患的.由于所有的判斷均在TPM 內(nèi)部進(jìn)行,在執(zhí)行完成之前,外界無法知道TPM2_Duplication()的輸出結(jié)果.為了保證復(fù)制過程的安全,需要提前掌握復(fù)制流程.因此,外界需要一個控制中心,提前獲知遷移密鑰屬性(fixedTPM,fixedParent,encryptedDuplication)、新父密鑰類型和新父密鑰句柄類型,從而提前掌握復(fù)制流程,并對復(fù)制過程的輸出結(jié)果采取合理的保護(hù)措施.

    3 基于Duplication Authority 的密鑰遷移協(xié)議

    根據(jù)第2 節(jié)的分析,我們提出基于Duplication Authority 的密鑰遷移協(xié)議,該協(xié)議以Duplication Authority 為控制和認(rèn)證中心,負(fù)責(zé)對源TPM 和目標(biāo)TPM 進(jìn)行認(rèn)證并控制復(fù)制流程.該協(xié)議包括3 個階段:初始化階段、認(rèn)證和屬性獲取階段以及控制和執(zhí)行階段.鑒于篇幅和突出重點,在該協(xié)議描述過程中,我們僅考慮TPM 與Duplication Authority 以及源TPM 與目標(biāo)TPM 之間的直接信息交互.

    3.1 初始化階段

    初始化階段的主要任務(wù)是源和目的TPM 到Duplication Authority 注冊并對TPM 進(jìn)行認(rèn)證,流程如圖3 所示.我們用DA 代表Duplication Authority,(Kpub_DA,Kpri_DA)是Duplication Authority 的一對非對稱密鑰,CertDA表示該公鑰的證書.注冊過程是TPM 將自己的身份標(biāo)識(IDTPM)注冊到DA 的數(shù)據(jù)庫中,E(?)為加密函數(shù),Sign(?)為簽名函數(shù),Verify(?)為驗證函數(shù),RA為注冊標(biāo)志位,CertEK為TPM 的背書證書,Ntpm為TPM 產(chǎn)生的隨機(jī)數(shù),NDA0為DA產(chǎn)生的隨機(jī)數(shù).具體的交互過程如下.

    1.TPM→DA:E(ks,[CertEK||IDTPM||Signpri_EK(IDTPM)||Ntpm]),E(CertDA,ks).

    2.DA→TPM:E(ks,RA||Ntpm||NDA0).

    3.TPM→DA:E(ks,NDA0).

    Fig.3 Initialization phase圖3 初始化階段

    下面我們對上述每一步進(jìn)行詳細(xì)解釋,具體如下.

    · 步驟 1:TPM 向 DA 發(fā)送注冊信息,發(fā)送的具體內(nèi)容:E(ks,[CertEK||IDTPM||Signpri_EK(IDTPM)||Ntpm])||E(CertDA,ks).DA 接收到TPM 發(fā)來的注冊信息后,首先用Kpri_DA解密得ks,并用ks解密得CertEK||IDTPM||Signpri_EK(IDTPM)||Ntpm;然后,Verify(CertEK)和Verify(Signpri_EK(IDTPM)),驗證通過置RA=1,否則置RA=0.

    · 步驟2:TPM 接收到DA 的返回密文E(ks,RA||Ntpm||NDA0),用ks解密,讀取RA的值,驗證Ntpm,如果驗證通過,返回E(ks,NDA0).

    · 步驟3:DA 解密得到NDA0,驗證NDA0,如果通過,表明TPM 已經(jīng)知道注冊成功,則將CertEK||IDTPM存入注冊數(shù)據(jù)庫.

    3.2 認(rèn)證和屬性獲取階段

    認(rèn)證和屬性獲取階段包括兩個主要任務(wù):其一是源TPM 與目標(biāo)TPM 交互雙方基于Duplication Authority進(jìn)行認(rèn)證;其二是為控制后期復(fù)制過程,DuplicationAuthority 通過和目標(biāo)TPM 與源TPM 的交互,獲得復(fù)制密鑰和新父密鑰的屬性.為了敘述方便,我們假設(shè)具體的應(yīng)用場景是:TS和TD均是在DA 中注冊的TPM,當(dāng)前要將TS中objectHandle所指向的密鑰對象遷移到TD中newParentHandle所指向的新父密鑰對象下.我們用標(biāo)志位S表示對稱密鑰、非對稱密鑰或非密鑰對象,S=0 表示對稱密鑰,S=1 表示非對稱密鑰,S=?1 為非密鑰對象;用AlgParameter表示密鑰對象支持的算法及相關(guān)參數(shù),流程如圖4 所示.具體的交互過程如下.

    Fig.4 Authentication and attribute acquisition process圖4 認(rèn)證和屬性獲取階段

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟1:TD向DA 發(fā)送遷移請求秘密信息.DA 用私鑰解密E(CertDA,ks1)得ks1,并用ks1解密TD發(fā)送的具體內(nèi)容,得到目標(biāo)TPM 的ID、新父密鑰的句柄newParentHandle、新父密鑰標(biāo)志位S、新父密鑰的算法及相關(guān)參數(shù)AlgParameter、源TPM 的ID 以及現(xiàn)時等.DA 驗證TD的和Ts的,確認(rèn)是否均為合法的TPM,如果不合法則終止.

    · 步驟3:TS用CertDA驗證復(fù)制請求后,確認(rèn)此信息來自DA,并向DA 發(fā)送共享密鑰ks2和現(xiàn)時

    · 步驟4:DA 解密獲得ks2,用ks2加密目的TPM 的ID、復(fù)制密鑰的句柄objectHandle、新父密鑰的算法以及現(xiàn)時NDT,NDA1和NST并發(fā)送給TS.

    · 步驟5:TS解密后,獲知有TD要遷移objectHandle所指向的密鑰對象到其newParentHandle所指向的新父密鑰對象下.由于目標(biāo)TPM 的ID 來自DA,因此TS認(rèn)為TD是合法可信的TPM,于是在確認(rèn)自己支持新父密鑰的算法及參數(shù)后,向DA 發(fā)送了objectHandle所指向的密鑰對象的復(fù)制屬性fixedTPM,fixedParent,encryptedDuplication以及密鑰類型和現(xiàn)時

    · 步驟6:DA 向TD發(fā)回現(xiàn)時,表明遷移準(zhǔn)備就緒.至此,不僅DA 獲得了在復(fù)制過程中需要的復(fù)制密鑰和新父密鑰的相關(guān)屬性,而且TS和TD得到相互認(rèn)證.

    3.3 控制和執(zhí)行階段

    控制和執(zhí)行階段包括兩個主要任務(wù):其一是DA 根據(jù)復(fù)制密鑰和新父密鑰的相關(guān)屬性控制和選擇具體的復(fù)制流程;其二是遷移過程的具體執(zhí)行.

    上一階段結(jié)束后,DA 已經(jīng)獲得了復(fù)制密鑰和新父密鑰的相關(guān)屬性,包括fixedTPM,fixedParent,encryptedDuplication,newParentHandle,objecthandle→S,newParentHandle→S等,這些屬性的取值一共有96 種組合,但大部分組合是無效組合,DA 可以根據(jù)這些屬性組合對執(zhí)行過程進(jìn)行控制.我們經(jīng)過分析,有效組合一共有12 種.為了方便敘述,我們用EndEcho表示復(fù)制過程終止.限于篇幅,各種情況的密鑰遷移流程圖略.具體的12 種情況如下.

    情況1:當(dāng)fixedTPM!=0 或fixedParent!=0 時,具體流程如下.

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟1:DA 向TD發(fā)送EndEcho,結(jié)束密鑰遷移過程.

    · 步驟2:DA 向TS發(fā)送EndEcho,結(jié)束密鑰遷移過程.

    本屬性組合表明:只有當(dāng)遷移密鑰的fixedTPM和fixedParent屬性都置0 時,復(fù)制及遷移過程才可繼續(xù)進(jìn)行.

    情況2:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle=TPM_RH_NULL時,具體流程如下.

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟1:DA 向TD發(fā)送EndEcho,結(jié)束密鑰遷移過程.

    · 步驟2:DA 向TS發(fā)送EndEcho,結(jié)束密鑰遷移過程.

    本屬性組合表明:在密鑰復(fù)制過程中,如果只進(jìn)行innerwrap是不行的,復(fù)制及遷移過程會終止.

    情況 3:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle!=TPM_RH_NULL,object thandle→S=1,newParentHandle→S=1 時,具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||,E(ks2,[||newParentHandle||newParentHandle→S||newParentHandle→

    (2)TS→TD:dupSensitive,outerHMAC,CencryptionKeyout,CSeed,encRng.

    (3)TD→TS:encRng.(4)TS→DA:encRng.

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟1:TS接收到DA 的消息,解密得到目標(biāo)TPM 的ID、新父密鑰的句柄newParentHandle、新父密鑰標(biāo)志位S的值、新父密鑰的算法及相關(guān)參數(shù)AlgParameter以及現(xiàn)時.然后用CertDA驗證簽名,再驗證現(xiàn)時.所有的驗證通過,TS將進(jìn)行如下計算.

    1) 產(chǎn)生innerwrap需要的對稱加密密鑰encryptionKeyIn(可由TS的OS輸入).

    2) 計算innerIntegrity=Hobject.nameAlg(object.sensitive||object.name).

    3) 計算encSensitive=CFBobject.symAlg(encryptionKeyIn,0,innerIntegrity||object.sensitive).

    4) 根據(jù)AlgParameter,計算CencryptionKeyIn=RSA_OAEP(newParentHandle→PubliceArea,encrypttionKeyIn)或CencryptionKeyIn=ECC_ECDH(newParent Handle→PubliceArea,encryptionKeyIn).

    5) 產(chǎn)生outerwrap需要的密鑰種子seed.

    6) 計算symKey=KDFa(AlgParameter,seed,“STORAGE”,Name,NULL,bits).

    7) 計算dupSensitive=CFBAlgParameter(symKey,0,encSensitive).

    8) 計算encRng=CFBAlgParameter(symKey,0,

    9) 計算HMACkey=KDFa(AlgParameter,seed,“INTEGRITY”,NULL,NULL,bits).

    10) 計算outerHMAC=HMACnpNameAlg(HMACkey,dupSensitive||objecthandle→Name).

    以上過程實際上是調(diào)用TPM2_Duplicate(objectHandle,newParentHandle,encryptionKeyIn,symmetricAlg)進(jìn)行密鑰復(fù)制,對復(fù)制密鑰實施innerwrap和outerwrap.

    · 步驟2:TD收到TS傳來的dupSensitive,outerHMAC,CencryptionKeyout,CSeed和encRng,進(jìn)行如下計算.

    1) 用新父密鑰的私鑰解密CSeed,得到Seed.

    2) 用同樣的算法生成HMACkey和symKey.

    3) 用symKey解密encRng,驗證隨機(jī)數(shù);然后,用HMACkey驗證outerHMAC.如果驗證都通過,用symKey對dupSensitive進(jìn)行解密,得到encSensitive.

    4) 用新父密鑰的私鑰解密CencryptionKeyout得到encryptionKeyout,用encryption-Keyout解密encSensitive得到innerIntegrity和Sensitive,用同樣的H算法驗證object.sensitive||object.name的完整性.如果驗證通過,則復(fù)制成功.

    以上過程實際上是調(diào)用TPM2_Import(newparentHandle,CencryptionKeyout,dupSenstive,CSeed)進(jìn)行復(fù)制密鑰導(dǎo)入.

    · 步驟3:TD給TS返回encRng,TS解密驗證隨機(jī)數(shù).如果相同,表明遷移成功.

    · 步驟4:TS給DA 返回encRng,DA 解密驗證隨機(jī)數(shù).如果相同,表明遷移成功,結(jié)束遷移過程.

    情況 4:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle!=TPM_RH_NULL,object handle→S=1,newParentHandle→S=0 時,其具體流程與情況3 唯一的不同是新父密鑰為對稱密鑰,innerwrap所需的encryptionKeyin和outerwrap所需的Seed只能在TD中產(chǎn)生,才能利用《TPM-Rev-2.0-Part-1-Architecture-01.38》中規(guī)定的RSA_OAEP或ECC_ECDH算法對encryptionKeyin和Seed進(jìn)行保護(hù)交換.我們用標(biāo)志位Migrate_object.publicArea_to_TD表示DA 要求TS將復(fù)制密鑰的publicArea傳遞給TD.具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Migrate_object.publicArea_to_TD||||NDA||]),E(ks2,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Migrate_object.publicArea_to_TD||||NDA1||

    (2)TS→DA:E(ks2,[object.publicArea||||NDA1||]).

    (3)DA→TD:E(ks1,[object.publicArea||||NDA1||]).

    (4)TD→TS:CencryptionKeyout,Cseed.

    (5)TS→TD:dupSensitive,outerHMAC,encRng.

    (6)TD→TS:encRng.

    (7)TS→DA:encRng.

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟1:與情況3 基本相同的步驟一基本相同,不同的是在步驟一中,DA 發(fā)送給TS消息增加了標(biāo)志位Migrate_object.publicArea_to_TD.

    · 步驟2、步驟3:TS將復(fù)制密鑰的公鑰部分通過DA 傳給TD.

    · 步驟4:由TD產(chǎn)生encryptionKeyin和Seed,用復(fù)制密鑰的公鑰加密得到CencryptionKeyin和CSeed并傳遞給TS.

    · 步驟 5:與情況 3 的步驟 2 基本一致,TS調(diào)用TPM2_Duplicate(objectHandle,newParentHandle,encryptionKeyIn,symmetricAlg)進(jìn)行密鑰復(fù)制,對復(fù)制密鑰實施innerwrap和outerwrap.由于encryptionKeyin和Seed已經(jīng)在TD,因此發(fā)送給TD的數(shù)據(jù)就只有dupSensitive,outerHMAC和encRng.

    · 步驟6:與情況3 的步驟3 一致.

    · 步驟7:與情況3 的步驟4 一致.

    情況 5:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle!=TPM_RH_NULL,object handle→S=0,newParentHandle→S=1 時,其具體流程與情況3 一致,略.

    情況 6:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle!=TPM_RH_NULL,objecthandle→S=0,newParentHandle→S=0 時,其具體流程與前面所有的情況均不相同.本情況的復(fù)制密鑰和新父密鑰都是對稱密鑰,encryptionKeyin和Seed無論在TS或TD產(chǎn)生,都無法用《TPM-Rev-2.0-Part-1-Architecture-01.38》中規(guī)定的RSA_OAEP或ECC_ECDH算法進(jìn)行保護(hù)交換.為了防止encryptionKeyin和Seed泄露,我們設(shè)計在DA的控制下用 DH 算法在TS和TD之間交換共享密鑰作為encryptionKeyin和Seed.因此,我們用標(biāo)志位Pro_DH_encryptionKeyin_and_Seed表明此需求,且TS和TD雙方已選擇一共同的素數(shù)q以及q的一個原根a.具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Pro_DH_encryptionKeyin_and_Seed||||NDA1||]),E(ks2,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Pro_DH_encryptionKeyin_and_Seed||||NDA1||]).

    (2)TS→DA:E(Ks2,[IDS||Ys||||NDA1||]).

    (3)DA→TD:E(Ks1,[IDS||Ys||||NDA1||||Sign(pri_DA,[IDS||Ys||||NDA1||])]).

    (4)TD→DA:E(Ks1,[IDD||YD||||NDA1||]).

    (5)DA→TS:E(KS2,[IDD||YD||||NDA1||||Sign(pri_DA,[IDD||YD||||NDA1||])]).

    (6)TS→TD:dupSensitive,outerHMAC,encRng.

    (7)TD→TS:encRng.

    (8)TS→DA:encRng.

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟 1:與情況 3 的步驟一基本相同,不同的是 DA 發(fā)送給TS消息增加了標(biāo)志位Pro_DH_encryptionKeyin_and_Seed.

    以下步驟2~步驟5 就是防中間人攻擊的DH 算法.

    · 步驟2:TS計算modq,其中,Xs是TS的任選素數(shù),Xs

    · 步驟3:DA 對IDS||Ys進(jìn)行簽名Sign(pri_DA,[IDS||YS]),并一起發(fā)送給TD.

    · 步驟4:TD驗證DA 對TS的簽名Verify(pub_DA,Sign(pri_DA,[IDS||YS])),然后任選素數(shù)XD,且XD

    · 步驟5:DA 對IDD||YD進(jìn)行Sign(pri_DA,[IDD||YD]),并一起發(fā)送給TS,TS接收到Y(jié)D后,計算:

    · 步驟 6:與情況 3 的步驟 2 基本一致,TS調(diào)用TPM2_Duplicate(objectHandle,newParentHandle,encryptionKeyIn,symmetricAlg)進(jìn)行密鑰復(fù)制,對復(fù)制密鑰實施innerwrap和outerwrap,K0既作為innerwrap的encryptionKeyin,又作為outerwrap的Seed.由于K0在TS和TD雙方都存在,因此發(fā)送給TD的數(shù)據(jù)就只有dupSensitive,outerHMAC和encRng.

    · 步驟7:與情況3 的步驟3 一致.

    · 步驟8:與情況3 的步驟4 一致.

    情況 7:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=0,newParentHandle!=TPM_RH_NULL,object handle→S=1,newParentHandle→S=1 時,與情況3 的流程基本一致,只是在步驟1 中不進(jìn)行innerwrap,即沒有情況3 步驟1 中的步驟2)~步驟4),在步驟2 中也就不進(jìn)行innerwrap密鑰encryptionKeyin的保護(hù)交換.具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||||NDA1||]),E(ks2,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||||NDA1||]).

    (2)TS→TD:dupSensitive,outerHMAC,CSeed,encRng.

    (3)TD→TS:encRng.

    (4)TS→DA:encRng.

    情況 8:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=0,newParentHandle!=TPM_RH_NULL,object handle→S=1,newParentHandle→S=0 時,與情況4 基本一致.只是在步驟4 中只傳輸CSeed,這是因為本情況不進(jìn)行innerwrap,也就不進(jìn)行innerwrap密鑰encryptionKeyin的保護(hù)交換.具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Migrate_object.publicArea_to_TD||||NDA1||]),E(ks2,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Migrate_object.publicArea_to_TD||||NDA1||]).

    (2)TS→DA:E(ks2,[object.publicArea||||NDA1||]).

    (3)DA→TD:E(ks1,[object.publicArea||||NDA1||]).

    (4)TD→TS:Cseed.

    (5)TS→TD:dupSensitive,outerHMAC,encRng.

    (6)TD→TS:encRng.

    (7)TS→DA:encRng.

    情況 9:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=0,newParentHandle!=TPM_RH_NULL,object handle→S=0,newParentHandle→S=1 時,與情況7 一致,略.

    情況 10:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=0,newParentHandle!=TPM_RH_NULL,object handle→S=0,newParentHandle→S=0 時,與情況6 基本相同,都面對的是復(fù)制密鑰和新父密鑰是對稱密鑰的情況.不同的是,本情況不需進(jìn)行innerwrap.因此在步驟1 中,原請求TS產(chǎn)生innerwarp密鑰和outerwrap密鑰種子的標(biāo)志Pro_DH_encryptionKeyin_and_Seed變?yōu)榱酥划a(chǎn)生outerwrap密鑰種子的標(biāo)志Pro_DH_Seed,相應(yīng)地,用DH算法使得TS和TD共享會話密鑰K0只作為Seed進(jìn)行outerwarp.具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[IDTD||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||||newParentHandle||newParentHandle→S||newParentHandl e→AlgParameter||Pro_DH_Seed||

    (2)TS→DA:E(Ks2,[IDS||Ys||||NDA1||]).

    (3)DA→TD:E(Ks1,[IDS||Ys||NDT||NDA1||||Sign(pri_DA,[IDS||Ys||

    (4)TD→DA:E(Ks1,[IDD||YD||

    (5)DA→TS:E(KS2,[IDD||YD||||Sign(pri_DA,[IDD||YD||

    (6)TS→TD:dupSensitive,outerHMAC,encRng.

    (7)TD→TS:encRng.

    情況 11:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=0,newParentHandle=TPM_RH_NULL,object handle→S=1,newParentHandle→S=?1 時.本情況面對的是復(fù)制密鑰是非對稱密鑰而新父密鑰是非層次結(jié)構(gòu)的非密鑰對象,如密鑰種子、空授權(quán)對象等.顯然,這種情況密鑰在復(fù)制過程中既不進(jìn)行innerwrap,也不進(jìn)行outerwrap,復(fù)制密鑰將以明文在TD和TS之間傳輸,存在泄露的可能.為了防止泄露,在DA 的控制下,TD和TS通過DH 算法而共享會話密鑰,用該密鑰對復(fù)制密鑰加密.具體流程如下.

    (1)DA→TS:Sign(Kpri_DA,[||newParentHandle||newParentHandle→S||newParentHandle→AlgParameter||Pro_DH_KEY||]),E(ks2,[||newParentHandle||newParentHandle→S||newParentHandl e→AlgParameter||Pro_DH_KEY||

    (2)TS→DA:E(Ks2,[IDS||Ys||

    (3)DA→TD:E(Ks1,[IDS||Ys||||Sign(pri_DA,[IDS||Ys||

    (4)TD→DA:E(Ks1,[IDD||YD||

    (5)DA→TS:E(KS2,[IDD||YD||||Sign(pri_DA,[IDD||YD||

    (6)TS→TD:E(K0,object.sensitiveArea),E(K0,[

    (7)TD→TS:E(K0,E(K0,[

    下面,我們對上述每一步進(jìn)行詳細(xì)解釋.具體如下.

    · 步驟1:DA 向TS發(fā)出Pro_DH_KEY標(biāo)志,要求TD和TS交換共享密鑰.

    · 步驟2~步驟5:用防止中間人攻擊的DH 算法使得TS和TD共享密鑰K0.

    · 步驟6:TS用K0加密復(fù)制密鑰和現(xiàn)時,然后傳遞給TD.

    · 步驟7:TD驗證現(xiàn)時并回復(fù)TS,表明復(fù)制成功.

    情況 12:當(dāng)fixedTPM=0,fixedParent=0,encryptedDuplication=0,newParentHandle=TPM_RH_NULL,object handle→S=0,newParentHandle→S=?1 時,本情況與情況11 一致,略.

    從以上分析可以看出,由于情況2 與情況1 一致、情況5 與情況3 一致、情況9 與情況7 一致、情況12與情況11 也一致,因此,原本12 種遷移流程實際為8 種.

    4 協(xié)議分析

    4.1 特點分析

    (1) 一致性

    在《TPM-Rev-2.0-Part-1-Architecture-01.38》中規(guī)定了密鑰復(fù)制的過程的基本要求,即如何根據(jù)復(fù)制密鑰的復(fù)制屬性(fixedTPM,fixedParent,encryptedDuplication)以及新父密鑰的密鑰句柄類型對復(fù)制密鑰進(jìn)行innerwrap和outerwrap,也建議采用Duplication Authority 對復(fù)制過程進(jìn)行控制、認(rèn)證等,但并沒有給出具體的方案.本文提出的基于Duplication Authority 的TPM2.0 密鑰遷移協(xié)議方案不僅給出了具體的方案,而且和《TPM-Rev-2.0-Part-1-Architecture-01.38》中的要求完全一致.具有一致性.

    (2) 完備性

    本文考慮了(fixedTPM,fixedParent,encryptedDuplication,newParentHandle,objecthandle→S,newParent Handle→S)各種合法的組合,并設(shè)計了這些組合的密鑰遷移方案.在這些方案中,我們不僅考慮了Duplication Authority 的認(rèn)證和控制方法,而且還考慮了innerwarp密鑰和outerwrap密鑰種子的保護(hù)交換方法,特別是當(dāng)被復(fù)制密鑰和新父密鑰都是對稱密鑰時innerwarp密鑰和outerwrap密鑰種子的保護(hù)交換方法.另外,我們還考慮了密鑰復(fù)制過程中既不innerwarp又不outerwrap時密鑰遷移的安全問題,以及DA 根據(jù)objecthandle→S和newParentHandle→S的類型控制由源TPM 方或目的TPM 方產(chǎn)生innerwarp的加密密鑰和outerwrap所需要的密鑰種子.因此,本文的TPM2.0 密鑰遷移協(xié)議方案是完備的.

    4.2 安全分析

    本文提出的基于Duplication Authority 的TPM2.0 密鑰遷移協(xié)議方案具有認(rèn)證性、機(jī)密性、抗中間人攻擊和抗重放攻擊,因而具有較高的安全性.下面我們對本文提出的方法進(jìn)行安全性分析,具有以下4 個特點.

    (1) 具有認(rèn)證性

    一方面,所有合法的TPM 均需用其EK 和名字ID 在Duplication Authority 注冊,這就確保了密鑰一定是在兩個具有合法身份的TPM 之間進(jìn)行遷移,注冊過程保證了源TPM 與目標(biāo)TPM 之間的認(rèn)證性;另一方面,當(dāng)被復(fù)制密鑰和新父密鑰都是對稱密鑰時,innerwarp密鑰和outerwrap密鑰種子的保護(hù)交換方法是具有認(rèn)證功能、防止中間人攻擊的DH 算法.當(dāng)新父密鑰是非層次結(jié)構(gòu)的非密鑰對象,如密鑰種子、空授權(quán)對象等,我們也采用的是具有認(rèn)證功能、防止中間人攻擊的DH 算法交換保護(hù)復(fù)制密鑰的共享密鑰.最后,outerwrap的消息認(rèn)證碼outerHAMC也具有認(rèn)證功能.因此,該協(xié)議通過各層次保證信息交互的各方均具有合法的身份,故具有認(rèn)證性.

    (2) 具有機(jī)密性

    在初始化階段,各TPM 與DA 之間的信息交互都是用對稱密鑰ks加密,因此,如果信息被截取,攻擊者會由于沒有對稱秘密密鑰ks而無法獲得信息的具體內(nèi)容,因此確保了各TPM 與DA 之間的機(jī)密性;在認(rèn)證和屬性獲取階段,DA,TS和TD之間的信息交換也用對稱密鑰ks1和ks2加密,因此,如果信息被截取,攻擊者會由于沒有對稱秘密密鑰ks1和ks2而無法獲得信息的具體內(nèi)容,因此確保了DA,TS和TD之間的機(jī)密性;而在控制和執(zhí)行階段,DA,TS和TD之間的信息交換也用對稱密鑰ks1和ks2加密,因此,如果信息被截取,攻擊者會由于沒有對稱秘密密鑰ks1和ks2而無法獲得信息的具體內(nèi)容,因此確保了DA,TS和TD之間的機(jī)密性.由此可見,無論是在初始化階段、認(rèn)證和屬性控制階段還是控制和執(zhí)行階段,都保證了交互信息的密文傳送,因而具有機(jī)密性.

    (3) 具有抗中間人攻擊

    中間人攻擊是一種通過修改或者偽裝發(fā)送消息而達(dá)到攻擊目的的手段.首先,在初始化階段,各TPM 與DA之間的信息交互采用的是DA 證書對會話密鑰進(jìn)行加密,只有擁有證書的私鑰才能解密會話密鑰,即只有DA 才能解密會話密鑰,因此,即使敵手獲得了該消息,由于它無法解密該消息,因此無法偽裝和修改該消息進(jìn)行中間人攻擊;在認(rèn)證和屬性獲取階段,DA 和TS,TD之間的信息交換采用的是DA 的證書對會話密鑰進(jìn)行加密,只有擁有證書的私鑰才能解密會話密鑰,即只有DA 才能解密會話密鑰,因此,即使敵手獲得了該消息,由于它無法解密該消息,因此無法偽裝和修改該消息進(jìn)行中間人攻擊;在控制與執(zhí)行階段,DA 和TS,TD之間的信息交換仍采用的是DA 證書對會話密鑰進(jìn)行加密,只有擁有證書的私鑰才能解密會話密鑰,即只有DA 才能解密會話密鑰,因此,即使敵手獲得了該消息,由于它無法解密該消息,因此無法偽裝和修改該消息進(jìn)行中間人攻擊;而TS和TD之間的密鑰交換,我們采用的是抗中間人攻擊的DH 算法,即采用DA 的證書對交互的信息進(jìn)行簽名,證書具有身份認(rèn)證功能,中間人無法偽造.因此,具有抗中間人攻擊.

    (4) 具有抗重放攻擊

    首先,在初始化階段,各TPM 與DA 之間的信息交互采用了現(xiàn)時Ntpm和NDA,所以各TPM 與DA 可以通過Ntpm和NDA0來確保不是重放消息;在認(rèn)證和屬性獲取階段,DA 和TS,TD之間的信息交換采用了現(xiàn)時,NDA1和DA 和TS,TD可以通過來確保不是重放消息;在控制與執(zhí)行階段,DA 和TS,TD之間的信息交換仍然采用了同一現(xiàn)時,DA 和TS,TD之間以及TS和TD均可以通過來確保不是重放消息.因此,具有抗重放攻擊.

    值得注意的是,本協(xié)議中的DA 具有重要作用.在初始化階段,源和目的TPM 的身份信息均注冊到DA;在認(rèn)證和屬性獲取階段,DA 會獲得復(fù)制密鑰和新父密鑰的相關(guān)屬性;在控制和執(zhí)行階段,DA 需要根據(jù)復(fù)制密鑰和新父密鑰的相關(guān)屬性控制復(fù)制流程.因此,DA 是整個協(xié)議的控制中心,不僅需要保護(hù)好所有注冊TPM 的身份信息,而且還要保證自身不受攻擊.一旦DA 遭受攻擊,攻擊者不僅可以竊取注冊到DA 中的TPM 身份信息,而且還能控制復(fù)制流程;攻擊者不僅可以獲得復(fù)制密鑰,而且可以將自己控制的密鑰復(fù)制到目標(biāo)TPM 中.這不僅嚴(yán)重威脅到用戶的隱私,而且還會造成TPM 密鑰的泄露和加密數(shù)據(jù)的失竊.因此,本文的DA 必須是一個可信第三方,對其安全要求必須和PKI 中的CA 一樣.

    4.3 對比分析

    實際上,TPM1.2 規(guī)范在《TPM-main-1.2-Rev94-part-3》中有關(guān)于Migration 部分,并已定義了與密鑰遷移相關(guān)的接口,包括TPM_CMK_ApproveMA(),TPM_CMK_CreateKey(),TPM_CMK_CreateTicket(),TPM_CMK_CreateBlob()和TPM_CMK_ConvertMigration()等.通過這些接口設(shè)計密鑰遷移協(xié)議時,也需要TPM 的所有者指定一個可信的第三方(migration authority,簡稱MA)參與,在這一點上與本文的Duplication Authority 有些相似.為了清楚說明它們之間的異同,我們用TPM1.2 密鑰遷移接口簡要設(shè)計一個密鑰遷移流程框架,忽略細(xì)節(jié)部分.

    為了表述方便,首先假定一個場景:密鑰Kmigration需要從源平臺Psrc遷移到平臺Pdes,在Psrc 端保護(hù)Kmigration的父密鑰是Kparent,而Pdes端選定的將要保護(hù)Kmigration的父密鑰是Kstorage.因此,Kparent和Kstorage必須都是存儲密鑰.在此假定的場景下,首先需要TPM 的所有者用接口TPM_CMK_ApproveMA()授權(quán)一個可信的第三方(migration authority,簡稱MA),并由MA 通過接口TPM_CMK_CreateTicket()來指定遷移目標(biāo)Pdes并對遷移目標(biāo)Pdes進(jìn)行認(rèn)證.具體的協(xié)議流程如圖5 所示.

    在圖5 中,第1 步是Psrc調(diào)用TPM_CMK_ApproveMA()授權(quán)一個可信的第三方MA;第2 步和第3 步是MA調(diào)用TPM_CMK_CreateTicket()來指定遷移目標(biāo)Pdes,并對遷移目標(biāo)Pdes進(jìn)行認(rèn)證;第4 步和第5 步是Psrc調(diào)用TPM_CMK_CreateKey()產(chǎn)生待遷移的密鑰Kmigration;第6 步是Psrc調(diào)用TPM_CMK_CreateBlob()生成遷移數(shù)據(jù)encData;第7 步是Psrc將encData傳遞給Pdes;第8 步是Pdes調(diào)用TPM_CMK_ConvertMigration()對遷移數(shù)據(jù)進(jìn)行轉(zhuǎn)換.至此,Pdes就可以用Kstorage為父密鑰加載Kmigration.

    顯然,圖5 與本文第3 節(jié)提出的協(xié)議是有區(qū)別的.下面,我們在安全性、復(fù)雜性、可信第三方的作用等方面對這兩個協(xié)議進(jìn)行比較.具體如下.

    (1) 在安全性方面,無論是利用TPM1.2 的遷移接口設(shè)計的遷移協(xié)議還是本文利用TPM2.0 密鑰復(fù)制接口設(shè)計的遷移協(xié)議,均能具有認(rèn)證性、機(jī)密性、抗中間人攻擊和抗重放攻擊等特點.因此,只要通過精心設(shè)計,這兩個協(xié)議均能達(dá)到同等的安全.

    (2) 在復(fù)雜性方面,顯然,本文的協(xié)議要比利用TPM1.2 的遷移接口設(shè)計的遷移協(xié)議復(fù)雜得多.這是因為TPM2.0 與密鑰相關(guān)的功能均擴(kuò)大了,密鑰類型不僅支持非對稱密鑰,而且還支持對稱密鑰;密碼算法不僅支持RSA,而且還支持ECC.在設(shè)計密鑰遷移協(xié)議時,除了需要考慮遷移密鑰和目標(biāo)密鑰的復(fù)制屬性以外,還需要考慮遷移密鑰、目標(biāo)密鑰是對稱密鑰還是非對稱密鑰的情況,因此,涉及的遷移情況多、控制遷移流程復(fù)雜.

    (3) 在可信第三方方面,無論是TPM1.2 中的密鑰遷移還是本文設(shè)計的密鑰復(fù)制,均需要可信第三方.利用TPM1.2 的遷移接口設(shè)計的遷移協(xié)議需要可信第三方MA,本文協(xié)議中涉及到可信第三方是DA.但DA 遠(yuǎn)比MA 復(fù)雜:MA 只需指定遷移目標(biāo)并對遷移目標(biāo)進(jìn)行認(rèn)證;而DA 不僅需要管理各TPM 的身份信息,而且還要根據(jù)遷移密鑰、目標(biāo)密鑰的復(fù)制屬性確定和控制遷移流程.

    5 實驗驗證與性能對比分析

    本節(jié)將對第3 節(jié)提出的密鑰遷移協(xié)議進(jìn)行驗證,并與TPM1.2 的密鑰遷移協(xié)議進(jìn)行性能對比分析.

    5.1 實驗驗證

    要將遷移密鑰遷移到新父密鑰下,首先,源TPM 和目標(biāo)TPM 應(yīng)在DA 中注冊;然后,目標(biāo)TPM 向DA 發(fā)起遷移請求,DA 對源TPM 和目標(biāo)TPM 進(jìn)行認(rèn)證,并分別獲得新父密鑰的類型和句柄類型以及遷移密鑰的復(fù)制屬性(fixedTPM,fixedParent,encryptedDuplication);最后,DA 根據(jù)收集到的所有屬性,判斷此流程屬于12 種流程中的哪一種流程,并控制復(fù)制流程,即可完成遷移.

    5.1.1 實驗環(huán)境

    目前,市面上已出現(xiàn)TPM2.0 芯片,經(jīng)過深入的咨詢我們發(fā)現(xiàn),在國內(nèi)使用TPM2.0 芯片受到一定的限制.因此,這里我們使用微軟的TPM2.0 模擬器以及TSS.net 進(jìn)行實驗.本實驗共使用2 臺計算機(jī),其中一臺既做target TPM 又充當(dāng)DA,剩下一臺充當(dāng)source TPM.這里我們用OpenSSL 的CA 機(jī)關(guān)模擬DA,作為注冊和控制中心.具體環(huán)境配置見表5,其中,target TPM 與DA 所在主機(jī)的配置完全一致.

    Table 5 Experimental environment related configuration表5 實驗環(huán)境相關(guān)配置

    以情況3 為例,具體實驗流程原型如圖6 所示,其中,S,DA,D分別表示源TPM、復(fù)制權(quán)威和目的TPM.主要分為初始化、認(rèn)證和屬性獲取以及控制遷移這3 個階段.

    Fig.6 Experimental whole process prototype圖6 實驗流程原型

    5.1.2 實驗結(jié)果

    實驗主要基于openssl 和Microsoft 的TPM2.0 simulator 實現(xiàn).

    1.初始化階段的執(zhí)行過程.

    初始化過程主要完成源TPM 和目的TPM 向DA 注冊自己的信息.由于目的TPM 的初始化與源TPM 初始化過程完全相同,這里以目的TPM 的初始化為例.目的TPM 與DA 間的初始化階段流程如圖7、圖8 所示.

    Fig.7 Targe TPM initialization process圖7 目的TPM 初始化階段流程

    Fig.8 DA initialization process圖8 DA 初始化階段流程

    2.認(rèn)證和屬性獲取階段.

    認(rèn)證和屬性獲取過程主要完成源TPM 和目的TPM 間的認(rèn)證以及向DA 發(fā)送新父密鑰和復(fù)制密鑰的相關(guān)屬性等.源TPM、目的TPM、DA 的認(rèn)證和屬性獲取階段流程如圖9~圖11 所示.

    Fig.9 Source TPM authentication and attribute acquisition process圖9 源TPM 認(rèn)證和屬性獲取階段流程

    Fig.10 Targe TPM authentication and attribute acquisition process圖10 目的TPM 認(rèn)證和屬性獲取階段流程

    3.控制和執(zhí)行階段.

    該階段共有12 種情況,由于情況1 和情況2 的實現(xiàn)過程基本相似,情況3 和情況4、情況5、情況7、情況8 的實現(xiàn)過程基本相似,情況6 和情況9 的實現(xiàn)過程基本相似,情況11 和情況12 的實現(xiàn)過程基本相似,為了減少篇幅,我們僅列出情況3 和情況6 的實驗結(jié)果.這里,我們基于微軟TPM2.0 模擬器提供的復(fù)制接口和導(dǎo)入接口來實現(xiàn).

    情況3:WhenfixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle!=TPM_RH_NULL,object handle→S=1,newParentHandle→S=1.執(zhí)行過程如圖12~圖14 所示.

    Fig.12 Case 3:Source TPM execution process圖12 情況3:源TPM 執(zhí)行流程

    Fig.13 Case 3:Targe TPM execution process圖13 情況3:目的TPM 執(zhí)行流程

    Fig.14 Case 3:DA execution process圖14 情況3:DA 執(zhí)行流程

    情況6:fixedTPM=0,fixedParent=0,encryptedDuplication=1,newParentHandle!=TPM_RH_NULL,objecthandle→S=0,newParentHandle→S=0.執(zhí)行過程如圖15~圖17 所示.

    Fig.15 Case 6:Source TPM execution process圖15 情況6:源TPM 執(zhí)行流程

    Fig.16 Case 6:Targe TPM execution process圖16 情況6:目的TPM 執(zhí)行流程

    Fig.17 Case 6:DA execution process圖17 情況6:DA 執(zhí)行流程

    5.2 性能分析

    5.2.1 本協(xié)議的性能分析

    1.初始化階段的執(zhí)行時間見表6.

    Table 6 Initialization execution time表6 初始化階段執(zhí)行時間

    2.認(rèn)證和屬性獲取階段的執(zhí)行時間見表7.

    Table 7 Authentication and attribute acquisition phase execution time表7 認(rèn)證和屬性獲取階段執(zhí)行時間

    3.控制和執(zhí)行階段的執(zhí)行時間.

    由于情況1 和情況2 的實驗過程相同,情況3 和情況5 的實驗過程相同,情況7 和情況9 的實驗過程相同,情況11 和情況12 的實驗過程相同,我們將實驗過程相同的情況的執(zhí)行時間視為一致.各情況的執(zhí)行時間如下表8 所示,其時間性能如圖18 所示.

    Table 8 Initialization execution time (s)表8 初始化階段執(zhí)行時間 (s)

    Fig.18 Execution time for each situation in the control and execution phases圖18 控制和執(zhí)行階段各情況執(zhí)行時間

    從圖18 可以看出,情況4 的執(zhí)行時間最長.這是因為情況4 既執(zhí)行了innerwrap又執(zhí)行了outerwrap,同時,由于innerwrap和outerwrap的加密密鑰和密鑰種子在目的TPM 方產(chǎn)生,在保護(hù)傳輸過程中增加了TS與DA,TS與TD之間的交互.情況3/5 與情況4 唯一的不同就是innerwrap和outerwrap的加密密鑰和密鑰種子在源TPM方產(chǎn)生,因此執(zhí)行時間也就稍少于情況4.而情況6 中的加密密鑰和密鑰種子是同一個,所以執(zhí)行時間應(yīng)少于情況3/5.情況7~情況10 由于未進(jìn)行outerwrap因此執(zhí)行時間應(yīng)少于情況6.由于情況11/12 既不進(jìn)行innerwrap也不進(jìn)行outerwrap因此執(zhí)行時間少于情況10.而情況1/2 基本不能進(jìn)行密鑰復(fù)制遷移操作,因此時間是最短的.

    5.2.2 與TPM1.2 密鑰遷移的性能對比分析

    本節(jié)主要將本協(xié)議的性能與TPM1.2 密鑰遷移性能進(jìn)行對比分析.由于TPM1.2 不支持對稱密鑰,且本文協(xié)議的情況較多,為此,我們僅在如下場景下進(jìn)行對比分析.

    具體場景:非對稱密鑰Kmigration需要從源平臺Psrc遷移到平臺Pdes,在Psrc端保護(hù)Kmigration的父密鑰是Kparent,而Pdes端選定的將要保護(hù)Kmigration的父密鑰是非對稱密鑰是Kstorage.

    對于TPM1.2,要求Kmigration是可認(rèn)證遷移密鑰CMK(certifiable-migration key).本實驗需要兩臺機(jī)器,這兩臺機(jī)器的硬件配置與表5 相同,不同的是軟件環(huán)境,這兩臺機(jī)器的OS 是Ubuntu 16.04,TPM 模擬器為TPM_emulator_0.7.4 模擬器,TSS.net 的版本為TSS.MSR-master.Source TPM 與MA 在同一臺機(jī)器,授權(quán)口令以默認(rèn)的方式在內(nèi)部產(chǎn)生.這里,我們選用耗時最長的TPM_MS_RESTRICT_APPROVE_DOUBLE遷移模式.對于TPM2.0,此場景對應(yīng)著第3.3 節(jié)中的情況3,具體的時間開銷見表9.

    Table 9 TPM1.2 execution time (s)表9 TPM1.2 執(zhí)行時間 (s)

    可以看出,本文協(xié)議的時間開銷要比TPM1.2 的大一些.我們認(rèn)為,主要原因包括兩個方面.

    (1) 在情況3 中,源TPM 既執(zhí)行了innerwrap,又執(zhí)行了outerwrap,其復(fù)雜性比TPM1.2 大.

    (2) DA 通過與源TPM 與目的TPM 交互,獲得遷移密鑰與新父密鑰的屬性并控制協(xié)議流程,其時間開銷

    要比MA 僅僅是對目標(biāo)密鑰(新父密鑰)進(jìn)行認(rèn)證的時間開銷大.性能對比如圖19 所示.

    Fig.19 Performance comparison圖19 性能對比

    6 相關(guān)工作

    在TPM 密鑰遷移方面,到現(xiàn)在為止取得了較多研究成果.TCG 組織一直是這一工作積極的主導(dǎo)者和推動者,TCG 最初在 TPM1.1 規(guī)范的密鑰遷移模塊中提供了TPM_AuthorizeMigratinKey(),TPM_Create MigrationBlob()和TPM_ConvertMigrationBlob()等3 個API 接口用于遷移密鑰.TPM1.1 的密鑰遷移模塊優(yōu)點是簡單,但弱點是遷移源和目標(biāo)之間缺少認(rèn)證,敵手很容易冒充目標(biāo)TPM 而獲得遷移密鑰的敏感信息.TPM1.2 對遷移模塊作了重大改進(jìn),引進(jìn)了認(rèn)證遷移概念.在認(rèn)證遷移下,用戶可以指定可信第三方遷移權(quán)威(migration authority,簡稱MA),并保證如果沒有MA 的允許,不可以把密鑰遷移到特定的平臺.TPM1.2 關(guān)于認(rèn)證遷移密鑰(certifiable-migration key,簡稱 CMK)的 API 包括TPM_AuthorizeMigratinKey(),TPM_CMK_ApproveMA(),TPM_CMK_CreateKey(),TPM_CMK_CreateTicket(),TPM_CMK_CreateBlob()和TPM_CMK_ConvertMigration()等.TPM1.2 的密鑰遷移模塊優(yōu)點是安全,缺點是復(fù)雜,每次遷移均需要可信第三方MA 參與,效率低.TPM2.0 取消了TPM1.2 的密鑰遷移接口,并使用新的遷移接口,即TPM2_Duplicate()和TPM2_Import().由于TPM2.0 改變了密鑰屬性的表示方式,一個密鑰對象是否可以被復(fù)制,由fixedTPM和fixedParent兩個屬性組合來決定,當(dāng)(fixedTPM=0,fixedParent=0)時,該密鑰對象可以被復(fù)制實現(xiàn)遷移;當(dāng)(fixedTPM=0,fixedParent=1),該密鑰對象可以跟隨父密鑰一起被復(fù)制實現(xiàn)遷移.TPM2.0 使用TPM2_Duplicate()進(jìn)行密鑰復(fù)制時,需要對被復(fù)制密鑰進(jìn)行innerwrap或outerwrap或既進(jìn)行innerwrap又進(jìn)行outerwrap,來保證被復(fù)制密鑰的機(jī)密性、完整性以及認(rèn)證性.TPM2.0 的密鑰遷移模塊優(yōu)點是簡單、高效、靈活而且基本安全,可不需要可信第三方參與;但缺點是容易出現(xiàn)配置錯誤,導(dǎo)致不安全.

    在TPM1.1 和TPM1.2 密鑰遷移機(jī)制的分析方面,文獻(xiàn)[9]用一階邏輯語言建立TPM API 的形式化模型,并對TPMAPI 進(jìn)行了全面的邏輯推理分析,其中,對密鑰遷移API 的分析指出,TPM1.1 的弱點在于遷移目標(biāo)由源TPM 的owner 指定,目標(biāo)TPM 并不參與遷移,目標(biāo)TPM 在接收可遷移密鑰時,可遷移密鑰有可能已經(jīng)泄漏,因此具有較大的安全隱患.文獻(xiàn)[10]應(yīng)用π演算對TPM 進(jìn)行形式化建模,并使用自動定理證明工具ProVerif 驗證其安全屬性.作者分析了TPM CMK(certifiable migratable key)的TPM_MS_RESTRICT_MIGRATE遷移模式,分析結(jié)果表明:若作為第三方的遷移權(quán)威(migration authority,簡稱MA)用軟件處理遷移數(shù)據(jù),則敵手能獲得被遷移密鑰的私鑰.作者建議TPM 規(guī)范強(qiáng)制要求MA 使用TPM 代替軟件處理遷移數(shù)據(jù).文獻(xiàn)[11]對TPM 可遷移密鑰的安全性進(jìn)行了分析,指出,TPM 提供密鑰遷移機(jī)制的同時,降低了可遷移密鑰的安全保護(hù)強(qiáng)度,敵手能夠利用TPM 的密鑰遷移類接口和密鑰加載接口破壞TPM 可遷移密鑰的安全性.

    在TPM2.0 密鑰遷移機(jī)制的分析方面,文獻(xiàn)[12]建立了TPM2.0 保護(hù)存儲API 的抽象模型,并利用類型系統(tǒng)證明了TPM2.0 保護(hù)存儲的安全性.證明結(jié)果表明,TPM2.0 保護(hù)存儲中的密鑰復(fù)制類接口是安全的.文獻(xiàn)[13]對TPM2.0 密鑰管理API 的安全性進(jìn)行了形式化分析,證明了密鑰存儲和使用類接口能夠保證TPM 不可遷移密鑰的安全性,并發(fā)現(xiàn)了針對密鑰復(fù)制類接口的兩種攻擊.作者提出了該類接口的改進(jìn)方案,并證明了利用改進(jìn)的接口實施密鑰復(fù)制能夠保證被復(fù)制密鑰的安全性.文獻(xiàn)[14]分析了TPM2.0 密鑰復(fù)制相關(guān)流程,對于其中存在的密鑰隱私泄露問題進(jìn)行了改進(jìn).在用戶不安全復(fù)制傳輸情形下,從TPM 管理者的角度出發(fā),提出了一套基于TPM自身的加密傳輸協(xié)議.通過利用TPM 自身產(chǎn)生安全密鑰,對未受保護(hù)的用戶敏感數(shù)據(jù)進(jìn)行加密,并通過簽名的方式保障傳輸?shù)目煽啃?

    另外,對于我國TCM 芯片,文獻(xiàn)[15]指出,由該芯片的密鑰遷移模塊實現(xiàn)的密鑰遷移協(xié)議存在兩個問題.

    · 對稱密鑰不能作為被遷移密鑰的新父密鑰,違背了TCM 的初始設(shè)計思想;

    · 缺少交互雙方TCM 的相互認(rèn)證,導(dǎo)致源TCM 的被遷移密鑰可以被外部敵手獲得,并且敵手可以將其控制的密鑰遷移到目標(biāo)TCM 中.

    針對上述問題,作者提出兩個新的密鑰遷移協(xié)議.

    · 協(xié)議1 遵循TCM 目前的接口規(guī)范,以目標(biāo)TCM 的PEK(platform encryption key)作為遷移保護(hù)密鑰,能夠認(rèn)證目標(biāo)TCM,并允許對稱密鑰作為新父密鑰.

    · 協(xié)議2 簡單改動了TCM 接口,源TCM 和目標(biāo)TCM 進(jìn)行SM2 密鑰協(xié)商,得到的會話密鑰作為遷移保護(hù)密鑰,解決了上述兩個問題,并且獲得了前向安全屬性.

    最后,使用形式化分析方法對上述協(xié)議進(jìn)行安全性分析,結(jié)果顯示,協(xié)議滿足正確性和預(yù)期的安全屬性.

    7 結(jié)束語

    本文分析了《TPM-Rev-2.0-Part-1-Architecture-01.38》國際標(biāo)準(zhǔn),并總結(jié)出使用該標(biāo)準(zhǔn)中的密鑰復(fù)制接口來實施密鑰遷移存在的3 個問題.

    · 其一是缺少交互雙方TPM 的相互認(rèn)證,會導(dǎo)致密鑰能夠在敵手和TPM 間遷移;

    · 其二是當(dāng)遷移密鑰的屬性encryptedDuplication=0 且新父密鑰的句柄newParentHandle=TPM_RH_NULL時,復(fù)制接口不能實施innerwrap和outerwrap,遷移密鑰將以明文傳輸而造成泄露;

    · 其三是當(dāng)新父密鑰是對稱密鑰時,innerwrap中的對稱加密密鑰以及outerwrap中的密鑰種子如何在源TPM 與目標(biāo)TPM 之間安全交換,《TPM-Rev-2.0-Part-1-Architecture-01.38》并沒有給出具體的解決辦法.

    針對這些問題,提出了基于Duplication Authority 的密鑰遷移協(xié)議.該協(xié)議以Duplication Authority 為認(rèn)證和控制中心,將密鑰遷移過程分為初始化階段、認(rèn)證和屬性獲取階段以及控制和執(zhí)行階段.Duplication Authority通過判定密鑰的復(fù)制屬性和類型、新父密鑰的密鑰類型和句柄類型來決定遷移流程.我們考慮了各種合規(guī)的屬性組合,共設(shè)計了12 種遷移流程.最后,對該協(xié)議進(jìn)行了安全分析和模擬實驗驗證,結(jié)果顯示,該協(xié)議不僅完全滿足《TPM-Rev-2.0-Part-1-Architecture-01.38》規(guī)范,而且滿足完整性、機(jī)密性和認(rèn)證性.

    猜你喜歡
    解密密鑰加密
    探索企業(yè)創(chuàng)新密鑰
    解密“熱脹冷縮”
    解密“一包三改”
    少先隊活動(2020年9期)2020-12-17 06:17:31
    密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
    炫詞解密
    一種基于熵的混沌加密小波變換水印算法
    一種對稱密鑰的密鑰管理方法及系統(tǒng)
    基于ECC的智能家居密鑰管理機(jī)制的實現(xiàn)
    認(rèn)證加密的研究進(jìn)展
    基于ECC加密的電子商務(wù)系統(tǒng)
    亚洲性夜色夜夜综合| 欧美日韩亚洲综合一区二区三区_| 在线视频色国产色| 纯流量卡能插随身wifi吗| 亚洲色图av天堂| 亚洲av成人一区二区三| 黄片播放在线免费| 欧美中文综合在线视频| 操美女的视频在线观看| 在线观看免费午夜福利视频| 十八禁人妻一区二区| 日韩视频一区二区在线观看| 天天影视国产精品| 日韩中文字幕欧美一区二区| 亚洲自偷自拍图片 自拍| 亚洲精品久久午夜乱码| 欧美大码av| 男女高潮啪啪啪动态图| 最新在线观看一区二区三区| 香蕉国产在线看| 久久精品亚洲av国产电影网| 亚洲国产精品一区二区三区在线| 成年人免费黄色播放视频| www.999成人在线观看| 99re6热这里在线精品视频| 80岁老熟妇乱子伦牲交| 一a级毛片在线观看| 男女午夜视频在线观看| 婷婷精品国产亚洲av在线 | 视频区欧美日本亚洲| 久久久水蜜桃国产精品网| 国产欧美日韩精品亚洲av| 精品乱码久久久久久99久播| 精品一品国产午夜福利视频| 少妇被粗大的猛进出69影院| 亚洲中文字幕日韩| 超碰成人久久| www日本在线高清视频| 岛国在线观看网站| 老司机在亚洲福利影院| 色婷婷久久久亚洲欧美| 手机成人av网站| 九色亚洲精品在线播放| av免费在线观看网站| 黄色成人免费大全| 水蜜桃什么品种好| 下体分泌物呈黄色| 久久久久国产精品人妻aⅴ院 | 99在线人妻在线中文字幕 | 成人18禁在线播放| www.精华液| 91麻豆av在线| 国产激情久久老熟女| 欧美国产精品一级二级三级| 精品午夜福利视频在线观看一区| 十分钟在线观看高清视频www| 两人在一起打扑克的视频| 人人妻人人澡人人看| 后天国语完整版免费观看| 久久久国产成人免费| 亚洲人成电影免费在线| 男人操女人黄网站| 国产欧美日韩一区二区精品| 久久香蕉激情| 久久这里只有精品19| 黄色片一级片一级黄色片| 制服诱惑二区| 亚洲一卡2卡3卡4卡5卡精品中文| 久久精品亚洲av国产电影网| 母亲3免费完整高清在线观看| 久久人妻福利社区极品人妻图片| 黑丝袜美女国产一区| videosex国产| 久久国产精品大桥未久av| 国产精品自产拍在线观看55亚洲 | 成人18禁高潮啪啪吃奶动态图| av一本久久久久| www.精华液| 高清av免费在线| 欧美一级毛片孕妇| 亚洲一区高清亚洲精品| 久久这里只有精品19| 日韩一卡2卡3卡4卡2021年| 老司机午夜十八禁免费视频| x7x7x7水蜜桃| 国产欧美日韩综合在线一区二区| 无人区码免费观看不卡| 午夜精品久久久久久毛片777| 这个男人来自地球电影免费观看| 午夜福利在线免费观看网站| 国产亚洲欧美在线一区二区| 亚洲精品国产精品久久久不卡| 亚洲av日韩精品久久久久久密| 成人免费观看视频高清| 大香蕉久久网| 久久中文字幕一级| 亚洲欧美一区二区三区黑人| 叶爱在线成人免费视频播放| 亚洲七黄色美女视频| 久久天躁狠狠躁夜夜2o2o| 最近最新免费中文字幕在线| 一区二区三区精品91| 又大又爽又粗| 亚洲人成电影免费在线| 国产成人免费观看mmmm| 精品一区二区三区四区五区乱码| 两人在一起打扑克的视频| 亚洲综合色网址| 午夜久久久在线观看| 国产aⅴ精品一区二区三区波| 亚洲 欧美一区二区三区| 成人精品一区二区免费| 99国产精品99久久久久| 美女福利国产在线| 欧美性长视频在线观看| 国产精品99久久99久久久不卡| 亚洲熟女毛片儿| 成人国产一区最新在线观看| 国产真人三级小视频在线观看| 日本精品一区二区三区蜜桃| 黑丝袜美女国产一区| 99国产精品一区二区蜜桃av | 国产成+人综合+亚洲专区| 欧美激情久久久久久爽电影 | 黄片大片在线免费观看| 亚洲人成电影免费在线| 欧美成人免费av一区二区三区 | 97人妻天天添夜夜摸| 激情视频va一区二区三区| 婷婷精品国产亚洲av在线 | 熟女少妇亚洲综合色aaa.| 亚洲欧美激情综合另类| 无人区码免费观看不卡| 成熟少妇高潮喷水视频| 精品国产乱子伦一区二区三区| 香蕉久久夜色| 亚洲精品成人av观看孕妇| 亚洲全国av大片| 亚洲第一av免费看| 黄片小视频在线播放| 国产精品自产拍在线观看55亚洲 | 免费在线观看视频国产中文字幕亚洲| 国产精品98久久久久久宅男小说| 久久婷婷成人综合色麻豆| av天堂在线播放| 国产免费av片在线观看野外av| 美女高潮喷水抽搐中文字幕| 日韩视频一区二区在线观看| 中亚洲国语对白在线视频| 午夜精品久久久久久毛片777| 欧美一级毛片孕妇| 怎么达到女性高潮| 在线国产一区二区在线| 亚洲精品成人av观看孕妇| 人人妻,人人澡人人爽秒播| 国产一卡二卡三卡精品| 久久香蕉国产精品| 人成视频在线观看免费观看| 国产色视频综合| 女人被狂操c到高潮| xxxhd国产人妻xxx| 一本大道久久a久久精品| 久热爱精品视频在线9| 亚洲av成人不卡在线观看播放网| 亚洲欧美色中文字幕在线| 深夜精品福利| 欧美日韩乱码在线| 大香蕉久久成人网| 亚洲精品乱久久久久久| 我的亚洲天堂| 欧美精品啪啪一区二区三区| 欧美亚洲日本最大视频资源| 在线视频色国产色| 一二三四社区在线视频社区8| 国产亚洲精品久久久久5区| 久久九九热精品免费| 成年女人毛片免费观看观看9 | a级毛片黄视频| 国产在线一区二区三区精| 国产精品久久久人人做人人爽| 精品国产乱码久久久久久男人| 国产成人影院久久av| 国产区一区二久久| av一本久久久久| 国产在视频线精品| 悠悠久久av| 国产精品久久久人人做人人爽| 丝袜美腿诱惑在线| 中文欧美无线码| 精品欧美一区二区三区在线| 中文字幕av电影在线播放| 国产精品一区二区精品视频观看| 国产深夜福利视频在线观看| 欧美黄色片欧美黄色片| 69av精品久久久久久| 久99久视频精品免费| 亚洲精品国产色婷婷电影| 欧美 亚洲 国产 日韩一| 亚洲全国av大片| 亚洲第一青青草原| 久久久久久久精品吃奶| 欧美日韩一级在线毛片| 久久人人爽av亚洲精品天堂| 国产乱人伦免费视频| 欧美亚洲日本最大视频资源| 久久亚洲精品不卡| 久久中文字幕一级| 日本一区二区免费在线视频| 久久热在线av| 亚洲午夜精品一区,二区,三区| 涩涩av久久男人的天堂| 老汉色av国产亚洲站长工具| 亚洲一区二区三区欧美精品| 成熟少妇高潮喷水视频| 中文字幕av电影在线播放| 日韩中文字幕欧美一区二区| 国产淫语在线视频| 人人妻人人澡人人爽人人夜夜| 青草久久国产| 国产男女内射视频| 免费在线观看日本一区| 下体分泌物呈黄色| 韩国精品一区二区三区| 久久中文看片网| 久久99一区二区三区| 无人区码免费观看不卡| 高潮久久久久久久久久久不卡| www日本在线高清视频| 每晚都被弄得嗷嗷叫到高潮| 成年动漫av网址| 满18在线观看网站| 女人精品久久久久毛片| 窝窝影院91人妻| 亚洲欧美激情在线| 久久亚洲精品不卡| 香蕉丝袜av| 精品国产一区二区久久| 久久ye,这里只有精品| 在线十欧美十亚洲十日本专区| www.自偷自拍.com| 高清视频免费观看一区二区| 91av网站免费观看| x7x7x7水蜜桃| 日日爽夜夜爽网站| 黄网站色视频无遮挡免费观看| avwww免费| 国产精品av久久久久免费| 亚洲久久久国产精品| 男女之事视频高清在线观看| 香蕉国产在线看| 国内久久婷婷六月综合欲色啪| 免费日韩欧美在线观看| av线在线观看网站| 中文字幕人妻丝袜一区二区| 亚洲一区二区三区欧美精品| 亚洲综合色网址| 老司机亚洲免费影院| 亚洲少妇的诱惑av| 成人免费观看视频高清| 午夜精品在线福利| 大片电影免费在线观看免费| 一本大道久久a久久精品| 自线自在国产av| 亚洲第一青青草原| 老鸭窝网址在线观看| 成熟少妇高潮喷水视频| 国产亚洲精品一区二区www | 人妻 亚洲 视频| 成人影院久久| 亚洲美女黄片视频| 老鸭窝网址在线观看| 可以免费在线观看a视频的电影网站| 狂野欧美激情性xxxx| 久久青草综合色| 一进一出抽搐gif免费好疼 | 深夜精品福利| 高清黄色对白视频在线免费看| 亚洲第一欧美日韩一区二区三区| 国产亚洲精品一区二区www | 精品无人区乱码1区二区| 少妇猛男粗大的猛烈进出视频| 每晚都被弄得嗷嗷叫到高潮| www.999成人在线观看| 如日韩欧美国产精品一区二区三区| 9色porny在线观看| 侵犯人妻中文字幕一二三四区| 午夜福利一区二区在线看| 老鸭窝网址在线观看| 精品午夜福利视频在线观看一区| 在线观看舔阴道视频| 天天躁夜夜躁狠狠躁躁| 岛国毛片在线播放| 亚洲人成电影免费在线| 日日夜夜操网爽| 伊人久久大香线蕉亚洲五| 午夜福利,免费看| 在线观看免费日韩欧美大片| 欧美大码av| 精品国产超薄肉色丝袜足j| 99热只有精品国产| 午夜精品在线福利| 精品国内亚洲2022精品成人 | 少妇被粗大的猛进出69影院| 午夜福利在线观看吧| 亚洲精品国产色婷婷电影| 亚洲三区欧美一区| 久久中文看片网| 欧美精品一区二区免费开放| 黑人欧美特级aaaaaa片| 国产精品久久久久久精品古装| 91精品三级在线观看| 欧美人与性动交α欧美精品济南到| 亚洲精品久久午夜乱码| 日本黄色视频三级网站网址 | 校园春色视频在线观看| 两性午夜刺激爽爽歪歪视频在线观看 | 成人特级黄色片久久久久久久| 亚洲精品中文字幕在线视频| 国产精品国产av在线观看| 夜夜爽天天搞| 免费在线观看亚洲国产| 夫妻午夜视频| 超碰成人久久| 亚洲成人免费电影在线观看| 午夜福利一区二区在线看| 丝袜人妻中文字幕| 最近最新中文字幕大全电影3 | 777米奇影视久久| 国产亚洲精品一区二区www | 99热国产这里只有精品6| 少妇猛男粗大的猛烈进出视频| 好男人电影高清在线观看| 亚洲精品粉嫩美女一区| 久99久视频精品免费| 亚洲国产欧美网| 女人高潮潮喷娇喘18禁视频| 香蕉丝袜av| 国产单亲对白刺激| 免费在线观看视频国产中文字幕亚洲| 日韩成人在线观看一区二区三区| 男女之事视频高清在线观看| 婷婷丁香在线五月| 国产精品乱码一区二三区的特点 | 中文字幕色久视频| 亚洲国产精品合色在线| 久久精品熟女亚洲av麻豆精品| 啪啪无遮挡十八禁网站| 久久午夜综合久久蜜桃| 激情视频va一区二区三区| 99在线人妻在线中文字幕 | 日本黄色视频三级网站网址 | 国产人伦9x9x在线观看| 精品国产亚洲在线| 男女床上黄色一级片免费看| 在线观看免费午夜福利视频| 在线观看免费高清a一片| 人人妻,人人澡人人爽秒播| av在线播放免费不卡| 性色av乱码一区二区三区2| 少妇的丰满在线观看| 老司机亚洲免费影院| 国产欧美日韩一区二区三| 成人手机av| 看免费av毛片| 韩国精品一区二区三区| 欧美日韩乱码在线| 法律面前人人平等表现在哪些方面| 一边摸一边做爽爽视频免费| 国产欧美日韩一区二区三| 国产精华一区二区三区| 国产99久久九九免费精品| av中文乱码字幕在线| 午夜福利在线免费观看网站| 老司机午夜福利在线观看视频| 九色亚洲精品在线播放| 亚洲男人天堂网一区| 欧美日韩一级在线毛片| 国产成+人综合+亚洲专区| av欧美777| 一级片免费观看大全| 怎么达到女性高潮| 18禁观看日本| 满18在线观看网站| 欧美久久黑人一区二区| 亚洲 国产 在线| 国产精品久久久久久人妻精品电影| 国产aⅴ精品一区二区三区波| 成人国产一区最新在线观看| 免费女性裸体啪啪无遮挡网站| 久久国产精品人妻蜜桃| 乱人伦中国视频| av超薄肉色丝袜交足视频| 50天的宝宝边吃奶边哭怎么回事| 人人妻,人人澡人人爽秒播| 久久亚洲真实| 国产激情欧美一区二区| 国产又爽黄色视频| 国产色视频综合| 亚洲专区字幕在线| 另类亚洲欧美激情| 一进一出抽搐动态| 亚洲午夜精品一区,二区,三区| 国产不卡av网站在线观看| av福利片在线| 女性被躁到高潮视频| 精品乱码久久久久久99久播| 国产成人欧美在线观看 | 精品国产乱码久久久久久男人| 国内久久婷婷六月综合欲色啪| 美女视频免费永久观看网站| 午夜亚洲福利在线播放| 亚洲欧洲精品一区二区精品久久久| 18禁观看日本| 国产有黄有色有爽视频| 亚洲精品国产色婷婷电影| 韩国精品一区二区三区| 亚洲一区二区三区欧美精品| 亚洲国产欧美网| 丰满的人妻完整版| 久久这里只有精品19| 黄色成人免费大全| 亚洲av电影在线进入| 久久人妻av系列| 天天影视国产精品| 男人操女人黄网站| 在线十欧美十亚洲十日本专区| 啦啦啦 在线观看视频| 中出人妻视频一区二区| 999久久久精品免费观看国产| 狠狠婷婷综合久久久久久88av| 午夜久久久在线观看| 午夜精品国产一区二区电影| 女人久久www免费人成看片| 欧美成狂野欧美在线观看| 法律面前人人平等表现在哪些方面| 无限看片的www在线观看| 乱人伦中国视频| 视频区欧美日本亚洲| 女警被强在线播放| 中文字幕高清在线视频| 999久久久国产精品视频| 成人免费观看视频高清| 一进一出抽搐动态| 中文字幕av电影在线播放| 欧美日韩亚洲高清精品| 99热只有精品国产| 99riav亚洲国产免费| 久久ye,这里只有精品| 最新美女视频免费是黄的| 正在播放国产对白刺激| 免费看a级黄色片| 两性夫妻黄色片| www日本在线高清视频| 亚洲中文av在线| 欧美另类亚洲清纯唯美| 久久精品国产a三级三级三级| 18在线观看网站| 又黄又粗又硬又大视频| 天堂√8在线中文| 中文字幕色久视频| 亚洲中文字幕日韩| 欧美在线一区亚洲| 99国产精品99久久久久| 少妇被粗大的猛进出69影院| 女人精品久久久久毛片| 一区二区三区激情视频| 日本a在线网址| 丁香六月欧美| 精品国产美女av久久久久小说| 大码成人一级视频| 伊人久久大香线蕉亚洲五| 亚洲五月天丁香| 国产免费男女视频| 欧美日本中文国产一区发布| 成人18禁在线播放| 日韩成人在线观看一区二区三区| 如日韩欧美国产精品一区二区三区| www日本在线高清视频| 露出奶头的视频| 两个人看的免费小视频| 在线观看免费视频网站a站| 操美女的视频在线观看| 丰满饥渴人妻一区二区三| tocl精华| 国产成+人综合+亚洲专区| 亚洲久久久国产精品| 一级片'在线观看视频| av天堂在线播放| 欧美人与性动交α欧美精品济南到| 黄色成人免费大全| 天堂中文最新版在线下载| 亚洲中文日韩欧美视频| 国产精品二区激情视频| 国产精品永久免费网站| 国产不卡一卡二| 国产成人欧美在线观看 | 男人的好看免费观看在线视频 | 丝袜人妻中文字幕| 亚洲一区中文字幕在线| 91成年电影在线观看| 精品少妇久久久久久888优播| 国产av一区二区精品久久| 一级片'在线观看视频| 精品亚洲成a人片在线观看| 日本一区二区免费在线视频| 国产99白浆流出| 超色免费av| 在线观看66精品国产| 最近最新免费中文字幕在线| 色婷婷久久久亚洲欧美| 视频区欧美日本亚洲| 日日夜夜操网爽| 久久久水蜜桃国产精品网| 国产在线精品亚洲第一网站| 国产精品久久久人人做人人爽| 高清av免费在线| 国产精品香港三级国产av潘金莲| 99久久精品国产亚洲精品| 自线自在国产av| 99热国产这里只有精品6| 飞空精品影院首页| 91国产中文字幕| 亚洲午夜精品一区,二区,三区| 午夜亚洲福利在线播放| 一本综合久久免费| 老司机影院毛片| 日日摸夜夜添夜夜添小说| 99在线人妻在线中文字幕 | 在线免费观看的www视频| 国产片内射在线| 亚洲欧美色中文字幕在线| 国产97色在线日韩免费| 国产在线一区二区三区精| 国产成人av教育| 丝瓜视频免费看黄片| x7x7x7水蜜桃| 91字幕亚洲| 三级毛片av免费| 亚洲国产欧美日韩在线播放| 波多野结衣一区麻豆| 999精品在线视频| tocl精华| 国产高清视频在线播放一区| 久久久国产成人免费| 身体一侧抽搐| 国产熟女午夜一区二区三区| 日韩中文字幕欧美一区二区| 久久午夜亚洲精品久久| 老司机靠b影院| av福利片在线| 91字幕亚洲| 性少妇av在线| 免费看a级黄色片| 国产精品亚洲av一区麻豆| 亚洲国产精品sss在线观看 | 狠狠狠狠99中文字幕| 欧美不卡视频在线免费观看 | 久久久久久人人人人人| 国产欧美日韩一区二区精品| 久久久久久免费高清国产稀缺| 午夜精品在线福利| 欧美亚洲日本最大视频资源| 亚洲色图 男人天堂 中文字幕| 欧美日韩黄片免| 69精品国产乱码久久久| 午夜精品国产一区二区电影| 日本一区二区免费在线视频| 嫩草影视91久久| x7x7x7水蜜桃| 国产深夜福利视频在线观看| 老司机午夜十八禁免费视频| 免费看a级黄色片| 国产精品亚洲av一区麻豆| 一级a爱片免费观看的视频| 亚洲国产中文字幕在线视频| 黄色女人牲交| 高清在线国产一区| 人妻一区二区av| 国产精品电影一区二区三区 | 最近最新中文字幕大全电影3 | av天堂在线播放| 在线av久久热| 午夜福利欧美成人| 丰满人妻熟妇乱又伦精品不卡| av视频免费观看在线观看| 国产精品一区二区在线不卡| 欧美黑人欧美精品刺激| 黑人猛操日本美女一级片| 亚洲视频免费观看视频| 国产日韩一区二区三区精品不卡| 人妻一区二区av| 窝窝影院91人妻| 国产一区二区三区在线臀色熟女 | 日日摸夜夜添夜夜添小说| 久久久国产精品麻豆| 成人永久免费在线观看视频| 满18在线观看网站| 一二三四在线观看免费中文在| 黄片大片在线免费观看| 美女视频免费永久观看网站| 18禁黄网站禁片午夜丰满| 国产男靠女视频免费网站| 18禁裸乳无遮挡动漫免费视频| 亚洲国产毛片av蜜桃av| 免费久久久久久久精品成人欧美视频| 久久狼人影院| 黄色丝袜av网址大全| 亚洲,欧美精品.| 一级毛片精品| 亚洲性夜色夜夜综合| 欧美日韩瑟瑟在线播放| 色精品久久人妻99蜜桃| 精品国产亚洲在线| 女警被强在线播放| 欧美av亚洲av综合av国产av|