物联网硬件安全分析基础-硬件分析初探

作者:独抒@伏宸安全实验室

前言

当我们在分析IOT设备,如智能摄像头、智能门锁、智能路由器等等产品时,采用传统的安全检测手段,如对APP的逆向、云端服务器的渗透测试、产品通信的抓包等方式可以获得部分的信息,但如果需要深入分析智能设备底层的工作原理,从中发现更深层次的安全问题,就不可避免的需要直接接触硬件本身,这也是传统安全手段未能触及的部分,据此,下面简单的谈下关于电路分析和芯片固件提取和调试的一点心得。

电路识别

在对电路进行分析之前,需要对PCB电路图和电子元器件知识有简单的了解。

PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的载体。由于它是采用电子印刷术制作的,故被称为“印刷”电路板。

电子元器件

电子元件有着不同的封装类型,不同类的元件外形一样,但内部结构及用途是大不一样的,比如TO220封装的元件可能是三极管、可控硅、场效应管、或双二极管。TO-3封装的元件有三极管,集成电路等。二极管也有几种封装,玻璃封装、塑料封装及螺栓封装,二极管品种有稳压二极管、整流二极管、隧道二极管、快恢复二极管、微波二极管、肖特基二极管等,这些二极管都用一种或几种封装。贴片元件由于元件微小有的干脆不印字常用尺寸大多也就几种,所以没有经验的人很难区分,但贴片二极管及有极性贴片电容与其它贴片则很容易区分,有极性贴片元件有一个共同的特点,就是极性标志。对于元件识别可以看印字型号来区别,对于元件上没有字符的器件也可分析电路原理或用万用表测量元件参数进行判断。判断元件类型并非一朝一夕就能学会的,这需要多年积累的经验来认识。

ROM芯片

在对PCB和电子元器件有一定认知后,就可以开始分析其工作原理和芯片了,常见的IOT产品,一般采用嵌入式linux系统开发,对芯片分析主要目的之一就是获取到硬件系统的固件,从固件中分析可能存在的安全风险。

固件一般存储在ROM中,ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。

常见的存储芯片按照存储读取方式和制作工艺不同,可以分为: ROM、PROM、EPROM、EEPROM、FLASH-ROM。

在大部分IOT产品中多采用flash芯片作为存储器,提取固件主要也是通过读取flash芯片。

Flash芯片

FLASH ROM属于真正的单电压芯片,在使用上很类似EEPROM,因此,有些书籍上便把FLASH ROM作为EEPROM的一种。事实上,二者还是有差别的。FLASH ROM在擦除时,也要执行专用的刷新程序,但是在删除资料时,并非以Byte为基本单位,而是以Sector(又称Block)为最小单位,Sector 的大小随厂商的不同而有所不同;只有在写入时,才以Byte为最小单位写入;FLASH ROM芯片的读和写操作都是在单电压下进行,不需跳线,只利用专用程序即可方便地修改其内容;FLASH ROM的存储容量普遍大于EEPROM,约为512K到至8M KBit,由于大批量生产,价格也比较合适,很适合用来存放程序码,近年来已逐渐取代了EEPROM,广泛用于主板的BIOS ROM,也是CIH攻击的主要目标。

根据技术方式不同可分为: IIC EEPROM、SPI NorFlash 、CFI Flash、Parallel NandFlash、SPI NandFlash、eMMC Flash、USF2.0等。

其中SPI NorFlash因为接口简单,使用的引脚少,易于连接,操作方便,并且可以在芯片上直接运行代码,其稳定性出色,传输速率高,在小容量时具有很高的性价比,这使其很适合应于嵌入式系统中作为 FLASH ROM,所以在市场的占用率非常高。

我们通常见到的S25FL128、MX25L1605、W25Q64等型号都是SPI NorFlash,其常见的封装多为SOP8,SOP16,WSON8,US0N8,QFN8、BGA24等。

芯片印字

一般PCB上有多块逻辑处理IC,在多个IC芯片中,可以通过分析电路原理和查找芯片印字来确定具体的存储芯片。

芯片上的丝印大多数情况会注明厂商和芯片型号,通过印字可以初步确定芯片类型,同时丝印层的文字也可以帮助我们来确定存储的格式和大小,常见的W25芯片的印字含义如下:

编程器

