2019年1月31日

摘要: 在蓝牙协议栈的物理层,有这样两个比较有用的参数:LQI和RSSI。它们都是通过接收端,判断当前无线环境的质量(链路质量),以指导后续的动作。但这两个数值的计算原理和使用场景又有很大的差别。 LQI (Link Quality Indication),是当前接收到的信号的质量的一种度量。所谓的接收到信 阅读全文

posted @ 2019-01-31 17:10 狂野木潇落 阅读(763) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 在物联网时代,有一个问题肯定会让人头疼(现在已经初露端倪了): 物联网中的IOT设备有两个主要特点: 1)简单小巧(不具备复杂的人机交互接口,需要手机等终端设备辅助完成配置、控制等功能)。 2)数量和种类繁多(消费者面对的可是数量众多的不同厂家、不同类型的设备)。 基于这两个特点,手机等 阅读全文

posted @ 2019-01-31 16:39 狂野木潇落 阅读(1971) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 在linux平台下,bluez是一个很不错的软件,提供了很多基于命令行的测试工具,如hciconfig、hcitool、hcidump、bluetoothctl等。利用这些工具,我们可以方便的测试、demo各种蓝牙功能。例如,在“玩转BLE(1)_Eddystone beacon”中,我 阅读全文

posted @ 2019-01-31 16:38 狂野木潇落 阅读(2079) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 你相信两条命令就可以把自己的破手机变成一个Beacon节点吗?不相信的话就接着往下看吧。 通过前几篇“蓝牙协议分析”相关的文章,特别是“蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍”,相信大家对BLE协议栈已经有了基本的认识。在继续后续的分析之前,我们有必要换个视角,从应用的角度, 阅读全文

posted @ 2019-01-31 16:37 狂野木潇落 阅读(1007) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 注1:此SM是Security Manager的缩写,非彼SM,大家不要理解歪了! 书接上文,我们在“蓝牙协议分析(10)_BLE安全机制之LE Encryption”中介绍了BLE安全机制中的终极武器 数据加密。不过使用这把武器有个前提,那就是双方要共同拥有一个加密key(LTK,Lo 阅读全文

posted @ 2019-01-31 15:45 狂野木潇落 阅读(3310) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 前面文章介绍了两种BLE的安全机制:白名单[4]和LL privacy[3]。说实话,在这危机四伏的年代,这两种“捂着脸讲话(其它人不知道是谁在讲话,因而不能插话、不能假传圣旨,但讲话的内容却听得一清二楚)”的方法,实在是小儿科。对于物联网的应用场景来说,要做到安全,就必须对传输的数据进 阅读全文

posted @ 2019-01-31 15:43 狂野木潇落 阅读(1942) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 在上一篇文章[1]中,我们介绍了BLE的白名单机制,这是一种通过地址进行简单的访问控制的安全机制。同时我们也提到了,这种安全机制只防君子,不防小人,试想这样一种场景: A设备表示只信任B、C、D设备,因此就把它们的地址加入到了自己的白名单中,表示只愿意和它们沟通。与此同时,E设备对它们的 阅读全文

posted @ 2019-01-31 15:42 狂野木潇落 阅读(1525) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 在万物联网的时代,安全问题将会受到非常严峻的挑战(相应地,也会获得最大的关注度),因为我们身边的每一个IOT设备,都是一个处于封印状态的天眼,随时都有被开启的危险。想想下面的场景吧: 凌晨2点,x米手环的闹钟意外启动,将你从睡梦中惊醒,然后床头的灯光忽明忽暗…… 你的心率、血压、睡眠质量 阅读全文

posted @ 2019-01-31 14:28 狂野木潇落 阅读(2845) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 了解蓝牙的人都知道,在经典蓝牙中,保持连接(Connection)是一个相当消耗资源(power和带宽)的过程。特别是当没有数据传输的时候,所消耗的资源完全被浪费了。因而,对很多蓝牙设备来说(特别是功耗敏感的设备),希望在无数可传的时候,能够断开连接。但是,由于跳频(hopping)以及 阅读全文

posted @ 2019-01-31 14:27 狂野木潇落 阅读(2825) 评论(0) 推荐(1) 编辑

摘要: 1. 前言 也许关注BLE的同学都注意到了,BLE设备有多种类型的设备地址,如Public Device Address、Random Device Address、Static Device Address、Private Device Address等等。如果不了解内情,大家肯定会被它们绕晕。不 阅读全文

posted @ 2019-01-31 14:16 狂野木潇落 阅读(868) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大了对广播通信(Advertising)的支持和利用。关于广播通信,通过“玩转BLE(1)_Eddystone beacon”和“玩转BLE(2)_使用bluepy扫描BLE的广播数据”两篇文章的介绍,我们已经有了一个整体的认 阅读全文

posted @ 2019-01-31 11:09 狂野木潇落 阅读(2164) 评论(1) 推荐(0) 编辑

摘要: 1. 前言 蓝牙是个奇葩的家伙:它总是以后来者的身份出现,很喜欢打仗,而且还不落下风(有点像某讯的风格)。90年代末期和Wi-Fi的无线标准之争如此,当前和802.15.4系(ZigBee、RF4CE、Thread等)的IoT之争,也如此。 90年代末期,蓝牙刚出道的时候,就曾叫嚣着把Wi-Fi(8 阅读全文

posted @ 2019-01-31 11:03 狂野木潇落 阅读(1147) 评论(0) 推荐(0) 编辑

摘要: 1. 前言 通过“蓝牙协议分析(2)_协议架构”的介绍,大家对蓝牙协议栈应该有了简单的了解,但是,肯定还有“似懂非懂、欲说还休”的感觉。有这种感觉太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议,没那么容易理解。 因此,本文将换个视角,从协议栈设计者的角度,思考如下问题: 为什么会有蓝牙协议栈( 阅读全文

posted @ 2019-01-31 10:39 狂野木潇落 阅读(2721) 评论(2) 推荐(0) 编辑

摘要: 1. 前言 本文是蓝牙协议分析的第二篇文章,在“蓝牙协议分析(1)_基本概念”的基础上,从整体架构的角度,了解蓝牙协议的组成,以便加深对蓝牙的理解。 2. 协议层次 蓝牙协议是通信协议的一种,为了把复杂问题简单化,任何通信协议都具有层次性,特点如下: 从下到上分层,通过层层封装,每一层只需要关心特定 阅读全文

posted @ 2019-01-31 10:26 狂野木潇落 阅读(1881) 评论(0) 推荐(0) 编辑