0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用DeepCover安全身份验证器保护您的FPGA系统

星星科技指导员 来源:ADI 作者:ADI 2023-02-20 11:07 次阅读

本应用笔记介绍了设计人员如何保护其 Xilinx FPGA 实现、保护 IP 并防止附加外设伪造。设计人员可以使用本应用笔记中描述的参考设计之一来实现这种安全性。这些设计在FPGA和DeepCover安全身份验证器之间实现了SHA-256或ECDSA质询和响应安全认证

介绍

本应用笔记重点介绍SHA-256认证参考设计(RD),该参考设计采用MAXREFDES34#(用于1-Wire)和MAXREFDES43#用于I。2C. 每个参考设计 (RD) 都描述了状态机的 Verilog 实现或微控制器中的“C”裸机实现。每个实现方案都在相应的FPGA演示板上进行测试。

对于1-Wire设计,参考代码定义了主机FPGA上的组合SHA-256处理器和1-Wire主机。对于我®2C 设计,参考代码定义 SHA-256 处理器并利用现有的 FPGA I2C 协议。RD 使用以下安全身份验证器之一:

DS28E15DeepCover安全认证器,带1线SHA-256和512位用户EEPROM

DS28C22DeepCover 安全内存与 I2C SHA-256 身份验证、加密和 3Kb 用户 EEPROM

DS28E35DeepCover安全认证器,具有1线ECDSA和1Kb用户EEPROM

为了将Maxim安全认证器IC与FPGA演示板连接,每个RD都附带一个兼容的插件模块——Pmod™端口标准由 Digilent, Inc. 开发相应的IC焊接在Pmod板上。关于1-Wire设计,只需稍作调整,即可使用存储器密度更大的SHA-256认证器,例如DS28E22或DS28E25。

为什么要将安全性应用于FPGA系统?部分详细介绍了设计人员面临的重要安全问题。以下标题为“保护您的 FPGA”的部分演示了身份验证如何实际保护 FPGA 系统。

为什么要将安全性应用于 FPGA 系统?

外围设备的防伪保护

使用 FPGA 通信和操作替换外设、耗材、模块或传感器的系统通常成为造假者或未经授权的售后市场公司的目标。这些假冒版本的外设可能会带来安全问题,降低应用程序的质量,并且通常会对OEM解决方案产生负面影响。此外,OEM将外围设备的收入损失给这些造假者。在解决方案中引入安全认证使FPGA能够确保外设的真实性,并在检测到假冒产品时采取特定于应用的操作。如图1所示,在系统和连接的外设之间执行质询和响应序列以确认真实性。

FPGA 知识产权保护和实施保护

基于静态RAM(SRAM)的FPGA几乎没有保护措施来保护IP(即配置数据或FPGA实现)免受非法复制和盗窃。原因是一旦数据被加载,它就会保存在SRAM存储单元中,可以很容易地探测以确定其内容。此外,如果没有某种类型的安全机制来保护配置数据或位文件,然后再将其加载到芯片中,则该数据可以被窥探。浏览这些数据是可能的,因为位流通常存储在FPGA在上电时加载其配置模式时读取的单独存储芯片中。克隆者可以简单地复制配置文件并创建原始文件的克隆。这些类型的 FPGA 没有内置加密功能,否则可以保护配置文件不被复制。

功能管理、许可证管理和过度构建保护

功能管理。为了减少设计时间和工作量,设计人员将创建功能齐全的FPGA系统,并使用固件去除某些方面的功能,以实现不同的价位或功能级别。然而,这产生了一个新问题:需要多个功能齐全系统的聪明客户可以只购买一个功能齐全的单元和几个功能减少的单元。然后,复制软件,更简单的单元的行为类似于功能齐全的设备,但价格较低,从而缩短了系统供应商。

身份验证如何工作?

若要以最安全的方式实现身份验证,请使用以下内容作为一般准则:

确保随机质询是加密安全的随机数。

知道一个密钥(称为“FPGA 密钥”),该密钥可用于内部操作,但无法从外部发现。

计算涉及密钥、随机数和其他数据的哈希,就像安全内存一样。

比较哈希结果。

在 FPGA 环境中,质询和响应身份验证的工作方式显示在以下编号语句中。字母(例如 A、B、C)对应于图 2 中的数据流。本节介绍 SHA-256 对称身份验证。

生成一个随机数并将其作为质询 (A) 发送给安全身份验证器。

指示身份验证器根据其密钥、质询 A、其唯一 ID 和其他固定数据计算哈希。哈希是算法块 (B) 的输出。

根据安全身份验证器和 FPGA 密钥使用的相同输入和常量计算哈希 (C)。

将安全身份验证器 (B) 计算的哈希值作为响应,并将其与预期的响应 (C) 进行比较。

如果预期响应和实际响应相同,则FPGA知道身份验证器是真实的。如果是真实的,您的安全目标(IP保护,防伪保护等)就实现了。

