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

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

3天内不再提示

数据完整性:验证数据未被更改

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

我们怎么知道展出的著名艺术品是真实的而不是伪造的?这显然不是一件容易的事,因为艺术品伪造行业估计每年产生约30亿美元的收入。艺术家经常在他们的原创作品上签名,但很难区分原始签名和复制品。

识别伪造品的一种方法是利用原子弹,或者更确切地说,在14年代原子弹试验之后在所有有机材料中发现的高碳-1960同位素比率的特征。如果用于结合油漆中颜料的有机物来自在此期间之前死亡的植物,则碳-14的比例将大大低于更现代油漆中的比例,从而使调查人员能够可靠地识别现代伪造品。

与艺术一样,我们经常更关心数据的真实性,而不是其他人是否能够查看它。例如,我们如何知道设备上运行的代码是真实的?我们并不总是关心隐藏代码 - 任何人都可以查看开源的u-boot引导加载程序代码。但是,在开始执行之前,我们的设备能够验证引导加载程序代码是否未经更改且真实,这一点至关重要。

本博客介绍了消息身份验证代码和数字签名,它们是验证数据的完整性(数据是否已更改?)和真实性(谁生成了数据?)的加密方法。但是,为什么不直接使用校验和或CRC来验证数据是否未被更改呢?正如我们将在下一节中看到的那样,不幸的是,它们无法抵御故意修改数据的对手。

为什么CRC不合适

验证数据是否已被更改的一种众所周知的方法是添加错误检测代码,例如循环冗余校验 (CRC)。例如,考虑由多项式 x+1 生成的 1 位 CRC。这相当于添加一个偶数奇偶校验位,如果数据中的 1 个数为奇数,则在数据后附加 1,否则附加 0。

如果我们10010111输入数据,我们可以看到数据中有一个奇数个 1,所以我们的奇偶校验位将是 1。那么,为什么这种有效的错误检测方案不适合确保完整性和真实性呢?

问题在于CRC相当于艺术家的签名。如果我们像CRC伪造者一样思考,设备怎么会被愚弄,接受更改后的数据不变?首先,让我们采用最简单的情况:假设数据及其CRC一起存储在未受保护的内存(例如闪存)中。攻击者需要做的就是用自己的数据覆盖原始数据,然后计算适当的CRC并将其附加到他们的数据中。当设备读取更改后的数据时,它将计算CRC并验证其是否与攻击者生成的CRC匹配,接受更改后的数据为原始数据!对于此攻击的真实示例,本演练详细解释了黑客如何通过操纵 Linux 内核中的 CRC 来控制 Docker 服务器。

poYBAGPhxR2AOXhOAACVToiOJCA426.png

规避 CRC:(左)原始代码和 CRC 通过验证,(中间)具有对抗性修改和原始 CRC 验证失败的代码,(右)具有对抗性修改和对抗性 CRC 通过验证的代码

为了使攻击者更难,该设备可以将CRC存储在一次性可编程(OTP)存储器中。不幸的是,这并不能消除问题。虽然CRC是检测通道噪声或不稳定单元良性错误的好方法,但它们不能防止主动恶意修改。

假设我们前面的示例数据用于启用或禁用不同的产品功能,具体取决于客户选择的许可证模型。如果高价值功能位于最左侧的位中,则能够更改我们的示例向量10010111将更左侧的位翻转为 1s 将启用这些功能,而无需为价格较高的许可模型付费。对于对手来说,这是微不足道的:

原始数据 修改后的数据
10010111 1 11110111 1

由于 1 位 CRC 在原始数据中为 1(表示数据中的奇数为 1),因此对手只需要确保修改后的数据也有奇数 1。通过将最左边的两个 0 翻转为 1,攻击者启用了两个额外的高价值功能,而无需修改安全存储在 OTP 中的 CRC 检查位。此策略也适用于实际应用中使用的较大 CRC。

重要的一点是,CRC仅提供良性错误保护,例如通信通道上的噪声或不稳定的SRAM单元。当攻击者主动尝试修改数据时,他们可以以一种不会改变从原始数据生成的CRC的方式进行修改。

