什么是物联网?
01
物联网的概念
物联网(Internet of Things,IoT)即“万物相连的互联网”,是传统互联网的拓展与延伸[1]。互联网是由许多网络(局域网)连接起来的一个庞大网络,为所有计算机的信息交互提供通道。逐渐的,这个互联网中不仅接入计算机,还加入了许多手机、平板等移动终端,就形成了移动互联网。
而随着科技的不断进步,人们发现只要为生活中的各类物品装上芯片,就能让它们接入互联网中,实现“万物互联”,这就是物联网诞生的初衷。
物联网既基于互联网、传统电信网等信息的载体,同时又在这些载体的基础上进行拓展,加入物联网的相关协议,诸如RFID、Bluetooth、MQTT、Coap等协议,让不同的物理设备形成互联互通的网络。通俗来讲,物联网的概念就是让生活中的各种设备具备接入互联网的能力,实现人与物、物与物之间的信息交互。
02
物联网的组成
物联网通常由3层架构组成,由下到上依次为感知层、网络层、应用层[2]。通俗的来讲,分为端、管、云三部分:
-
端指的是终端。物联网终端实现数据信息采集,属于物联网的感知层;
-
管指的是管道。所有为物联网提供数据传输的设备、系统都属于管道;
-
云是大数据处理的中枢,提供面向用户的设备管理和数据汇聚等功能。
以家用智能摄像机为例,我们通过手机的APP远程访问家里的摄像机,查看家里的情况,并将视频实时上传到云上。在这个过程中,物联网模型由用户(手机)、云端服务器、摄像头、传输系统四元素组成。交互模型如下图所示:
摄像头属于物联网中的感知层,进行现实世界的视频数据采集;云端则为物联网的应用层,汇聚、处理、分析摄像头传输回来的视频数据等,并与用户进行信息交互。在这个模型中,为摄像头与云端提供数据传输管道的设备,均属于网络层。
03
物联网终端
物联网终端是我们日常生活中接触最多的部分,本系列文章也以物联网终端为核心而展开。
物联网终端是物联网中连接传感网络与传输网络层,实现采集数据及向网络层发送数据的设备[3]。物联网终端担负着数据采集、数据处理、加密、传输等多种功能,甚至会向用户提供管理窗口。当缺少物联网终端时,传感数据将无法整合传输到云端,“物”联网将不复存在。
物联网终端实际上是传统嵌入式设备的拓展,通常由MCU(微型计算机)、传感器、执行器、通信模块与操作系统组成。终端的形式多种多样,从使用的行业领域来分,可以分为工业物联网终端、农业物联网终端、物流物联网终端、安防物联网终端等;按便携性可以分固定终端、移动终端与手持终端等。
04
硬件基础
深入学习物联网终端安全知识之前,首先需要掌握基本的硬件基础知识。本节我们将介绍PCBA的基本概念及其板载常见的元器件和各种接口、芯片。
1
PCBA的基本概念
PCBA(printed circuit board assembly)简称主板,就是将PCB(printed circuit board,简称印刷电路板)与元器件组装起来,是物联网设备的硬件模块。PCBA通常包括中央处理器、存储器、电源、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。
2
认识电子元器件
在物联网终端的PCBA上,最为常见的电子元器件包括电阻、电容、电感、二极管、晶振等。
-
电阻:电阻在电路中常用来调节电路中的电流和电压,或作为电路的负载。电阻的默认标识为R。
-
电容:电容的种类较多,能够实现储能、滤波、旁路、去耦、隔直流等功能,能够通交流,隔直流,具体功能因电路而异。电容的默认标识为C。
-
电感:电感在电路中起到滤波、延迟、抗电磁干扰等功能,能够通直流、阻交流。电感的默认标识为L。
-
二极管:二极管在电路中类似于开关的作用,只允许电流单方向流通。
-
晶振:晶振能自身产生时钟信号,为电路中的芯片提供时钟参考。
3
了解存储芯片
ROM存储芯片
图示 winbond ROM
ROM是Read Only Memory的缩写,译为只读存储器。ROM可以在掉电的情况下,依然保存原有的数据,但无法修改内容,适合存储长期使用的数据、程序,也就是我们常称的外存。如今的ROM已经发展出了EEPROM(带电可擦可编程只读存储器),可以按字节进行有限次数的内容刷写,在终端运行时,可以进行数据的修改。传统物联网终端的程序与数据通常存放在EEPROM中。
RAM存储芯片
图示SDRAM芯片
RAM(Random Access Memory)称为随机访问存储器,是易失性存储器。当RAM断电时,其保存内容将全部丢失,但读写速度相对较快,适用于保存短时间使用的数据与程序,这也是我们常称的内存。
FLASH存储芯片
图示 Nand Flash芯片
FLASH又称闪存,是广义上的ROM,融合了RAM与ROM的优点,能够多次擦写,读写速度快,并且断电时不丢失数据。所以FLASH也常作为物联网终端设备的代码存储空间。
常见的FLASH存储器又分为两种:NAND FLASH与NOR FLASH。NAND FLASH的改写速度要比NOR FLASH快许多,且容量更大;而NOR FLASH读取速度则稍快一些,传输效率更高。因此NAND FLASH适合存储大量数据,NOR FLASH则更适合存储少量代码。
相较于EEPROM,FLASH按照扇区操作修改数据,电路逻辑更简单,成本更低,但无法在设备运行时对数据进行修改。因此,在一些物联网设备中,会同时配置EEPROM与FLASH两个存储芯片,EEPROM负责保存设备的数据,方便随时修改;而FLASH则负责保存设备的程序。在一些廉价的终端设计中,可能只有FLASH一种存储芯片,同时保存程序与数据。
介绍完常见的存储芯片,接下来我们了解一下在安全研究过程中常用的设备调试接口。
4
调试接口
在物联网终端开发流程中,调试是一个必不可少的环节。开发工程师可以通过调试接口对设备进行软件的功能完备性测试,整体系统的性能测试与压力测试等。安全研究人员则能通过设备的调试接口读取设备的运行数据、日志,下载设备的软件,调试设备的系统等。在对设备进行安全分析时,合理利用调试接口能够达到事半功倍的效果。
UART接口
UART(Universal Asynchronous Receiver
/Transmitter)接口是访问设备最为常见的方式,属于异步串行通信协议接口。厂商在部署设备时可以通过UART接口进行设备诊断、日志记录等操作,所以在研究终端设备时,我们需要重点关注设备的UART接口。
物联网终端中的UART接口常采用的TTL电平标准进行信号传输,这种逻辑门电路采用二进制规定,+5V或+3.3V等价于逻辑“1”,0V等价于逻辑“0”。
UART接口在工作时不需要外部时钟,而是根据固定的波特率进行数据采样,根据TTL电平规则转换成相应的二进制,然后将采样结果通过规定二进制长转换成字符串形式。如果接口设置的波特率与设备的波特率不匹配,转换出的二进制结果将不正确,会导致转换出的字符串显示乱码。物联网终端常见的波特率通常为9600、115200。UART接口通常有4个引脚,分别是Tx、Rx、Vcc和GND。
图示 PCBA上的UART
Tx引脚是设备的数据发送端;Rx引脚是设备的数据接收端;Vcc是电压电源端,通常是3.3V或5V,与Tx、Rx两引脚的电压通常相近;GND是设备的接地引脚,电压为0V。
图示 USB转TTL模块
在进行调试时,需要通过USB转TTL工具,连接计算机与PCBA的UART接口。在进行连接时,需要注意相关的接口顺序:
JTAG接口
JTAG接口类似于UART接口,同样能够对设备进行调试。通过JTAG接口还能够直接访问FLASH或RAM,进行数据转储等。JTAG接口包含5个引脚:
-
TDI:数据输入引脚
-
TDO:数据输出引脚
-
TMS:测试模式选择
-
TCK:测试时钟
-
TRST:测试复位
本期《物联网终端安全入门与实践之了解物联网终端》的硬件基础知识部分到这里就结束了,下一期文章我们将继续分享固件基础相关内容,干货满满,请大家持续关注哦!
参考资料:
[1]贾益刚.物联网技术在环境监测和预警中的应用研究[J].上海建设科技,2010(06):65-67.
[2]魏颖琪,林玮平,李颖.物联网智能终端技术研究[J].电信科学,2015,31(8):140-146.
[3]王志良.物联网终端技术[M].北京:机械工业出版社,2013.9,第十页
END
编辑 | Ann
作者 | toptop
原文始发于微信公众号(银弹实验室):物联网终端安全入门与实践之了解物联网终端 (上篇)