iot安全入门
硬件安全
硬件安全技术
硬件安全框架
- 安全生命周期管理
- 测试调试端口保护
- 固件安全
- 可信执行环境
物理攻击技术
- 侧信道攻击技术(SCA)
- 故障注入攻击技术(FA)
- 侵入式攻击技术(IA)
- 组合攻击技术
面向软件安全的硬件攻击
- 软件流程保护
- 安全指令扩展
- 远程代码认证
- 虚拟化
- 可信启动
硬件安全和抗攻击技术
- 侧信道攻击防护技术
- 故障攻击防护技术
- 随机数发生器
- 物理不可克隆函数
- 安全版图设计
硬件安全防护
PUF(Physical Unclonable Function)
PUF是一种硬件安全技术,使用硅来区分芯片并创建一个唯一的随机数。生成的随机数用于加强设备ID和加密密钥以创建信任根。用作半导体设备(如微处理器)的唯一身份。
TPM (Trusted Platform Module)
TPM可信平台模块,是一种植于计算机内部为计算机提供可信根的芯片,该芯片的规格由可信计算组(Trusted Computing Group)来制定。可用于存储、管理BIOS开机密码以及硬盘密码,TPM安全芯片可以进行范围较广的加密并用于加密硬盘的任意分区。它还包括远程认证和密封存储等功能,过通常需要部署到更高端的物联网设备上。
HSM(hardware security module)
硬件安全模块是一个安全的加密处理器,专注于提供加密密钥,并通过这些密钥提供加密操作。该模块充当信任锚,通过确保对各种应用程序进行严格的加密、解密和身份验证,为身份、应用程序和事务提供保护。硬件安全模块具有物理防篡改、强认证等保护功能。
硬件安全模块系统不易受到损坏和系统故障的影响,系统的示例包括物理屏蔽的LAN设备,智能卡和PCI插件卡等,具有许多独特的优势,包括:
- 提供符合安全标准的认证
- 双重控制访问保护
- 负载分配和可靠性
- 支持所有标准密码算法
- 每秒几笔交易
- 仅需一个硬件安全模块即可提高密钥的可用性
- 模块中存在的软件和硬件专门用于安全功能
TrustZone
信任区域是另一种将执行空间划分为安全和不安全区域的单芯片解决方案,不安全的应用程序不允许访问安全关键资产。这些相同的安全关键资产是隔离的不会被篡改。
硬件工具
示波器、编程器、逻辑分析仪、万用表、电烙铁、usb转TTL
示波器
常用来针对NFC的侧信道、边信道攻击,边信道攻击是针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法
编程器
编程器为可编程的集成电路写入数据的工具,编程器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。
逻辑分析仪
逻辑分析仪是分析数字系统逻辑关系的仪器。逻辑分析仪是属于数据域测试仪器中的一种总线分析仪,即以总线(多线)概念为基础,同时对多条数据线上的数据流进行观察和测试的仪器,这种仪器对复杂的数字系统的测试和分析十分有效。逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要作用在于时序判定。由于逻辑分析仪不像示波器那样有许多电压等级,通常只显示两个电压(逻辑1和0),因此设定了参考电压后,逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为High,低于参考电压者为Low,在High与 Low之间形成数字波形。
万用表
万用表作用:
- 识别未知的引脚
- 找到UART的接地引脚
- 检查哪些组件已连接
- 搞清楚您需要什么样的电源
- 检查接口上的电压以确保不会造成事故
电烙铁
选择电烙铁可以按以下两种方式来选择:
1、电烙铁加热形式的选择
(1)内热式和外热式的选择:相同瓦数情况下,内热式电烙铁的温度比外热式电烙铁的温度高。
(2)当需要低温焊接时,应用调压器控制电烙铁的温度,电烙铁的温度与电源电压有密切的关系,实际使用中 往往通过调低电源电压来降低电烙铁的温度。
(3)通过调整烙铁头的伸出长度控制温度。
(4)稳定电烙铁温度的方法主要有以下几种:加装稳压电源,防止供电网的变化;烙铁头保持一定体积、长度 和形状;采用恒温电烙铁;室内温度保持恒定;避免自然风或电扇风等。
2、按电烙铁功率的选择
(1)焊接小瓦数的阻容元件、晶体管、集成电路、印制电路板的焊盘或塑料导线时,宜采用30~45W的外热式 或20W的内热式电烙铁。应用中选用20W内热式电烙铁最好。
(2)焊接一般结构产品的焊接点,如线环、线爪、散热片、接地焊片等时,宜采用75~100W电烙铁。
(3)对于大型焊点,如焊金属机架接片、焊片等,宜采用100~200W的电烙铁。
USB转TTL
USB转TTL模块的作用就是把电平转换到双方都能识别进行通信。
单片机通信接口的电平zhi逻辑dao和PC机通信接口的电平逻辑不同,PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;还有DB9接口(九针口),相应电平逻辑遵照RS-232原则。
单片机上的串行通信通过单片机的RXD、TXD、VCC、GND四个引脚,相应电平逻辑遵照TTL原则。
接口调试与漏洞利用
部分通信接口介绍
通信接口介绍-UART(通用异步接收器发送器)
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。
UART 允许两个硬件外围设备之间的异步串行通信。它们可以位于同一块电路板上(例如微控制器与电机或LED屏幕通信),也可以位于两个不同的设备之间(例如设备微控制器与PC通信)。它可以允许通过串行读取/写入设备。
在许多物联网设备中,板上的UART端口保持打开状态,任何人都可以通过串口连接和访问以获得shell,日志输出等。设备在通常情况下会带有一组引脚,当我们连接到微控制器UART RX和TX引脚时,便可用于发送和接收串行数据。
UART引脚作用介绍:
VCC:供电pin,一般是3.3v-5v,正极
GND:接地,负极
RXD:接收数据引脚
TXD:发送数据引脚
通信接口介绍- JTAG(微控制器调试接口)
JTAG属于微控制器调试接口。微控制器具有在运行期间使用指定引脚进行调试的规定,这些引脚连接到电路板上的引脚。这些引脚(端口)由开发人员和设计人员用于调试,读/写固件和微控制器内部存储器,生产后控制/测试微控制器引脚。这使得调试端口成为最关键的攻击面之一,因为它为攻击者提供了强大的功能和访问权限。除了JTAG之外,还包括cJTAG、SWD。
寻找UART串口方法
调试UART设备前首先找到在板子上找到相应的引脚:
若已有明确标识引脚的板子,可以直接使用USB转TTL工具按照下图连接方式进行连接:
1、GND引脚对应TTL的GND
2、RXD引脚对应TTL的TXD
3、TXD引脚对应TTL的RXD
若PCB板子上没有明确标识出引脚的设备,还需要通过其它方法确定UART接口:
可以在PCB板上寻找并排的焊点或者通孔,常规来说数量大约为3-5个的通孔可来作为UART调试串口的初步定位。
1、定位GND
将万用表扭至蜂鸣档,将一只表笔抵住电源焊锡点,另一个表笔抵住通孔位置进行测试,发出蜂鸣声的通孔,就可以初步判定为GND。
2、定位VCC
因已知VCC电压为3.3V,将万用表扭至20V上,将一只表笔放置于GND上,另一只表笔依次对其它通孔进行测试,查看哪个是电压3.3V,发现有两个引脚均为3.3V。
因两个脚同时为3.3V或5V,所以我们利用VCC+GND 正负极相连短路来最终确定VCC引脚,我们将一根插线,接入GND,另一个端对两个均为3.5V的通孔进行测试,发现连接到第二个孔时,电源灯灭,故确定该通孔即为VCC引脚。
3、定位TXD
根据经验每次开机有数据传输的时候该引脚电压都会发生变化来判断TXD引脚即可,将表笔置于剩余未确定的口中重启设备观察电压变化即可。
4、定位RXD
其他三个引脚定位完毕,剩下的就是RXD引脚….
定位完毕后使用USB转TTL工具按照顺序接入电脑即可
打开SecureCRT-选择Serial-COM口-波特率即可连接到UART串口
- 記事へのリンク:https://torebtr.github.io/2022/04/13/iot/
- 著作権表示:このブログ内のすべての記事は、特別な記載がない限り の下のライセンスで保護されています。
GitHub IssuesGitHub Discussions