【安全硬件】Chap.3 如何插入一个硬件木马到芯片的组合逻辑电路的漏洞里?不影响正常电路的功能的情况下进行硬件的逻辑加密

news2024/9/23 19:23:45

【安全硬件】Chap.3 如何插入一个硬件木马到芯片的组合逻辑电路的漏洞里?如何进行硬件的逻辑加密在不影响正常电路的功能的情况下

  • 1. 组合逻辑电路的漏洞
    • 组合逻辑电路中的硬件木马—举例
      • Fault injection attacks
    • 士兵巡逻预案系统解决方法——硬件的逻辑加密(Logic encryption of hardware )
      • 士兵巡逻预案系统的反思
      • 硬件的逻辑加密(Logic encryption of hardware )
  • 2. Design for Trust Techniques
  • 3. 组合逻辑电路的一般设计流程与卡诺图化简

硬件木马(Hardware Trojan)一般潜伏在实际电路里面,平时并不会影响电路的运行,但因为组合逻辑电路的漏洞常常会造成系统崩坏。而逻辑加密logic encryption,通过在原始设计中插入额外的门(称为密钥门)来隐藏设计的功能和实现,从而在一定情况下防止硬件木马。

1. 组合逻辑电路的漏洞

  输出取决于输入信号的逻辑组合的电路称为“数字组合逻辑电路”,因为没有记忆(memory)所以其输出仅取决于其输入的当前值,主要用来搭建功能性的模块(functional block)。

组合逻辑电路中的硬件木马—举例

  本作者在这里举个例子,来说明硬件木马的破坏力Hardware Trojan:比如要求设计一个在挑选士兵巡逻预案的系统,列出了5种天气情况下,士兵X和士兵Y巡逻任务安排,编写真值表如下:

inputsoutputs
编码说明ABCXY
下雪000两人都巡逻11
刮风001X巡逻10
炎热010X巡逻10
下雨011Y巡逻01
下冰雹100Y巡逻01

  设计者的本意是按照领导的意思,不管下雪还是下冰雹,都有一个人巡逻,于是他很开心地列出了逻辑表达式:

  • X = A ˉ B ˉ + A ˉ C ˉ X=\bar{A}\bar{B}+\bar{A}\bar{C} X=AˉBˉ+AˉCˉ
  • Y = B C ˉ + B ˉ C ˉ Y=B\bar{C}+\bar{B}\bar{C} Y=BCˉ+BˉCˉ

  然后他根据表达式搭建了这个挑选士兵巡逻预案的硬件芯片的组合逻辑:
在这里插入图片描述

  细心的读者可以发现,上面的真值表包含了其他输入情况下的无关项,但是实际上这片军营附近并不会出现其他的天气,也就是说在正常情况下不管下雪还是下冰雹,都有一个人巡逻

  假如有一个刺客,我想搞一个暗杀行动,不想今天有人巡逻,我就得让两个士兵都接收不到命令,即想办法使得输出A和B都是0。实际上原设计并不会输出AB为00的情况因为硬件芯片组合逻辑电路上没有这个功能。

  分析完成后,那么我攻击目的很简单:

  1. 首先让系统能输出00的情况,在这种情况下,今天不会有人巡逻。
  2. 得到刺杀任务之后,辅助采取别的手段激活这种情况,有特殊的输入可以启动我的木马让系统能输出00。

  第一件事就是插入一个木马,为注入攻击留下后门。观察真值表中的无关项,将无关项置零(给系统加上隐患漏洞),让硬件系统有输出00的可能。
在这里插入图片描述

  根据真值表的写出表达式:发现实际上只变了在输出Y的表达式

  • X = A ˉ B ˉ + A ˉ C ˉ X=\bar{A}\bar{B}+\bar{A}\bar{C} X=AˉBˉ+AˉCˉ
  • Y = A ˉ B C ˉ + B ˉ C ˉ Y=\bar{A}B\bar{C}+\bar{B}\bar{C} Y=AˉBCˉ+BˉCˉ

  根据逻辑表达式画出此时的组合逻辑图
在这里插入图片描述

  实际上,我这个“刺客”只添加了一个与门,增加了两条连线就把巡逻任务置于危险之下:此时的士兵巡逻预案系统可以输出00,即添加了没有士兵巡逻的情况。称原设计为一种Untrusted Design,插入硬件木马后的设计为Infected Design。

  插入硬件木马后的设计为Infected Design,不影响日常的使用,因为平时的系统使用也用不到其他的输入,正如前文提及实际上这片军营附近并不会出现其他的天气,也就是说在正常情况下不管下雪还是下冰雹,都有一个人巡逻但是,刺客在硬件上开了这个后门,允许无人巡逻的情况发生。

  This creates a backdoor into the design which can be used as a killer switch or for fault inection attack.

  这时候比如刺客有很先进的一个强光照射设备可以改变某一处的电压,直接让系统的输入为111,那么士兵巡逻预案系统如刺客所想,可以直接输出00,即士兵A和士兵B都不巡逻,结果是没有士兵巡逻。。。

