通过SRAM PUF实现物联网安全的解决方案

描述

本文介绍了SRAM PUF(物理不可克隆功能)是什么以及如何工作的基础知识,以及它在物联网(IoT)安全性中提供的功能(作为任何设备的信任锚)。

在任何给定情况下,安全都始于信任。当您的房屋中装有警报系统时,您仅将其PIN码提供给您信任的人。无论是家庭成员还是友好的邻居,如果没有信任,您都不会分享您的秘密。这就是应该的样子!

信任问题也可以转化为个人身份。在这里,信任的基础来自正式文件,例如护照或出生证明。但是,这些文档需要与特定人员“安全地链接”。这通常适用于人类生物特征识别。身份证件都具有将文件与合适的人联系起来的东西,无论是仅仅是人的照片还是通过指纹进行的生物识别(如现代护照)。因此,生物识别技术是建立具有权限(您是否要越过边界?)的系统的安全锚。

必须使用此安全锚,以防止未经授权的各方复制和使用简单文档。如果文档锚定到无法复制或克隆的东西(例如指纹),则安全性将变得足够强大,可以将相对简单的文档转变为功能强大的身份验证工具。

图1.在不可克隆的锚中建立信任

物联网(IoT)也面临类似的挑战。仅当每个设备都具有保护敏感数据和安全通信的能力时,才可能安全连接数十亿个低成本设备。证书和加密密钥提供了这种保护,类似于前面的示例中的护照。但是,这些密钥和证书还需要物理安全锚,以确保不能将它们复制到恶意设备上,从而冒充真正的密钥和证书。提供此安全锚的技术是物理不可克隆功能(PUF)。PUF是一种物理结构,从中可以生成设备唯一且不可克隆的加密根密钥。该根密钥用于保护设备的应用程序密钥和证书。

尽管存在许多不同类型的PUF,但由于其可靠性,可扩展性和易用性,我们将重点介绍SRAM PUF。SRAM PUF以易于扩展的方式灵活地扩展到整个IoT中部署的许多不同技术节点。它也是当今已知的唯一一种PUF类型,只需将软件加载到芯片上即可实现(作为集成专用硬件IP块的替代方法,这也是可能的)。SRAM PUF是基于硬件的安全锚点,因为连接的设备数量不断增加,因此越来越受欢迎。

什么是SRAM PUF?

PUF利用了在半导体生产过程中自然发生的深亚微米变化,并赋予每个晶体管略微随机的电特性。这些独特的属性构成了芯片独特身份的基础。

SRAM PUF基于任何数字芯片中可用的标准SRAM存储器的行为。每次SRAM通电时,每个SRAM单元都有其自己的首选状态,这是由晶体管阈值电压的随机差异引起的。因此,当为SRAM存储器供电时,每个存储器都将产生0和1的唯一且随机的模式。这些模式就像芯片指纹一样,因为每个指纹对于特定的SRAM来说都是唯一的,因此对于特定的芯片来说是唯一的。

但是,这种所谓的SRAM PUF响应是“嘈杂的”指纹,要将其转变为高质量和安全的加密密钥,需要进一步处理。通过使用所谓的“模糊提取器” IP,可以在所有环境条件下每次都重建完全相同的加密密钥。

图2.从芯片SRAM内部的随机性中提取SRAM PUF密钥

与传统的非易失性存储器(NVM)中的密钥存储相比,这种从SRAM属性派生密钥的方法具有很大的安全优势。由于密钥不是永久存储的,因此在设备不活动时不存在(没有静止的密钥),因此打开设备并破坏其内存内容的攻击者无法找到它。

如何将SRAM PUF用作信任的基础?

设备,特别是作为IoT一部分的设备,需要密钥来保护其数据,IP和操作。如果可以信任这些密钥的来源,并且将密钥安全地存储在可以防止攻击的硬件中,则它们将构成设备的所谓“信任根”。

密钥可以由设备制造商(也称为OEM)自己提供给设备,也可以由芯片供应商在更早的阶段提供。当芯片供应商提供预先配置的芯片时,这将增加他们出售给OEM的产品的价值。如果OEM决定自己进行配置,他们通常可以购买成本更低的芯片。

不论由哪一方承担提供加密密钥的责任,执行该任务都不是一件容易的事。将密钥注入芯片需要一家值得信赖的工厂,这会增加制造过程的成本和复杂性,并限制灵活性。通过使用内部随机数生成器(RNG)或PUF在芯片内部创建密钥,可以避免这种复杂性。

将加密的根密钥放入设备并不是唯一的挑战。在设备上安全存储敏感数据也不是一件容易的事。密钥不能简单地存储在NVM中,因为NVM容易受到硬件攻击。允许攻击者读取NVM内容的硬件攻击变得越来越普遍,从而使不受保护的密钥存储不可行。因此,需要替代的安全密钥存储。一种方法是向设备添加安全元素。但是,增加硬件还带来了更高的复杂性和成本。诸如SRAM PUF之类的硅PUF可以安全地存储加密密钥,而无需添加任何其他硬件。

下表总结了用于设置和存储加密密钥的安全级别,供应链开销和技术选项的成本:

物联网

图3.与其他密钥生成和存储机制相比,物理不可克隆的功能

使用SRAM PUF创建密钥库

当我们从SRAM PUF获得此根密钥时,下一步是创建信任根的步骤是什么?下一步是利用SRAM PUF密钥创建嵌入式密钥库,以保护设备上的所有秘密数据。受此保管库保护的密钥是设备的更高级别的服务和应用程序所必需的。因此,密钥库启用了安全应用程序,例如身份验证,消息加密,软件/固件加密等等。

