《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于PUF的可信根及可信計(jì)算平臺(tái)架構(gòu)設(shè)計(jì)
基于PUF的可信根及可信計(jì)算平臺(tái)架構(gòu)設(shè)計(jì)
2018年電子技術(shù)應(yīng)用第9期
吳 縉,徐金甫
解放軍信息工程大學(xué),河南 鄭州450001
摘要: 物理不可克隆函數(shù)(Physical Unclonable Functions,PUF)在設(shè)備認(rèn)證和安全密鑰存儲(chǔ)等應(yīng)用中具有高度靈活性,并被廣泛用于嵌入式系統(tǒng)的安全防護(hù)。利用PUF技術(shù)為雙核安全架構(gòu)提供可信根(PUF-based Root of Trust,PRoT),設(shè)計(jì)了以PRoT為信任錨點(diǎn)的信任鏈和密鑰更新協(xié)議,保證了在SoC系統(tǒng)上可信關(guān)系的逐級(jí)擴(kuò)展以及安全啟動(dòng)的可靠性和安全性。通過(guò)測(cè)試實(shí)驗(yàn)表明,PUF能夠?yàn)榍度胧较到y(tǒng)提供安全靈活的可信根,PRoT能夠以較小TCB運(yùn)行于雙核隔離SoC系統(tǒng)中,其隨機(jī)數(shù)種子和唯一設(shè)備密鑰對(duì)多種攻擊具有抗性。
中圖分類(lèi)號(hào): TP309
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.175075
中文引用格式: 吳縉,徐金甫. 基于PUF的可信根及可信計(jì)算平臺(tái)架構(gòu)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(9):34-38.
英文引用格式: Wu Jin,Xu Jinfu. Trusted root and trusted computing platform architecture design based on physical unclonable function[J]. Application of Electronic Technique,2018,44(9):34-38.
Trusted root and trusted computing platform architecture design based on physical unclonable function
Wu Jin,Xu Jinfu
The PLA Information Engineering University,Zhengzhou 450001,China
Abstract: Physical Unclonable Functions(PUFs) are highly flexible in applications such as device authentication and secure key storage, and are widely used in embedded system security. In this paper, we use PUF technology to provide the root of trust(RoT) for dual-core security architecture, and design the chain of trust and key update protocol based on PUF-based RoT, to ensure the gradual extension of trusted relationship and the reliability and security of secure boot on SoC system. The experimental results show that PUF-based RoT can operate in a dual-core isolated SoC system with a small TCB, and its random number seed and unique device key are resistant to multiple attacks. It proves that the PUF can provide the security and flexibility RoT for the embedded system.
Key words : PUF;the root of trust;the chain of trust;trusted computing