Fault injection attacks

Fault injection attacks on cryptographic devices and countermeasures
IoT Security - Part 20 (101 - Introduction to Fault Injection Attack (FI))
  故障注入是在异常情况下对设备的物理攻击,目的是故意在系统中注入故障以改变其预期行为。

  • 改变电源电压 ——产生尖峰
  • 改变时钟频率 ——产生故障
  • 加热设备,使得芯片过热
  • 强光照射——相机闪光灯或精确激光光束

士兵巡逻预案系统解决方法——硬件的逻辑加密(Logic encryption of hardware )

士兵巡逻预案系统的反思

  刺客所设计的硬件木马直接破坏了所设计的硬件IC芯片的安全性,这一切的一切都是因为系统的设计者留下了无关项,给刺客可乘之机。很简单的改进策略就是,让系统不能产生00输出,将无关项的输出全部给1,这样就保证了至少有一个人巡逻

  Simple countermeasure: To prevent a 00 output you can specify the "don’t care "conditions.

硬件的逻辑加密(Logic encryption of hardware )

在这里插入图片描述
  硬件的逻辑加密(Logic encryption of hardware )并不是用密码算法对设计文件进行加密; 相反,它意味着加密硬件的功能。通过在原始设计中插入额外的门(称为密钥门)来隐藏设计的功能和实现。以免设计表现出不正确的功能(即防止产生不正确的输出)。

2. Design for Trust Techniques

  Design for Trust是一种思想,使用预防性设计技术来克服木马检测的挑战。策略是构建可信赖的 IC电路,它完全按照要求进行设计逻辑,不多也不少

  • The use preventative design techniques has been proposed to overcome the challenges of Trojan detection.
  • A trusted IC is an integrated circuit which does exactly what it is asked for, no less and no more.
  • Untrusted circuit may fail to deliver all required functional specifications or may perform additional malicious tasks.

  基本分类有四种:

  • 逻辑加密logic encryption,通过在原始设计中插入额外的门(称为密钥门)来隐藏设计的功能和实现。
  • 拆分制造split manufacturing
  • IC 伪装IC camouflaging
  • 木马激活Trojan activation

Regaining Trust in VLSI Design: Design-for-Trust Techniques

Advancing the State-of-the-Art in Hardware Trojans Design

3. 组合逻辑电路的一般设计流程与卡诺图化简

  1. 分析要解决的问题。电路的功能、输入输出是什么、画出简单的小系统框图(block diagram)可以分析输入输出的关系。
  2. 使用合适的设计表示来表述问题。真值表或波形图描述、用计算机语言编码一定的输入输出符号。(formulate the problem using a suitable design representation)
  3. 选实施的功能性模块,如ROM、PLA、二选一选择器、译码器、或门、离散门等等。(Choose implementation target)
  4. 按照步骤实施,卡诺图化简成想要的形式(可能是两层gj括号的表达式方便控制延迟)、硬件描述语言verilog描述并用工具解释(Follow implementation procedure)
    在这里插入图片描述
    K-maps for two-level will reduce delay

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

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

相关文章

坦克大战2.0,3.0,4.0版本

