【安全硬件】Chap.7 对实体芯片采取物理手段破解;芯片IC逆向工程和拆分制造;物理上对芯片的攻击分类;侧信道攻击;Kocher针对RSA的计时攻击

news2024/11/18 10:35:47

【安全硬件】Chap.7 对实体芯片采取物理手段破解;芯片IC逆向工程和拆分制造;物理上对芯片的攻击分类;侧信道攻击;Kocher针对RSA的计时攻击

  • 前言
  • 1. 逆向工程Reverse Engineering
    • 逆向工程识别芯片上2输入NAND门
    • 逆向工程技术
      • Decapulation & Deprocessing
    • Micro probing
  • 2. 拆分制造Split Manufacturing
    • 拆分制造流程
    • 优点与缺点
  • 3. 物理上对芯片的攻击分类-Physical Attacks
    • 非入侵式Non-Invasive Physical Attack
    • 侧信道攻击Non-Invasive
      • SCA: generic procedure
      • Kocher针对RSA的计时攻击(Timing Attack)
        • RSA
        • 定时攻击的一般过程包括三个阶段:
  • 后记

前言

  逆向工程可以通过从物理器件到IC代码实现反向推理,以掌握IC的结构和功能。在拆分制造中,设计的布局被拆分为前端线 Front End Of Line (FEOL) 层和后端线Back End Of Line (BEOL) 层,然后分别在不同的代工厂foundries制造。 物理上对芯片的攻击分类可根据对芯片的破坏程度分为三种。侧信道攻击旨在利用IO端口进行侧信道发射,例如功耗、电磁、定时和声学破译硬件。

1. 逆向工程Reverse Engineering

逆向工程识别芯片上2输入NAND门

  逆向工程可以通过从物理器件到IC代码实现反向推理,以掌握IC的结构和功能
CMOS Reverse Engineering

图1 多晶硅层
图2 金属层1
图2 金属层2

  IC版图工程师甚至画过PCB的都知道,一个芯片的走线是分层画出来的,可以通过逐层扫描来查看。
图9

逆向工程技术

   逆向工程技术:在真实芯片上使用化学药品逐层蚀刻拆开芯片,用扫描电子显微镜(SEM) 拍照识别底层元件(门级标准单元、内存和模拟元件)和连接,从中可以提取集成电路的布局布线关系,可以重建所有的电路信息,反向推理出电路门级网表,甚至可以推断出更高级抽象的数字芯片代码设计。
A Survey on Split Manufacturing: Attacks, Defenses, and Challenges
在这里插入图片描述

  对于有经验的IC工程师来说,很明显一眼就可以看出来电路中的部分信息。如果攻击者还有一些IC设计的基础的话,甚至可以边检测边猜测怎么设计;比如说模拟IC,识别到一个电容,有经验的工程师可以估计出电容的大致范围,再做仿真。

在这里插入图片描述

Reverse-engineering a vintage power supply chip from die photos

Decapulation & Deprocessing

  • Decapulation :拆开芯片的封装;
  • Deprocessing:拆开绝缘层,配合微探测检测不同层的电路。

Micro probing

  Micro probing微探测,或简称探测,是一种故障分析技术,用于实现与芯片有源电路中某个点的电接触或访问。 它采用一种称为微探针台 的特殊设备,通常也称为“探针台”。
在这里插入图片描述

How microprobing can attack encrypted memory

2. 拆分制造Split Manufacturing

Is split manufacturing secure?
  在拆分制造中,设计的布局被拆分为前端线 Front End Of Line (FEOL) 层和后端线Back End Of Line (BEOL) 层,然后分别在不同的代工厂foundries制造。
在这里插入图片描述

拆分制造流程

  让不信任的代工厂制作FEOL层,让信任的代工厂制作BEOL、负责组装。

  1. 门级网表被划分为多个块,然后进行层间规划和放置。块内的晶体管和导线形成 FEOL 层。连接块和 IO端口的顶部金属线形成 BEOL 层。
  2. BEOL 和 FEOL 电线被分配到不同的金属层和布线,以便最大限度地减少布线延迟(wiring delay)和布线拥塞(routing congestion)。
  3. 整个设计的布局分为两个,一个布局只是 包含 FEOL层,另一个布局只包含 BEOL 层。
  4. 然后,在两个不同的代工厂中制造这两种布局。

优点与缺点

  1. 优点
  • 它提高了 IC 的安全性,因为 FEOL 和 BEOL 层是单独制造的,并在制造后组合。
  • 这在经济上是可行的,因为低成本的BEOL层制造可以在内部进行,而昂贵的FEOL层制造是外包的。
  1. 缺点
  • FEOL/BEOL 晶圆的运输可能有风险,即它们可能会破裂。
  • FEOL 和 BEOL 的对齐是一个具有挑战性的过程,可能会破坏芯片的可靠性
  • 该方法可能仍然存在安全漏洞

3. 物理上对芯片的攻击分类-Physical Attacks

  ps,区别于概念Physical hardware trojans,这个指的是木马的各种硬件表现形式,木马现有线路和逻辑的修改或添加或删除晶体管或门。