读取Flash芯片,需要借助编程器,编程器又称烧录器、写入器、写码器,是专门用来对IC芯片进行读写、编程/烧录的仪器。

并口多功能BIOS编程器,它可以对EPROM(27系列芯片)、EEPROM(28系列芯片)、FLASH ROM(29、39、49系列芯片)及单片机、串行芯片等进行读写、编程,是一种性价比较高的编程器。

编程器种类多样,从功能简单的专用型到功能全面的全功能通用型都有,价格从几十元到上万元不等。

串口通信

串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。

RS-232通信方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。

RS-422标准全称是“平衡电压数字接口电路的电气特性”,在RS232后推出,使用TTL差动电平表示逻辑,就是两根的电压差表示逻辑,RS422定义为全双工的,所以最少要4根通信线(一般额外地多一根地线)。

RS485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,RS-485与RS-422的区别在于RS-485为半双工通信方式,RS-422为全双工方式。RS-422用两对平衡差分信号线分别用于发送和接收,所以采用RS-422接口通信时最少需要4根线。RS-485只用一对平衡差分信号线,不能同时发送和接收,最少只需两根连线。

UART调试

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

对于物联网硬件的串口调试,多数情况下指的就是通过UART串口进行数据通讯, 但是我们经常搞不清楚它和COM口的区别, 以及RS232, TTL等关系, 实际上UART、COM指的物理接口形式(硬件), 而TTL、RS-232是指的电平标准(电信号).

UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V)、高电平为1(3.3V或以上),Uart串口的RXD、TXD等一般直接与处理器芯片的引脚相连,而RS232串口的RXD、TXD等一般需要经过电平转换(通常由Max232等芯片进行电平转换)才能接到处理器芯片的引脚上,否则这么高的电压很可能会把芯片烧坏。

在调试的时候, 多数情况下我们只引出rx、tx、gnd即可,但是UART的数据要传到电脑上分析就要匹配电脑的接口,通常我们电脑使用接口有COM口和USB口(最终在电脑上是一个虚拟的COM口),但是要想连上这两种接口都要需要进行硬件接口转换和电平转换。

设备拆解

对于一台未接触过的机器,拆解首先需要观察其外部结构,是否存在暴露的螺丝孔,如果没有,一般可能隐藏在贴纸或橡胶垫下面,可以用手感受是否存在空洞,部分机器采用卡榫结构,只要找对方向,用一字螺丝刀或撬片,从缝隙中就可以撬开,拆解设备唯一的要诀就是胆大心细。部分常用工具如下:

维修组合套装,用来拆装各类螺丝,PCB夹用来拔出排线,手电筒用来观察芯片印字和PCB走线,PCB测试夹用来夹住某些难以焊接的焊点,排线用来连接各类电子设备,热风枪和焊枪用来拆焊和锡焊。

常见物联网智能设备

共享充电宝,采用gprs模块配合物联卡与云端通信

蓝牙挂锁,通过蓝牙芯片与手机配对通信,蓝牙控制电机驱动,使卡锁运转

共享充电宝,采用GSM模块加蓝牙模块控制通信

智能锁,WIFI芯片加蓝牙芯片配合控制,外接指纹识别传感器

智能摄像头,采用WIFI芯片通信,外接音频、视频处理模块

网络摄像机,采用网卡芯片,配合多口输出输入视频信号模块

智能路由器,高容量内存搭配智能OS

智能家居控制终端,高性能WIFI收发中继控制

智能保险柜,采用WIFI芯片控制加指纹识别传感器

无线终端,采用4G模块和WIFI芯片,做便携式WIFI终端

读取芯片

为了读取Flash芯片的内容,有以下三个基本途径:

(1)直接将导线连接到芯片的引脚,在通过导线连接编程器读取固件;
(2)把芯片拆下来,在连接编程器读取固件。
(3)连接TXD、RXD调试PIN,通过UART串口转接读取固件。

根据Flash芯片的封装方式和电路设计不同,需要灵活采用不同的方式。

参考文献

中国通信协会相关文献 http://www.china-cic.cn/
美国电子工业协会相关标准 https://www.eia.gov/

转载于:https://www.cnblogs.com/HacTF/p/8052190.html