1.坦克大战 0.3 在坦克大战游戏(0.2版)基础上添加如下功能:当玩家按一下j键,就发射一颗子弹. 编写Shot类 package com.yt.tankgame03;/*** 射击子弹*/ public class Shot implements Runnable{int x;//子弹的x坐标int y;//子弹的y坐标int direct;//子弹的方向int speed 2;//子…

Python 做了一个 ChatGPT 机器人,表妹玩了一下午

大家好,我是毕加锁。 毫无疑问,ChatGPT 已经是当下编程圈最火的话题之一,它不仅能够回答各类问题,甚至还能执行代码! 或者是变成一只猫 因为它实在是太好玩,我使用Python将ChatGPT改造,可以实现…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的知识蒸馏模型/方法/源码

目录给我推荐20个比较流行的知识蒸馏模型给我推荐10个比较流行的知识蒸馏模型源码给我推荐20个比较流行的深度学习知识蒸馏方法给我推荐20个比较流行的深度学习知识蒸馏方法源码给我推荐20个比较流行的深度学习知识蒸馏实现源码给我推荐20个比较流行的知识蒸馏模型 好的&#…

VSCode配置并连接远程服务器 并设置免密登录

文章目录1 前言PyCharm与VSCode2 VSCode配置远程开发环境3 VSCode配置远程免密登录4 推荐插件参考1 前言 PyCharm与VSCode 最近由于许多深度学习的项目需要在服务器上跑,之前一直使用PyCharm进行开发,使用习惯之后觉得还行,配置稍微有点复杂…

(七)Docker上安装常用软件说明(tomcat,mysql)

目录 一、总体步骤 二、安装tomcat 三、安装mysql(简易版) 四、安装mysql(实战版) 一、总体步骤 1、搜索镜像 2、拉取镜像 3、查看镜像 4、启动镜像 5、停止容器 6、移除容器 二、安装tomcat 1、dockerhub官网搜索tom…

福利来了~Python内置函数最全总结,建议收藏

喜迎2023,希望所有人都幸福安康!小编在这里给大家放烟花了,希望新的一年疫情嗝屁,霉运全跑! 开始正文。 1 abs() 绝对值或复数的模 In [1]: abs(-6) Out[1]: 6 2 all() 接受一个迭代器,如果迭代器的所有…

前端bug每次都比后端多,我总结了5点原因

最近总有朋友跟我吐槽说,每次一汇报,就说前端bug多,前端能力有问题,几乎每次都是前端bug比后端多,还好几次导致项目延期。 我其实听的挺不是滋味的,前端bug比后端多,可能是这么几点原因吧 目录 …

Shiro历史漏洞复现 - Shiro-550

文章目录Shiro简介Shiro历史漏洞Shiro-550Shiro-721漏洞发现Shiro组件识别Shiro漏洞搜索Shiro漏洞检测工具Shiro rememberMe反序列化漏洞(Shiro-550)漏洞原理影响版本漏洞利用Shiro-721 (未完待续......)Shiro简介 Apache Shiro是一种功能强…

LeetCode刷题复盘笔记—一文搞懂动态规划之115. 不同的子序列问题(动态规划系列第三十九篇)

今日主要总结一下动态规划的一道题目,115. 不同的子序列 题目:115. 不同的子序列 Leetcode题目地址 题目描述: 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通…

spring boot 日志

目录 什么是日志呢 ? 日志有什么作用呢? 什么是日志呢 ? 日志的作用是什么呢 ? 我们需要学会日志的什么 ? 自定义输出日志 日志持久化 为什么要将日志持久化呢? 如何进行日志的持久化 设置日志级别 日志级别有什么用呢 ? 日志都有哪些级别呢 ? 如何设置日志…

十二、Express接口编写 —— 跨域问题

在前面的HTTP模块内容内容当中讲到这个跨域的问题,跨域就涉及到浏览器的同源策略,跨域只出现在浏览器当中,在浏览器当中去执行脚本的时候会进行一个同源检测,只有是同源的脚本才会被浏览器执行,不同源就是跨域&#xf…

MySQL高级 SQL优化【order bygroup by优化】

目录 1:SQL优化 1.1:order by优化 A. 数据准备 B. 执行排序SQL C. 创建索引 D. 创建索引后,根据age, phone进行升序排序 E. 创建索引后,根据age, phone进行降序排序 F. 根据phone,age进行升序排序&#xff…

STM32MP157驱动开发——Linux 网络设备驱动

STM32MP157驱动开发——Linux 网络设备驱动一、简介STM32MP1 GMAC 接口简介YT8511C 详解二、驱动开发1.网络外设的设备树2.设备驱动三、测试网速测试参考文章:【正点原子】I.MX6U嵌入式Linux驱动开发——Linux 网络驱动 一、简介 网络驱动是 linux 驱动三巨头之一&…

[C语言]三种方法实现n的k次方(递归/调用math库函数/实现pow函数)[含递归图解说明]

目录 1.调用math库函数中的pow函数实现n的k次方 2.创造pow函数实现n的k次方 3.递归实现n的k次方&#xff08;含图解&#xff09; 1.调用math库函数中的pow函数实现n的k次方 pow函数的功能&#xff1a;计算n的k次幂 pow格式&#xff1a;pow(n,k) #include <stdio.h>#in…

@NotEmpty、@NotBlank、@NotNull 区别和使用

这种注解通常使用场景在前端发送过来的数据&#xff0c;先进行校验处理&#xff0c;在进行逻辑判断的&#xff0c;所以在进行校验处理的时候&#xff0c;我们通常会使用这三种注解来进行判断传过来的值 1NotNull 适用于基本数据类型(Integer&#xff0c;Long&#xff0c;Doubl…

回收租赁商城系统功能拆解01讲-产品架构

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

【谷粒商城基础篇】基础环境搭建

谷粒商城笔记合集 分布式基础篇分布式高级篇高可用集群篇简介&环境搭建项目简介与分布式概念&#xff08;第一、二章&#xff09;基础环境搭建&#xff08;第三章&#xff09;整合SpringCloud整合SpringCloud、SpringCloud alibaba&#xff08;第四、五章&#xff09;前端知…

关于yum源的总结

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录1 相关概念1.1 rpm与yum1.2 yum源与repo文件2 yum源的种类2.1 官方源2.…

【HTML】耗时一下午,整理出了一个精美的响应式登陆注册表单(附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

【OpenDDS开发指南V3.20】第八章:opendds_idl

opendds_idl是构建opendds和opendds应用程序过程中使用的代码生成器之一。 它可以用多种不同的方式定制如何从IDL文件生成源代码。 有关默认使用模式的概述,请参见第2.1.2节。 OpenDDS IDL编译器是使用位于$DDS_ROOT/bin/(PATH上)的OpenDDS_IDL可执行文件调用的。 它解析…