可信平臺(tái)模塊(TPM)概念介紹
1
RPMB(Replay Protected Memory Block)Partition 是 eMMC 中的一個(gè)具有安全特性的分區(qū)。
eMMC 在寫(xiě)入數(shù)據(jù)到 RPMB 時(shí),會(huì)校驗(yàn)數(shù)據(jù)的合法性,只有指定的 Host 才能夠?qū)懭?,同時(shí)在讀數(shù)據(jù)時(shí),也提供了簽名機(jī)制,保證 Host 讀取到的數(shù)據(jù)是 RPMB 內(nèi)部數(shù)據(jù),而不是攻擊者偽造的數(shù)據(jù)。
RPMB 在實(shí)際應(yīng)用中,通常用于存儲(chǔ)一些有防止非法篡改需求的數(shù)據(jù),例如手機(jī)上指紋支付相關(guān)的公鑰、序列號(hào)等。RPMB 可以對(duì)寫(xiě)入操作進(jìn)行鑒權(quán),但是讀取并不需要鑒權(quán),任何人都可以進(jìn)行讀取的操作,因此存儲(chǔ)到 RPMB 的數(shù)據(jù)通常會(huì)進(jìn)行加密后再存儲(chǔ)。
容量大小
2
兩個(gè)RPMB Partition 的大小是由Extended CSD register 的 BOOT_SIZE_MULT Field 決定,大小的計(jì)算公式如下:
Size = 128Kbytes x BOOT_SIZE_MULT
一般情況下,Boot Area Partition 的大小是128KB的倍數(shù),EMMC中默認(rèn)為 4 MB,即 RPMB_SIZE_MULT 為 32,部分芯片廠(chǎng)家會(huì)提供改寫(xiě) RPMB_SIZE_MULT 的功能來(lái)改變 RPMB Partition 的容量大小。RPMB_SIZE_MULT 最大可以為 128,即 Boot Area Partition 的最大容量大小可以為 128 x 128 KB = 16384 KB = 16 MB。
Replay Protect 原理
3
使用 eMMC 的產(chǎn)品,在產(chǎn)線(xiàn)生產(chǎn)時(shí),會(huì)為每一個(gè)產(chǎn)品生產(chǎn)一個(gè)唯一的 256 bits 的 Secure Key,燒寫(xiě)到 eMMC 的 OTP 區(qū)域(只能燒寫(xiě)一次的區(qū)域),同時(shí) Host 在安全區(qū)域中(例如:TEE)也會(huì)保留該 Secure Key。
在 eMMC 內(nèi)部,還有一個(gè)RPMB Write Counter。RPMB 每進(jìn)行一次合法的寫(xiě)入操作時(shí),Write Counter 就會(huì)自動(dòng)加一 。
通過(guò) Secure Key 和 Write Counter 的應(yīng)用,RMPB 可以實(shí)現(xiàn)數(shù)據(jù)讀取和寫(xiě)入的 Replay Protect。
RPMB 數(shù)據(jù)讀取
4

1、 Host 向 eMMC 發(fā)起讀 RPMB 的請(qǐng)求,同時(shí)生成一個(gè) 16 bytes 的隨機(jī)數(shù),發(fā)送給 eMMC。
2、 eMMC 將請(qǐng)求的數(shù)據(jù)從 RPMB 中讀出,并使用 Secure Key 通過(guò) HMAC SHA-256 算法,計(jì)算讀取到的數(shù)據(jù)和接收到的隨機(jī)數(shù)拼接到一起后的簽名。然后,eMMC 將讀取到的數(shù)據(jù)、接收到的隨機(jī)數(shù)、計(jì)算得到的簽名一并發(fā)送給 Host。
3、 Host 接收到 RPMB 的數(shù)據(jù)、隨機(jī)數(shù)以及簽名后,首先比較隨機(jī)數(shù)是否與自己發(fā)送的一致,如果一致,再用同樣的 Secure Key 通過(guò) HMAC SHA-256 算法對(duì)數(shù)據(jù)和隨機(jī)數(shù)組合到一起進(jìn)行簽名,如果簽名與 eMMC 發(fā)送的簽名是一致的,那么就可以確定該數(shù)據(jù)是從 RPMB 中讀取到的正確數(shù)據(jù),而不是攻擊者偽造的數(shù)據(jù)。
通過(guò)上述的讀取流程,可以保證 Host 正確的讀取到 RPMB 的數(shù)據(jù)。
RPMB 數(shù)據(jù)寫(xiě)入
5

1、Host 按照上面的讀數(shù)據(jù)流程,讀取 RPMB 的 Write Counter(通過(guò)Write Counter來(lái)識(shí)別數(shù)據(jù)的有效性)。
2、 Host 將需要寫(xiě)入的數(shù)據(jù)和 Write Counter 拼接到一起并計(jì)算簽名,然后將數(shù)據(jù)、Write Counter 以及簽名一并發(fā)給 eMMC。
3、eMMC 接收到數(shù)據(jù)后,先對(duì)比 Write Counter 是否與當(dāng)前的值相同,如果相同那么再對(duì)數(shù)據(jù)和 Write Counter 的組合進(jìn)行簽名,然后和 Host 發(fā)送過(guò)來(lái)的簽名進(jìn)行比較,如果簽名相同則鑒權(quán)通過(guò),將數(shù)據(jù)寫(xiě)入到 RPMB 中。
通過(guò)上述的寫(xiě)入流程,可以保證 RPMB 不會(huì)被非法篡改。
注意:UFS中RPMB也采用了和EMMC相同的原理。
-
Host
+關(guān)注
關(guān)注
0文章
32瀏覽量
35421 -
emmc
+關(guān)注
關(guān)注
7文章
252瀏覽量
55348 -
Partition
+關(guān)注
關(guān)注
0文章
4瀏覽量
8125
原文標(biāo)題:RPMB原理介紹
文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
關(guān)于系統(tǒng)鏈接腳本的介紹
NICE端口相關(guān)信號(hào)簡(jiǎn)單介紹與配置
Montgomery模乘介紹
元器件及單元電路介紹-610頁(yè)
【「AI Agent應(yīng)用與項(xiàng)目實(shí)戰(zhàn)」閱讀體驗(yàn)】書(shū)籍介紹
誰(shuí)能詳細(xì)介紹一下track-and-hold
RK3568內(nèi)置MCU開(kāi)發(fā)介紹之二

RPMB原理介紹
評(píng)論