0 引言

    為有效防御惡意用戶非法訪問(wèn)SoC中的敏感數(shù)據(jù)或危害其他部件,文獻(xiàn)[1]提出了基于雙核的通用計(jì)算與安全管控隔離的SoC架構(gòu)(下面簡(jiǎn)稱“雙核安全架構(gòu)”),實(shí)現(xiàn)了安全核對(duì)計(jì)算核的安全啟動(dòng)、主動(dòng)度量、實(shí)時(shí)監(jiān)控、訪問(wèn)控制等安全服務(wù)。但這一架構(gòu)只能提供“隔離”而不是“可信”的執(zhí)行環(huán)境,因?yàn)樗鼰o(wú)法向用戶或外部驗(yàn)證者證明運(yùn)行在執(zhí)行環(huán)境中的軟件是不可篡改的。當(dāng)前主流的驗(yàn)證技術(shù)是利用認(rèn)證密鑰對(duì)軟件度量值進(jìn)行簽名和驗(yàn)簽,而認(rèn)證密鑰和軟件度量值都通過(guò)可信根來(lái)安全存儲(chǔ)[2]。因此,一個(gè)隔離的執(zhí)行環(huán)境只有配備了可信根才能真正構(gòu)成可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)。

    國(guó)內(nèi)外針對(duì)可信根構(gòu)建技術(shù)進(jìn)行了許多研究。ARM公司基于GlobalPlatform TEE API標(biāo)準(zhǔn)定義了TrustZone應(yīng)用平臺(tái)架構(gòu),利用硬件密鑰、密碼加速器、安全芯片等硬件資源來(lái)構(gòu)建可信根[3-4]。文獻(xiàn)[5]提出使用PUF來(lái)保護(hù)TEE的方法,但只考慮了TrustZone應(yīng)用平臺(tái)上的安全啟動(dòng)過(guò)程,而忽視了認(rèn)證、加密等安全防護(hù)功能,且沒(méi)有給出具體設(shè)計(jì)實(shí)現(xiàn)。文獻(xiàn)[6]提出了一種便攜式可信計(jì)算模塊TEEM,可為各種計(jì)算平臺(tái)提供可信計(jì)算功能,但沒(méi)有實(shí)現(xiàn)TEEM與Rich OS的隔離,TEEM運(yùn)行于整個(gè)Linux操作系統(tǒng),使得可信計(jì)算基(Trusted Computing Base,TCB)非常龐大,且沒(méi)有考慮如何建立TEEM的信任鏈。

    鑒于上述方法均無(wú)法構(gòu)建高效靈活安全的可信根,本文提出了利用PUF技術(shù)為雙核安全架構(gòu)提供可信根PRoT,設(shè)計(jì)了基于PRoT的信任鏈,以保證可信關(guān)系的逐級(jí)擴(kuò)展。實(shí)驗(yàn)結(jié)果表明,PUF為嵌入式系統(tǒng)提供的可信根具有安全性,并根據(jù)PRoT部署了密鑰更新協(xié)議,進(jìn)一步增強(qiáng)了系統(tǒng)的靈活性和攻擊抗性。

1 基于PUF的可信根PRoT

    具有輕量級(jí)屬性的PUF適用于資源受限的嵌入式設(shè)備[5],基于PUF構(gòu)建可信根PRoT可為操作系統(tǒng)(Operating System,OS)和安全服務(wù)提供可信計(jì)算功能,而無(wú)需額外的安全硬件資源,并允許用戶在設(shè)備被物理攻擊破壞后重新部署可信根。PRoT的核心模塊為可信構(gòu)建模塊(Trust Building Module,TBM)和Seal/Unseal服務(wù)。

1.1 可信構(gòu)建模塊TBM

    本文利用模糊提取算法[7]從PUF響應(yīng)值中提取唯一設(shè)備密鑰,模糊提取算法結(jié)構(gòu)如圖1所示。模糊提取算法的工作過(guò)程分為生成階段和重現(xiàn)階段。TBM實(shí)現(xiàn)于重現(xiàn)階段,由BCH糾錯(cuò)碼、密鑰提取算法(Key Derivation Function,KDF)和密鑰生成算法(Key Generation Algorithm,KG)組成。

wdz1-t1.gif

1.1.1 生成階段

    生成階段由制造商在設(shè)備生產(chǎn)中執(zhí)行。首先,制造商選擇隨機(jī)數(shù)PS,用BCH糾錯(cuò)碼對(duì)PS進(jìn)行編碼以獲得代碼C(PS)=BCHEnc(PS)。PUF的響應(yīng)R作為輸入,與C(PS)異或得到代碼S送入輔助數(shù)據(jù)H,在重現(xiàn)階段中H用于生成相同的初始種子PS。

    然后,R與PS異或得到TRS,再注入KDF中生成對(duì)稱密鑰k,PS被傳遞到KG中生成唯一的公鑰/私鑰對(duì)(pk,sk)。對(duì)稱密鑰對(duì)安全OS的鏡像進(jìn)行加密來(lái)保護(hù)其機(jī)密性。制造商通過(guò)簽名公鑰pk、TBM鏡像和安全OS鏡像的標(biāo)準(zhǔn)度量值來(lái)生成證書(shū) Certpk。這兩個(gè)度量值將用于構(gòu)建雙核安全架構(gòu)安全啟動(dòng)的信任鏈。

    最后,制造商將輔助數(shù)據(jù)H、加密后的安全OS鏡像和證書(shū)Certpk存儲(chǔ)在設(shè)備的非易失性存儲(chǔ)器中。在生成階段,制造商將初始種子PS隱含地嵌入到設(shè)備中,即初始種子沒(méi)有物理存儲(chǔ)在設(shè)備上,但可以在運(yùn)行時(shí)重新生成。

