IOT设备硬件分析
IOT设备硬件组成
市面上 IOT 设备的类型众多,不同的 IOT 设备有着不同的功能与用途。
但是,这些 IOT 设备都具有感知和通信功能,以及存储和处理能力。
印制电路板
PCB(Printed Circuit Board,印制电路板)是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。几乎每种电子设备,小到电子手表、计算器,大到计算机、通信电子设备、武器系统,都使用了印制电路板来实现各个元器件之间的电气连接。
目前,印制电路板主要由以下部分组成。
线路与图面:线路是元器件之间导通的工具,在设计 PCB 时,会另外设计大铜面(即图面)作为接地及电源层。而且,线路与图面是在设计(或生产)PCB 时同时做出的。
介电层:俗称基材,用来保持线路及各层之间的绝缘性。
孔:分为导通孔和非导通孔。导通孔可以使不同之间的线路彼此导通,较大的导通孔可以用作零件插件。非导通孔通常用作表面贴装定位,在组装印制电路板时用于固定螺丝。
防焊油墨:并非所有的铜面都要上锡(俗称吃锡)和上零件,因此对于不需要上锡的区域,会印一层用来隔绝铜面上锡的物质(通常为环氧树脂),以免不需要吃锡的线路间短路。根据工艺的不同,防焊油墨可以分为绿油、红油、蓝油、黄油、白油等。
丝印:丝印为 PCB 非必要的组成结构,它的主要功能是在 PCB 上标注各零件的名称、位置框,以方便辨识以及组装后的维修。
表面处理:由于铜面在一般环境中很容易氧化,导致无法上锡(也就是我们说的焊锡性不良),因此需要对上锡的铜面进行保护而且通常是采用喷锡、化金、化银、化锡以及使用有机保焊剂等方法进行保护的。这些方法统称为表面处理,它们各有优缺点,这里不展开介绍。
根据功能与用途的不同,印制电路板可以分为单面板、双面板、多层板。
单面板:指的是只使用印制电路板的一面来设计线路。传统设备(如收音机、遥控器等功能单一的设备)会较多地用到单面板。
双面板:指的是电路板的两面都有布线的设计。不过,要想使用这两面的导线,这两个面之间必须有适当的电路连接才行。这种电路间的 “桥梁” 称为导通孔。随着时代的进步以及消费者对于电子产品的要求(无论是功能还是体积),电子产品需要及时更新换代,而双面板可以有效解决传统设备体积过大、功能相对不足的问题。
多层板:指的是电子产品中的多层线路板,它是使用了更多单面板或双面板的布线板。多层板大多用于体积大小有限制且所需产品功能较多的设备。
存储芯片
只读存储器(Read-Only Memory,ROM)是一种半导体存储器,其结构如图所示。顾名思义,只读存储器只能读出事先存储的数据。它的特性是一旦在其中存储了数据,就无法再将数据进行改变或删除,且存储的数据不会因为电源的关闭而消失。
只读存储器通常用于存储各种固化的程序和数据。
根据 ROM 的工作原理,可以将其细分为 PROM、EPROM、EEPROM、FLASHROM 几类。
- 可编程只读存储器(Programmable ROM,PROM)
用户可以使用专用的编程器将自己的数据写入 PROM 但是只有一次写入机会,且数据一旦写入后无法修改。因此,若是在数据写入过程中出现错误,PROM 只能做报废处理。
PROM 的成本较高,数据的写入速率较慢,一般只适用于少量需求的场合,或者用于在量产前进行验证。
- 可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)
EPROM 可重复擦除和写入,这解决了 PROM 只能写入一次的弊端。EPROM 在其正面的陶瓷封装上,有一个玻璃窗口。透过该窗口,可以看到 EPROM 内部的集成电路。使用紫外线透过该窗口照射内部的集成电路,即可擦除其上存储的数据。当然,真正的信息擦除操作需要使用 EPROM 擦除器来执行。
老式计算机的 BIOS 芯片一般使用的就是 EPROM,其擦除窗口通常使用印有 BIOS 发行商名称、版本和声明的标签进行覆盖。
- 电擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)
由于 EPROM 在操作上不是很方便,后来计算机主板上的 BIOS 芯片开始采用 EEPROM。在擦除 EEPROM 上的数据时,不需要借助于其他设备即可完成。它通过电子信号来修改其内容,而且最小的修改单位为字节。这样一来,无须将存储的数据全部擦除就可以写入新的数据,这也就摆脱了 EPROM 擦除器和编程器的束缚。
- 快闪存储器(Flash Mermory,FLASHROM)
快闪存储器又称为闪存,是一种可以通过电子方式多次复写的半导体存储设备,允许在操作期间进行多次擦除写入。闪存主要用于一般性的资料存储,以及在计算机与其他数字产品(如储存卡与 U 盘)间交换信息。
闪存是 EEPROM 的一种,它结合了 ROM 和 RAM(随机存取存储器)的长处,不仅具备 EEPROM 的性能,而且在断点时不会丢失数据,同时还可以快速读取数据。
内存与 EEPROM 的区别是,闪存按扇区块(block)操作,而 EEPROM 按照字节操作,而且闪存的电路结构比较简单,在同样的容量小占用的芯片面积较小,因此成本要比 EEPROM 低,更适合作为程序存储器使用。
内存主要分为 NOR 内存和 NAND 闪存。其中,NOR 闪存的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在内存内运行,而不必把代码读到系统 RAM 中。NOR 内存的传输效率很高,但是写入和擦除速率很低。而 NAND 闪存能提供极高的单元密度,因此存储密度很高,并且写入和擦除速度也很快。但是,NAND 闪存的一个弊端是它需要使用特殊的系统接口进行管理。
闪存是非易失性的存储器。也就是说,单就信息的保存而言,它不需要消耗电力。而且与硬盘相比,内存也有更佳的抗震性,这也是内存广泛应用于移动设备的原因。
电子基础
电压
电压(Voltage)也成为电势差、电位差,用于衡量电位电荷在静电场中由于电势不同所产生的能量差。电压的方向规定从高电位指向低电位的方向。电压的国际单位为伏特(V,简称为伏),常用的单位还有毫伏(mV)、微伏(uV)、千伏(kV)等。
在测量电压的时候,我们需要一个特定位置的参考为基点。这个参考基点通常是地(Ground,GND),或者电池、供电设备的负极。GND 又分为数字地(DGND)和模拟地(AGND)。
电流
电荷的定向移动形成电流(Current)。电流的大小称为电流强度,是指单位时间内通过导线某一截面的电荷量,其单位为安培(A,简称为安)。1 安培等于每秒通过 1 库仑的电荷量。电流分为交流电流和直流电流,如图。
- 交流电流(AC):大小和方向都发生周期性变化。
- 直流电流(DC):方向不随时间发生改变,大小可以改变。
电阻
电阻(Resistance)是一个物理量,在物理学中表示为导体对电流阻碍作用的大小。导体的电阻越大,表示对电流的阻碍作用越大。不同的导体,其电阻一般不同。导体的电阻通常用字母 R 表示,电阻的单位是 欧姆(Ω,简称为欧)。电阻上一般带有彩蛇的条码,彩色条码用来表示该电阻的电阻值。
电容
在所有的 IOT 设备中,电容器是最常见的电子元器件之一。在物理学中,在既定的电压下,电容器存储电荷的能力称为电容(Capacitance)。电容的单位是法拉(farad,标记为 F)。在电路图中,通常以字母 C 打头的命名方式来标识电容,如 C01、C02、C03、C100 等。电容器在调谐、旁路、耦合、滤波等电路中发挥了重要的作用。
晶体管
晶体管(Transistor)是一种类似于阀门的固体半导体元器件,具有检波、整流、放大、开关、稳压、信号调制等多种功能。
晶体管的一种常见用途是用作电流放大器,即接受较小的电流并将其放大后进行输出。我们经常使用的音响就使用了晶体管的这个原理,即在调节输入到音响中的声波的音量大小后将其输出。
IOT通信接口识别与调试
通信接口是 IOT 设备与计算机进行通信的重要接口,也是我们在进行 IOT 安全研究时最常用的接口。下面看一下常见的 IOT 通信接口都有哪些,以及如何使用 IOT 通信接口对设备进行调试。
通用异步接收器
联合测试工作组
通过通信接口对UART设备进行调试
- 准备工作
- 万用表
- 杜邦线
- FT232芯片
- JTAGulator工具
- 测试流程
IOT设备硬件防护
通信接口安全
安全人员可以通过 PCB 的调试接口对 UART、JTAG 等通信接口进行调试。在顺利进入调试界面后,可以利用系统自带的命令获取物联网设备的固件,进而获取固件中保存的密码等敏感信息。
因此,为了防止敏感信息的泄露,IOT 设备在出厂时应默认去掉 PCB 上的接口标记,并关闭 UART、JTAG 等通信接口。在提供售后服务时,如果有调试需求,则应使用飞线的方法进行调试。如果迫不得已,不得不开启设备调试接口,则需要遵循接口信息传输最小化的原则,避免大量敏感信息的传输。
存储芯片安全
存储芯片是 IOT 设备的核心,里面保存着所有 IOT 设备的信息,因此在设备出厂前向input写入数据时,应该对其中的敏感信息进行加密,加密方案可通过操作系统分区加密来实现。
除了对敏感信息进行加密,还需要开启芯片保护机制,以防止通过调试接口来读取数据。