前面提到RPMB使用認證機制和抗重放攻擊機制保障數(shù)據(jù)不被黑客攻擊,除此之外,UFS還有其它一些手段來保護用戶數(shù)據(jù)安全,這一章節(jié)我們來關(guān)注UFS數(shù)據(jù)安全。
UFS設(shè)備用來存儲個人或者企業(yè)的數(shù)據(jù)信息,UFS設(shè)備需要這樣一種機制,就是必要時,數(shù)據(jù)能永久從設(shè)備(閃存)刪除,這樣就能防止別有用心的人通過反向工程獲取你的數(shù)據(jù)。
話說,陳老師吸取了上次教訓(xùn),每次拍照后,事后“閱后即焚”。陳老師想:這樣就沒有人看到我們的照片了吧。陳老師很是得意。
沒有想到,不久后網(wǎng)上又爆出陳老師新的“艷照門”事件。陳老師很是納悶,我不是明明都刪除了嗎??
我們幫陳老師分析一下為什么刪了的照片還能被修手機的人弄出來。
手機文件系統(tǒng)把陳老師拍的照片數(shù)據(jù)用邏輯塊管理,然后把這些邏輯塊寫到UFS設(shè)備的存儲介質(zhì)(如上圖所示)。陳老師刪除照片,刪除的只是邏輯塊數(shù)據(jù),存在UFS存儲介質(zhì)上的數(shù)據(jù)還在原地,如下圖所示:
修手機的一看,這不陳老師嗎?修手機的知道肯定能發(fā)現(xiàn)什么,嘴角不禁露出一絲不易覺察的笑。他從文件中沒有找到照片,有點失望。小子吃一塹長一智呀!但獵奇的心不會讓他輕易放棄的,有經(jīng)驗的他盯上了存儲卡。功夫不負有心人,他從存儲介質(zhì)里把照片弄出來!
拍照不容易,且拍且珍惜。我們看看如何避免陳老師的悲劇。
擦除操作(Erase Operation)
注意,這個“擦除”操作不是擦除存儲介質(zhì),不是閃存層面的擦除操作,而是UFS層面的擦除操作。數(shù)據(jù)寫在閃存上,UFS設(shè)備內(nèi)部有個邏輯地址到物理地址的映射,擦除操作通過切斷這種映射,主機就不能獲得擦除掉的數(shù)據(jù)。
當(dāng)陳老師刪除照片時,它切斷了用戶直接訪問照片的途徑:
當(dāng)陳老師刪除照片后,手機系統(tǒng)會通過發(fā)送UNMAP命令(就是通常說的TRIM)來告訴設(shè)備這些照片數(shù)據(jù)無效。設(shè)備收到該命令后,然后根據(jù)邏輯單元描述符中的bProvisioningType來確定執(zhí)行具體操作。
bProvisioningType:
00h: Thin Provisioning is disabled (default)
02h: Thin Provisioning is enabled and TPRZ = 0 (Discard)
03h: Thin Provisioning is enabled and TPRZ = 1 (Erase)
即當(dāng)bProvisioningType= 03h時,設(shè)備執(zhí)行擦除操作,即切斷邏輯地址到物理空間的映射。
一個邏輯塊如果被擦除,那么主機訪問這個邏輯塊時,設(shè)備必須返回全0數(shù)據(jù)給主機。
注意,這個“擦除”操作不是擦除存儲介質(zhì),只是主機讓設(shè)備切斷邏輯地址到物理地址的映射,因此不保證照片數(shù)據(jù)從閃存介質(zhì)刪除。但是,由于UFS設(shè)備知道該照片數(shù)據(jù)已經(jīng)刪除(沒有邏輯塊到物理空間的映射),在后續(xù)垃圾回收時,這些被刪掉的數(shù)據(jù)很大概率會從介質(zhì)上擦除掉。
舍棄操作(Discard Operation)
和擦除操作類似,主機通過發(fā)送UNMAP命令來執(zhí)行舍棄操作。當(dāng)bProvisioningType = 02h時,設(shè)備執(zhí)行舍棄操作。
舍棄操作和擦除操作的區(qū)別:主機訪問一個被舍棄的邏輯塊,可能獲得任何數(shù)據(jù),甚至包括舍棄前的數(shù)據(jù),而擦除操作是主機獲得全0數(shù)據(jù)。也就是說,對刪除的照片,如果UFS設(shè)備執(zhí)行的是舍棄操作,那么主機還可能獲得原圖片;如果UFS設(shè)備執(zhí)行的是擦除操作,主機不可能再獲得原照片。
但不管是舍棄操作還是擦除操作,都不能保證照片從存儲介質(zhì)上刪除。像修手機這樣的人,它不走尋常路(通過手機系統(tǒng)),直接操作閃存的話,還是有可能把刪除的照片找回來。
陳老師看到這里,急了,難道我以后再也不能拍照了嗎??
別急,小陳!你先坐下,聽我慢慢講。
安全清除(Secure Removal)
陳老師,有三種可選策略用以安全清除數(shù)據(jù),你造嗎?
設(shè)備控制器擦除(Erase)要被刪除的邏輯塊所對應(yīng)的物理地址空間;
2. 設(shè)備控制器用單一字符覆蓋寫要被刪除的邏輯塊所對應(yīng)的物理地址空間,然后擦除設(shè)備;
3. 設(shè)備控制器用單一字符、字符補碼和隨機字符,依次覆蓋寫要被刪除的邏輯塊所對應(yīng)的物理地址空間。
又是覆蓋寫,又是擦除,照片是徹底從閃存中刪除了。
陳老師聽到這里,情緒緩和下來,終于是坐了下來。
清除操作(Purge Operation)
清除操作是針對垃圾數(shù)據(jù)(比如陳老師刪除的照片),讓這些數(shù)據(jù)不僅不能通過正規(guī)渠道(操作系統(tǒng))訪問,還讓這些數(shù)據(jù)無法從存儲介質(zhì)中獲取,徹底把垃圾數(shù)據(jù)從UFS設(shè)備清除掉。
前面所說的擦除和舍棄操作,都是主機通過命令層的UNMAP命令來實施的。而清除操作則是主機通過設(shè)備管理器的Query功能來告訴設(shè)備的。
這里涉及到一個重要的標志(flag)和一個重要的屬性(Attribute),分別是發(fā)PurgeEnable和bPurgeStatus,前者用以使能/禁止清除操作,后者用以設(shè)備向主機提供清除操作的狀態(tài)信息。
fPurgeEnable:
上電或者重啟,該標志位0;
主機通過設(shè)置或者清除該標志,使能或禁止清除操作;
只有當(dāng)所有邏輯單元的命令隊列空的時候,主機才能設(shè)置該標志為1使能清除操作;
當(dāng)UFS設(shè)備執(zhí)行完清除操作或者發(fā)生錯誤,該標志會被清零;
如果主機想終止設(shè)備執(zhí)行清除操作,可以通過清除該標志達到目的。
bPurgeStatus:
主機為了讓設(shè)備執(zhí)行清除操作,主機通過QUERY REQUEST UPIU設(shè)置fPurgeEnable = 1。如果當(dāng)前邏輯單元的命令隊列中沒有任何命令,設(shè)備會執(zhí)行清除操作。一旦設(shè)備開始執(zhí)行清除操作,它不會響應(yīng)主機發(fā)來的任何命令。如果這個時候主機需要讓設(shè)備緊急響應(yīng)命令,主機首先應(yīng)該通過QUERY REQUEST UPIU設(shè)置fPurgeEnable = 0來提前終止設(shè)備的清除操作,然后再發(fā)送命令。
下圖是清除操作的狀態(tài)機圖:
UFS設(shè)備在執(zhí)行清除操作時,對那些垃圾數(shù)據(jù),有以下幾種處理方式:
默認是把這些垃圾數(shù)據(jù)從閃存空間擦除掉;
或者先用單個字符(比如全A)覆蓋寫,然后再擦除;
抑或先用單個字符(比如A)覆蓋寫,然后用它的補碼(比如5)覆蓋寫,最后用隨機字符覆蓋寫;
最后還可以使用用戶自定義的方式處理。
這些手段前面已經(jīng)介紹過。
格式化設(shè)備(Wipe Device)
主機通過發(fā)送FORMAT UNIT命令格式化所有的邏輯單元(RPMB LU除外)。不過,對那些寫保護的邏輯單元,F(xiàn)ORMAT UNIT命令會失敗。
FORMAT UNIT的命令對象是Device well know LU,它格式化除RPMB之外所有無寫保護的邏輯單元。
FORMAT UNIT會切斷邏輯塊到物理空間的映射。但如果要讓數(shù)據(jù)徹底從設(shè)備上清除,UFS設(shè)備還需要執(zhí)行Purge操作,這樣數(shù)據(jù)才能徹底刪除。
寫保護
前面都是千方百計的清除數(shù)據(jù),但有時候UFS設(shè)備需要保護寫的數(shù)據(jù)。
每個邏輯邏輯單元(除了RPMB)有寫保護屬性。寫保護包括永久寫保護和上電寫保護,前者的意思是說,一旦該邏輯單元寫保護使能,將終生是寫保護(不能改回去了);而后者寫保護只對某次上電有效,如果設(shè)備重上電或者重啟,寫保護將失效。
最后總結(jié)一下UFS數(shù)據(jù)安全機制:
安全擦除(本章重點講述);
寫保護(本章講述);
RPMB,提供數(shù)據(jù)認證和抗重放攻擊機制保護一些重要數(shù)據(jù)。
-
閃存
+關(guān)注
關(guān)注
16文章
1782瀏覽量
114895 -
數(shù)據(jù)安全
+關(guān)注
關(guān)注
2文章
681瀏覽量
29939 -
UFS
+關(guān)注
關(guān)注
6文章
103瀏覽量
24037
原文標題:蛋蛋讀UFS之九:UFS數(shù)據(jù)安全
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論