手把手DIY,教你强攻嵌入式设备那些黑科技

39度创意研究所 2017-08-04 09:49 次阅读

为助力中国电子工程师更好将创新创意落地,

由华强芯城、电子发烧友网携手ARM联合举办

华强芯城2017工程师创新设计大赛[点击报名]

为什么要举办这个大赛?

简单来说,就是一个给工程师创意创新造梦的舞台;

没有参赛利器?送你mbed相关开发套件;

如果你是一枚科技极客侠,

拥有无数天马行空的想法;

如果你是智造DIY达人,

用有众多令人钦羡的技能;

如果你想亲自参与改变未来智能电子产品,

而且创意爆表;

NB了,Word天!你还在犹豫什么?

Come on!“华强芯城2017工程师创新设计大赛”并且期待你组队来迎战!

未来的创新设计舞台就在这里

快来尽情挥洒你的灵感吧~


 



嵌入式产品Hacking 一直都是备受关注的议题,而越来越多的攻击者也瞄上了物联网嵌入式设备。跟以往纯软件安全研究不同的是,这类研究往往需要结合相应的硬件知识和设备。如何能快速入门嵌入式系统?本文分享针对I2C协议的实战案例和相应的工具使用。希望可以一起来Hacking all the Things。

I2C协议基础

凡是接触过嵌入式系统的朋友,对I2C协议一定不会陌生。其与UART,SPI和JTAG等并列为最常见调试协议。I2C 全称为Inter-Integrated Circuit,是由飞利浦公司设计的一种多主从架构的串口通讯协议。

手把手DIY,教你强攻嵌入式设备那些黑科技

I2C协议非常简单,仅有Clock 和 Data 两条数据总线,外加 Ground. 通常是1个主设备和多个从设备的架构。在通讯速度上分别为100khz,400khz,1Mhz,3.2Mhz。在运用方面对速度没有高要求的,都可以使用I2C进行通讯。比如PC风扇的温度和电池的电压数据采集等,每个I2C设备都各有一个读和写地址,只有知道了这个读写地址才能跟其通讯。

手把手DIY,教你强攻嵌入式设备那些黑科技

除此之外许多用来存储系统配置和参数的EEPROM芯片自身也支持I2C协议,比如IBM Thinkpad 系列用来存储BIOS 密码的EEPROM,就是通过I2C协议在MCU与EEPROM 之间进行交互。

手把手DIY,教你强攻嵌入式设备那些黑科技

手把手DIY,教你强攻嵌入式设备那些黑科技

神器BusPirate

工欲善其事必先利其器,拥有一款神器对嵌入式设备Hacking将起到事半功倍的作用。BusPirate 是由Dangerous prototypes 设计出品的一款硬件hacking 瑞士军刀,支持多项常见协议并可跨平台Windows/Linux/MAC,并拥有丰富的帮助文档。

BusPirate可以Sniffing 和读写 I2C等协议,同时还可对AVR 等芯片进行编程操作,在操作上也是非常简单,只需用minicom 以115200 波特率跟BusPirate连接便可。

手把手DIY,教你强攻嵌入式设备那些黑科技

BusPirate支持协议如下:

手把手DIY,教你强攻嵌入式设备那些黑科技

BusPirate 接口连接示意图:

手把手DIY,教你强攻嵌入式设备那些黑科技

BusPirate 命令列表:

手把手DIY,教你强攻嵌入式设备那些黑科技

攻击案例 -- 数字密码锁

接下来我们来看一个通过分析I2C 协议,从而破解门锁密码的实战案例,我们的目标是这款 型号为YL99 的数字密码锁。这款密码锁完全依赖于用户设置的数字密码,也许对某些人来说不需要带一堆钥匙的确方便了很多。

