0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:电子发烧友网整理 作者:h1654155596.7254 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 之间进行交互。

神器BusPirate

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

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

BusPirate支持协议如下:

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

BusPirate 接口连接示意图:

BusPirate 命令列表:

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

攻击案例 -- 数字密码锁

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

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

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

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4976

    文章

    18239

    浏览量

    287900
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3394

    浏览量

    128183
  • DIY
    DIY
    +关注

    关注

    176

    文章

    883

    浏览量

    345861
  • 智能硬件
    +关注

    关注

    203

    文章

    2304

    浏览量

    106492
收藏 人收藏

    评论

    相关推荐

    电子发烧友年终盘点——内容精选

    其中排名靠前的TOP50,在这里综合精选20余篇,让诸位重温这些文章。DIY高大上!用STM32单片机搞定四旋翼无人机飞控你想知道的NB-IoT知识都在这里了!手把手DIY教你
    发表于 02-06 15:01

    手把手教你怎样去实现一个嵌入式软件架构的设计

    手把手教你怎样去实现一个嵌入式软件架构的设计?有哪些步骤及其要求呢?
    发表于 12-24 06:54

    手把手教你制作无线充电器

    手把手教你制作无线充电器(无线充电原理+产品应用+DIY实例)
    发表于 09-28 07:48

    手把手教你构建一个完整的工程

    手把手教你构建一个完整的工程
    发表于 08-03 09:54 33次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>构建一个完整的工程

    美女手把手教你如何装机(中)

    美女手把手教你如何装机(中) 再来是硬碟的部份,这款机壳还不错,可以旋转支架~
    发表于 01-27 11:14 1355次阅读

    美女手把手教你如何装机(下)

    美女手把手教你如何装机(下) 接著下来就是今天的重头戏,开核萝!~
    发表于 01-27 11:16 2867次阅读

    手把手教你学DSP28335_张卿杰

    手把手教你学DSP28335张卿杰百度云分享手把手教你学DSP28335张卿杰百度云分享
    发表于 01-11 11:45 173次下载

    手把手教你学习FPGA—LED篇

    电子专业单片机相关知识学习教材资料——手把手教你学习FPGA—LED篇
    发表于 08-08 17:19 0次下载

    手把手教你学电子书制作

    手把手教你学电子书制作,可以自己DIY电子书
    发表于 09-13 11:26 0次下载

    手把手教你如何开始DSP编程

    手把手教你如何开始DSP编程。
    发表于 04-09 11:54 12次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何开始DSP编程

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视
    发表于 03-06 01:41 2757次阅读

    嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 3]

    嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Windows版 - 1]《嵌入式 - STM32开发指南》手把手
    发表于 12-06 09:36 0次下载
    《<b class='flag-5'>嵌入式</b> - STM32开发指南》<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搭建STM32开发环境 [Windows版 - 3]

    嵌入式秘术】手把手教你如何劫持RTOS(下)

    在《【嵌入式秘术】手把手教你如何劫持RTOS(上)》中,我们做了简单的热身——介绍了一种在你拥有某一个库的源代码或者.lib文件时,如何...
    发表于 01-25 18:51 7次下载
    【<b class='flag-5'>嵌入式</b>秘术】<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何劫持RTOS(下)

    手把手教你学DSP-基于TMS320X281x

    顾卫刚手把手教你学DSP
    发表于 05-24 16:06 26次下载

    手把手教你学FPGA仿真

    电子发烧友网站提供《手把手教你学FPGA仿真.pdf》资料免费下载
    发表于 10-19 09:17 1次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>学FPGA仿真