物联网硬件安全分析基础-硬件分析初探相关推荐

  1. 算法设计与分析基础-笔记-上

    算法设计与分析基础 绪论 什么是算法 一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出. 例子:最大公约数:俩个不全为0 的非负整数 m m m和 n n n的最大公 ...

  2. 硬件三人行,运放基础第2讲听课笔记,电路分析基础(一)

    电路分析基础(一) 在我们做模拟电路分析时实际上是需要用到电路分析这门课程的内容,这里罗列一些基本的知识点. 能力守恒定律 欧姆定律 KCL定律 KVL定律 电压源 电流源 时域下的电容的IV方程 时 ...

  3. 物联网操作系统碎片化问题分析与思考

    一.概述 本文以物联网操作系统面临的碎片化问题为主题,从CPU.外设.组件与接口四个方面出发,阐述物联网操作系统面临的挑战以及一些设计理念.以总分1.0进行度量,我认为整个物联网系统的碎片化指数如下: ...

  4. 老李分享:《Java Performance》笔记1——性能分析基础

    老李分享:<Java Performance>笔记1--性能分析基础 1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. (2 ...

  5. 大数据时代物联网技术发展前景与应用分析

    注:本文由音序为GD的童鞋原创,在此代为发表 摘要: 当前,以物联网.大数据和云计算为代表的新一代信息技术发展迅猛,目前正在由IT时代转向DT时代.物联网技术正在通过与其它新技术的不断融合,加速向智能 ...

  6. b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释

    b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释 我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括w ...

  7. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释 继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更 ...

  8. 计算机应用教学对象分析,编辑演示文稿计算机应用基础教材分析学情分析教学目标重点难点 .ppt...

    编辑演示文稿计算机应用基础教材分析学情分析教学目标重点难点 魅力余姚期待您的光临 --编辑演示文稿 计算机应用基础 教材分析 学情分析 教学目标 重点难点 教学方法 教学设计 教学反思 教学准备 本节 ...

  9. 【时序】N-BEATS:用于可解释时间序列预测的神经基础扩展分析

    论文名称:N-BEATS: Neural basis expansion analysis for interpretable time series forecasting 论文下载:https:/ ...

最新文章

  1. 广东电大计算机绘图试题,电大计算机绘图期末复习试题及答案参考小抄.doc
  2. html页面头部里的meta
  3. pc工具不支持stb的加密方式_如何选择加密狗?九大标准
  4. 【论文复现与改进】针对弱标注数据多标签矩阵恢复问题,改进后的MCWD算法,让你的弱标注多标签数据赢在起跑线上
  5. CentOS 环境下配置MySQL8.0
  6. [导入]判断学号前十位的年龄最大的女学生是否是汉族的
  7. 【AI项目商务合作】图像拼接
  8. can通道采样频率_关于CAN通信速率设置
  9. 新泽西州男子因无牌运营比特币交易所或面临5年监禁
  10. 普通的Spring Web项目正常启动,在访问某些JSP页面时,页面会报错 http://java.sun.com/jsp/jstl/core
  11. 8.剑指Offer --- 英文版新增面试题
  12. c语言求栈长度程序,数据结构C语言实现之顺序栈
  13. Ember项目引入js依赖
  14. Longhorn配置参数详解
  15. c语言 请编程序将 China 译成密码,分别用putchar和printf函数输出这5个字符
  16. STM32 无法使用IAR下载程序问题
  17. iOS模拟器不能输入中文解决
  18. Socket error Event: 32 Error: 10053.
  19. 基于FPGA的直接数字频率合成器的的设计和实现设计和实现
  20. Wav音频文件剪切指定片段(限PCM格式)

热门文章

  1. pymongo模块详解(含官方文档翻译)
  2. 百家讲坛 黄帝内经(第三部)
  3. 有了钉钉和企业微信,企业还需要专属IM吗?
  4. Android Studio 批量修改文件名
  5. pyqt5实现手写中文数字识别
  6. 免费获取全球10米分辨率的土地分类数据!
  7. Windows取证——隐藏术
  8. windows生成文件MD5值
  9. 全网最详细的HCNR200线性光耦模拟量隔离电路设计解析(看遍了网上抄来抄去的文章都没用,后来自己研究出来且仿真通过,在此给广大学子一个正确的导向)
  10. html中滚动代码怎么写,网页HTML滚动代码大全(一)