poYBAGPy4_qAKQ3zAABi9BYkKPI669.png?imgver=1

图2.质询和响应身份验证流程更详细。证明哈希发起方(安全验证器)的真实性。

如前所述,FPGA 和安全身份验证器之间的身份验证实现了为什么要将安全性应用于 FPGA? 部分的第 1 点到第 3 点的安全性。现在,让我们观察如何根据以下框图物理设置安全系统。

外围设备的防伪保护

要实现防伪保护,应使用如图3所示的系统配置。FPGA 及其相应的安全实现驻留在嵌入式系统中。一些外围设备(可能是传感器、一次性、消耗品或其他嵌入式系统)是作为设计师希望保护的对象。Maxim安全认证IC位于该外设中。

pYYBAGPy4_yAK2tiAAA5J7BJpjk067.png?imgver=1

图3.外围设备防伪框图。

IP 保护、功能管理、许可证管理和过度构建保护

对于标题为“为什么要对FPGA应用安全性?”一节中描述的所有其他安全需求,应使用图4所示的硬件设置。FPGA及其相应的安全实现与Maxim安全认证IC一起位于嵌入式系统中。

poYBAGPy4_6ALDfBAAAtry8irD8063.png?imgver=1

图4.知识产权保护和其他应用的框图。

参考设计 FPGA 演示板 实现 使用的认证IC 认证IC接口
MAXREFDES34# 赛灵思
斯巴达-6
安富利斯巴达-6 LX9 微板® 威瑞洛格 DS28E15 1-线
赛灵思
锌芯
微锌 “C”
MAXREFDES43# 赛灵思
锌芯
泽德板™ “C” DS28C22 我2C
MAXREFDES44# 赛灵思
锌芯
微锌 “C” DS28E35 1-线

参考设计特定说明

采用DS43C28的MAXREFDES22#是独一无二的,因为它对FPGA和DS28C22之间通信的敏感数据实现了双向、小消息加密。此加密功能是可选的;最常见的用途是DS28C22位于连接的外设子系统内。或者,也许有必要加密敏感的传感器数据、校准数据、特征设置数据或个人数据(例如,患者心率或 SSN)。

采用DS44E28的MAXREFDES35#采用非对称ECDSA认证,而不是实现对称SHA-256认证。对于对称认证,FPGA和认证IC必须存储相同的密钥,因此敏感的密钥数据驻留在系统的两端。然而,对于非对称认证,FPGA只保存公钥,DS28E35保存私钥。唯一的敏感数据是私钥;公钥不需要保护。

从两个角度来看,使用非对称加密可能更具吸引力:

您正在将产品许可给客户或使用多个合同制造商。非对称身份验证提供了一个很好的管理工具,用于添加新许可证或由于使用证书而删除现有许可证。有关证书的更多信息,请参见应用笔记 5767 “ECDSA 认证系统的基础”。