1.1.2 重現(xiàn)階段

    重現(xiàn)階段將PUF在相同激勵(lì)下產(chǎn)生的響應(yīng)值R′作為輸入。由于環(huán)境因素干擾,PUF的響應(yīng)值R′和生成階段中PUF的響應(yīng)值R之間存在噪聲偏差,故BCH糾錯(cuò)碼用來(lái)消除噪聲。R′先與輔助數(shù)據(jù)中的S進(jìn)行異或以產(chǎn)生噪聲BCH碼C(PS)′=R′⊕S,代碼C(PS)′傳遞給BCH解碼器,消除噪聲并產(chǎn)生在生成階段中隨機(jī)選擇的PS,最后從PS中提取唯一設(shè)備密鑰和對(duì)稱密鑰,對(duì)稱密鑰用于解密安全OS鏡像。

    TBM產(chǎn)生的唯一設(shè)備密鑰為安全服務(wù)和通用操作系統(tǒng)提供可信根。首先是利用唯一設(shè)備密鑰為安全服務(wù)提供Seal/Unseal服務(wù),確保只有指定的安全服務(wù)和平臺(tái)才能訪問(wèn)用戶數(shù)據(jù),Seal/Unseal服務(wù)可視為安全服務(wù)的可信根。其次,TPM服務(wù)使用唯一設(shè)備密鑰作為認(rèn)證密鑰,為通用計(jì)算核提供諸如安全存儲(chǔ)、認(rèn)證、度量等豐富的可信計(jì)算功能,這些功能可用于啟動(dòng)一個(gè)可信的通用OS并幫助該OS將信任鏈擴(kuò)展到應(yīng)用,即幫助非安全域運(yùn)行在可信狀態(tài)。TPM服務(wù)可視為通用操作系統(tǒng)的可信根。

1.2 Seal/Unseal服務(wù)

    Seal/Unseal服務(wù)利用唯一設(shè)備密鑰(pk,sk)進(jìn)行加密算法和哈希操作,與平臺(tái)和特定安全服務(wù)綁定安全數(shù)據(jù)。用戶通過(guò)步驟1和2將數(shù)據(jù)data密封到安全服務(wù)S中,其中hash(S)表示二進(jìn)制代碼S的哈希值,B代表存儲(chǔ)于安全服務(wù)中的雙重加密代碼。

     wdz1-t1-s1.gif

          wdz1-t1-x1.gif

    由步驟Sealing和Unsealing可知,只有具有唯一設(shè)備密鑰和運(yùn)行合法安全服務(wù)的設(shè)備才能獲取用戶數(shù)據(jù)data,而唯一設(shè)備密鑰只能被運(yùn)行合法OS的平臺(tái)獲得,所以Seal/Unseal服務(wù)保證了只有處于安全狀態(tài)的平臺(tái)才可以訪問(wèn)用戶數(shù)據(jù)。換句話說(shuō),Seal/Unseal服務(wù)向用戶隱含地證明了執(zhí)行環(huán)境處于可信狀態(tài)。安全服務(wù)還可以使用此機(jī)制來(lái)存儲(chǔ)關(guān)鍵數(shù)據(jù)。

2 基于PROT的可信計(jì)算平臺(tái)架構(gòu)

2.1 可信計(jì)算平臺(tái)架構(gòu)

    安全啟動(dòng)是保證SoC系統(tǒng)安全的一個(gè)重要前提。安全OS和安全服務(wù)的鏡像通常從非安全永久性存儲(chǔ)(如閃存或SD卡)加載,可能會(huì)受到惡意應(yīng)用程序的篡改[8]。本文構(gòu)建了基于PRoT的可信計(jì)算平臺(tái)架構(gòu)(如圖2所示),并進(jìn)一步尋求建立基于PRoT的信任鏈(如圖3所示),實(shí)現(xiàn)信任關(guān)系從可信根到整個(gè)計(jì)算平臺(tái)的擴(kuò)展,保護(hù)運(yùn)行代碼的安全性和完整性,完成雙核安全系統(tǒng)的安全啟動(dòng)。

wdz1-t2.gif

