0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

根据陈老师“艳照门”事件来详细讲解UFS数据安全

SSDFans 来源:未知 作者:易水寒 2018-07-06 10:49 次阅读

前面提到RPMB使用认证机制和抗重放攻击机制保障数据不被黑客攻击,除此之外,UFS还有其它一些手段来保护用户数据安全,这一章节我们来关注UFS数据安全。

UFS设备用来存储个人或者企业的数据信息,UFS设备需要这样一种机制,就是必要时,数据能永久从设备(闪存)删除,这样就能防止别有用心的人通过反向工程获取你的数据。

话说,陈老师吸取了上次教训,每次拍照后,事后“阅后即焚”。陈老师想:这样就没有人看到我们的照片了吧。陈老师很是得意。

没有想到,不久后网上又爆出陈老师新的“艳照门”事件。陈老师很是纳闷,我不是明明都删除了吗??

我们帮陈老师分析一下为什么删了的照片还能被修手机的人弄出来。

手机文件系统把陈老师拍的照片数据用逻辑块管理,然后把这些逻辑块写到UFS设备的存储介质(如上图所示)。陈老师删除照片,删除的只是逻辑块数据,存在UFS存储介质上的数据还在原地,如下图所示:

修手机的一看,这不陈老师吗?修手机的知道肯定能发现什么,嘴角不禁露出一丝不易觉察的笑。他从文件中没有找到照片,有点失望。小子吃一堑长一智呀!但猎奇的心不会让他轻易放弃的,有经验的他盯上了存储卡。功夫不负有心人,他从存储介质里把照片弄出来!

拍照不容易,且拍且珍惜。我们看看如何避免陈老师的悲剧。

擦除操作(Erase Operation)

注意,这个“擦除”操作不是擦除存储介质,不是闪存层面的擦除操作,而是UFS层面的擦除操作。数据写在闪存上,UFS设备内部有个逻辑地址到物理地址的映射,擦除操作通过切断这种映射,主机就不能获得擦除掉的数据。

根据陈老师“艳照门”事件来详细讲解UFS数据安全

当陈老师删除照片时,它切断了用户直接访问照片的途径:

当陈老师删除照片后,手机系统会通过发送UNMAP命令(就是通常说的TRIM)来告诉设备这些照片数据无效。设备收到该命令后,然后根据逻辑单元描述符中的bProvisioningType来确定执行具体操作。

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)

即当bProvisioningType= 03h时,设备执行擦除操作,即切断逻辑地址到物理空间的映射。

一个逻辑块如果被擦除,那么主机访问这个逻辑块时,设备必须返回全0数据给主机。

注意,这个“擦除”操作不是擦除存储介质,只是主机让设备切断逻辑地址到物理地址的映射,因此不保证照片数据从闪存介质删除。但是,由于UFS设备知道该照片数据已经删除(没有逻辑块到物理空间的映射),在后续垃圾回收时,这些被删掉的数据很大概率会从介质上擦除掉。

舍弃操作(Discard Operation)

和擦除操作类似,主机通过发送UNMAP命令来执行舍弃操作。当bProvisioningType = 02h时,设备执行舍弃操作。

舍弃操作和擦除操作的区别:主机访问一个被舍弃的逻辑块,可能获得任何数据,甚至包括舍弃前的数据,而擦除操作是主机获得全0数据。也就是说,对删除的照片,如果UFS设备执行的是舍弃操作,那么主机还可能获得原图片;如果UFS设备执行的是擦除操作,主机不可能再获得原照片。

但不管是舍弃操作还是擦除操作,都不能保证照片从存储介质上删除。像修手机这样的人,它不走寻常路(通过手机系统),直接操作闪存的话,还是有可能把删除的照片找回来。

陈老师看到这里,急了,难道我以后再也不能拍照了吗??

别急,小陈!你先坐下,听我慢慢讲。

安全清除(Secure Removal)

陈老师,有三种可选策略用以安全清除数据,你造吗?

设备控制器擦除(Erase)要被删除的逻辑块所对应的物理地址空间;

