近日,清华大学吕强勇介绍了基于流加密的软硬件协同安全框架。这种框架创新性的将软件和硬件结合在一起进行适用于大数据应用场景下的数据加密。其中提到的基于PUF的用户数据授权格外有启发性。
PUF(Physical Unclonable Function)指的是一类硬件实体,其基本要求是容易验证,但很难预测;进一步说可以容易制造,但极难复制。PUF本质上是物理上的单向散列函数,通常作为其他硬件结构的附属部分,通常用于高安全需求的应用场景。
PUF依赖于其物理微结构上的独特性,而这样的独特性是由生产时引入的随机特性造成的。由于相应随机特性不可控和不可预测,使得复制PUF变得基本不可能。PUF一般采取CRAM(Challenge-Response Authentication Mechanism)的机制,采用特定的激励与反应对来验证设备的身份,通过这样的方式也可以使得设备对于欺骗攻击具有抵抗能力。
明白了其内在机理之后,发现PUF的主要功能来自于其不可复制的物理结构带来的随机性。这种随机性收到很多物理特性的影响,比如温度、电压等,这样使得其甚至在不同的设备上体现不同的特性。
使用PUF和一个信任第三方做可信数据交换。更让人感兴趣的是用于CPU片上CFI的方法。下图是简单的示意图。
传统CFI是在通过修改二进制文件,在跳转语句的目的地址之前加入约定好的校验ID,在跳转之前校验这个ID,如果不正确就中断进入错误处理,通过这样的方式来保证指令的跳转是正确的。由于校验位是约定的,这样的方法仍然可以通过修改代码进行攻击。
上图为CPU的片上CFI系统,其工作原理与传统CFI相差不大。EDU从指令解码器中读取修改过的指令,通过PUF作为KEY的CFI对指令地址进行解码,获取真正的跳转指令的跳转地址,相应的修改指令指针寄存器(IP)、指令寄存器(IR),同时也可以访问Cache和Memory,完成整个指令的解码。
这样的结构由于PUF的随机性,就可以有效抵抗原有的攻击模式,同时由于只对于Basic Block的首条跳转进行加密,加密的效率也会大幅度增加,在系统指令层面对于系统的可信运行进行保证。
回过头来看,PUF这个并不是十分新鲜的技术,在当前大数据的应用环境下散发了新的活力,保护大数据从数据存储到交换和可信数据处理的各个过程。通过这次讲座和之后的调研,不仅有知识的收获,同时也收获了新的视角。大数据不仅帮我们解决了许多之前无法解决的问题,同时一些旧的技术也可以使用在大数据新的应用环境里,让大数据作为工具本身变得更为强大。