因为YL99 是完全电子化的的门锁,所以提供了普通机械锁没有的功能。比如YL99 拥有多 个功能不同的账户,Master 账户:可用于设置管理用户密码(默认0123#)。普通账户:用于存储普通用户密码。YL99 同时还提供了贴心的防密码泄漏功能,操作方法:键入起始码(0) + 跟随用于掩盖的任意几位数字+ 跟随正确密码 + # (确认结束)。 通过这样的方式就算边上有人,也不怕被看到正确密码了。

手把手DIY,教你强攻嵌入式设备那些黑科技

但是千里之堤,溃于蚁穴。YL99 的设计缺陷,竟能让人从外部将锁的键盘部分分离,从而访问到内部PCB 主板。而玩过硬件Hacking 的朋友都知道,被人轻易访问到内部PCB 主板部分是大忌。

手把手DIY,教你强攻嵌入式设备那些黑科技

在YL99被打开后主板结构便展现眼前。除了YL99 使用的元器件外,我们还可以清晰看到主板上还标有一个Reset 复位触点。那么这个时候我们便可以通过短接复位触点和Ground 的方式将密码恢复到出厂设置,从而得到bypass 的目的。但这方法的短处也非常明显,在bypass 的时候每次都需要卸螺丝,而且如果恢复到出厂值,很容易就被人发现了。

手把手DIY,教你强攻嵌入式设备那些黑科技

不过好戏才刚开始。我们在主板上还发现了YL99使用的MCU em78p156e 和用来存储密码信息的EEPROM 24C02。通过阅读24C02 的datasheet 我们得知其使用I2C 协议和MCU 通讯,同时datasheet 也清晰的标出了芯片管脚的用途,比如I2C 使用的SCL(时钟频率) 和SDA(数据总线)。

手把手DIY,教你强攻嵌入式设备那些黑科技

手把手DIY,教你强攻嵌入式设备那些黑科技

终于我们的神器BusPirate要派上用场了。我们首先用数据线将24C02的I2C 管脚和BusPirate的对应接口连接起来。

手把手DIY,教你强攻嵌入式设备那些黑科技

手把手DIY,教你强攻嵌入式设备那些黑科技

随后通过minicom 或其他serial tools 进入Buspirate的I2C调试模式。

手把手DIY,教你强攻嵌入式设备那些黑科技

在I2C 的调试模式中,有个非常有用的功能I2C sniffer。通过它我们可以监控I2C 的数据,用过WIRESHARK 的朋友一定不会陌生。

手把手DIY,教你强攻嵌入式设备那些黑科技

开启了I2C Sniffer 模式后,我们便可开始观察MCU 和 EEPROM之间的密码交互。比如YL99 的密码输入过程为起始码(0) + 正确密码 + 结束确认(#)。

通过观察发现在按下结束确认(#) 后,MCU 便向24C02 发送密码验证请求。但随后致命的设计错误出现,EPPROM 24C02 将正确的密码以明文的方式发回给MCU 以求完成密码验证过程,而这过程我们通过BusPirate 的I2C sniffer一览无遗。

手把手DIY,教你强攻嵌入式设备那些黑科技

▲如图:因为使用的little endian 所以密码 123 和456 会反着显示

总结

通过本文的介绍和实践案例,相信大家对I2C 协议和利用方式有了一定的了解。剑走偏锋,反其道行之。攻击者往往将系统的短板作为攻击点,倘若某款嵌入式系统的设计者仅仅考虑到软件层面的安全,而攻击者又能得到物理访问的话,那些防御方式便形同虚设。同时嵌入式产品往往面临上市后便难以升级的困难,一旦攻击方式曝光由此给产品带来的损失是巨大的,因此安全产品在设计之初即应将安全考虑进去。

39度创意研究所 技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

mailshichao
那把锁可以从外面拆开露出控制PCB,不能直接控制开锁部分的机电部分,直接开锁么,干啥还要破解
11-07 10:45
wuwuasdf
好111111111111111111111111111111
09-02 17:25
wuwuasdf
好111111111111111111111111111111
09-02 17:26
jiyuyin
这个是基于哪家的开发平台
08-04 10:59
ziding56
嵌入式设备Hacking 好牛
08-04 10:19
木木川BB
数据采集方面比较高效
08-04 10:19
杀戮之神
主从架构的串口通讯协议应用非常广泛
08-04 10:59
blueshine
自己也可以来试试
08-04 10:19
张友芬1
I2C协议的实战案例分享很到位
08-04 10:19

相关推荐

AI将引爆智能硬件市场 科技大佬们是这么认为的?

真的的智能硬件市场还没有完全的打开,智能硬件市场被认为是物联网生态的入口位置,但这几年智能硬件行业似....

发表于 02-09 09:25 次阅读 0条评论
AI将引爆智能硬件市场 科技大佬们是这么认为的?

基于嵌入式系统中看门狗的原理与使用

在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。

的头像 嵌入式ARM 发表于 02-08 18:27 次阅读 0条评论
基于嵌入式系统中看门狗的原理与使用

很全面的嵌入式开发与学习的入门知识

刚刚涉及嵌入式开发者总是先阅读一些指导类型文章,然后就开始对开发语言的选择踌躇不决。是C 还是C++....

的头像 面包板社区 发表于 02-08 16:55 次阅读 0条评论
很全面的嵌入式开发与学习的入门知识

基于Intel嵌入式处理器IXP425的会议电视多点控制单元硬件设计

本文介绍了采用IXP425作为核心主控单元和3片DM642作为核心数据处理单元的会议电视多点控制单元....

发表于 02-11 03:23 次阅读 0条评论
基于Intel嵌入式处理器IXP425的会议电视多点控制单元硬件设计

基于FPGA/CPLD的嵌入式VGA显示系统设计

VGA(Video GraphICs Array)即视频图形阵列,是IBM在1987年随PS/2机(....

发表于 02-08 06:44 次阅读 0条评论
基于FPGA/CPLD的嵌入式VGA显示系统设计

华为企业文化的第一大关键词

你可能对CEO、COO、CFO等了如指掌,但恐怕是第一次听说“首席员工健康与安全官”。 从2008年....

的头像 华为文摘 发表于 02-08 11:03 次阅读 0条评论
华为企业文化的第一大关键词

FTDI推出嵌入式视频引擎(EVE)系列的首款芯片--FT800

当今的智能显示设计非常复杂,常常需要使用32位高端处理器(带大量的I/O接口和外部存储器)、较高的成....

发表于 02-12 04:01 次阅读 0条评论
FTDI推出嵌入式视频引擎(EVE)系列的首款芯片--FT800

硬件创业者为何从华为出来的非常多

在国内提到硬件开发,华为无疑是最优秀的公司。所以,硬件创业者从华为出来的也非常多。这篇文章非常详细的....

的头像 华为文摘 发表于 02-07 14:03 次阅读 0条评论
硬件创业者为何从华为出来的非常多

基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案

为了适应嵌入式设备外设的多样性,本文以特殊矩阵键盘为例,设计了一套完整的驱动 控制模块 。硬件电路设....

发表于 02-07 09:44 次阅读 0条评论
基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案

基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案

随着高科技技术逐渐融入到传统的农副业,温室培养已成为生产反季节作物的方式。介绍了基于S3C2410处....

发表于 02-07 09:29 次阅读 0条评论
基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案

基于STM32平台的μC/OS-II上的μC/GUI移植过程解析

μC / GUI 是一种专为嵌入式应用设计的通用图形接口软件。本文详细介绍了μC/GUI的结构框架和....

发表于 02-07 09:25 次阅读 0条评论
基于STM32平台的μC/OS-II上的μC/GUI移植过程解析

基于LPC2365和嵌入式μC/OS-II下的多串口通信编程方法教程

本文介绍了以 LPC2365 为核心处理器、嵌入式 实时操作系统 μC / OS-II 下的 多串口....

发表于 02-07 09:21 次阅读 0条评论
基于LPC2365和嵌入式μC/OS-II下的多串口通信编程方法教程

Reset对嵌入式系统稳定性的重要性分析

嵌入式系统 的应用领域越来越广泛,干扰或者恶劣环境常影响嵌入式系统运行的 稳定性 和可靠性。 Res....

发表于 02-07 09:04 次阅读 0条评论
Reset对嵌入式系统稳定性的重要性分析

嵌入式SoC芯片S698-T的飞参采集器设计

随着我国航空业的发展,我国自主设计的飞机越来越多的飞行在天空中,为了记录监控飞机飞行过程中,飞机各种....

发表于 02-07 08:49 次阅读 0条评论
嵌入式SoC芯片S698-T的飞参采集器设计

基于S3C2410嵌入式设备的U-Boot移植流程教程

S3C2410 是三星公司针对嵌入式系统推出的高性价比微处理器,它是基于ARM9TDMI内核的16/....

发表于 02-07 07:58 次阅读 0条评论
基于S3C2410嵌入式设备的U-Boot移植流程教程

赛灵思扩大生态系统,重塑嵌入式视觉、工业物联网系统设计的未来

赛灵思工业物联网 丰富的 IP、软件、硬件与设计服务解决方案让基于赛灵思 All Programma....

的头像 电子发烧友网工程师 发表于 02-14 03:09 次阅读 0条评论
赛灵思扩大生态系统,重塑嵌入式视觉、工业物联网系统设计的未来

基于嵌入式PIC32单片机的目标检测与跟踪系统

通过借鉴嵌入式系统在电子技术、信号处理以及计算机等领域应用的成功经验,在分析目标检测与跟踪算法的基....

的头像 电子发烧友网工程师 发表于 02-15 22:42 次阅读 0条评论
基于嵌入式PIC32单片机的目标检测与跟踪系统

嵌入式电机控制系统在医疗行业中应用

由于精度不断提高,机器人系统已在实验室、医院甚至病人的体内得到了实际应用。 从药品研发实验室、放射科....

的头像 电子发烧友网工程师 发表于 02-14 20:49 次阅读 0条评论
嵌入式电机控制系统在医疗行业中应用

嵌入式常用的通信协议

随着通信与计算机整合时代的到来,数字化、宽带化和智能化已成为未来通信发展的方向,人类社会对电信业务从....

发表于 02-06 18:48 次阅读 0条评论
嵌入式常用的通信协议

嵌入式常用接口协议

接口协议指的是需要进行信息交换的接口间需要遵从的通信方式和要求。接口协议的种类非常多。接口协议不仅要....

发表于 02-06 17:54 次阅读 0条评论
嵌入式常用接口协议