2. 设备控制器用单一字符覆盖写要被删除的逻辑块所对应的物理地址空间,然后擦除设备;

3. 设备控制器用单一字符、字符补码和随机字符,依次覆盖写要被删除的逻辑块所对应的物理地址空间。

又是覆盖写,又是擦除,照片是彻底从闪存中删除了。

陈老师听到这里,情绪缓和下来,终于是坐了下来。

清除操作(Purge Operation)

清除操作是针对垃圾数据(比如陈老师删除的照片),让这些数据不仅不能通过正规渠道(操作系统)访问,还让这些数据无法从存储介质中获取,彻底把垃圾数据从UFS设备清除掉。

前面所说的擦除和舍弃操作,都是主机通过命令层的UNMAP命令来实施的。而清除操作则是主机通过设备管理器的Query功能来告诉设备的。

这里涉及到一个重要的标志(flag)和一个重要的属性(Attribute),分别是发PurgeEnable和bPurgeStatus,前者用以使能/禁止清除操作,后者用以设备向主机提供清除操作的状态信息。

fPurgeEnable:

上电或者重启,该标志位0;

主机通过设置或者清除该标志,使能或禁止清除操作;

只有当所有逻辑单元的命令队列空的时候,主机才能设置该标志为1使能清除操作;

当UFS设备执行完清除操作或者发生错误,该标志会被清零;

如果主机想终止设备执行清除操作,可以通过清除该标志达到目的。

bPurgeStatus:

主机为了让设备执行清除操作,主机通过QUERY REQUEST UPIU设置fPurgeEnable = 1。如果当前逻辑单元的命令队列中没有任何命令,设备会执行清除操作。一旦设备开始执行清除操作,它不会响应主机发来的任何命令。如果这个时候主机需要让设备紧急响应命令,主机首先应该通过QUERY REQUEST UPIU设置fPurgeEnable = 0来提前终止设备的清除操作,然后再发送命令。

下图是清除操作的状态机图:

根据陈老师“艳照门”事件来详细讲解UFS数据安全

UFS设备在执行清除操作时,对那些垃圾数据,有以下几种处理方式:

默认是把这些垃圾数据从闪存空间擦除掉;

或者先用单个字符(比如全A)覆盖写,然后再擦除;

抑或先用单个字符(比如A)覆盖写,然后用它的补码(比如5)覆盖写,最后用随机字符覆盖写;

最后还可以使用用户自定义的方式处理。

这些手段前面已经介绍过。

格式化设备(Wipe Device)

主机通过发送FORMAT UNIT命令格式化所有的逻辑单元(RPMB LU除外)。不过,对那些写保护的逻辑单元,FORMAT UNIT命令会失败。

FORMAT UNIT的命令对象是Device well know LU,它格式化除RPMB之外所有无写保护的逻辑单元。

FORMAT UNIT会切断逻辑块到物理空间的映射。但如果要让数据彻底从设备上清除,UFS设备还需要执行Purge操作,这样数据才能彻底删除。

写保护

前面都是千方百计的清除数据,但有时候UFS设备需要保护写的数据。

每个逻辑逻辑单元(除了RPMB)有写保护属性。写保护包括永久写保护和上电写保护,前者的意思是说,一旦该逻辑单元写保护使能,将终生是写保护(不能改回去了);而后者写保护只对某次上电有效,如果设备重上电或者重启,写保护将失效。

最后总结一下UFS数据安全机制:

安全擦除(本章重点讲述);

写保护(本章讲述);

RPMB,提供数据认证和抗重放攻击机制保护一些重要数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 闪存
    +关注

    关注

    16

    文章

    1688

    浏览量

    114224
  • 数据安全
    +关注

    关注

    2

    文章

    605

    浏览量

    29800
  • UFS
    UFS
    +关注

    关注

    6

    文章

    101

    浏览量

    23546