使用SRAM PUF,我们可以创建具有以下属性的密钥库:

绝不会将任何密钥存储在纯文本中,尤其是最上面的密钥或“根”密钥

不同的应用程序可以存储和使用自己的唯一密钥

密钥库输出可以直接发送到硬件加密引擎

基于SRAM PUF的密钥库实现以下功能:

注册:注册操作通常在设备生命周期中执行一次。它建立可以在设备生存期内重现的PUF根密钥。PUF根密钥永远不会离开设备,也永远不会存储。它用于派生第二层密钥,可以将其输出或用于包装/拆开敏感数据。此外,还会创建用于纠错的帮助程序数据。该数据是不敏感的,它不提供关于PUF根密钥的任何信息,因此可以存储在设备可访问的NVM中。辅助数据仅用于在随后读取固有噪声的PUF时从SRAM PUF可靠地重建相同的根密钥。

图4.创建一个根密钥及其助手数据

开始:开始操作使用在注册过程中生成的辅助数据,结合新鲜的“嘈杂”的SRAM PUF测量,重新生成内部PUF根密钥。在设备上生成的帮助程序数据对该设备是唯一的。执行启动操作时,使用从其他设备复制的帮助程序数据会导致操作失败,并带有相应的错误指示。

图5.使用助手数据还原根密钥

包装:包装操作将外部提供的密钥转换为密钥代码(KC),该密钥代码是原始密钥的加密和认证版本。由于这种保护,KC可以不受保护地存储在平原中。KC将只允许在原始密钥被“包装”的设备上访问原始密钥。

图6.创建密钥代码以安全地存储密钥

取消包装:取消包装操作与包装操作相反,因此,在验证KC的真实性之后,它将KC转换回包装的原始密钥。

图7.使用密钥代码检索存储的密钥

停止:只要不需要立即执行进一步的密钥库操作,就可以发出停止操作。它会从内部寄存器中清除所有敏感数据,包括根密钥,并且可以在进入睡眠模式之前使用以减少攻击面。

图8.完成后,移除根密钥

从PUF派生多个密钥

安全系统的实现通常需要多个单个密钥。这是因为:

对一个应用程序使用特定密钥的妥协不应影响同一系统中其他应用程序使用的秘密的安全性,这要求系统中的不同应用程序使用不同的密钥。

系统中的不同加密算法期望密钥具有不同的长度或彼此不兼容的不同结构。

不同的应用程序需要具有不同生存期的机密信息,例如,系统的一个应用程序需要多个短期密钥,而第二个应用程序则需要单个长期密钥。

密钥通常与身份相关联并用于身份验证目的,只有在系统的不同用户可以访问不同密钥时才有意义。

由于这些和其他原因,在安全设计中公认的最佳做法是仅将单个密钥用于单个目的和/或单个应用程序。但是,在许多实际情况下,安全系统的实现只能从SRAM PUF中访问单个根秘密,在这种情况下。为了满足单密钥一次性使用的要求,应该使用能够从该单个根秘密生成多个应用程序密钥的密钥管理组件。

多个生成的应用程序密钥的关键特性是它们在密码上是分开的,即,应以这样的方式生成它们:特定派生密钥的公开不影响任何其他派生密钥的安全强度。这意味着不可能使用简单的生成方法(例如,应用简单的算术运算或使用机密的重叠部分)。取而代之的是,应该使用加密安全密钥推导函数(KDF),该函数使用加密原语(例如AES或SHA-256)来确保其输出之间的加密分离。因此,利用功能完备的KDF将确保可以从单个SRAM PUF实例派生几乎无限数量的密钥。

通过软件实现SRAM PUF

尚未解决的SRAM PUF的最大好处之一是,它基于几乎在任何芯片(SRAM存储器)中都可用的物理结构。由于此PUF类型使用标准的“现成” SRAM,因此它是用于保护不需要在硅制造过程中加载的IoT产品的唯一硬件熵源选项。它可以稍后安装在供应链中,甚至可以在已部署的设备上进行远程改装。这实现了前所未有的远程“棕地”安装硬件信任根,并为将物联网扩展到数十亿个设备铺平了道路。

前面描述的用于创建密钥库和派生多个密钥的功能可以实现为硬件IP或软件IP。开发PUF所需的唯一硬件是PUF本身的实际唯一物理结构。因此,在PUF算法可以访问(未初始化的)SRAM的任何设备上,都可以实现工作的SRAM PUF。此特性使SRAM PUF在市场上不同PUF频谱中独树一帜。据作者所知,SRAM PUF是当前可以通过简单地将软件加载到设备上而在硬件中实现的唯一类型的PUF。

图9.在PUF算法可以访问(未初始化的)SRAM的任何设备上,都可以实现工作的SRAM PUF。

结论

没有信任就没有安全。任何安全解决方案都将以某种能够证明主题身份的东西(无论该主题是要签发身份证件的人,还是要在IoT中部署的芯片的人),毫无疑问。在本文中,我们将SRAM PUF技术介绍为任何物联网设备的可靠,可扩展且易于使用的信任根。无论是将其实现为专用的硬件IP块,还是作为加载到设备上的软件来实现,它都可以通过芯片硅上微小的,设备唯一的变化来创建受信任的加密根密钥。使用SRAM PUF,可以确保设备的根密钥对于供应链中的任何人都不是已知的,并且如果设备落入不信任之手,则不能更改或克隆该设备的根密钥。通过在此根秘密之上扩展安全功能,可以建立用于敏感数据和秘密密钥的受信任保管库,并且可以导出和保护设备所需的所有其他密钥。这就是为什么SRAM PUF是确保您的系统不受地面(或硅)影响的绝佳方法。

编辑:hfy

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分