Physical Attacks
Invasive
Reverse Engineering
Micro Probing
Semi- Invasive
Optical Fault Injections
Advance Imaging Techniques
Optical Side Channel Attack
Non-Invasive
Side Channel Attack
Data Remanence
Fault Injections

非入侵式Non-Invasive Physical Attack

Non-InvasivePhysical Attack:

  • 这些都是非破坏性(non-destructive)的,通常使用芯片的输入/输出来实现。These are non-destructive and normally achieved using the inputs/ outputs of the chip
  • 示例:侧信道攻击旨在利用侧信道发射,例如功耗、电磁、定时和声学。Example: Side-channel attacks which aim to exploit side-channel emissions such as power consumption , electro-magnetic . timing and acoustic
  • 侧信道攻击的常见受害者是智能卡和 FPGA。Common victims of side channel attacks are smart cards and FPGAs

侧信道攻击Non-Invasive

ASNI: Attenuated Signature Noise Injection for Low-Overhead Power Side-Channel Attack Immunity
在这里插入图片描述

  上图,可以通过检测CMOS电路的整个输出口的功耗变化轨迹分析正确密钥是什么。原理可参考:【安全硬件】Chap.2 如何破译一个CMOS门级电路;传播延迟、动态功耗、静态功耗可能泄露电路的构造以及输入密钥;非侵入式攻击 Non-Invasive Attacks

SCA: generic procedure

  • 交互阶段:与硬件系统交互,获取设备的物理特性
  • 分析阶段:分析数据测量结果以推断敏感信息

Kocher针对RSA的计时攻击(Timing Attack)

  Kocher 是第一个讨论计时攻击的人。在 1996 年的 RSA 数据安全和 CRYPTO 会议上,Kocher 展示了他的初步结果,警告供应商注意他的攻击,并引起了包括 RSA 密码系统发明者在内的密码学家的注意。定时攻击是“侧信道攻击”的一种形式,攻击者从密码系统的实施中获取信息,而不是从系统数学特性的任何固有弱点中获取信息。由于执行操作的方式或使用的媒体,会出现意外的信息渠道。侧信道攻击利用有关时间、功耗、电磁辐射甚至声音的信息来恢复有关密码系统的秘密信息。

Timing Attacks on RSA: Revealing Your Secrets through the Fourth Dimension

  • 猜测指数的一些位并预测解密需要多长时间
  • 如果猜测正确,将观察到数据具有相关性,如果不正确,则预测看起来是随机的

RSA

  RSA 是一种公钥密码系统,广泛用于安全数据传输。“RSA”是发明者三人姓氏开头字母拼在一起组成的。它使用公共指数e进行加密,使用私有指数d进行解密

定时攻击的一般过程包括三个阶段:

  1. 模型构建:构建系统模型,模拟密钥与其时序特性(例如其软件算法的执行时间)之间的关系
  2. 实验数据收集:执行实验以测量系统的时间指标(例如算法的执行时间)
  3. 统计分析:将实验数据(例如实际执行时间)与从模型中获得的预测值(例如预期执行时间)进行比较,以便找到关键
    为了猜测密钥,攻击者测量给定输入 IN 的执行时间。 由于攻击者知道算法,他也知道执行时间取决于 MES 的各个位; 因此,他可以预测该算法为任意键 KEY 和输入 IN 将花费多少时间。 尝试所有可能的 KEY 值,他可以找到与实际测量值对应的值。

后记

  感谢Basel Halak教授这学期的教学,本人在期末前整理的《Secure Hardware and Embedded Devices》课程笔记写下本文。
Soton: Dr Basel Halak

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS 实例系列

Hello 小伙伴们早上、中午、下午、晚上和深夜好,这里是 jsliang~本 CSS 系列文章:主推学以致用。结合面试题和工作实例,让小伙伴们深入体验 61 个工作常见的 CSS 属性和各种 CSS 知识。主推纯 CSS。尽可能使用 HTML CSS 完成学习目的&#x…

nohup命令详解

nohup命令详解一、背景说明:启动服务的时候,如果使用如下命令,则会在start.sh脚本所在的目录下,产生一个名为 nohup.out 的输出文件nohup ./startup.sh &可以看到下面这个例子,一开始当前目录是没有nohup.out文件的…

RocketMQ 多语言 SDK 开源贡献召集令

作者:艾阳坤 目前 Apache RocketMQ 5.0 SDK [ 1] 正在社区开源,开发与迭代也在火热进行中,欢迎广大社区的朋友们能够参与其中。我们欢迎任何形式的贡献,包括但不限于新 feature、bugfix、代码优化、生态集成、测试工作、文档撰写…

我与 CSDN 的 2022 年终总结

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 转眼间2023年已经过去…

《后端技术面试 38 讲》学习笔记 Day 02

《后端技术面试 38 讲》学习笔记 Day 02 08丨软件设计的方法论:软件为什么要建模? 原文摘抄 所谓软件建模,就是为要开发的软件建造模型。模型是对客观存在的抽象,我们常说的数学建模,就是用数学公式作为模型&#xf…