审核编辑:郭婷

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

    关注

    38

    文章

    7494

    浏览量

    163901
  • 服务器
    +关注

    关注

    12

    文章

    9192

    浏览量

    85511
  • crc
    crc
    +关注

    关注

    0

    文章

    199

    浏览量

    29471
收藏 人收藏

    评论

    相关推荐

    听懂什么是信号完整性

    2024年12月20日14:00-16:00中星联华科技将举办“高速信号完整性分析与测试”-“码”上行动系列线上讲堂线上讲堂。本期会议我们将为大家介绍高速串行总线传输基本框架,什么是信号完整性?高速
    的头像 发表于 12-15 23:33 180次阅读
    听懂什么是信号<b class='flag-5'>完整性</b>

    GND与信号完整性的关系

    在现代电子系统中,信号完整性是设计和性能的关键因素。信号完整性问题可能导致数据传输错误、系统性能下降甚至设备损坏。地线(GND)是电路设计中的基本要素,它不仅为电路提供参考电位,还有助于减少电磁干扰
    的头像 发表于 11-29 15:17 322次阅读

    信号完整性和信号一致你还不知道吗?#示波器 #信号完整性

    信号完整性
    安泰仪器维修
    发布于 :2024年09月25日 17:59:54

    高速电路设计与信号完整性分析

    随着电子系统和高集成度芯片向高速度、高密度、大功耗、低电压、大电流的趋势发展,电路中的信号完整性问题日益严重。信号失真、定时错误和不正确的数据传输等问题的出现给系统硬件设计带来了很大的挑战。高速电路
    发表于 09-25 14:46 1次下载

    高速电路中的信号完整性和电源完整性研究

    高速电路中的信号完整性和电源完整性研究
    发表于 09-25 14:44 0次下载

    高速高密度PCB信号完整性与电源完整性研究

    高速高密度PCB信号完整性与电源完整性研究
    发表于 09-25 14:43 5次下载

    高速PCB信号完整性设计与分析

    高速PCB信号完整性设计与分析
    发表于 09-21 11:51 0次下载

    超高速数据采集系统的时序设计与信号完整性分析

    电子发烧友网站提供《超高速数据采集系统的时序设计与信号完整性分析.pdf》资料免费下载
    发表于 09-20 11:34 0次下载

    高速PCB的信号完整性、电源完整性和电磁兼容研究

    电子发烧友网站提供《高速PCB的信号完整性、电源完整性和电磁兼容研究.pdf》资料免费下载
    发表于 09-19 17:37 0次下载

    信号完整性与电源完整性-电源完整性分析

    电子发烧友网站提供《信号完整性与电源完整性-电源完整性分析.pdf》资料免费下载
    发表于 08-12 14:31 42次下载

    信号完整性与电源完整性-差分对的特性

    电子发烧友网站提供《信号完整性与电源完整性-差分对的特性.pdf》资料免费下载
    发表于 08-12 14:28 1次下载

    信号完整性与电源完整性-信号的串扰

    电子发烧友网站提供《信号完整性与电源完整性-信号的串扰.pdf》资料免费下载
    发表于 08-12 14:27 0次下载

    信号完整性与电源完整性 第一章 概论

    电子发烧友网站提供《信号完整性与电源完整性 第一章 概论.pdf》资料免费下载
    发表于 08-09 14:49 1次下载

    请问ESP-NOW对数据完整性和一致有校验吗?

    当使用ESP-NOW时,传递的数据在传输层有对数据包的完整性(比如对面传给我的字节数和我收到的字节数是否相同)有底层校验吗? 还有这个数据包是否经过了CRC等差错检测的校验呢(就是一致
    发表于 06-17 06:55

    什么是信号完整性

    在现代电子通信和数据处理系统中,信号完整性(Signal Integrity, SI)是一个至关重要的概念。它涉及信号在传输过程中的质量保持,对于确保系统性能和稳定性具有决定性的影响。本文将从信号完整性的定义、影响因素、测试方法
    的头像 发表于 05-28 14:30 1178次阅读