蛋蛋读UFS之九:UFS数据安全

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

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

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

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

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

阅读全文

蛋蛋读UFS之八:RPMB

在UFS里,有这么一个LU,主机往该LU写数据时,UFS设备会校验数据的合法性,只有特定的主机才能写入;同时,主机在读取数据时,也提供了校验机制,保证了主机读取到的数据是从该LU上读的数据,而不是攻击者伪造的数据。这个LU就是RPMB(Replay Protected Memory Block)LU,四大“名撸”(四个Well Known LU)之一。

有些人家里有保险箱,用以存放他们认为重要的东西,比如现金、存折、房产证、情书等。输入密码,打开密码箱,然后放东西进去;取的时候,首先需要密码打开保险箱,然后把东西取出。没有密码,老婆是万万看不到老公和他初恋之间的情书的。RPMB就像是手机里的[……]

阅读全文

蛋蛋读UFS之七:描述符、标识和属性

UFS中也有吉祥三宝,那就是描述符(Descriptors)、标识(Flags)和属性(Attributes),主机通过这三宝,来控制与管理UFS设备。

  • 描述符

描述符是一块或者一页参数用以描述一个UFS设备,比如,UFS有整个UFS设备的描述符 (Device Descriptor),UFS设备的配置描述符(Configuration Descriptor),每一个LU还有其描述符(Unit Descriptor),等等。下面是UFS里面所有种类的描述符。

除了配置描述符和OEM_ID字符串描述符,所有的描述符都是只读的,即UFS设备一旦出厂,主机是不能对它进行修改。

还记得[……]

阅读全文

蛋蛋读UFS之六:UFS设备初始化和启动

这一节讲讲UFS初始化。

初始化和启动包括三个阶段:部分初始化,加载启动代码(可选)和初始化完成。

  • 部分初始化阶段

这个阶段开始于上电或者设备重启,它涉及到整个UFS栈的初始化。

这个初始化阶段完成后,整个物理层(M-PHY)和数据链路层(UniPro)应该被初始化好,传输层可以和主机交互Read命令和“TEST UNIT READY”命令(主机发该命令给设备,查询设备是否准备好),主机也可以通过设备管理器访问设备描述符(Device Descriptor),获取设备配置信息。

  • 加载启动代码

如果启动代码不是存储在UFS设备上,则没有这一阶段。主机怎么知道启动代码是不是存储[……]

阅读全文

蛋蛋读UFS之五:逻辑单元(LU)

熟悉NVMe的朋友知道,NVMe里面有namespace的概念,就是把SSD物理空间划分成若干个逻辑地址空间。在UFS的世界里,它也有这个特性。UFS设备的物理存储空间可以有若干个独立的逻辑地址空间,我们把逻辑地址空间叫做LU,即Logical Unit,俗称“撸”。前面看到,在每个UPIU的Header中,有个LUN(Logical Unit Number)的域,就是标识该UPIU关联的命令或者请求的目标逻辑单元。每个LU的地址空间是独立的,主机在发命令或者请求给设备的时候,须通过LUN指定目标逻辑单元。

如上图所示,UFS设备有若干个LU,每个LU接收主机发过来的命令或者请求,这些命[……]

阅读全文