FPGA 配置/位文件安全性较差的实现。如果 FPGA 密钥暴露,对这些应用使用 SHA-256 对称身份验证可能会有风险;但是,请注意,对于相关的参考设计(例如,用于Spartan-34 FPGA的MAXREFDES6#),已经采取了额外的步骤来保护FPGA端的密钥。事实上,如果您没有实现内置的FPGA加密功能(在适用的FPGA上,如Xilinx Zynq),或者如果您使用的是不保护配置/位文件的上一代FPGA,那么使用DS28E35是理想的选择。

带有DS34E28的MAXREFDES15#使用SHA-256实现对称认证。这些身份验证方案要求FPGA端密钥和安全身份验证器密钥都是安全的。由于以下原因,MAXREFDES34# 成功地保护了 FPGA 端的密钥:

密钥存储在闪存器件的FPGA位文件中。将位文件从位反转回Verilog代码是非常困难的(Spartan-6参考是用Verliog编写的)。因此,位文件的模糊性和笨拙性提供了第一层安全性。

位文件中的密钥与DS28E15中存储的密钥不完全相同。FPGA根据自己的密钥版本计算DS28E15密钥。

本应用笔记中未披露其他专有的FPGA秘密保护技术。

总结

FPGA 嵌入式系统的设计人员面临着许多潜在的安全威胁,包括伪造外设和复制 FPGA 实现等。将Maxim安全认证器与上述任一参考设计结合使用,可以保护FPGA系统免受这些潜在问题的影响。

审核编辑:郭婷

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

    关注

    2548

    文章

    50642

    浏览量

    751712
  • 处理器
    +关注

    关注

    68

    文章

    19155

    浏览量

    229049
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601670
收藏 人收藏

    评论

    相关推荐

    恩智浦推出经认证的全新EdgeLock安全身份验证芯片,简化物联网设备安全认证

    恩智浦EdgeLock® A5000安全身份验证芯片为在IoT生态系统及网络建立信任提供必需的安全认证功能     中国上海——2022年4月13日——恩智浦半导体(NXP
    的头像 发表于 04-13 10:56 4268次阅读
    恩智浦推出经认证的全新EdgeLock<b class='flag-5'>安全身份验证</b>芯片,简化物联网设备<b class='flag-5'>安全</b>认证

    HTTPServer可以支持基本的HTTP身份验证吗?

    基本的HTTP认证提供了可接受的保护级别。如果不可能用HTTPServer支持基本HTTP身份验证,那么有没有其他的首选或系统的密码保护方法保护
    发表于 10-30 10:23

    无线身份验证的门禁控制系统设计方案

    协议和加密模式符合各种标准,可支持多种应用。TIP系统还可以实现虚拟化及云端基础模式,因而能够在不影响安全性的情况下通过互联网提供服务交付。  TIP提供一种受保护身份验证传输网络,
    发表于 11-05 11:11

    Vivado和SDK身份验证错误

    尝试运行SDK或Vivado的安装程序时,出现“身份验证错误:发生了未知异常。请验证的用户ID和密码,然后重试”我可以登录该站点,另一位同事可以登录该站点。我们可以下载安装程序,但是当我们尝试安装
    发表于 01-02 14:55

    什么是身份验证和授权

    什么是身份验证和授权 根据RFC2828(Internet Security Glossary,May2000),验证是“校验被或向某系统实体声明的身份的过程”。此处的关键字
    发表于 04-03 16:03 5735次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过三次握手周期性的校验对端的身份,在初始链
    发表于 04-03 16:06 2650次阅读

    什么是密码身份验证协议

    什么是密码身份验证协议 PAP是一种身份验证协议,是一种最不安全身份证协议,是一种当客户端不支持其它身份认证协议时才被用来
    发表于 04-03 16:07 1592次阅读

    身份验证和生物识别身份系统应用越加广泛

    身份验证和生物识别身份系统应用越加广泛
    发表于 02-27 14:37 1555次阅读

    为设计选择正确的安全身份验证方法

      当然,有不同级别的有效身份验证。以打印机墨盒为例。为了验证它的真实性,墨盒可以发送一个密码。但是这种方法的缺点是中间人可以在密码被传输时捕获并重新使用它。质询-响应身份验证,其中墨盒可以证明它知道一个秘密而不泄露它,提供了一
    的头像 发表于 05-24 10:11 1267次阅读
    为设计选择正确的<b class='flag-5'>安全身份验证</b>方法

    使用身份验证的智能锁的使用和性能

      这个设置有一个弱点。的控制最终负责打开和关闭锁的操作。如果它不安全,它很容易受到入侵者的攻击,入侵者可以控制它并将其配置为忽略来自身份验
    的头像 发表于 05-26 14:28 1145次阅读
    使用<b class='flag-5'>身份验证</b><b class='flag-5'>器</b>的智能锁的使用和性能

    PCB身份验证

    电子发烧友网站提供《PCB身份验证.zip》资料免费下载
    发表于 07-22 10:09 2次下载
    PCB<b class='flag-5'>身份验证</b><b class='flag-5'>器</b>

    安全哈希算法的基础知识,如何使用算法进行身份验证

    本应用笔记介绍了安全哈希算法(SHA)的基础知识,并讨论了该算法的变体。然后简要介绍了如何使用算法进行身份验证,包括哈希消息身份验证代码 (HMAC) 的概念。最后,本文介绍了一些Maxim
    的头像 发表于 12-21 15:37 2410次阅读
    <b class='flag-5'>安全</b>哈希算法的基础知识,如何使用算法进行<b class='flag-5'>身份验证</b>

    无需成为密码学专家即可实施安全身份验证

    数字安全是当今电子设计中最广为人知的话题之一。当工程师考虑安全性时,加密可能是第一个想到的词,只有少数工程师会想到身份验证。然而,身份验证安全
    的头像 发表于 01-23 16:33 1040次阅读
    无需成为密码学专家即可实施<b class='flag-5'>安全身份验证</b>

    通过SHA-256主/从身份验证系统实现更高的安全

    DS28C22是一款带有IC接口的DeepCover安全认证,采用SHA-256算法进行双向认证。其他功能,包括 3Kb 用户 EEPROM 阵列、多种存储
    的头像 发表于 02-20 09:36 1090次阅读
    通过SHA-256主/从<b class='flag-5'>身份验证</b><b class='flag-5'>系统</b>实现更高的<b class='flag-5'>安全</b>性

    使用加密和身份验证保护UltraScale/UltraScale+ FPGA比特流

    电子发烧友网站提供《使用加密和身份验证保护UltraScale/UltraScale+ FPGA比特流.pdf》资料免费下载
    发表于 09-13 17:14 1次下载
    使用加密和<b class='flag-5'>身份验证</b>来<b class='flag-5'>保护</b>UltraScale/UltraScale+ <b class='flag-5'>FPGA</b>比特流