【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造

news2025/1/15 23:32:29

【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造

  • 背景
  • 1. IC和半导体产业的全球化
  • 2. 芯片生产猜疑链——Untrusted IC Supply Chain Threats
    • 可能会存在的安全威胁
  • 3. SoC Design Flow
  • 主要参考来源

背景

  在现代 超大规模集成电路设计(VLSI) 行业中,设计和制造是分开进行的,设计者通常对负责生产的代工厂几乎没有控制权,自然而然地会认为代工厂根本不可信。集成电路 (IC) 生产供应链的跨国、分布式和多步骤性质引入了基于芯片硬件的漏洞。

1. IC和半导体产业的全球化

  IC和半导体产业的全球化。由于芯片设计公司的竞争对手会千方百计地提高产品上市时间产品功能和性能。许多芯片公司的解决方案是增加团队规模——将更多资源投入到项目中,增加工程师来掩盖设计复杂性和上市时间压力的问题。
  一旦做出该决定,公司为了节约开发成本会选择增加更低成本的工程师,从公司的管理层做出的决定可以看出需要在非发达国家寻求拥有良好技术基础的专业工程师比如中国和印度。并不是说这些国家的工程师比北美或欧洲的工程师更有效率,而是因为他们的价格要低得多——便宜四到八倍。
在这里插入图片描述

图1. IC设计的复杂性越来越高,逐渐成为全球性合作

  所以,由于IC设计的复杂性超过了团队的设计生产力时,IC产业会逐渐成为全球性的企业跨境合作。
  Among the forces reshaping the semiconductor industry, few are more important than R&D productivity’s inability to keep pace with the challenges of product development. However, there are steps companies can take to close the gap: Cooperation between companies in various regions, IC production has became a global enterprise.

IC 开发生产力下降意味着工程岗位流失
What happens when chip-design Complexity outpaces design productivity

2. 芯片生产猜疑链——Untrusted IC Supply Chain Threats

  IC设计和半导体产业全球供应链概述:设计 IC 涉及从第三方设计公司采购知识产权 (IP) 设计,在内部设计一些组件,将两者结合起来,然后生成 IC 布局。然后将设计蓝图(例如,根据 GDS-II 布局格式)发送到代工厂,代工厂开发昂贵的掩模并制造 IC。然后,IC 会在制造现场进行测试,通常还会在第三方测试机构进行测试。最后,无故障的 IC 被封装和销售。
在这里插入图片描述

图2. 芯片生产猜疑链——Untrusted IC Supply Chain Threats
  • 如今,设计 IC 的第一阶段涉及将知识产权 (IP) 设计外包给第三方设计公司(例如英国的 ARM 或 Imagination Technologies)。由于第三方的IP通常有很多保护的方式使得使用的设计师和购买的消费者无法验证IP的内容,因此理解为Semi-trusted

  • 第二阶段是设计额外的组件和系统集成,这通常在内部完成,在此步骤结束时会生成 IC 布局。由于是自己人设计完成的,因此理解为Trusted

  • 在第三阶段,设计蓝图(例如,GDS-II 布局格式)被发送到开发昂贵掩模并制造 IC 的代工厂,然后在制造现场进行测试,通常还会在第三方测试中进行测试设施。值得注意的是,目前大多数制造设施都位于东亚的中国大陆和台湾等地。设计者通常对负责生产的代工厂几乎没有控制权,自然而然地会认为代工厂根本不可信,因此理解为Untrusted

  • 测试阶段是自己人测试,因此理解为Trusted

  • 最后阶段是 IC 封装,也可以在另一个地理位置完成,很大可能是由另一个企业完成,因此理解为Untrusted

可能会存在的安全威胁

  IC 供应链的这种分布式特性在很大程度上依赖于来自世界各地的重复使用专业知识,引入了许多硬件安全威胁,最突出的是木马程序插入的风险。基于这一假设,设计者研究了代工厂布局层可能发生的各种攻击,例如硬件木马插入、IP 和 IC 盗版和假冒,并已经做出了许多努力来降低这些风险。如上图所示,其中芯片生产猜疑链各部分中可能会存在的安全威胁有:

  • 硬件木马。Hardware Trojans: An attacker either in the design house or in the foundry may add malicious circuits or modify existing circuits.

  • IP 盗版和 IC 过量生产。IP piracy and IC overbuilding: An IP user or a rogue foundry may illegally pirate the IP without the knowledge and consent of the designer. A malicious foundry may build more than the required number of ICs and sell the excess ICs in the gray market.

  • 逆向工程 。Reverse engineering (RE): An attacker can reverse engineer the IC/IP design to his/her desired abstraction level. He can then reuse the recovered IP or improve it.

  • 侧信道估计。Side-channel analysis: An attacker can extract the secret information by exploiting a physical modality (power consumption, timing, or electromangnetic emission) of the hardware that executes the target application.

  • 伪造。Counterfeiting: An attacker illegally forges or imitates the original component/design.