wdz1-t3.gif

2.2 信任鏈

    信任鏈?zhǔn)峭ㄟ^(guò)實(shí)現(xiàn)一個(gè)實(shí)體與預(yù)期值的充分匹配來(lái)了解信息平臺(tái)的可信程度[8]?;赑ROT的信任鏈傳遞過(guò)程如圖3所示。

    當(dāng)設(shè)備通電時(shí),處理器立即從BootROM執(zhí)行一級(jí)啟動(dòng)代碼(First Stage Boot Loader,F(xiàn)SBL),該代碼通常在芯片制造過(guò)程中已被置信。在簡(jiǎn)單的系統(tǒng)初始化后,F(xiàn)SBL首先對(duì)TBM鏡像進(jìn)行完整性驗(yàn)證,使用制造商的公鑰進(jìn)行驗(yàn)簽。若驗(yàn)簽成功,則度量TBM的鏡像,并與標(biāo)準(zhǔn)度量值進(jìn)行比較。如果完整性驗(yàn)證通過(guò),則讀取PUF的響應(yīng)值R,并將R傳輸?shù)絋BM,運(yùn)行TBM,否則停止啟動(dòng)。

    由于片內(nèi)存儲(chǔ)器的存儲(chǔ)空間對(duì)于傳統(tǒng)的引導(dǎo)進(jìn)程不夠大,需要將Second Stage Bootloader代碼(即U-boot)的鏡像加密存儲(chǔ)在外部DDR存儲(chǔ)器上,因此,在驗(yàn)證U-boot前,用TBM生成的密鑰K對(duì)U-boot和安全OS的鏡像進(jìn)行解密。所以TBM不僅保證了安全OS的完整性,還增加了其安全性。再依次完成鏡像度量值驗(yàn)證,并在驗(yàn)證成功后,沿信任鏈度量方向傳遞控制權(quán)。在運(yùn)行安全OS之前,要擦除片上存儲(chǔ)器中的所有信息。安全OS啟動(dòng)時(shí)將初始化安全服務(wù)、TPM服務(wù)等,然后通過(guò)這些服務(wù)將信任鏈擴(kuò)展到整個(gè)可信平臺(tái)。

2.3 密鑰更新機(jī)制

    當(dāng)前,設(shè)備密鑰的安全存儲(chǔ)機(jī)制通常依賴于Battery-backed RAM或eFuse技術(shù)[2]。與這些機(jī)制相比,基于PUF技術(shù)構(gòu)建的可信根能夠部署靈活的密鑰更新機(jī)制,具體協(xié)議流程如圖4所示。設(shè)備所有者可以通過(guò)定期更改設(shè)備密鑰來(lái)提高系統(tǒng)的安全等級(jí)。

wdz1-t4.gif

    令wdz1-2.3-x1.gif表示將集合S中隨機(jī)選擇的值分配給x,{0,1}n表示長(zhǎng)度為n的二進(jìn)制字符串集合。設(shè)備D具有唯一設(shè)備公鑰/私鑰對(duì)(pk,sk),且制造商M具有用于簽名的密鑰對(duì)(pkM,skM)。三元組(KG,SIG,VER)表示簽名方案,其中SIG是簽名算法,VER是驗(yàn)簽算法。imB和imS分別表示TBM和OS的鏡像。

    新的初始種子PS′的隨機(jī)選取與舊設(shè)備密鑰無(wú)關(guān),舊設(shè)備密鑰的泄露不會(huì)對(duì)PS′造成危害。但是,敵手可以將先前的輔助數(shù)據(jù)和加密的操作系統(tǒng)鏡像復(fù)制回設(shè)備中,使得設(shè)備密鑰回溯為舊設(shè)備密鑰,即通過(guò)降級(jí)攻擊來(lái)破壞密鑰更新協(xié)議。圖4的密鑰更新協(xié)議中增加了計(jì)數(shù)器c,用于抵抗降級(jí)攻擊。c在協(xié)議重新執(zhí)行后計(jì)數(shù)加1,TBM就不能計(jì)算先前的對(duì)稱密鑰K,所以操作系統(tǒng)鏡像無(wú)法解密。只有新部署的軟件才能啟動(dòng)系統(tǒng),從而防止降級(jí)攻擊。

