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

    基于iRAM 的抗物理內(nèi)存泄露攻擊密碼算法輕量化實(shí)現(xiàn)

    2022-12-19 09:23:00李彥初荊繼武雷靈光王躍武王平建
    關(guān)鍵詞:敏感數(shù)據(jù)數(shù)字簽名內(nèi)存

    李彥初 荊繼武 雷靈光 王躍武 王平建

    1.中國科學(xué)院大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 北京 100049; 2.中國科學(xué)院大學(xué)密碼學(xué)院, 北京 100049; 3.北京大學(xué)軟件與微電子學(xué)院, 北京 100871; 4.中國科學(xué)院信息工程研究所信息安全國家重點(diǎn)實(shí)驗(yàn)室, 北京 100093; 5.中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院, 北京 100049; ? 通信作者, E-mail: leilingguang@iie.ac.cn

    ARM 平臺(tái)廣泛應(yīng)用于個(gè)人移動(dòng)終端、物聯(lián)網(wǎng)和工業(yè)控制系統(tǒng)等場景[1]。相對(duì)于桌面系統(tǒng)或服務(wù)器, 移動(dòng)終端設(shè)備更容易丟失或被竊取, 而物聯(lián)網(wǎng)和工業(yè)控制系統(tǒng)經(jīng)常需要在無人值守的非受控場景下工作, 因此這類平臺(tái)的安全機(jī)制更容易遭受物理內(nèi)存泄露攻擊。因此, 如何構(gòu)建 ARM 平臺(tái)抗物理內(nèi)存泄露攻擊的密碼機(jī)制成為目前系統(tǒng)安全研究的熱點(diǎn)。

    物理內(nèi)存泄露攻擊的根源在于普通的 DRAM(dynamic random access memory)內(nèi)存芯片獨(dú)立于ARM 的 SoC (system on a chip)芯片, 需要通過內(nèi)存總線與 SoC 芯片進(jìn)行雙向數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)存儲(chǔ)在內(nèi)存中時(shí), 攻擊者可通過如下3種方式發(fā)起物理內(nèi)存泄露攻擊。1) 冷啟動(dòng)攻擊[2–3]: 利用內(nèi)存的剩磁效應(yīng), 將正在運(yùn)行的設(shè)備斷電, 然后將內(nèi)存接入攻擊者控制的系統(tǒng)中, 讀取其中殘留的數(shù)據(jù)。2) 總線監(jiān)聽攻擊[4–5]: 當(dāng)內(nèi)存芯片與SoC芯片通過內(nèi)存總線傳輸數(shù)據(jù)時(shí), 攻擊者通過監(jiān)聽該總線, 竊取內(nèi)存中的敏感數(shù)據(jù), 相關(guān)的攻擊工具[6–7]可以很容易地獲取。3) DMA (direct memory access)攻擊[8–10]: 攻擊者控制特定 I/O 設(shè)備并發(fā)起 DMA 請(qǐng)求, 在處理器不參與的情況下, 直接從內(nèi)存中拷貝敏感數(shù)據(jù)。因此, 避免直接在內(nèi)存中存儲(chǔ)敏感計(jì)算輸入、輸出和中間結(jié)果數(shù)據(jù)成為當(dāng)前抗物理內(nèi)存泄露攻擊的主要技術(shù)途徑。

    現(xiàn)階段應(yīng)對(duì)物理內(nèi)存泄露攻擊的技術(shù)途徑主要包括以 Cache (高速緩存)、寄存器和iRAM為基礎(chǔ)的 3種方案。

    Cache 方案[11–13]基于 Cache 的敏感計(jì)算抗物理攻擊方法存在幾個(gè)問題: 1) 對(duì)系統(tǒng)性能影響比較大, 比如, 60%的Cache被占用后, 系統(tǒng)性能急劇降低[13]; 2) 難以進(jìn)行軟件編程調(diào)度, 操控性差; 3) 無法與 I/O 設(shè)備直接進(jìn)行數(shù)據(jù)交互。

    寄存器方案[14–15]通過引入安全機(jī)制, 確保敏感數(shù)據(jù)在計(jì)算過程中只存儲(chǔ)在 SoC 芯片內(nèi)的寄存器中, 不出現(xiàn)在內(nèi)存中, 但因空間有限面臨性能挑戰(zhàn),此外, 不同 SoC 平臺(tái)上的可用寄存器類型存在較大的差異, 方案的可移植性較差。

    iRAM 方案[16–19]將敏感計(jì)算結(jié)果及中間值存儲(chǔ)在iRAM中, 實(shí)現(xiàn)抗物理泄露內(nèi)存攻擊。不同于SoC 外部的 DRAM 內(nèi)存, iRAM 剩磁效應(yīng)小, 并且在SoC 芯片內(nèi)部, 與 CPU 單元通過片內(nèi)總線連接, 具有良好的抗物理內(nèi)存泄露攻擊特性。此外, iRAM尋址方式與 DRAM 一致, 更易操控, 并能夠直接與I/O 設(shè)備交互。iRAM 方案工程實(shí)現(xiàn)優(yōu)勢明顯。

    輕量化實(shí)現(xiàn)是目前 iRAM 方案面臨的主要技術(shù)挑戰(zhàn)。移動(dòng)終端上的大部分 iRAM 資源會(huì)被操作系統(tǒng)使用, 只有少量空閑的 iRAM。比如, FreeScale i.MX6Quad 系列 SoC 的空閑 iRAM 只有 32 KB。然而, 當(dāng)前方案[16–19]使用的iRAM 空間都超過了系統(tǒng)空閑 iRAM 的大小, 從而會(huì)影響普通世界操作系統(tǒng)的正常功能。因此, 亟需一個(gè)輕量高效的密碼算法來實(shí)現(xiàn)方案, 以便降低iRAM資源消耗。

    本文通過對(duì)密碼運(yùn)算過程中敏感數(shù)據(jù)的細(xì)粒度劃分, 盡量縮小保護(hù)數(shù)據(jù)規(guī)模, 實(shí)現(xiàn) iRAM 資源消耗的減少。首先, 通過修改系統(tǒng)應(yīng)用加載器, 將程序棧段加載到iRAM; 然后, 通過密碼算法計(jì)算過程分析, 標(biāo)識(shí)出密碼算法敏感變量的最小集合; 隨后, 重新設(shè)計(jì)密碼算法實(shí)現(xiàn)程序, 將敏感數(shù)據(jù)向程序棧段集中, 以便簡化iRAM調(diào)度; 最后, 必要時(shí)通過輔助可信應(yīng)用引入, 將棧段中的非敏感數(shù)據(jù)移除, 進(jìn)一步降低 iRAM 消耗。此外, 該方案通過ARM TrustZone實(shí)現(xiàn)iRAM的抗軟件攻擊保護(hù)。本研究在 FreeScale 的 i.MX6Quad 開發(fā)板上對(duì) SM2/3/4以及 RSA, AES, SHA3 等主流的密碼算法進(jìn)行原型系統(tǒng)實(shí)現(xiàn), 并開展方案驗(yàn)證評(píng)估。

    1 相關(guān)工作

    研究人員提出一些針對(duì)物理內(nèi)存泄露攻擊的防御方案, 主要針對(duì)冷啟動(dòng)攻擊[2–3]以及總線監(jiān)聽攻擊[4–5]。這些方案通過構(gòu)建以 SoC 為邊界的執(zhí)行環(huán)境, 將敏感數(shù)據(jù)保存在 SoC 內(nèi)部, 有效地阻止攻擊。例如, TRESOR[14]將密鑰存儲(chǔ)在 x86 調(diào)試寄存器中,并利用 Intel 的 AES-NI 擴(kuò)展指令, 在微處理器中運(yùn)行 AES 算法, 避免 DRAM 的使用, 從而阻止物理攻擊。PRIME[15]將RSA算法中的私鑰操作限制在Intel 多媒體寄存器(共 16個(gè) 256 bit 的寄存器)中, 保護(hù)了 RSA-2048 算法。Copker[11]將密碼運(yùn)算的密鑰和所有中間結(jié)果保存在 Cache 中, 確保敏感信息不會(huì)進(jìn)入 DRAM, 實(shí)現(xiàn)抗物理攻擊的 AES 算法和RSA 算 法 。Sentry[16]和 CryptMe[17]借 助 iRAM 來 保護(hù)AES算法中的敏感數(shù)據(jù)。

    另外一種物理內(nèi)存泄露攻擊是 DMA 攻擊[8–10],可利用系統(tǒng)的安全機(jī)制(如 TrustZone 的 DMA 隔離)來阻止。由于安全機(jī)制的引入也可同時(shí)阻止軟件攻擊, 所以綜合考慮上述 3種物理內(nèi)存泄漏攻擊和軟件攻擊, 研究人員提出了相關(guān)的敏感數(shù)據(jù)保護(hù)方案。CaSE[13]利用Cache和ARM TrustZone技術(shù)[20]構(gòu)建以 SoC 為邊界的可信執(zhí)行環(huán)境。Oath 機(jī)制[19]、OP-TEE 的 pager 機(jī)制[21]和 m-TEE[18]都是利用 iRAM和 TrustZone 機(jī)制保護(hù)敏感數(shù)據(jù), pager 機(jī)制和 m-TEE方案分別需要180 KB和100 KB的iRAM空間;Oath 通過分離敏感數(shù)據(jù)和非敏感數(shù)據(jù), 減少了對(duì)iRAM 的占用, 但所測試的 12個(gè)可信應(yīng)用仍需使用平均 50.52 KB 的 iRAM 空間。本研究支持在系統(tǒng)空閑的 iRAM 上同時(shí)運(yùn)行多個(gè)密碼算法, 其中單個(gè)算法對(duì) iRAM 的使用量不超過 4.5 KB。

    內(nèi)存受限場景下的密碼算法實(shí)現(xiàn)需要同時(shí)考慮密碼運(yùn)算效率以及對(duì)內(nèi)存的使用量。研究人員提出許多減少內(nèi)存消耗且高效的密碼運(yùn)算或密碼算法的實(shí)現(xiàn)方案, 包括對(duì)稱密碼算法[22]、基于橢圓曲線的非對(duì)稱密碼算法[23–25]和格密碼算法[26]等。本研究在 iRAM 內(nèi)存受限的條件下, 實(shí)現(xiàn)多種密碼算法。首先, 本文使用受限 iRAM 內(nèi)存實(shí)現(xiàn)抗物理內(nèi)存泄露攻擊的密碼算法, 而上述工作聚焦于密碼算法在減少內(nèi)存使用同時(shí)的高效實(shí)現(xiàn)。其次, 在相同的實(shí)現(xiàn)方式下, 減少內(nèi)存占用會(huì)導(dǎo)致性能的下降, 所以上述工作通過特殊處理器指令和硬件擴(kuò)展等方式同時(shí)實(shí)現(xiàn)高效和輕量化兩個(gè)目標(biāo), 本文僅依賴 ARM平臺(tái)上廣泛部署的TrustZone安全擴(kuò)展和通用組件iRAM來保護(hù)敏感數(shù)據(jù), 方案可移植性更好。此外,本文主要降低 iRAM 內(nèi)存的使用量, 而算法實(shí)際的內(nèi)存使用量(iRAM+DRAM)并未減少, 所以與未修改的實(shí)現(xiàn)相比, 密碼算法性能沒有明顯降低。

    2 背景知識(shí)與相關(guān)工作

    2.1 內(nèi)部隨機(jī)存取存儲(chǔ)器(iRAM)

    內(nèi)部隨機(jī)存取存儲(chǔ)器(internal-RAM, iRAM)是一種片上隨機(jī)存取存儲(chǔ)器(on-chip random access memory, OCRAM), 是通用計(jì)算平臺(tái)(例如 ARM 處理器)中廣泛存在的組件, 比普通的 DRAM 讀寫速度更快。由于價(jià)格限制, iRAM在終端上的容量一般在幾十 KB 到幾百 KB 之間, 主要用于存儲(chǔ)系統(tǒng)中的特定信息(比如, 暫?;蚧謴?fù)系統(tǒng)的相關(guān)代碼)以及加速視頻播放等多媒體處理過程。

    2.2 OP-TEE架構(gòu)

    OP-TEE(open portable trusted execution environment)[27]是一個(gè)開源 TEE OS, 基于 TrustZone[20]運(yùn)行。TrustZone是ARM公司推出的安全擴(kuò)展, 將SoC 上的中央處理器、內(nèi)存和外設(shè)等資源劃分到普通世界或安全世界, 并基于硬件邏輯的訪問控制實(shí)現(xiàn)普通世界與安全世界的隔離。OP-TEE 架構(gòu)如圖1所示, 安全世界中運(yùn)行用戶態(tài)的若干可信應(yīng)用(trusted application, TA)以及內(nèi)核態(tài)的安全操作系統(tǒng)(OP-TEE OS); 普通世界中運(yùn)行非敏感代碼, 包括用戶態(tài)的客戶端應(yīng)用(client application, CA)以及內(nèi)核態(tài)的富操作系統(tǒng)(rich OS)??蛻舳藨?yīng)用通過用戶態(tài)的 TEE 客戶端(TEE client)來調(diào)用可信應(yīng)用中的敏感功能。調(diào)用過程中, 富操作系統(tǒng)中的 TEE 驅(qū)動(dòng)(TEE Driver)通過 SMC (secure monitor call)指令跳轉(zhuǎn)到安全世界中的安全監(jiān)控器模塊(Secure Monitor),從而與安全世界進(jìn)行交互。

    圖1 OP-TEE系統(tǒng)架構(gòu)Fig.1 Architecture of OP-TEE

    2.3 可信應(yīng)用(TA)的運(yùn)行時(shí)數(shù)據(jù)段分配

    OP-TEE 架構(gòu)中, 安全世界的可信應(yīng)用以 ELF格式的形式存儲(chǔ)于文件系統(tǒng), 其代碼及代碼中的各類變量存放在 ELF 文件的不同可加載段。當(dāng) OPTEE OS 加載可信應(yīng)用時(shí), 會(huì)給每個(gè)可加載段分配一段內(nèi)存空間, 并將相應(yīng)數(shù)據(jù)從可執(zhí)行文件拷貝到對(duì)應(yīng)的內(nèi)存空間中。之后, 可信應(yīng)用運(yùn)行時(shí), 各類變量的值(包括敏感數(shù)據(jù)及非敏感數(shù)據(jù))就存儲(chǔ)在變量所在的可加載段的對(duì)應(yīng)內(nèi)存空間中。從總體上看, 可信應(yīng)用的可加載段包括.ta_head段、.text段、.rodata 段、.data 段 、.bss段(可信應(yīng)用從.bss段劃分堆空間, 所以堆變量也存放在.bss 段)和棧段等。其中,.ta_head 段存放可信應(yīng)用的基本信息(可信應(yīng)用的唯一標(biāo)識(shí)符、棧段大小和入口函數(shù)地址等),.text 段存放可信應(yīng)用的代碼,.rodata 段存放常量等信息,.data段存放已初始化的全局變量和局部靜態(tài)變量,.bss段存放未初始化或初始化為0的全局變量、局部靜態(tài)變量和由程序員分配/釋放的堆變量,棧段存放由編譯器自動(dòng)分配/釋放的棧變量。本文通過將敏感數(shù)據(jù)集中在一個(gè)段中, 并為該段分配受TrustZone 保護(hù)的 iRAM 來實(shí)現(xiàn)敏感數(shù)據(jù)泄露保護(hù)。

    算法1的代碼示例展示不同變量的定義方式及其對(duì)應(yīng)的數(shù)據(jù)段。

    其中, 第 1 行是存放在.rodata 段的常量; 第 2 行和第 6 行是.bss 段的全局變量和局部靜態(tài)變量;第 3 行和第 7 行是.data 段中的全局變量和局部靜態(tài)變量; 第 4 行的函數(shù)參數(shù)以及第 5 行的局部變量存放在棧段, 但客戶端應(yīng)用傳遞過來的緩沖區(qū)形式的參數(shù)指向位于非安全 DRAM 的共享內(nèi)存中的一塊緩沖區(qū); 第 8 行動(dòng)態(tài)地申請(qǐng)一塊堆空間, 并令一個(gè)存放在棧中的局部變量(指針)指向這塊空間, 堆空間中的數(shù)據(jù)存放在.bss 段, 第 10 行手動(dòng)釋放了堆空間。

    3 威脅模型與安全假設(shè)

    假設(shè)敵手可以發(fā)起軟件攻擊和物理內(nèi)存泄露攻擊。1) 軟件攻擊: 利用各種系統(tǒng)漏洞攻擊控制普通世界的操作系統(tǒng), 進(jìn)而無限制地訪問普通世界的資源, 包括寄存器、DRAM、iRAM、Cache以及其他設(shè)備, 但軟件攻擊無法破壞由TrustZone硬件隔離保護(hù)的安全資源。2) 物理內(nèi)存泄露攻擊: 可以物理訪問被保護(hù)設(shè)備, 并通過冷啟動(dòng)攻擊[2–3]、監(jiān)聽SoC外部總線的總線監(jiān)聽攻擊[4–5]以及DMA攻擊[8–10],竊取DRAM 中的敏感數(shù)據(jù)。

    本文假定物理內(nèi)存泄漏攻擊無法攻擊由 Trust-Zone 保護(hù)的安全 iRAM。1) 系統(tǒng)上電后, 引導(dǎo)時(shí)執(zhí)行的第一段代碼會(huì)將 iRAM 中的內(nèi)容清除, 而該代碼不能被繞過[16]; 并且 iRAM 及其使用的高級(jí)可擴(kuò)展接口(advanced extensible interface, AXI)總線都在SoC 內(nèi)部, 無法被取出, 所以冷啟動(dòng)攻擊和總線監(jiān)聽攻擊無法竊取 iRAM 中的敏感數(shù)據(jù)。2) TrustZone默認(rèn)普通世界向安全世界發(fā)起的 DMA 請(qǐng)求被拒絕,很多廣泛使用的 SoC 中的 DMA 控制器[28–29]還可以拒絕特定 DMA 通道以及 DMA 設(shè)備發(fā)起的從安全世界傳輸數(shù)據(jù)的請(qǐng)求。所以 DMA 攻擊無法竊取被TrustZone 保護(hù)的安全 iRAM 中的敏感數(shù)據(jù)。進(jìn)行密碼運(yùn)算的可信應(yīng)用運(yùn)行在安全世界的 TEE OS 之上,側(cè)信道攻擊特征不明顯。

    本研究旨在保護(hù)密碼算法運(yùn)行時(shí)敏感數(shù)據(jù)的機(jī)密性。我們假設(shè)目標(biāo)平臺(tái)支持并正確實(shí)現(xiàn)了 Trust-Zone 技術(shù); 安全世界的操作系統(tǒng)和可信應(yīng)用不是惡意的, 沒有敵手可利用的漏洞, 并且被平臺(tái)可信啟動(dòng)技術(shù)安全加載。

    4 方案設(shè)計(jì)

    4.1 方案架構(gòu)與內(nèi)存布局

    本文提出的方案利用 iRAM 存儲(chǔ)密碼運(yùn)算過程中的敏感數(shù)據(jù), 以便抵御物理內(nèi)存泄漏攻擊, 并盡量減少對(duì) iRAM 的占用, 保證普通世界的功能不受影響。將密碼算法中的敏感數(shù)據(jù)限制在棧段中, 通過修改可信應(yīng)用的加載方式, 僅給棧段分配安全iRAM, 給其他可加載段分配安全DRAM, 從而減少 iRAM 的使用量。此外, 方案還將棧段中的非敏感數(shù)據(jù)分離到其他可加載段, 進(jìn)一步減少 iRAM 的使用量。方案的基本架構(gòu)和內(nèi)存布局見圖2。

    圖2 實(shí)現(xiàn)密碼算法的可信應(yīng)用及其輔助可信應(yīng)用的代碼和數(shù)據(jù)在內(nèi)存中的位置Fig.2 Memory location of the TA and its assisted TA’s code and data

    方案涉及的內(nèi)存包括 iRAM 和 DRAM, 利用ARM TrustZone 技術(shù)分別將其劃分為安全模式和非安全模式。密碼運(yùn)算由在安全世界的可信應(yīng)用完成??尚艖?yīng)用從非安全 DRAM 的共享內(nèi)存獲得運(yùn)行在普通世界的客戶端應(yīng)用的輸入?yún)?shù), 執(zhí)行密碼運(yùn)算, 并返回計(jì)算結(jié)果。方案通過修訂密碼算法實(shí)現(xiàn), 將敏感數(shù)據(jù)全部集中在棧段。隨后, 進(jìn)一步修改可信應(yīng)用加載程序, 將可信應(yīng)用中除棧段外的其他可加載段全部放在安全 DRAM 中, 同時(shí)將棧段分配在安全 iRAM 中。此外, 棧段還包含密碼算法實(shí)現(xiàn)中的非敏感數(shù)據(jù), 為了進(jìn)一步壓縮 iRAM 使用量,必要時(shí)引入輔助可信應(yīng)用, 將棧段的非敏感數(shù)據(jù)轉(zhuǎn)移到其他可加載段和輔助可信應(yīng)用的可加載段。輔助可信應(yīng)用的所有可加載段分配在安全 DRAM中。這樣, 敏感數(shù)據(jù)僅存在于安全iRAM中, 能夠同時(shí)抵御物理內(nèi)存泄露攻擊和軟件攻擊。密碼算法的其他數(shù)據(jù)分配至安全 DRAM 中, 由 ARM Trust-Zone 隔離機(jī)制構(gòu)建與普通世界的邊界, 抵御軟件攻擊。

    4.2 集中敏感數(shù)據(jù)到棧段

    數(shù)字簽名算法的敏感數(shù)據(jù)包括私鑰, 非對(duì)稱加密算法的敏感數(shù)據(jù)有私鑰和明文, 密碼雜湊算法的輸入可能為敏感數(shù)據(jù), 對(duì)稱加密算法的敏感數(shù)據(jù)包括對(duì)稱密鑰和明文。此外, 算法計(jì)算過程中的一些數(shù)據(jù)可以用于恢復(fù)上述敏感數(shù)據(jù)或增加恢復(fù)的可能性, 也應(yīng)當(dāng)作為敏感數(shù)據(jù)加以保護(hù)。具體地, SM2數(shù)字簽名算法的簽名結(jié)果為(r,s), 計(jì)算s的方式為s= (1+dA)-1(k-r×dA) modn, 其中dA為私鑰,k為用于本次簽名運(yùn)算產(chǎn)生的隨機(jī)數(shù),n為橢圓曲線基點(diǎn)G的階。由于s,r和n公開, 因而能獲取k的攻擊者可以通過上述公式來求解出私鑰dA, 所以k也應(yīng)該屬于敏感數(shù)據(jù)。當(dāng)密碼雜湊算法的輸入為敏感數(shù)據(jù)時(shí), 中間計(jì)算結(jié)果可用于降低恢復(fù)敏感輸入的難度, 所以也屬于敏感數(shù)據(jù)。對(duì)稱加密算法中擴(kuò)展出的輪密鑰直接用來加密明文, 每輪中間結(jié)果的泄露相當(dāng)于計(jì)算輪數(shù)的降低, 所以二者都屬于敏感數(shù)據(jù)。最后, 在密碼算法的實(shí)現(xiàn)中, 與敏感數(shù)據(jù)有關(guān)的中間計(jì)算結(jié)果也可能屬于敏感數(shù)據(jù), 比如SM2 數(shù)字簽名算法中的(1+dA)-1和(k-r×dA) modn等, 因?yàn)樗麄兊男孤稌?huì)極大地降低獲取算法中敏感數(shù)據(jù)的難度。

    如2.3節(jié)所述, 密碼算法實(shí)現(xiàn)代碼可能包含多個(gè)數(shù)據(jù)段, 上述敏感數(shù)據(jù)可能存在于各種不同的段(包括存放未初始化的全局變量/靜態(tài)變量的.bss段、存放棧變量的棧段以及存放堆變量的堆段)中。為了抵御物理內(nèi)存泄露攻擊, 需要將敏感數(shù)據(jù)存儲(chǔ)在 iRAM 中。如果不對(duì)算法實(shí)現(xiàn)做修訂, 則需要將上述數(shù)據(jù)段都加載到安全 iRAM 中。但這幾類數(shù)據(jù)段同時(shí)還存放大量非敏感數(shù)據(jù), 比如未初始化的全局變量/靜態(tài)變量中可能會(huì)存放一些密碼算法中公開且固定的參數(shù)。這樣, 大量非敏感數(shù)據(jù)會(huì)造成不必要的 iRAM 消耗。棧段是密碼運(yùn)算過程中間結(jié)果存儲(chǔ)的不可或缺的數(shù)據(jù)段。因此, 本文通過密碼算法實(shí)現(xiàn)代碼修訂, 將所有敏感參數(shù)集中到棧段。這樣, 就可以只給棧段分配安全iRAM空間,其他數(shù)據(jù)段依然使用安全DRAM, 從而減少iRAM消耗。

    4.3 分離棧段非敏感數(shù)據(jù)到安全DRAM

    敏感數(shù)據(jù)和非敏感數(shù)據(jù)處理都需要用到棧段,因此, 除敏感數(shù)據(jù)外, 棧段中還存在大量的非敏感數(shù)據(jù)。本文方案通過分離棧中的非敏感數(shù)據(jù), 進(jìn)一步減少安全iRAM的使用量, 具體包括以下兩項(xiàng)內(nèi)容。

    4.3.1 變量分離

    密碼算法中的非敏感數(shù)據(jù)可分為如下 3 類: 1)取值固定且公開的系統(tǒng)參數(shù), 如 SM2算法中的橢圓曲線參數(shù)和 AES 算法中的 S 盒等; 2) 非敏感輸入/輸出參數(shù), 包括簽名算法中的待簽名消息、簽名值、公鑰以及其他公開信息(比如 SM2 數(shù)字簽名算法中的用戶可辨別標(biāo)識(shí)), 密碼雜湊算法中的雜湊值以及非敏感的輸入, 加密算法中的密文等; 3) 密碼算法的實(shí)現(xiàn)中, 存在一些與敏感數(shù)據(jù)無關(guān)的臨時(shí)變量,這些變量無法用于恢復(fù)敏感數(shù)據(jù)或增加恢復(fù)的可能性, 將這類臨時(shí)變量中的數(shù)據(jù)也視為非敏感數(shù)據(jù)。

    如圖2 所示, 我們將第 1 類非敏感數(shù)據(jù)存儲(chǔ)在全局變量和局部靜態(tài)變量(位于可信應(yīng)用 ELF 文件中的.bss段或.data段)中, 將第2類非敏感數(shù)據(jù)存儲(chǔ)在客戶端應(yīng)用傳遞過來的共享內(nèi)存緩沖區(qū)(位于非安全DRAM), 將第3類非敏感數(shù)據(jù)存儲(chǔ)在堆中的臨時(shí)變量(位于.bss段)中。.data段和.bss段被分配的是安全DRAM空間。

    4.3.2 運(yùn)算步驟分離

    密碼算法中可能存在一些全程沒有敏感數(shù)據(jù)參與的步驟, 比如數(shù)字簽名算法中計(jì)算待簽名消息的雜湊值過程、數(shù)字簽名驗(yàn)證的全過程以及當(dāng)輸入為非敏感數(shù)據(jù)時(shí)的密碼雜湊算法的全過程等。針對(duì)這些運(yùn)算步驟中的非敏感數(shù)據(jù), 一種分離方法是按照上述變量分離的方法修改密碼算法的實(shí)現(xiàn)代碼。但是, 密碼運(yùn)算過程中涉及很多臨時(shí)變量(比如 SM2算法中橢圓曲線上點(diǎn)的運(yùn)算), 手動(dòng)給這些變量分配/釋放堆空間對(duì)算法實(shí)現(xiàn)的改動(dòng)很多, 工作量大且容易出錯(cuò)。此外, 密碼算法實(shí)現(xiàn)中涉及一些生命周期很短、被頻繁定義的臨時(shí)變量(比如 SM3 算法中被頻繁調(diào)用的壓縮函數(shù)中定義的臨時(shí)變量), 由于堆空間的申請(qǐng)和釋放是程序內(nèi)的代碼通過系統(tǒng)調(diào)用來實(shí)現(xiàn), 所以頻繁的申請(qǐng)/釋放操作會(huì)引入過多的用戶模式–內(nèi)核模式切換, 導(dǎo)致性能開銷過大。因此,我們采用圖2 所示的計(jì)算分離方法: 在一個(gè)輔助可信應(yīng)用中實(shí)現(xiàn)這些步驟, 通過 OP-TEE 提供的進(jìn)程間通信(inter-process communi-cation, IPC)接口與可信應(yīng)用進(jìn)行通信, 該輔助可信應(yīng)用的所有數(shù)據(jù)都存儲(chǔ)在安全DRAM。

    考慮到很多密碼算法的實(shí)現(xiàn)都將第 1 類非敏感數(shù)據(jù)存儲(chǔ)在全局變量中, 而這部分?jǐn)?shù)據(jù)也占用一定的空間, 第 2 類非敏感數(shù)據(jù)的分離也符合可信應(yīng)用的編程習(xí)慣, 為兼顧方案的實(shí)用性和通用性, 本文方案中對(duì)存放第 1 類和第 2 類非敏感數(shù)據(jù)的變量分離是必選項(xiàng); 對(duì)存放第3類非敏感數(shù)據(jù)的變量分離以及部分運(yùn)算步驟的分離這兩部分內(nèi)容, 對(duì)原始密碼算法實(shí)現(xiàn)有較明顯的改動(dòng), 將其作為可選項(xiàng)。

    5 方案實(shí)現(xiàn)

    我們基于 FreeScale i.MX6Quad SABRE 開發(fā)板實(shí)現(xiàn)方案原型系統(tǒng)。安全世界和普通世界中的操作系統(tǒng)分別為 OP-TEE 2.2.0 和 Android 6.0.1, Android系統(tǒng)基于Linux 4.1.15內(nèi)核。由于方案僅涉及對(duì)可信應(yīng)用加載過程以及對(duì)密碼算法實(shí)現(xiàn)方式的修改,與操作系統(tǒng)的版本無關(guān), 因此具有很好的系統(tǒng)兼容性。雖然選擇在 i.MX6Quad 開發(fā)板實(shí)現(xiàn)原型系統(tǒng),但所依賴的 TrustZone 機(jī)制和 iRAM 都是在終端平臺(tái)較為普遍部署的硬件, 因此可以方便地移植到其他ARM硬件平臺(tái)。

    5.1 構(gòu)建iRAM 輔助的可信應(yīng)用執(zhí)行環(huán)境

    為可信應(yīng)用的棧段分配安全 iRAM 空間。OPTEE OS 加載可信應(yīng)用時(shí), 在其上下文結(jié)構(gòu)體中記錄了4塊物理內(nèi)存空間的信息(分別存儲(chǔ)可信應(yīng)用的棧段、.ta_head/.text 段、.rodata/.got/...段以及.data/.bss 段中的數(shù)據(jù)), 包括物理地址、虛擬地址、段大小和段標(biāo)識(shí)等。OP-TEE OS 首先分配 4 塊物理內(nèi)存空間并填充結(jié)構(gòu)體中的信息, 然后依次建立地址映射關(guān)系, 填寫虛擬地址。對(duì)于實(shí)現(xiàn)密碼算法的可信應(yīng)用, 我們修改分配物理內(nèi)存空間的過程, 從安全iRAM 給棧段分配物理內(nèi)存空間, 從安全 DRAM 給其他段分配物理內(nèi)存空間。

    管理安全 iRAM: 我們通過維護(hù)一個(gè)鏈表來管理固定范圍的安全 iRAM。鏈表中的結(jié)點(diǎn)代表已經(jīng)給某個(gè)可信應(yīng)用分配的安全iRAM空間; 在鏈表中插入/刪除結(jié)點(diǎn)的操作對(duì)應(yīng)分配/釋放安全 iRAM 空間; 在分配時(shí), 使用首次適應(yīng)算法搜索空閑的安全iRAM 空間。我們?cè)诎踩澜绮僮飨到y(tǒng)中存儲(chǔ)一個(gè)實(shí)現(xiàn)密碼算法的可信應(yīng)用列表, 內(nèi)容是所有可信應(yīng)用的通用唯一識(shí)別碼(universally unique identifier,UUID)。以此為過濾條件, 僅給列表中的可信應(yīng)用分配安全 iRAM 空間, 方案中的輔助可信應(yīng)用以及系統(tǒng)中的其他可信應(yīng)用仍使用安全DRAM。

    5.2 密碼算法實(shí)現(xiàn)

    我們實(shí)現(xiàn)了符合國家/國際標(biāo)準(zhǔn)的具有代表性的幾種密碼算法, 包括 SM2 數(shù)字簽名算法[30]、SM2公鑰加密算法[31]、SM3 密碼雜湊算法[32]、SM4 分組密碼算法[33]、RSASSA-PSS 數(shù)字簽名算法[34]、RSAES-OAEP 公鑰加密算法[35]、SHA3-256算法[36]和 AES-128算法[37]。 其中SM4算法及AES算法的工作模式為ECB模式。

    集中敏感數(shù)據(jù)到棧段: 按照 4.2 節(jié)提出的方案,實(shí)現(xiàn)密碼算法時(shí), 僅使用棧中的臨時(shí)變量存放敏感數(shù)據(jù)。

    分離棧段非敏感數(shù)據(jù)到安全 DRAM: 這部分實(shí)現(xiàn)包括必選的變量分離以及可選的變量分離與運(yùn)算步驟分離。

    變量分離(必選項(xiàng)): 按照 4.3 節(jié)所述, 對(duì)存放第I 類非敏感數(shù)據(jù)(代碼中的全局變量)和第 II 類非敏感數(shù)據(jù)(非敏感的輸入/輸出參數(shù))的變量進(jìn)行分離。我們實(shí)現(xiàn)的密碼算法中全局變量信息見表1。已初始化及未初始化的全局變量分別位于可信應(yīng)用 ELF文件的.data 段和.bss 段, 被加載到安全 DRAM 中,不占用安全iRAM的空間。對(duì)于非敏感的輸入/輸出參數(shù), 在客戶端應(yīng)用調(diào)用可信應(yīng)用之前, 我們?cè)诳蛻舳藨?yīng)用中申請(qǐng)共享內(nèi)存緩沖區(qū), 寫入輸入?yún)?shù)并傳遞給可信應(yīng)用??尚艖?yīng)用執(zhí)行密碼運(yùn)算后, 將輸出參數(shù)寫入緩沖區(qū), 返回給客戶端應(yīng)用。由于共享內(nèi)存位于非安全 DRAM 中, 所以此類數(shù)據(jù)也不會(huì)使用安全iRAM空間。

    表1 密碼算法實(shí)現(xiàn)中的全局變量Table 1 Global variables in the implementation of cryptographic algorithms

    變量分離與運(yùn)算步驟分離(可選項(xiàng)): 對(duì)于與敏感數(shù)據(jù)無關(guān)的臨時(shí)變量的分離以及沒有敏感數(shù)據(jù)參與的運(yùn)算步驟的分離是可選項(xiàng)。對(duì)于 SM3, SM4,AES和SHA3-256算法, 其實(shí)現(xiàn)非常簡潔, 與敏感數(shù)據(jù)無關(guān)的臨時(shí)變量很少(比如 SM4/AES 算法中只有一個(gè)用于循環(huán)計(jì)數(shù)的int類型變量符合條件), 且全部步驟都有敏感數(shù)據(jù)參與。所以, 沒有對(duì)這些算法做可選分離。對(duì)于SM2算法和RSA算法, 進(jìn)行如下的可選分離: 對(duì) SM2 公鑰加密算法和 RSAESOAEP公鑰加密算法的實(shí)現(xiàn)進(jìn)行變量分離; 對(duì)SM2數(shù)字簽名算法和 RSASSA-PSS 數(shù)字簽名算法的實(shí)現(xiàn)進(jìn)行變量分離及運(yùn)算步驟分離。

    具體來說, 變量分離指算法實(shí)現(xiàn)中, 一些變量存儲(chǔ)了 4.3 節(jié)中第 3 類非敏感數(shù)據(jù)(表2)。我們將這些變量存儲(chǔ)到堆中, 由于 OP-TEE OS 從.bss段中給可信應(yīng)用劃分堆空間,.bss 段被加載到安全 DRAM中, 所以這些變量不占用安全 iRAM 的空間。

    表2 密碼算法實(shí)現(xiàn)中存放第3類非敏感數(shù)據(jù)的變量Table 2 Variables that store Type 3 non-sensitive data in the implementation of cryptographic algorithms

    運(yùn)算步驟分離是指, 將 SM2 數(shù)字簽名算法以及RSASSA-PSS 數(shù)字簽名算法的部分步驟放在輔助可信應(yīng)用中實(shí)現(xiàn), 該可信應(yīng)用僅使用安全DRAM而不使用安全 iRAM。圖3 和 4 分別展示實(shí)現(xiàn) SM2 數(shù)字簽名算法以及RSASSA-PSS 數(shù)字簽名算法的客戶端 應(yīng)用、可信應(yīng)用及其輔助可信應(yīng)用的調(diào)用關(guān)系。在SM2 數(shù)字簽名生成算法中, 客戶端應(yīng)用首先調(diào)用可 信應(yīng)用來產(chǎn)生簽名, 并將待簽名的消息(Msg)傳遞 給可信應(yīng)用; 可信應(yīng)用調(diào)用輔助可信應(yīng)用, 參數(shù)包 括 Msg、簽名者的公鑰(PbKey)及用戶可辨別標(biāo)識(shí) 符(UserName); 輔助可信應(yīng)用執(zhí)行算法的步驟①~③并返回結(jié)果; 可信應(yīng)用執(zhí)行步驟④~⑧, 產(chǎn)生數(shù) 字簽名(Signature), 最終將簽名返回給客戶端應(yīng)用。在 SM2 數(shù)字簽名驗(yàn)證算法中, 普通世界的客戶端應(yīng)用直接調(diào)用輔助可信應(yīng)用進(jìn)行簽名驗(yàn)證; 輔助可信應(yīng)用進(jìn)行驗(yàn)證后返回驗(yàn)證結(jié)果。

    圖3 實(shí)現(xiàn)SM2數(shù)字簽名算法的客戶端應(yīng)用、可信應(yīng)用及其輔助可信應(yīng)用之間的調(diào)用關(guān)系Fig.3 Invocation between CA,TA and assisted TA which implement SM2 digital signature algorithm

    圖4 實(shí)現(xiàn)RSASSA-PSS數(shù)字簽名算法的客戶端應(yīng)用、可信應(yīng)用及其輔助可信應(yīng)用之間的調(diào)用關(guān)系Fig.4 Invocation between CA,TA and assisted TA which implement RSASSA-PSS digital signature algorithm

    RSASSA-PSS 數(shù)字簽名生成算法包括以下 3 步:1) 計(jì)算待簽名消息的雜湊值; 2) 對(duì)雜湊值進(jìn)行填充; 3) 對(duì)填充結(jié)果進(jìn)行簽名運(yùn)算。我們沒有使用輔助可信應(yīng)用執(zhí)行步驟 1 和 2, 主要出于兩個(gè)原因: 一方面, 步驟 2 中填充數(shù)據(jù)的泄露會(huì)導(dǎo)致 RSA 算法的安全性降低[38], 所以步驟2涉及敏感數(shù)據(jù), 不能在輔助可信應(yīng)用中執(zhí)行; 另一方面, 步驟 2 的填充過程同樣包括雜湊計(jì)算, 所以僅將步驟 1 放在輔助可信應(yīng)用中不會(huì)明顯減少安全 iRAM 的使用量, 故未將步驟1放在輔助可信應(yīng)用中。在 RSASSA-PSS數(shù)字簽名算法中, 普通世界的客戶端應(yīng)用調(diào)用可信應(yīng)用進(jìn)行簽名, 調(diào)用輔助可信應(yīng)用進(jìn)行簽名驗(yàn)證, 兩個(gè)可信應(yīng)用執(zhí)行密碼運(yùn)算后返回結(jié)果。

    我們將多個(gè)密碼算法實(shí)現(xiàn)為安全世界的不同可信應(yīng)用, 對(duì)應(yīng)普通世界中的多個(gè)客戶端應(yīng)用。由于普通世界和安全世界的操作系統(tǒng) Android (Linux 內(nèi)核)和 OP-TEE OS 都支持多線程調(diào)度, 且方案對(duì)操作系統(tǒng)的調(diào)度功能是透明的, 所以在多個(gè)客戶端應(yīng)用同時(shí)發(fā)起密碼運(yùn)算請(qǐng)求時(shí), 多個(gè)可信應(yīng)用(即多個(gè)密碼算法)可以自動(dòng)實(shí)現(xiàn)并發(fā)執(zhí)行。

    6 驗(yàn)證評(píng)估

    從 iRAM 使用量及性能兩個(gè)方面評(píng)估本文提出的方案。實(shí)驗(yàn)平臺(tái)為 FreeScale 的 i.MX6Quad 開發(fā)板, 該開發(fā)板配備主頻 1.2 GHz 的四核 Cortex-A9 處理器, 系統(tǒng) DRAM 容量為 1 GB, iRAM 容量為 256 KB, 其中空閑的 iRAM 容量為 32 KB (扣除普通世界操作系統(tǒng)占用的iRAM空間)。

    6.1 iRAM使用量評(píng)估

    對(duì)于每個(gè)可信應(yīng)用, 分別測試其棧段、堆段、.data段和.bss段(除堆以外的部分)的大小。經(jīng)過測試, 當(dāng)輸入為 4, 64 和 256 KB 時(shí), 各算法對(duì) iRAM 的使用量相同。SM2 算法中用到的用戶可辨別標(biāo)識(shí)為默認(rèn)值“1234567812345678”; RSAES-OAEP算法中的標(biāo)簽(Label)為空字符串。測量可信應(yīng)用中各段實(shí)際大小的方法如下。

    棧: 在可信應(yīng)用中將棧的大小統(tǒng)一設(shè)置為 5 KB。通過在加載可信應(yīng)用的過程中添加打印語句,了解到 OP-TEE OS 實(shí)際為可信應(yīng)用分配了 8 KB 的??臻g。為測試可信應(yīng)用實(shí)際使用的棧大小, 在可信應(yīng)用調(diào)用密碼算法的功能前, 在全部??臻g中寫入特定的值(0x12345678); 在可信應(yīng)用結(jié)束調(diào)用,關(guān)閉會(huì)話前, 找到??臻g中值不等于 0x12345678的最低地址, 進(jìn)而計(jì)算出實(shí)際使用的棧大小。

    .data/.bss 段: 可信應(yīng)用在編譯后會(huì)生成后綴名為 map 的文件, 記錄 ELF 文件中各段的內(nèi)容、大小及偏移, 從該文件中獲取.data段和.bss段的大小。

    堆: 在可信應(yīng)用中, 將堆的大小統(tǒng)一設(shè)置為20 KB。在 map 文件中, 可以獲取堆的起始地址在.data/.bss 段中的偏移; 加載可信應(yīng)用時(shí), 可以從OP-TEE OS 中獲取.data/.bss 段的起始地址。使用與棧段相同的方法, 提前寫入特定值, 在可信應(yīng)用結(jié)束運(yùn)行后, 計(jì)算實(shí)際使用的堆大小。

    我們分別對(duì) SM2 數(shù)字簽名算法(SM2_SIG)、SM2公鑰加密算法(SM2_ENC)、SM3密碼雜湊算法(SM3)、SM4 分組密碼算法(SM4)、AES 算法(AES-128)、RSA 數(shù)字簽名算法(RSA_SIG)、RSA公鑰加密算法(RSA_ENC)和SHA3算法(SHA3-256)進(jìn)行測試, 結(jié)果如表3 所示(其中 SM2 算法和 RSA算法未實(shí)現(xiàn)可選的非敏感數(shù)據(jù)分離)。Oath 方案[19]將可信應(yīng)用的棧段和.data/.bss段存儲(chǔ)在安全iRAM中, 所以對(duì)iRAM 的使用量為所有可加載段的內(nèi)存使用量的和; 本方案對(duì)iRAM的使用量為棧的大小。表3最后一行數(shù)據(jù)展示本方案比Oath對(duì)iRAM使用量的減少率, 最大值為 SM2 公鑰加密算法的87.75%。

    表3 密碼算法實(shí)現(xiàn)的內(nèi)存使用量(B)Table 3 Memory usage of the implementation of cryptographic algorithms (B)

    我們還測試了實(shí)現(xiàn)可選的變量分離與運(yùn)算步驟分離過后, SM2 算法和 RSA 算法對(duì) iRAM 的使用量,結(jié)果如表4 所示。由于 SM2 和 RSA 的數(shù)字簽名驗(yàn)證算法在輔助可信應(yīng)用中實(shí)現(xiàn), 所以 iRAM 的使用量都為 0??梢钥吹? 可選的變量分離與運(yùn)算步驟分離對(duì)減小 iRAM 的使用量有一定的作用。

    表4 非敏感數(shù)據(jù)的可選分離前后SM2算法和RSA算法的iRAM使用量對(duì)比(B)Table 4 Comparison of iRAM usage of SM2 and RSA algorithm before and after the optional separation of non-sensitive data (B)

    6.2 性能評(píng)估

    本文方案對(duì)性能的影響包括兩方面: 第一是可信應(yīng)用的加載時(shí)間, 這是由于本文方案修改了可信應(yīng)用的加載方式; 第二是算法本身的性能。我們使用Cortex-A9 處理器中的性能監(jiān)控單元(performance monitoring unit, PMU)對(duì)這兩部分影響進(jìn)行評(píng)估,對(duì)于每項(xiàng)測試重復(fù)運(yùn)行 500 次并取平均值。

    1) 可信應(yīng)用加載時(shí)間評(píng)估。可信應(yīng)用的加載時(shí)間指普通世界首次調(diào)用可信應(yīng)用時(shí), 將可信應(yīng)用的 ELF 文件從文件系統(tǒng)加載到內(nèi)存所用的時(shí)間。經(jīng)過測試, 當(dāng)可信應(yīng)用的全部數(shù)據(jù)存儲(chǔ)在安全DRAM 中時(shí), 平均加載時(shí)間為 82.22 ms, 基于本文方案實(shí)現(xiàn)的可信應(yīng)用平均加載時(shí)間為85.23 ms, 增加3.66%。作為對(duì)比, Oath 方案[19]對(duì)10個(gè)不同種類的可信應(yīng)用的加載時(shí)間增量為1.37%。

    2) 密碼算法性能評(píng)估。我們分別評(píng)估原始的密碼算法實(shí)現(xiàn)(基于安全DRAM, 未經(jīng)本文方案的敏感數(shù)據(jù)集中非敏感數(shù)據(jù)及運(yùn)算步驟分離)、基于Oath 及本文方案保護(hù)的密碼算法實(shí)現(xiàn)性能。對(duì)于 SM2 算法及 RSA 算法, 還評(píng)估包含可選分離時(shí)的性能。以原始的密碼算法實(shí)現(xiàn)性能為基準(zhǔn), 統(tǒng)計(jì)后 3種情況下各算法性能的相對(duì)值, 每個(gè)統(tǒng)計(jì)結(jié)果為不同大小輸入(16 B~1 MB)條件下相對(duì)值的平均數(shù)。統(tǒng)計(jì)結(jié)果如表5 所示。

    由表5 的性能評(píng)估數(shù)據(jù)可以得出如下結(jié)論。

    表5 不同保護(hù)方案下各密碼算法的性能與無保護(hù)時(shí)性能的比值(%)Table 5 Ratios of the cryptographic algorithms’ performance with different protection schemes to which without protection (%)

    1) 與原始基于安全 DRAM 的密碼算法實(shí)現(xiàn)相比, 本文方案在不實(shí)現(xiàn)可選數(shù)據(jù)分離時(shí)引入的性能開銷很小, 各算法的平均性能開銷在-0.19%~2.25%之間(平均最小值和最大值分別為 RSA 簽名算法和SM3 算法)。在很多情況下, 本文方案的性能比原始情況更好, 主要是由于 iRAM 的讀寫速度大于DRAM。

    2) 本文方案在不實(shí)現(xiàn)可選數(shù)據(jù)分離時(shí), 相比Oath 在性能方面的差異幾乎可以忽略不計(jì)。

    3) 可選數(shù)據(jù)分離對(duì)密碼算法的性能影響是可以接受的。對(duì)于 SM2 公鑰加密算法, 加密算法的平均性能開銷為 1.37%, 解密算法為 1.11%, 最大性能開銷為 2.75%, 出現(xiàn)在解密 900 KB 的消息時(shí)。對(duì)于SM2 數(shù)字簽名算法, 簽名算法的平均性能開銷為2.51%, 驗(yàn)簽算法為 1.08%, 在對(duì) 4 KB 的消息進(jìn)行簽名時(shí)產(chǎn)生最大開銷, 為4.29%; 對(duì)于不同大小的輸入, RSA 算法的性能開銷均未超過 1.2%。

    7 結(jié)論

    本文提出一種基于 iRAM 的 ARM 平臺(tái)密碼算法實(shí)現(xiàn)方案, 利用 iRAM 的物理特性實(shí)現(xiàn)密碼算法的抗物理內(nèi)存泄漏攻擊特性, 同時(shí)利用ARM Trust Zone 技術(shù)實(shí)現(xiàn)抗軟件攻擊特性。特別地, 本文通過對(duì)密碼運(yùn)算過程中敏感數(shù)據(jù)細(xì)粒度的準(zhǔn)確劃分以及執(zhí)行密碼運(yùn)算可信應(yīng)用數(shù)據(jù)段的控制調(diào)度, 降低了 iRAM 的消耗, 使得在 iRAM 的消耗降低 78%以上的情況下, 仍能達(dá)到與未修改的實(shí)現(xiàn)相近的性能。iRAM資源消耗的降低使得該方案能夠在不影響系統(tǒng)正常功能的條件下, 在當(dāng)前主流 ARM 平臺(tái)部署。

    猜你喜歡
    敏感數(shù)據(jù)數(shù)字簽名內(nèi)存
    干擾條件下可檢索數(shù)字版權(quán)管理環(huán)境敏感數(shù)據(jù)的加密方法
    淺析計(jì)算機(jī)安全防護(hù)中數(shù)字簽名技術(shù)的應(yīng)用
    實(shí)現(xiàn)虛擬機(jī)敏感數(shù)據(jù)識(shí)別
    基于透明加密的水下通信網(wǎng)絡(luò)敏感數(shù)據(jù)防泄露方法
    “春夏秋冬”的內(nèi)存
    基于4A平臺(tái)的數(shù)據(jù)安全管控體系的設(shè)計(jì)與實(shí)現(xiàn)
    基于數(shù)字簽名的QR碼水印認(rèn)證系統(tǒng)
    基于數(shù)字簽名和HSM的數(shù)據(jù)庫篡改檢測機(jī)制
    基于內(nèi)存的地理信息訪問技術(shù)
    復(fù)制數(shù)字簽名,巧妙偽裝病毒
    成在线人永久免费视频| 国产国语露脸激情在线看| 亚洲七黄色美女视频| 久久精品亚洲av国产电影网| av网站在线播放免费| 久久国产亚洲av麻豆专区| 热re99久久精品国产66热6| 午夜影院在线不卡| 免费高清在线观看日韩| 成人国产av品久久久| 国产99久久九九免费精品| 黑人巨大精品欧美一区二区mp4| av线在线观看网站| 欧美在线黄色| 91精品三级在线观看| 12—13女人毛片做爰片一| 国产精品久久久av美女十八| 国产野战对白在线观看| 欧美老熟妇乱子伦牲交| 亚洲黑人精品在线| 各种免费的搞黄视频| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲欧美一区二区三区久久| 飞空精品影院首页| 91麻豆精品激情在线观看国产 | 97人妻天天添夜夜摸| 欧美另类一区| 男女边摸边吃奶| 十八禁高潮呻吟视频| 99国产精品一区二区三区| 久久久久国产一级毛片高清牌| 一级毛片女人18水好多| 欧美精品啪啪一区二区三区 | 久久国产精品人妻蜜桃| 黄网站色视频无遮挡免费观看| 国产日韩欧美亚洲二区| 91麻豆精品激情在线观看国产 | 久久午夜综合久久蜜桃| 咕卡用的链子| 99九九在线精品视频| 性色av一级| 欧美日韩亚洲高清精品| 一级a爱视频在线免费观看| 久久免费观看电影| 一二三四社区在线视频社区8| 999久久久精品免费观看国产| 欧美精品啪啪一区二区三区 | 18在线观看网站| 在线观看人妻少妇| 91麻豆av在线| 99精品欧美一区二区三区四区| 国产无遮挡羞羞视频在线观看| av在线播放精品| 老司机午夜十八禁免费视频| 19禁男女啪啪无遮挡网站| 欧美97在线视频| 久久人人97超碰香蕉20202| 十八禁高潮呻吟视频| 国产不卡av网站在线观看| 久久免费观看电影| 2018国产大陆天天弄谢| 国产精品久久久久成人av| 免费在线观看影片大全网站| 宅男免费午夜| 大陆偷拍与自拍| 免费人妻精品一区二区三区视频| e午夜精品久久久久久久| av电影中文网址| 不卡一级毛片| 精品国产一区二区三区四区第35| 亚洲成人国产一区在线观看| 欧美成狂野欧美在线观看| 母亲3免费完整高清在线观看| 久久精品久久久久久噜噜老黄| 亚洲精品粉嫩美女一区| 国产淫语在线视频| a 毛片基地| 黑人巨大精品欧美一区二区mp4| 成人av一区二区三区在线看 | 久久精品人人爽人人爽视色| av有码第一页| 国产一区二区激情短视频 | 免费高清在线观看视频在线观看| 亚洲欧美精品自产自拍| 欧美xxⅹ黑人| 欧美精品一区二区大全| 亚洲av美国av| 国产精品免费视频内射| 久久久久网色| 久久国产亚洲av麻豆专区| 99久久综合免费| 久久热在线av| 国产成人av激情在线播放| 亚洲欧美一区二区三区久久| 午夜91福利影院| 丰满迷人的少妇在线观看| 制服诱惑二区| 精品一品国产午夜福利视频| 少妇被粗大的猛进出69影院| 亚洲精品国产av蜜桃| 免费在线观看视频国产中文字幕亚洲 | 9色porny在线观看| 欧美在线一区亚洲| 高清视频免费观看一区二区| 国产伦理片在线播放av一区| 欧美黄色片欧美黄色片| 黑丝袜美女国产一区| 日本a在线网址| 久久精品国产亚洲av高清一级| 欧美激情高清一区二区三区| 久久 成人 亚洲| 狂野欧美激情性xxxx| 国产极品粉嫩免费观看在线| 嫩草影视91久久| 精品一区在线观看国产| 亚洲一区二区三区欧美精品| 亚洲国产看品久久| 自线自在国产av| 人人妻,人人澡人人爽秒播| 多毛熟女@视频| 12—13女人毛片做爰片一| 美女福利国产在线| 99久久精品国产亚洲精品| 别揉我奶头~嗯~啊~动态视频 | 久久精品国产亚洲av高清一级| 少妇粗大呻吟视频| 97人妻天天添夜夜摸| 99国产精品99久久久久| 大片电影免费在线观看免费| 高清黄色对白视频在线免费看| 美女脱内裤让男人舔精品视频| 美女高潮到喷水免费观看| 老司机在亚洲福利影院| 亚洲精品乱久久久久久| 日韩大片免费观看网站| 亚洲一卡2卡3卡4卡5卡精品中文| 国产欧美日韩一区二区精品| 咕卡用的链子| 老司机影院毛片| 国产欧美日韩一区二区三 | 波多野结衣av一区二区av| 美女午夜性视频免费| 欧美av亚洲av综合av国产av| 天天躁狠狠躁夜夜躁狠狠躁| 在线观看www视频免费| 妹子高潮喷水视频| 性色av一级| 免费在线观看影片大全网站| www.自偷自拍.com| 99热全是精品| 亚洲av成人一区二区三| 男男h啪啪无遮挡| 国产成人a∨麻豆精品| 啪啪无遮挡十八禁网站| 一级,二级,三级黄色视频| 丝袜美腿诱惑在线| kizo精华| 另类亚洲欧美激情| 欧美黄色片欧美黄色片| 欧美黑人精品巨大| 欧美久久黑人一区二区| 自拍欧美九色日韩亚洲蝌蚪91| 自拍欧美九色日韩亚洲蝌蚪91| 欧美中文综合在线视频| 国产精品一区二区免费欧美 | 乱人伦中国视频| 深夜精品福利| 69精品国产乱码久久久| 久久国产亚洲av麻豆专区| 一个人免费看片子| 亚洲精品日韩在线中文字幕| 久久综合国产亚洲精品| 国产精品麻豆人妻色哟哟久久| 人人妻人人澡人人爽人人夜夜| 99热国产这里只有精品6| 免费在线观看日本一区| 日本91视频免费播放| 欧美日韩亚洲综合一区二区三区_| 两人在一起打扑克的视频| 日本av手机在线免费观看| 97在线人人人人妻| 久久亚洲精品不卡| 婷婷成人精品国产| 黄色视频在线播放观看不卡| 婷婷色av中文字幕| 国产又爽黄色视频| 国产伦理片在线播放av一区| 国产免费av片在线观看野外av| 欧美变态另类bdsm刘玥| 成年动漫av网址| 欧美在线黄色| 日韩 欧美 亚洲 中文字幕| av欧美777| 亚洲av欧美aⅴ国产| 国产成人av激情在线播放| 午夜福利乱码中文字幕| 女性生殖器流出的白浆| 制服诱惑二区| 久久久久网色| 新久久久久国产一级毛片| 欧美日韩亚洲国产一区二区在线观看 | 欧美成狂野欧美在线观看| 亚洲精品自拍成人| av超薄肉色丝袜交足视频| 日韩大码丰满熟妇| 久久亚洲国产成人精品v| 天天躁狠狠躁夜夜躁狠狠躁| 不卡一级毛片| 免费日韩欧美在线观看| 中文字幕精品免费在线观看视频| 老司机深夜福利视频在线观看 | 日本欧美视频一区| 精品亚洲成a人片在线观看| 亚洲欧美色中文字幕在线| 美女中出高潮动态图| 亚洲国产精品一区二区三区在线| e午夜精品久久久久久久| 夜夜骑夜夜射夜夜干| 欧美+亚洲+日韩+国产| 亚洲男人天堂网一区| 1024视频免费在线观看| 色播在线永久视频| 午夜视频精品福利| 美女高潮到喷水免费观看| 人人妻人人澡人人看| 丝袜脚勾引网站| kizo精华| 日本撒尿小便嘘嘘汇集6| 国产精品免费视频内射| 亚洲中文av在线| 最近最新免费中文字幕在线| 咕卡用的链子| 中文字幕人妻丝袜一区二区| 丝袜人妻中文字幕| 一本大道久久a久久精品| av在线老鸭窝| 最新的欧美精品一区二区| 色综合欧美亚洲国产小说| 蜜桃国产av成人99| 日韩熟女老妇一区二区性免费视频| 99热网站在线观看| 国产亚洲一区二区精品| 精品久久久久久久毛片微露脸 | 亚洲熟女毛片儿| 国产免费av片在线观看野外av| 香蕉国产在线看| 麻豆av在线久日| 丰满人妻熟妇乱又伦精品不卡| 在线观看舔阴道视频| 日韩视频在线欧美| 电影成人av| 亚洲成人手机| 亚洲精品久久成人aⅴ小说| av网站免费在线观看视频| 久久青草综合色| 在线亚洲精品国产二区图片欧美| 永久免费av网站大全| 黄色毛片三级朝国网站| 午夜福利视频在线观看免费| 亚洲一码二码三码区别大吗| 午夜91福利影院| 国产精品香港三级国产av潘金莲| 亚洲av国产av综合av卡| 老熟妇乱子伦视频在线观看 | 考比视频在线观看| 免费不卡黄色视频| 久久国产精品影院| 少妇精品久久久久久久| 欧美日韩亚洲综合一区二区三区_| 欧美黄色淫秽网站| 一本大道久久a久久精品| 他把我摸到了高潮在线观看 | 中文字幕最新亚洲高清| 纯流量卡能插随身wifi吗| 精品一品国产午夜福利视频| 中文精品一卡2卡3卡4更新| 黄网站色视频无遮挡免费观看| 在线看a的网站| 大码成人一级视频| 另类精品久久| 亚洲一区二区三区欧美精品| 日日爽夜夜爽网站| 下体分泌物呈黄色| 国产精品自产拍在线观看55亚洲 | 9色porny在线观看| 国产淫语在线视频| 国产欧美亚洲国产| 桃花免费在线播放| 热99国产精品久久久久久7| 大香蕉久久网| 法律面前人人平等表现在哪些方面 | 欧美黄色淫秽网站| 18禁观看日本| 国产福利在线免费观看视频| 国产亚洲午夜精品一区二区久久| 国产一区有黄有色的免费视频| cao死你这个sao货| 国产av国产精品国产| 亚洲,欧美精品.| 人人妻人人澡人人看| 午夜日韩欧美国产| 亚洲国产看品久久| 人妻久久中文字幕网| av在线播放精品| 国产成人a∨麻豆精品| 亚洲欧美成人综合另类久久久| 中国国产av一级| 咕卡用的链子| 成年人午夜在线观看视频| 妹子高潮喷水视频| 午夜福利乱码中文字幕| 老熟妇乱子伦视频在线观看 | 肉色欧美久久久久久久蜜桃| 视频在线观看一区二区三区| av片东京热男人的天堂| 国产亚洲欧美在线一区二区| 日韩欧美免费精品| 亚洲国产av新网站| 大片免费播放器 马上看| 亚洲va日本ⅴa欧美va伊人久久 | 国产男女内射视频| 午夜日韩欧美国产| 久久人人爽人人片av| 国产av一区二区精品久久| a级毛片在线看网站| 99热网站在线观看| 亚洲五月婷婷丁香| 欧美成狂野欧美在线观看| 欧美人与性动交α欧美软件| www.自偷自拍.com| 日韩视频一区二区在线观看| 成年人黄色毛片网站| 最近最新中文字幕大全免费视频| 国产国语露脸激情在线看| 人人妻人人添人人爽欧美一区卜| 午夜视频精品福利| 91av网站免费观看| 久久99热这里只频精品6学生| 免费在线观看完整版高清| 日本撒尿小便嘘嘘汇集6| 日韩一区二区三区影片| 大型av网站在线播放| 成人影院久久| 日韩中文字幕视频在线看片| 首页视频小说图片口味搜索| 一区二区三区乱码不卡18| 日本欧美视频一区| 亚洲黑人精品在线| 夫妻午夜视频| 国产精品99久久99久久久不卡| 91成人精品电影| 一个人免费在线观看的高清视频 | 999精品在线视频| 女人久久www免费人成看片| 99久久国产精品久久久| 啦啦啦中文免费视频观看日本| 狂野欧美激情性bbbbbb| 国产主播在线观看一区二区| 在线看a的网站| 欧美另类一区| 男人舔女人的私密视频| 国产欧美日韩精品亚洲av| 国产一卡二卡三卡精品| cao死你这个sao货| 欧美黄色淫秽网站| 国产成人a∨麻豆精品| 久久精品国产a三级三级三级| 成在线人永久免费视频| 欧美日本中文国产一区发布| 国产欧美日韩一区二区三 | a 毛片基地| 在线永久观看黄色视频| 国产精品偷伦视频观看了| 成人国语在线视频| 亚洲专区字幕在线| 丰满饥渴人妻一区二区三| 国产免费一区二区三区四区乱码| 久久久久久免费高清国产稀缺| 女人爽到高潮嗷嗷叫在线视频| 亚洲第一av免费看| 国产成人精品在线电影| 成人手机av| 成人手机av| 高清在线国产一区| 久久精品亚洲熟妇少妇任你| 性色av一级| 男女无遮挡免费网站观看| 日韩,欧美,国产一区二区三区| 亚洲av日韩在线播放| 一本—道久久a久久精品蜜桃钙片| 亚洲国产欧美网| 国产一级毛片在线| 1024香蕉在线观看| 午夜福利在线观看吧| 午夜激情久久久久久久| 久久精品国产综合久久久| 欧美 日韩 精品 国产| 国产亚洲欧美在线一区二区| 国产麻豆69| 欧美另类一区| 国产精品香港三级国产av潘金莲| 亚洲国产欧美在线一区| 亚洲精品一区蜜桃| 国产麻豆69| 久久久久久人人人人人| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲精品国产av成人精品| 精品视频人人做人人爽| 男女免费视频国产| 夫妻午夜视频| 国产无遮挡羞羞视频在线观看| 国产精品香港三级国产av潘金莲| 国产成人影院久久av| 爱豆传媒免费全集在线观看| 久久久久国产精品人妻一区二区| av天堂在线播放| 男女免费视频国产| 亚洲欧美一区二区三区黑人| 欧美另类亚洲清纯唯美| 成年av动漫网址| 99热网站在线观看| 亚洲精品一区蜜桃| 一级片'在线观看视频| 曰老女人黄片| a级片在线免费高清观看视频| 精品久久久久久电影网| 黄片播放在线免费| 国产一级毛片在线| 欧美精品人与动牲交sv欧美| 91老司机精品| 美女中出高潮动态图| 成年人黄色毛片网站| 欧美日韩av久久| 久久久久精品人妻al黑| 亚洲天堂av无毛| 成年人黄色毛片网站| 亚洲精华国产精华精| 看免费av毛片| 99国产极品粉嫩在线观看| 欧美xxⅹ黑人| cao死你这个sao货| 精品一区二区三区四区五区乱码| 免费久久久久久久精品成人欧美视频| 热re99久久精品国产66热6| 日韩精品免费视频一区二区三区| 免费高清在线观看视频在线观看| 国产不卡av网站在线观看| 国产黄频视频在线观看| 欧美国产精品va在线观看不卡| 成年av动漫网址| 大香蕉久久网| 18禁裸乳无遮挡动漫免费视频| 91老司机精品| 国产亚洲av高清不卡| 亚洲精品粉嫩美女一区| 国产精品亚洲av一区麻豆| 建设人人有责人人尽责人人享有的| 岛国毛片在线播放| 成年美女黄网站色视频大全免费| 在线观看免费日韩欧美大片| 午夜久久久在线观看| 建设人人有责人人尽责人人享有的| 精品少妇黑人巨大在线播放| 夜夜骑夜夜射夜夜干| 真人做人爱边吃奶动态| 日韩欧美国产一区二区入口| 少妇裸体淫交视频免费看高清 | 国产在线视频一区二区| 免费观看a级毛片全部| 国产视频一区二区在线看| 亚洲成av片中文字幕在线观看| 国产精品欧美亚洲77777| 水蜜桃什么品种好| 国产精品九九99| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美精品亚洲一区二区| 日韩视频在线欧美| 伊人亚洲综合成人网| 夫妻午夜视频| 韩国精品一区二区三区| 美女大奶头黄色视频| 黄片播放在线免费| 搡老熟女国产l中国老女人| 美女午夜性视频免费| 国产精品成人在线| 午夜精品国产一区二区电影| 欧美日韩一级在线毛片| 热re99久久精品国产66热6| 亚洲色图 男人天堂 中文字幕| 久久精品国产综合久久久| 日本精品一区二区三区蜜桃| 亚洲av电影在线观看一区二区三区| 老熟妇仑乱视频hdxx| 亚洲第一欧美日韩一区二区三区 | 国产av又大| 纯流量卡能插随身wifi吗| 各种免费的搞黄视频| 国产精品99久久99久久久不卡| 成人黄色视频免费在线看| 久久久国产欧美日韩av| 欧美日韩一级在线毛片| 精品国产一区二区三区四区第35| 爱豆传媒免费全集在线观看| a级片在线免费高清观看视频| 脱女人内裤的视频| kizo精华| 亚洲av成人一区二区三| 成在线人永久免费视频| 久久久久久久精品精品| 人人妻人人爽人人添夜夜欢视频| 亚洲欧美一区二区三区久久| 18在线观看网站| 国产精品影院久久| 一级毛片电影观看| 国产成人精品在线电影| 少妇 在线观看| 操出白浆在线播放| 美女中出高潮动态图| 免费在线观看日本一区| 欧美激情高清一区二区三区| 亚洲精品在线美女| 狂野欧美激情性xxxx| 美女高潮喷水抽搐中文字幕| 我要看黄色一级片免费的| 汤姆久久久久久久影院中文字幕| av在线app专区| 欧美大码av| 亚洲av电影在线进入| 久热爱精品视频在线9| 精品国产一区二区久久| 午夜免费观看性视频| av在线播放精品| 永久免费av网站大全| 亚洲国产成人一精品久久久| 国产激情久久老熟女| 欧美日本中文国产一区发布| 一边摸一边抽搐一进一出视频| 国产av又大| 久久国产精品男人的天堂亚洲| 一级毛片女人18水好多| 中文字幕人妻丝袜制服| 超碰成人久久| 国产精品久久久久久人妻精品电影 | 我的亚洲天堂| 亚洲av成人不卡在线观看播放网 | 精品第一国产精品| 十八禁高潮呻吟视频| 欧美日韩视频精品一区| 日韩 亚洲 欧美在线| 成人18禁高潮啪啪吃奶动态图| 99国产极品粉嫩在线观看| av天堂久久9| 亚洲国产精品999| 大片免费播放器 马上看| 午夜福利,免费看| 在线观看免费午夜福利视频| 久久久久精品国产欧美久久久 | e午夜精品久久久久久久| 97人妻天天添夜夜摸| 天堂中文最新版在线下载| 女人爽到高潮嗷嗷叫在线视频| av视频免费观看在线观看| 成人三级做爰电影| 嫩草影视91久久| 最新的欧美精品一区二区| 亚洲精品久久午夜乱码| 麻豆乱淫一区二区| 亚洲九九香蕉| 成年女人毛片免费观看观看9 | www日本在线高清视频| tube8黄色片| 午夜免费鲁丝| 精品福利永久在线观看| 丝瓜视频免费看黄片| 国产高清国产精品国产三级| 一个人免费在线观看的高清视频 | 日韩一区二区三区影片| 午夜福利一区二区在线看| 中国美女看黄片| 夜夜骑夜夜射夜夜干| 性高湖久久久久久久久免费观看| 亚洲精品av麻豆狂野| 亚洲久久久国产精品| 国精品久久久久久国模美| 80岁老熟妇乱子伦牲交| 麻豆国产av国片精品| 狠狠精品人妻久久久久久综合| 亚洲熟女精品中文字幕| 侵犯人妻中文字幕一二三四区| 黄色视频,在线免费观看| av国产精品久久久久影院| 欧美黑人欧美精品刺激| 久久免费观看电影| 亚洲专区国产一区二区| 中亚洲国语对白在线视频| 一本综合久久免费| 性高湖久久久久久久久免费观看| 可以免费在线观看a视频的电影网站| 91老司机精品| 国产精品国产av在线观看| 在线av久久热| 亚洲激情五月婷婷啪啪| 成年人午夜在线观看视频| 丝袜美腿诱惑在线| 日日摸夜夜添夜夜添小说| 90打野战视频偷拍视频| 50天的宝宝边吃奶边哭怎么回事| 18禁裸乳无遮挡动漫免费视频| 一区二区三区激情视频| 免费女性裸体啪啪无遮挡网站| 九色亚洲精品在线播放| 9热在线视频观看99| 久久精品aⅴ一区二区三区四区| 成年女人毛片免费观看观看9 | 视频在线观看一区二区三区|