本帖最后由 丿灬幸灬 于 2018-11-16 19:55 编辑 ' ^/ }6 s; T" L3 D, w u盘加密设备0 y- A1 u# }0 h, D/ J* r# D; K 描述拥有micro-sd卡插槽,32位ARM,和硬件加密的U盘 每一个(几乎所有)磁盘加密使用XTS,我认为我们可以做得更好。 ; g6 b3 E# e0 W* F5 J" e: B 在这里Niels Ferguson写道:我们可以很容易的往密文里添加一个nonce或MAC值,但是,然而,使密文比明文还大却不可行,不管是磁盘还是操作系统工作的扇区,他们的大小都是2的幂次。8 |* y9 y1 @" O# }7 s/ ?- D0 V4 o 我们可以将512字节的操作系统扇区映射到1024字节的磁盘扇区,但这将导致磁盘的容量损失一半,用户不愿意这样。 我们也可以在每16个部门中保留一个部门来存储其他15个部门的MAC和nonce值,但这有几个问题:; |+ d5 \3 h4 j6 S- T/ }0 l 首先,写入扇区x意味着更新了一个额外扇区的nonce和MAC。这样写入会导致读写相关性能的损失。 此外,它可能会损害nonce/MAC数据区(比如发生电源故障时),这将导致其他14个数据部门的损失;这也是不能接受的。 % w+ m% g2 q. M0 T% p5 C 最后,由于不同的可用性、可管理性和部署的原因,必须能够启用和禁用对现有的磁盘驱动器加密。(想象一下用户升级到一个新的Windows版本,他要也能进行磁盘加密并且在现有磁盘上启用磁盘加密)。& X7 I2 D. @+ g. @ 添加nonce/MAC的扇区会修改磁盘布局(减少大量的可用磁盘空间)使它的就地启用和禁用变的极其复杂。再加上转换过程中可能发生的各种故障模式,以一种可靠的方式进行转换是不太可能的。 6 r. K3 L' k' w 最后的结论是,我们添加一个MAC到每个磁盘扇区的方式,不能被大多数用户所接受。) s# A4 C/ C; v$ F$ S+ B 4 L5 K: g6 ^6 Q" u+ G6 I, f) F4 `$ R 是的,为消费级磁盘加密,确实不可以这样。 但是对于你我而言,为什么不把安全放在第一位,再处理其他的问题呢?9 Q* X) \$ ^0 Q% T+ f3 J2 H 所以,我们可以在16个扇区中预留1个,用来存储nonces和MACs。6 n9 C9 J& A% n: \ 通过使用intent-log来恢复因为电源故障丢失的数据。, w9 i$ l3 f, D0 g3 p' ]4 r \: W $ L8 v) B! A. b) O* I 组件1×stm32f415 5 @; s6 U; O. w( m 4 W) I8 T0 r( N8 V2 M1 q usb的快乐时光所以,短暂停留在那里我写一个新的usb堆栈。(没有ST的usb代码来达到我想要的效果) 存在模小的bug,该设备目前正在我的mac上。) R& u& G! H- _' a" Z n# `9 c* X 3 X% w5 L" d3 ~- J : O g4 S" N' n+ M ) H5 }7 R n- d 现在可用的测试代码 " @4 w7 P' f0 w7 m% X0 U 源代码和编译后的二进制文件现在在github上。: ]( h/ q1 G4 w V3 i* b 警告:实验性代码,风险自负。4 q& U) {' G: l9 L/ w) q - \& L$ _- n' J8 D% T ( Q W! D! X, B f; ~ 演示% j3 f" T+ L! {- v. \ 见视频 相关资料请见oshpark9 y! s* r w- @ & R5 H& D6 u/ {- a% n# w " r# R8 G4 d* d3 P2 `1 z9 Z " D; s- F6 l& d! v4 ? + v7 {7 z, L/ Q1 X7 M6 C |
USB Audio设计与实现
【MCU实战经验】+STM32F107的USB使用
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32 USB-HID通信移植步骤STM32 USB HID键盘例程
最全USB HID开发资料,悉心整理一个月,亲自测试
【经验分享】在进行 USB CDC 类开发时,无法发送 64整数倍的数据
如何让CDC类USB设备批量接收64字节以上数据
用STM32F4实现的USB摄像头UVC,配合上位机可识别车牌
STM32 USB CDC 虚拟多串口