3 實(shí)驗(yàn)與評(píng)估

3.1 TBM及PRoT實(shí)現(xiàn)

    基于Xilinx公司的Zynq-7000 AP SoC實(shí)現(xiàn)了上述設(shè)計(jì),TBM中的PUF模塊使用基于環(huán)形振蕩器的PUF[9]實(shí)現(xiàn),采用C語(yǔ)言對(duì)TBM和PRoT進(jìn)行了描述。模糊提取算法基于可以配置不同參數(shù)的開(kāi)源BCH糾錯(cuò)碼來(lái)實(shí)現(xiàn)[10]。本文將BCH參數(shù)[n,k,d]配置為[256,21,55],其中n表示編碼位寬,k表示數(shù)據(jù)位寬,且d≥2t+1,t表示可糾錯(cuò)的位數(shù)。[256,21,55]-BCH糾錯(cuò)碼可以解碼錯(cuò)誤位少于wdz1-3.1-x1.gif=27比特的噪聲信息。初始種子的長(zhǎng)度為131比特,在TBM中需要運(yùn)行BCH糾錯(cuò)碼wdz1-3.1-x2.gif=7次才能重新獲取初始種子。

    使用RSAREF庫(kù)[11](其MD5散列函數(shù)用SM3替代)來(lái)實(shí)現(xiàn)KG。安全啟動(dòng)的對(duì)稱密鑰的生成與TPM 2.0[12]中的對(duì)稱初始密鑰的生成相似。PRoT中的Seal/Unseal服務(wù)通過(guò)修改的RSAREF庫(kù)、KDF、SHA3和面向字節(jié)的AES來(lái)實(shí)現(xiàn)。在安全管控核中通過(guò)整合軟件模擬器來(lái)實(shí)現(xiàn)的TPM服務(wù),具體細(xì)節(jié)可參考文獻(xiàn)[13]。

    TBM及PRoT各模塊的編譯結(jié)果如表1所示。從中可以看出,TBM和Seal/Unseal服務(wù)的TCB都非常小,TBM的總體大小只有2 579條代碼,Seal/Unseal服務(wù)只用了1 873條,編譯后的二進(jìn)制代碼量只增加了65.3 KB的ROM和381.5 KB的Flash。TPM服務(wù)的TCB較大是因?yàn)樗峁┴S富的可信計(jì)算功能。

wdz1-b1.gif

3.2 Seal/Unseal服務(wù)

    Seal/Unseal服務(wù)和TPM服務(wù)中的部分TPM命令的性能評(píng)估(100次運(yùn)行的平均消耗時(shí)間)如表2所示。結(jié)果顯示,Seal/Unseal服務(wù)100次運(yùn)行的平均消耗時(shí)間為10 ms,能夠快速地綁定敏感數(shù)據(jù)到安全服務(wù)中。部分TPM命令的消耗時(shí)間較長(zhǎng),仍屬于正常工作的可接受范圍。

wdz1-b2.gif

3.3 攻擊抗性評(píng)估

    下面主要以初始種子和唯一設(shè)備密鑰為攻擊對(duì)象進(jìn)行安全性分析,評(píng)估本文設(shè)計(jì)的攻擊抗性。

    在能夠控制SoC所有外部接口的情況下,敵手可能通過(guò)竊取PUF響應(yīng)值、軟件攻擊、附加惡意外圍設(shè)備等攻擊手段危害初始種子,但仍無(wú)法被突破本文設(shè)計(jì)對(duì)初始種子的安全防護(hù)。

    由于BootROM是通過(guò)敵手無(wú)法監(jiān)控的SoC內(nèi)部總線將響應(yīng)值傳輸給TBM,因此敵手無(wú)法竊取PUF響應(yīng)值,也就無(wú)法生成初始種子。而且初始種子只在TBM運(yùn)行時(shí)存在,此時(shí)TBM是運(yùn)行在設(shè)備上的唯一代碼。信任鏈保證了只有合法的TBM才能在OCM中運(yùn)行,所以對(duì)手無(wú)法通過(guò)軟件攻擊來(lái)危害初始種子。OCM在器件引腳上沒(méi)有地址線或數(shù)據(jù)線,惡意外設(shè)無(wú)法從設(shè)備引腳讀取片上存儲(chǔ)的內(nèi)容。OCM是SoC的安全存儲(chǔ),因此利用接口封裝等技術(shù)手段可以防止惡意外圍設(shè)備訪問(wèn)OCM。

    系統(tǒng)運(yùn)行時(shí),設(shè)備密鑰會(huì)短暫地存儲(chǔ)在安全OS中,但OS運(yùn)行在片外主存儲(chǔ)器中,可能會(huì)受到惡意應(yīng)用程序的攻擊。雙核安全架構(gòu)可以實(shí)現(xiàn)安全環(huán)境與正常環(huán)境的隔離,一般物理攻擊無(wú)法突破隔離技術(shù)的防御能力。如果設(shè)備密鑰受到物理攻擊的危害,可以通過(guò)執(zhí)行密鑰更新協(xié)議來(lái)部署新設(shè)備密鑰。