flask + Pandas + echarts 使用饼状图等将二手房数据进行分析+可视化

目录 一、实战场景 二、知识点 python 基础语法 python 文件读写 pandas 数据处理 flask web 框架 echarts 图表 bootstrap jinja 模版 三、菜鸟实战 初始化 Flask 框架,设置路由 各行政区房屋数量柱状图分析 区域二手房房源朝向分布情况 二手房单价最…

Higress Kruise Rollout: 渐进式交付为应用发布保驾护航

作者:扬少 前言 在业务高速发展过程中,如何最大化保障功能迭代过程中业务流量无损一直是开发者比较关心的问题。通常在应用发布新功能阶段,我们会采用灰度发布的思想对新版本进行小流量验证,在符合预期之后再进行全量发布&#…

11、JS笔记-内置对象

1.内置对象 js中对象分为三种: 自定义对象、内置对象、浏览器对象(js独有) 内置对象: js语言自带的对象,供开发者使用,提供一些常用或基本的功能(属性和方法) 2.Math对象 Math中所…

【云原生】k8s配置资源管理

内容预知 1.Secret的资源配置 1.1 Secret配置的相关说明 1.2 陈述式创建Secret配置 1.3 声明式base64编码创建Secret 1.4 将secret以volume形式挂载到pod中 1.5 将Secret导入到pod中,充当环境变量 1.6 实战运用:使用secret配置免密交互拉取habor…

Qt之对话框

文章目录一、对话框的概念二、与QWidget的区别三、对话框2种显示方法四、对话框返回值的概念本节示例提示:以下是本篇文章正文内容,下面案例可供参考 一、对话框的概念 对话框是和用户简短交互的一种窗口。如:登录界面,关于界面…

知识付费图文音视频课程公众号系统开发

知识付费图文音视频课程公众号系统开发 功能特性;为你介绍音视频课程点播系统的功能特性。 微信H5;目前只支持微信公众号H5访问。 课程管理;后台可上传多个课程分类与课程。 名师推荐;后台可以维护教师列表,并推荐到首页显示。 分享海报;可以自定义多个分享海报。 …

Maven在项目里的具体使用方式,很简单

大家好,今天给大家分享一下Maven在项目里的*具体使用方式* 有关于maven这个东西,要知道,它的作用是帮助开发人员(也就是我们)批量的管理jar包 所谓对jar包批量管理,有一个很重要的点, 就是对于…

2022年CSDN年终总结:一个新晋研究生的遗憾与成长

目录0 遗憾1 顺利完成毕业设计2 转向垂类写作3 C站成长4 组织社区活动5 新年新flag0 遗憾 2022年有很多遗憾 其一,毕业的遗憾。3月疫情席卷上海,封校封寝、静态网格,每天从上床到下桌两点一线,5月窗口期身着防护服撤离上海&…

云原生|kubernetes|pod或容器的安全上下文配置解析

前言: 安全上下文(Security Context)定义 Pod 或 Container 的特权与访问控制设置。 安全上下文包括但不限于: 自主访问控制(Discretionary Access Control): 基于用户 ID(UID&…

【PAT甲级 - C++题解】1091 Acute Stroke

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:PAT题解集合 📝原题地址:题目详情 - 1091 Acute Stroke (pintia.cn) 🔑中文翻译:急性中风 📣专栏…

SAP灵活工作流Inbox收件箱数据展示

目录 任务说明展示流程内容 使用增强添加文本展示流程内容 自定义页面展示 任务说明展示流程内容 维护审批任务说明页签下的任务说明,支持多语种,支持使用变量; 变量只能使用容器中定义的变量,因此需要将要展示的数据绑定传输到…

【包装机】(队列+栈)

一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品&#x…

C++动态链接库的使用

目录一 创建Windows动态链接库二 导出和查看DLL中的函数三 隐式链接方式加载DLL四 动态库和测试程序共用一份头文件五 从DLL中导出C类六 解决名称改编七 显式加载方式加载DLL一 创建Windows动态链接库 新建项目,选择Windows桌面向导,命名项目名称为Dll1…

GPDB中gp_vmem_protect_limit参数的意义

gp_vmem_protect_limit参数的意义1、gp_vmem_protect_limit参数说明1)在启用了基于资源队列的资源管理系统时,gp_vmem_protect_limit参数表示每个segment分配到的内存大小。预估值计算方式:所有GP数据库进程可用内存大小/发生故障时最大的primary segmen…

最优控制学习笔记2----泛函

文章目录泛函泛函定义泛函的变分自变量的变分泛函相近泛函距离泛函的连续性线性泛函泛函的变分泛函的极值泛函极值的定义泛函的极值泛函极值条件泛函 泛函定义 对于某一类函数集合{x(t)}\{x(t)\}{x(t)} 中的每一个函数 x(t)x(t)x(t), 在映射关系 JJJ 下均有一个确定的数与之对…