原文标题:蛋蛋读UFS之九:UFS数据安全

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    UFS Card是什么?

    Card 其實與 eMMC 是一樣的傳輸介面 , 只是封裝的不同 . SD Card 內部就是 eMMC,只是以卡片的封裝成型. UFS Card也是一樣, 內部是eUFS顆粒,已卡片外型封裝
    发表于 09-17 09:05

    eMMC与UFS的差异

    , 可以同步工作,工作模式為半雙工, 每個通道允許讀寫傳輸, 但是同一時間只能讀 或 寫.UFS 全名是 Universal Flash Storage, 中文翻譯為"通用快閃記憶體儲存"
    发表于 09-18 09:05

    宏旺半导体告诉你为什么安卓用UFS,苹果用NVME

    苹果则是NVME呢?什么是UFSUFS全称为Universal Flash Storage,即“通用闪存存储”,是一种内嵌式存储器的标准规格。据宏旺半导体了解,UFS采用串行数据传输
    发表于 11-26 11:21

    ufs3.1和ufs2.1区别是什么?

    ufs3.1和ufs2.1区别是什么?ufs3.0和ufs3.1区别是什么?
    发表于 06-18 08:00

    UFS 3.0闪存与UFS 2.1闪存相比有哪些提高?

    UFS 3.0闪存与UFS 2.1闪存相比有哪些提高?
    发表于 07-12 08:06

    详细讲解C++串口的相关知识

    大家可以先参考一下这篇blog,C++串口通信里面详细讲解了C++串口的相关知识,以及一些函数的讲解。下面我也会根据他的blog再讲解。二、
    发表于 08-24 06:56

    UFS电源管理的相关资料推荐

    转载:蛋蛋读UFS之十:UFS电源管理 FS是手机存储设备,因此对功耗要求很高。我们来看看UFS的电源管理。三个供电电压,VCC,VCCQ和VCCQ2,分别给UFS设备模块供电。
    发表于 11-12 06:16

    【分享】鸿蒙系统缔造者,上交大陈海波老师亲授操作系统课程

    前段时间,论坛不是有个盖楼活动,主要的奖品就是《现代操作系统:原理与实现》。其实上交大官方,已经在B站上传了本书配套课程的全部讲解。但是,人气太少了,陈老师是华为鸿蒙系统的缔造者。希望大家多多
    发表于 04-29 14:48

    手机研发必须了解的UFS相关知识

      在手机中有三大件组成:CPU、内存DDR、存储设备(EMMC/UFS等),内存用以临时存储程序运行时所需的数据(掉电数据丢失),而存储设备用以长久保存数据(掉电
    发表于 03-29 11:08

    中断系统讲解_田老师的PIC单片机教案6

    中断系统讲解_田老师的PIC单片机教案6,快来下载吧
    发表于 09-01 18:17 0次下载

    步进马达的详细讲解

    步进马达的详细讲解步进马达的详细讲解步进马达的详细讲解
    发表于 11-30 11:55 0次下载

    数据分析师如何晋升详细资料分析

    有同学问:陈老师,满互联网都是“如何从0到1学数据分析”,可我想知道,如果再晋升的话,比如去到月薪3w,5w,需要什么样的知识与能力储备?
    的头像 发表于 01-27 11:06 5972次阅读
    <b class='flag-5'>数据</b>分析师如何晋升<b class='flag-5'>详细</b>资料分析

    新能源汽车的功能安全详细讲解

    电子发烧友网站提供《新能源汽车的功能安全详细讲解.pdf》资料免费下载
    发表于 11-26 04:28 90次下载

    UFS – 更快、更安全的闪存存储

    在当今智能设备的互联世界中,我们希望更快地访问我们的数据,同时我们希望它得到保护并免受入侵者的侵害。闪存不仅速度更快,而且安全可靠,其化身为UFS - 通用闪存。此博客深入了解 UFS
    的头像 发表于 05-26 15:29 1862次阅读
    <b class='flag-5'>UFS</b> – 更快、更<b class='flag-5'>安全</b>的闪存存储

    ufs3.1和ufs4.0有什么区别?ufs4.0和ufs3.1实际使用区别

    ufs3.1和ufs4.0有什么区别?ufs4.0和ufs3.1实际使用区别  UFS是一种高速、节能、可靠的非易失性存储器,旨在提供更快的
    的头像 发表于 01-17 11:05 8295次阅读