4 結(jié)束語(yǔ)

    本文利用PUF能夠?qū)⒚荑€隱含地嵌入設(shè)備而不需要物理存儲(chǔ)的特性,構(gòu)建了雙核隔離SoC架構(gòu)的可信根PRoT,并以PRoT為信任錨點(diǎn)設(shè)計(jì)了信任鏈和密鑰更新協(xié)議。實(shí)驗(yàn)結(jié)果表明,PRoT能夠以較小TCB運(yùn)行于Zynq-7000 AP SoC中,通過(guò)對(duì)PRoT中部分TPM命令和Seal/Unseal服務(wù)的性能評(píng)估,以及對(duì)初始種子和唯一設(shè)備密鑰的安全性分析,證明了PUF能夠?yàn)榍度胧较到y(tǒng)提供安全靈活的可信根。

參考文獻(xiàn)

[1] 孫春子.基于雙核的系統(tǒng)安全框架的研究與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2008.

[2] 利文浩.面向多域計(jì)算環(huán)境安全的系統(tǒng)軟件研究[D].上海:上海交通大學(xué),2015.

[3] ALVES T.TrustZone:integrated hardware and software security[J].White Paper,2004.

[4] ARM.Securing the system with TrustZone ready program[EB/OL].[2013-12-19].http://www.arm.com/products/security-on-arm/trustzone-ready/index.php.

[5] ARENO M,PLUSQUELLIC J.Securing trusted execution environments with PUF generated secret keys[C].IEEE International Conference on Trust,Security and Privacy in Computing and Communications.IEEE Computer Society,2012:1188-1193.

[6] FENG W,F(xiàn)ENG D,WEI G,et al.TEEM:a user-oriented trusted mobile device for multi-platform security applications[M].Trust and Trustworthy Computing.Springer Berlin Heidelberg,2013:133-141.

[7] KANG H,HORI Y,KATASHITA T,et al.Cryptographie key generation from PUF data using efficient fuzzy extractors[C].International Conference on Advanced Communication Technology.IEEE,2014:23-26.

[8] 譚良,徐志偉.基于可信計(jì)算平臺(tái)的信任鏈傳遞研究進(jìn)展[J].計(jì)算機(jī)科學(xué),2008,35(10):15-18.

[9] KUMAR A,MISHRA R S,KASHWAN K R.Challenge-response generation using RO-PUF with reduced hardware[C].International Conference on Advances in Computing,Communications and Informatics.IEEE,2016.

[10] MORELOS Z R.Encoder/decoder for binary BCH codes in C(Version 3.1)[EB/OL].[2017-12-19].http://www.rajivchakravorty.com/source-code/uncertainty/multimedia-sim/html/bch_8c-source.html.

[11] RSA Data Security Inc.RSAREF[EB/OL].[2017-12-19].http://www.homeport.org/adam/crypto/rsaref.phtml.

[12] TCG.Trusted platform module library part 1: architecture,F(xiàn)amily 2.0,Level 00 Revision 01.07[Z].2014.

[13] 吳少剛,許華.可信嵌入式龍芯啟動(dòng)加載程序tPMON的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(1):5-8.



作者信息:

吳  縉,徐金甫

(解放軍信息工程大學(xué),河南 鄭州450001)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。