随笔分类 -  BLE

摘要:Controller基本概念 Controller构成 蓝牙协议分host和controller两个部分,Host是正真意义的蓝牙协议,Controller为蓝牙底层,或者说是基带芯片。基带芯片又可以分为三个部分,Radio,Link Layer和HCI。 Radio Radio可以理解为一个独立的 阅读全文

posted @ 2020-08-04 10:57 狂野木潇落 阅读(1905) 评论(0) 推荐(0)

摘要:蓝牙基本概念 Piconet 在蓝牙设备没有跟其他蓝牙设备连线的时候,它自己属于一个piconet。当有连线后,piconet里有两种角色:master 和 slave。发起连线的一方是master,被连接的一方是slave。slave会以master的时钟为参照,以625us为时间单位,与mast 阅读全文

posted @ 2020-08-04 10:51 狂野木潇落 阅读(3228) 评论(0) 推荐(0)

摘要:近年由于SIG蓝牙安全机制的考虑不周(例如KNOB,BlueBorne 和Invalid ECC Attack),蓝牙连接一直在受到不同程度攻击。每个SoC BLE SDK理应先经过蓝牙认证,然后才能投放市场,但SweynTooth机构的发现表明,蓝牙认证过程并未认真对待,因为大部分漏洞,在测试阶段 阅读全文

posted @ 2020-08-04 10:20 狂野木潇落 阅读(960) 评论(0) 推荐(0)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

摘要:1. 前言 自1994年由爱立信推出至今,蓝牙技术已经走过了20个岁月。从最初的Bluetooth V1.0,到Bluetooth V4.0(最新的为V4.1,2013年底发布),经历了近9个版本的修订后,发展为当前的状况。 说实话,如今的蓝牙4.1,简直是一个大杂烩:BR/EDR沿用旧的蓝牙规范; 阅读全文

posted @ 2019-01-30 15:11 狂野木潇落 阅读(3766) 评论(0) 推荐(1)