RFID标签安全,矛
RFID标签太弱,无法支持密码学运算。
RFID标签本身:其信息可以轻易被复制、篡改(篡改后,可能形成sql注入和缓冲区溢出)。
RFID标签与阅读器的通信:可以轻易被监听、中间人攻击(吸血鬼是假阅读器,幽灵是假消费者)。
感觉一个物理空间上足够靠近的假读卡器是各种攻击的基础。
RFID标签安全,盾
灭活,使RFID标签失效
法拉第网罩,不用的时候屏蔽RFID标签
阻止标签,没看明白
hash锁
初衷是保护真名。
没有额外知识的情况下,假阅读器无法解锁,也无法获取标签的真名。
想攻击特定的人的话,需要窃听一次正常通信流程,就能得到(metaID,key,ID)的三元组。随后就能假冒阅读器或者假冒标签。
随机hash锁
初衷是防止追踪。
乍一看好像并不安全,也能窃听到IDk,但其实仅通过一次窃听是无法攻击的,需要长时间窃听直至能重建ID数据库才能攻击。
这是因为,R的存在导致无法建立(标签应答,阅读器应答)的映射,也就无法假冒了。
攻击者并不知道回复哪个IDk,即使攻击者的IDk库中已经有正确答案。
攻击者很难假冒阅读器,但攻击者仍然能假冒标签。
数据库穷举的过程很慢。
hash链
hash链具有前向安全性,因为标签的真名只出现一次,且不断变化。
与随机hash锁一样,也需要数据库穷举,而且需要更多的数据库穷举。因为IDk每用一次,就要用hash迭代到下一轮。如果始终同步的话,穷举工作量跟随机hash锁的穷举一样。攻击者如果恶意扫描标签k次,那数据库就要对全库都hash k次,这是难以负担的。
这是一种同步方法。同步方法都有这种“恶意扫描k次”的问题。
树形协议
这个方法好像仍然有仿冒标签的问题,我理解为是随机hash锁的性能改进。
为什么不每个标签只存一个key,形成一个深度为1的k叉树?
其实是为了缓解随机hash锁中数据库穷举的压力。以下图为例,如果没有树结构,那需要穷举8次,有树结构就只需要计算三次。随着标签数量的增加,穷举次数是对数增加的。
一个缺陷是,不同的标签有不少密钥是共享的。
总结:需要数据库搜索的方法,都能避免仿冒阅读器。
PUF 防复制
physical unclonable function
利用制造过程中引入的随机性,在标签上加一个PUF电路,即可极大提高复制成本。物理破解会破坏PUF电路。
增加掩码
通过添加编解码步骤来保密信息。本质上是依赖算法保密的伪加密。
位置隐私
比如,你每天在哪过夜。一条信息就包含了时间、地点、人物。
k-匿名保护定位信息
可以分为时间上的k-匿名和空间上的k-匿名。
时间,就是说在相近时间到过同一个地方的人,分到一组进行混淆。
空间,就是说在附近的人,分到一组进行混淆。
前者显然会增加延迟,后者则是降低了空间精度。
k-匿名需要可信中介,这个成本,以及中介本身的可信度,都是大问题。
数据混淆
k-匿名保护了时间、地点、人物中的人物。也可以直接保护地点,降低精度。
至于怎么降低,可以只给一个范围,比如地址末位切断;也可以误导,比如在肯德基但是定位到隔壁的麦当劳。