A Primer on Hardware Security: Models, Methods, and Metrics

3. SoC Design Flow

SoC 设计细节
软硬件分工
原型验证如FPGA或ASIC
软硬件联合验证
代工厂批量生产和发货
PCB制造和设备组装
  1. SoC 设计细节——SoC Design specifics:
      需要将功能需求转化为如system C语言的模型,完成基本的功能测试,并以此为标准,通过其他算法探索其他方案。
    SoC Design specifics:
  • user’s requirements
  • functionality
  • modes of operation
  • work plan:设计过程、任务、时间表和里程碑
  • performance
  • power
  • size
  1. 软硬件分工——Architecture Design; HW/SW partitioning
      决定硬件软件分别实现那些功能,定义软硬件之间的接口(interface)和协议(protocols),购买软硬件IP实现系统功能。
  2. 原型验证——Prototype on platform,如FPGA或ASIC平台
      以基于FPGA平台的原型验证为例,具体实施一般分为三个阶段:
  • 功能设计阶段:硬件的行为模型与软件的工作原型一起创建。
  • 电路设计阶段:功能块的行为描述被转移到电路中。对于数字块,此过程是自动化的,并且基于合成算法。对于模拟块,这必须手动完成;正在进行模拟设计过程自动化的研究。
  • 物理设计阶段:主要设计任务包括:平面规划,焊盘环设计,放置,时钟树设计,功率和IR压降分析(动态和静态),布线和设计规则检查。
  1. 软硬件联合验证——HW/SW co-verification:

  2. 代工厂批量生产和发货——Volume manufacture and ship

  3. PCB制造和设备组装—— PCB manufacture and device assembly

IC生产供应链已成为跨国分布式业务,涉及世界各地的公司。

在这里插入图片描述

图3. 跨国间的SoC设计合作流程(简)

主要参考来源

Soton: Dr Basel Halak

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

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

相关文章

我只是把握好了这3点,1个月后成功拿下大厂offer!

目录 一、写在前面二、技术广度的快速准备三、技术深度的快速准备四、基础功底的快速准备五、下篇预告 一、写在前面 春节过后,即将迎来的是一年一度的金三银四跳槽季。 假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利…

【Shell】mksh运行分析

mksh运行分析 Shell shell,壳子,即操作系统的壳子。这层壳子套在操作系统上,为用户提供与操作系统的交互手段。 操作系统的交互方式一般有,图形化交互(GUI)和命令行交付(CLI,command-line interface)。 套在操作系统上的壳子 …

虚拟机栈

虚拟机栈简介虚拟机栈的出现背景内存中的栈与堆虚拟机栈基本内容虚拟机栈的特点虚拟机栈的异常设置栈内存大小栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构局部变量表认识局部变量表关于Slot的理解Slot代码示例Slot的重复利用静态变量与局部变量的对比补充说…

oracle安装教程

1安装和创建用户 1.1.安装以及常见问题 oracle安装教程 安装中 system密码改成root oracle卸载,除此之外清除C:\Program Files内的oracle 需要准备oracle安装包和plsql界面化操作工具 重装报错bug: plsql操作 plsql注册码 product code: ke4tv8t5jtxz…

java动态代理-面向切面代码样例

