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的方式进行修改。

审核编辑:郭婷

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

    关注

    39

    文章

    7714

    浏览量

    170828
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90870
  • crc
    crc
    +关注

    关注

    0

    文章

    205

    浏览量

    30618
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网络延迟具体是怎样影响电能质量在线监测装置的实时完整性的?

    网络延迟对电能质量在线监测装置实时完整性的影响,本质是 破坏 “数据传输的时序” 与 “数据接收的
    的头像 发表于 10-23 11:59 546次阅读

    远程校准电能质量在线监测装置时,如何保证数据传输的完整性

    远程校准电能质量在线监测装置时,保证数据传输完整性的核心是建立 “ 预处理防错→实时校验防篡改→丢包重传补缺失→全量验证闭环 ” 的全流程机制,通过技术手段确保数据在传输中不被篡改、不丢失、不重
    的头像 发表于 10-11 16:47 551次阅读
    远程校准电能质量在线监测装置时,如何保证<b class='flag-5'>数据</b>传输的<b class='flag-5'>完整性</b>?

    Wisim DC电源完整性EDA物理验证仿真工具介绍

    Wisim DC是一款高效、高性能的平台级电源完整性EDA物理验证仿真工具。可快速诊断IC封装和系统级板图内的设计缺陷和电源管理风险,通过定位板图中的“热点”,自动优化VRM感应线位置,使系统PDN达到最优设计。
    的头像 发表于 09-26 15:57 435次阅读
    Wisim DC电源<b class='flag-5'>完整性</b>EDA物理<b class='flag-5'>验证</b>仿真工具介绍

    什么是信号完整性

    电子发烧友网站提供《什么是信号完整性?.pdf》资料免费下载
    发表于 07-09 15:10 0次下载

    季丰电子自建引脚完整性测试能力

    季丰可靠测试项目拓展AEC-Q100车规芯片验证C6:LI - Lead Integrity 引脚完整性Q100要求。
    的头像 发表于 06-23 09:22 840次阅读
    季丰电子自建引脚<b class='flag-5'>完整性</b>测试能力

    了解信号完整性的基本原理

    作者:Cece Chen 投稿人:DigiKey 北美编辑 随着支持人工智能 (AI) 的高性能数据中心的兴起,信号完整性 (SI) 变得至关重要,这样才能以更高的速度传输海量数据。为确保信号
    的头像 发表于 05-25 11:54 887次阅读
    了解信号<b class='flag-5'>完整性</b>的基本原理

    Samtec虎家大咖说 | 浅谈信号完整性以及电源完整性

    前言 在这一期的Samtec虎家大咖说节目中,Samtec信号完整性(SI)和电源完整性(PI)专家Scott McMorrow、Rich Mellitz和Istvan Novak回答了观众的提问
    发表于 05-14 14:52 1076次阅读
    Samtec虎家大咖说 | 浅谈信号<b class='flag-5'>完整性</b>以及电源<b class='flag-5'>完整性</b>

    电源完整性基础知识

    先说一下,信号完整性为什么写电源完整性?SI 只是针对高速信号的部分,这样的理解没有问题。如果提高认知,将SI 以大类来看,SI&amp;PI&amp;EMI 三者
    发表于 05-13 14:41

    信号完整性测试基础知识

    在当今快速发展的数字时代,高速传输已成为电子设备的基本要求。随着数据传输速率的不断提升,信号完整性(Signal Integrity,简称SI)问题变得越来越重要。信号完整性是高速互连系统设计的基石
    的头像 发表于 04-24 16:42 3332次阅读
    信号<b class='flag-5'>完整性</b>测试基础知识

    电源完整性分析及其应用

    引言 电源完整性这一概念是以信号完整性为基础的,两者的出现都源自电路开关速度的提高。当高速信号的翻转时间和系统的时钟周期可以相比时,具有分布参数的信号传输线、电源和地就和低速系统中的情况完全不同了
    发表于 04-23 15:39

    技术资讯 | 信号完整性测试基础知识

    本文重点信号完整性测试需要从测试电路板和原型获取实验数据并加以分析。在理想的工作流程中,还会仿真信号完整性指标,并将其与实际测量值进行比较。信号完整性测试只能检查特定的结构,通常需要在
    的头像 发表于 04-11 17:21 1929次阅读
    技术资讯 | 信号<b class='flag-5'>完整性</b>测试基础知识

    PAM3调制的信号完整性验证

    1.5比特信息,与其它PAM类似,通过增加电平数量来提升数据传输效率。在PAMn的选择上,一是需要提升数据传输效率,以满足越来越高的数据速率需要;二是需要平衡信号完整性问题与实现复杂度
    的头像 发表于 04-02 10:06 2110次阅读
    PAM3调制的信号<b class='flag-5'>完整性</b><b class='flag-5'>验证</b>

    iic协议的信号完整性测试

    主机、多从机的串行通信协议,它允许多个设备共享同一总线。I2C总线由两条线组成:数据线(SDA)和时钟线(SCL)。数据传输是通过主设备生成的时钟信号同步的。 信号完整性测试的必要
    的头像 发表于 02-05 11:44 2500次阅读

    PCB信号完整性探讨-PPT

    信号完整性(Signal lntegrity,SI)包含由于信号传输速率加快而产生的互连、电源、器件等引起的所有信号质量及延时等问题。    
    的头像 发表于 01-15 11:30 943次阅读
    PCB信号<b class='flag-5'>完整性</b>探讨-PPT

    听懂什么是信号完整性

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