蓝牙嗅探与跟踪攻击:蓝牙跟踪攻击方法_2.蓝牙安全基础.docxVIP

蓝牙嗅探与跟踪攻击:蓝牙跟踪攻击方法_2.蓝牙安全基础.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

2.蓝牙安全基础

2.1蓝牙协议栈概述

蓝牙协议栈是一个分层的架构,用于管理蓝牙设备之间的通信。了解蓝牙协议栈的各个层级及其功能是理解蓝牙安全的基础。蓝牙协议栈主要包括以下几个层级:

2.1.1物理层(PhysicalLayer)

物理层负责蓝牙设备之间的无线通信。它定义了无线频率、调制方式、信号强度等物理特性。物理层还负责处理信号的传输和接收,确保数据的正确传输。

2.1.2链路层(LinkLayer)

链路层负责建立和维护蓝牙设备之间的连接。它处理设备的地址管理、数据包的传输和接收、错误检测和纠正等功能。链路层还支持多种通信模式,如主从模式、广播模式等。

2.1.3物理链路管理层(LMP:LinkManagerProtocol)

LMP层负责链路的建立、认证、加密和密钥管理。它通过链路管理器(LinkManager)与对端设备进行协商,确保连接的安全性和稳定性。

2.1.4逻辑链路控制和适应协议层(L2CAP:LogicalLinkControlandAdaptationProtocol)

L2CAP层提供了面向连接和无连接的数据传输服务。它负责将高层协议的数据分段和重组,支持多种高层协议,如RFCOMM、SDP等。

2.1.5传输控制协议/因特网协议层(RFCOMM:RadioFrequencyCommunication)

RFCOMM层模拟了传统的串行通信端口,支持多个逻辑连接。它通常用于数据传输和文件传输等应用。

2.1.6服务发现协议层(SDP:ServiceDiscoveryProtocol)

SDP层用于发现蓝牙设备提供的服务。它通过服务记录来描述设备的服务,支持设备之间的服务查询和发现。

2.1.7通用访问协议层(GAP:GenericAccessProfile)

GAP层定义了设备之间的通用访问模式,包括设备的发现、连接和断开等操作。它还支持设备的配对和绑定。

2.1.8通用属性协议层(GATT:GenericAttributeProfile)

GATT层定义了设备之间属性的读取、写入和通知等操作。它通过属性协议(ATT:AttributeProtocol)实现,支持设备之间的数据交互。

2.2蓝牙设备地址和识别

蓝牙设备地址(BD_ADDR)是蓝牙设备的唯一标识符,用于设备之间的识别和通信。了解蓝牙设备地址的格式和生成方式对于分析蓝牙通信和识别设备至关重要。

2.2.1BD_ADDR格式

蓝牙设备地址是一个48位的地址,通常表示为12个十六进制字符。例如:00:1A:7D:DA:71:13。BD_ADDR由两部分组成:

前24位:公司标识(CompanyIdentifier),用于标识设备制造商。

后24位:设备标识(DeviceIdentifier),用于标识具体设备。

2.2.2BD_ADDR的生成

蓝牙设备地址由蓝牙设备的制造商在生产时分配。通常,制造商会在设备的硬件中烧录一个唯一的BD_ADDR。在某些情况下,设备地址可以通过软件进行更改,但这需要设备具有相应的权限和配置。

2.2.3设备识别

蓝牙设备在广播模式下会定期发送广播包(AdvertisingPackets),其中包含设备的BD_ADDR和其他信息。接收设备可以通过解析广播包来识别和发现其他蓝牙设备。

2.2.4代码示例:解析广播包中的BD_ADDR

以下是一个使用Python和pybluez库解析蓝牙广播包中的BD_ADDR的示例代码:

importbluetooth

defdiscover_bluetooth_devices():

发现附近的蓝牙设备并解析其BD_ADDR

#执行蓝牙设备扫描

nearby_devices=bluetooth.discover_devices(lookup_names=True)

#打印发现的设备及其BD_ADDR

foraddr,nameinnearby_devices:

print(fFounddevice:{name}withBD_ADDR:{addr})

if__name__==__main__:

discover_bluetooth_devices()

2.2.5代码解释

bluetooth.discover_devices(lookup_names=True):扫描附近的蓝牙设备,返回设备的BD_ADDR和名称。

foraddr,namein

您可能关注的文档

文档评论(0)

kkzhujl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档