1.测试入口import java.lang.reflect.Proxy;/*** 面向切面测试* author epsoft-hy**/ public class test {public static void main(String[] args) {Class<?>[] cls {UserDao.class};//接口一个String classpath"util.aop.UserDaoImp";//访问类路径test2(tes…

【学vue跟玩一样】快速学会常用指令及如何理解生命周期

一&#xff0c;内置指令1.v-textv-bind:&#xff0c;单向绑定解析表达式v-model :双向数据绑定v-for:遍历数组/对象/字符串v-on :绑定事件监听,可简写为v-if :条件渲染(动态控制节点是否存存在)v-else :条件渲染(动态控制节点是否存存在)v-show:条件渲染(动态控制节点是否展示)…

3. Rstudio【可视化导入】数据

b站课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新&#xff0c;但是要花钱&#xff0c;我花99元买了&#xff0c;感觉不错&#xff09;&#xff1a;https://ke.qq.com/course/3707827#term_id103855009 &nbsp&#xff1b; 本笔记…

SigmaStar空板烧录

一、硬件连接 在官方给的SDK文档中&#xff0c;有描述如何使用ISP TOOL给空板烧录程序&#xff0c;但坑的是&#xff0c;文档中并没有写这个上位机工具需要配合Mstar专门的烧录工具来使用&#xff0c;烧录工具如下图所示。 上图中有三根连接线&#xff0c;示意图如下。目标板的…

HTML与CSS基础(九)—— 综合项目(CSS样式补充、项目前置认知、项目结构搭建)

目标能够在网页中使用 精灵图 能够使用 背景大小属性 &#xff0c;设置背景图片的大小 能够认识 CSS书写顺序&#xff0c;提高代码专业性和浏览器渲染性能 能够使用的专业方式完成 项目结构搭建 和 基础公共样式 能够应用已学技术知识 完成小兔鲜儿项目一、项目样式补充目标&am…

URL中绝对路径与相对路径拼接问题总结

URL中绝对路径与相对路径拼接问题总结1. 基础环境2. 测试2.1 总结2.2 本地文件url1. 基础环境 这里用nginx的docker镜像构建了一个服务&#xff0c;步骤如下&#xff1a; sudo docker pull nginxsudo docker run -d --name nginx01 -p 8083:80 nginx nginx发布的根目录是/us…

Redis安装及常用数据类型介绍

1、redis介绍1.1、redis是一个开源的key-value存储系统1.2、和Memcached类似&#xff0c;它支持存储的value类型相对很多&#xff0c;包括String、list、set、zset以及hash类型。1.3、这些数据类型都支持push/pop、add/remove及取交集并集及更丰富的操作&#xff0c;而且这些操…

LeetCode[264]丑数II

难度&#xff1a;中等题目&#xff1a;给你一个整数 n&#xff0c;请你找出并返回第 n个 丑数 。丑数 就是只包含质因数 2、3和/或 5的正整数。示例 1&#xff1a;输入&#xff1a;n 10输出&#xff1a;12解释&#xff1a;[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组…

【NKOJ三校 初中新年大联欢DIV2】考试游记

目录 看不见的手ljj的方块零它来了宝石转换ljj的距离零它走了彩蛋 题目 【A NKOJ-P8629】 看不见的手 40pts 考试思路&#xff1a; 这道题一看数据范围就知道是O(n)O(n)O(n)的结论题&#xff0c;考试的时候脑子抽筋偏分输出1得了40pts&#xff1b; 正解&#xff1a; 他说…

VISTA -MIT开源基于数据驱动的自动驾驶仿真引擎

引言 VISTA 是MIT开源的一个基于数据驱动的用于自动驾驶感知和控制的仿真引擎。VISTA API提供了一个接口&#xff0c;用于将真实世界的数据集转换为具有dynamic agents、sensor suites、task objectives的虚拟环境。 用过 Unreal Engine 或者 Gazebo的仿真引擎的同学都知道&…

【Kafka】八股文梳理

什么是消息中间件&#xff1f; 消息中间件是基于队列与消息传递技术&#xff0c;在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流&#xff0c;并基于数据通信来进行分布式系统的集成。…

Android Native开发系列之C/C++代码调试

Android Native开发系列之C/C代码调试 引言 在做Android native层开发的时候&#xff0c;需要经常调试C/C代码&#xff0c;相较而言通过打日志的方式太不方便了。有两种方式可以进行底层代码的调试。 利用Android studio自带的Debugger进行调试。利用LLDB VSCode进行代码调试…

SAP灵活工作流条件增强

前置 灵活工作流模板中可以设置条件&#xff0c;用来在场景配置中判断是否启动流程或者是否执行该节点 除了流程模板中设置&#xff0c;也可以通过增强设置更为灵活的条件判断,对应增强点SWF_PROCESS_WORKFLOW_CONDITION 增强实施步骤参考 创建增强点实施 复制示例类 为增强设…

深入聊一聊vue3中的reactive()

在vue3的开发中&#xff0c;reactive是提供实现响应式数据的方法。日常开发这个是使用频率很高的api。这篇文章笔者就来探索其内部运行机制。小白一枚&#xff0c;写得不好请多多见谅。 调试版本为3.2.45 什么是reactive? reactive是Vue3中提供实现响应式数据的方法. 在Vue2中…

【Dash搭建可视化网站】项目9:智能选股器(结合行业、换手率、量比与60日k线图选择目标股票)制作步骤详解

【Dash搭建可视化网站】项目9&#xff1a;智能选股器&#xff08;结合行业、换手率、量比与60日k线图选择目标股票&#xff09;1 项目效果图2 项目架构3 文件介绍和功能完善3.1 assets文件夹介绍3.2 app.py和index.py文件完善3.3 layoutleft.py文件完善3.4 api.py和api.ipynb文…

【数据结构趣味多】栈和队列(详细解析)

目录 1.1 栈的定义 1.2 栈的模拟实现&#xff08;顺序栈&#xff09; push()方法 pop()方法 peek()方法 size()方法 栈模拟实现的全代码 1.3顺序栈和链栈的对比 2.队列 2.1队列的定义 2.1队列的模拟实现&#xff08;单链表&#xff09; offer()函数 poll()函数 p…