1.概述

   在进行蓝牙设备的连接时,为了保护个人隐私和数据保密的需要,需要进行验证。
 
2.一些Frame
Frame74:本地发送Authentication requset command
00010001 00000100 00000010 00001001 00000000
Opcode: 0x0411
Connection Handle: 0x09 = 9
 
Frame75:Command Status event
00001111 00000100 00000000 00000010 00010001 00000100
Status: Success
 
Frame76:Link Key request event
该Event参数为BR_ADDR
00010111 00000110 10000000 10011001 00100011 01001100 11100000 00000000
Bluetooth Device Address: 0x00-e0-4c-23-99-80
注:该Event应该是对Authentication requset command的后续回应,向本地的Host要Link key。
 
Frame77:Link Key Negative request command
00001100 00000100 00000110 10000000 10011001 00100011 01001100 11100000 00000000
Bluetooth Device Address: 0x00-e0-4c-23-99-80
注:回应远端slave的Link Key request event,表示本地没有存储的Link Key。
 
Frame78:Link Key Negative request command---command complete event
 
Frame79: IO Capability request event
00110001 00000110 10000000 10011001 00100011 01001100 11100000 00000000
BD_ADDR: 0x00e04c239980
注:该event表示远端的slave要求本地Host的IO_Capability,这个参数将在pair的过程中用到。
 
Frame80:IO Capability Request Reply command
这个command的参数如下:

BD_ADDR,
IO_Capability,
OOB_Data_Present,
Authentication_Requirements
00101011 00000100 00001001 10000000 10011001 00100011 01001100 11100000 00000000 0000000100000000 00000101
Bluetooth Device Address: 0x00-e0-4c-23-99-80
IO Capability: 0x01 DisplayYesNo
OOB Data Present: 0x00 OOB authentication data not present
Authentication_Requirements:0x05 MITM Protection Required – General Bonding. Use IO capabilities to determine authentication procedure.
注:这是本地的Host回应远端的IO Capability request event的,表明本地Host具有的IO Capability。
 
Frame81:IO Capability Request Reply command--command complete
 
Frame82:IO Capability response event
该Event参数如下:

BD_ADDR,
IO_Capability,
OOB_Data_Present,
Authentication_Requirements
00110010 00001001  0000000000000000
BD_ADDR: 0x00e04c239980
IO Capability: DisplayYesNo
OOB Data Present: OOB authentication data not present
Authentication_Requirements:0x05 MITM Protection Required – General Bonding. Use IO capabilities to determine authentication procedure.
注:这个event由远端的Slave产生,用来回复IO Capability Request Reply command,参数也都基本一样,作用就是表明你的IO capability我已经收到了,是不是感觉有点多此一举呢??
 
Frame83:User Confirmation Request event
参数如下:

BD_ADDR,
Numeric_Value
00110011 00001010 10000000 10011001 00100011 01001100 11100000 00000000 10110000 10111101 00001000 00000000
BD_ADDR: 0x00e04c239980
Numeric Value: 0x0008bdb0
注:远端的slave要求一个Numeric value,本地的Host可以用User_Confirmation_Request_Reply 或者the
User_Confirmation_Request_Negative_Reply command来进行回应。
 
Frame84:User Confirmation Request Reply command
00101100 00000100 00000110 10000000 10011001 00100011 01001100 11100000 00000000
Bluetooth Device Address: 0x00-e0-4c-23-99-80
注:响应User Confirmation Request event,表示这个Numeric value实在正确的。
 
Frame85:User Confirmation Request Reply command---command complete
 
Frame86: Simple Pairing Complete event
00110110 00000111 00000000 10000000 10011001 00100011 01001100 11100000 00000000
BD_ADDR: 0xe04c23998000
status:0x00 success
注:表示配对成功
 
Frame87:Link Key Notification Event
该Event参数如下:
BD_ADDR, 
Link_Key, 
Key_Type
0011000 00010111 10000000 10011001 00100011 01001100 11100000 00000000 00010110 01010001 10001111 00011101 00100101 00110001 01101001 00001000 00000011 10110101 11101101 00011110 11110111 00000010 01001111 10101110 00000101
Bluetooth Device Address: 0x00-e0-4c-23-99-80
Link Key: 0xae 4f 02 f7 1e ed b5 03 08 69 31 25 1d 8f 51 16
Link Key Types: 0x05 Authenticated Combination Key
注:通知Host新的Link Key已经产生用来建立连接。
 
Frame89:Authentication complete event
00000110 00000011 00000000 00001001 00000000
Status: Success
Connection Handle: 9
注:表示验证的过程完成。
 
3.总结 
   主要总结了设备在Authentication过程中交换的HCI数据包和一些重要的参数,在进行完Authentication过程后将进行Encryption的一些操作,将在下一篇介绍。

FTS抓包看蓝牙验证的过程的更多相关文章

  1. FTS抓包看蓝牙的SDP整个过程

    1.概述   SDP是蓝牙的Service Discovery Protocol,用来发现远程设备能够提供的Service.它只负责发现对方支持的Service,不负责Service的具体实现.   ...

  2. 【转】FTS抓包看蓝牙的SDP整个过程

    原文网址:http://blog.sina.com.cn/s/blog_69b5d2a50101f23c.html 1.概述   SDP是蓝牙的Service Discovery Protocol,用 ...

  3. FTS抓包看L2CAP Connection的建立(二)

    1.概述     前面一篇博文已经介绍到远端设备对本地的Connection request进行了response,目前L2CAP的连接处于pending状态.这篇将继续抓取下面的一些packets, ...

  4. FTS抓包看AVDTP

    1.概述   测试过程为打开Audio连接,没有听音乐,人后断开Audio连接,主要目的是为了测试AVDTP的工作流程.   2.Frame分析    首先贴出抓取的关于AVDTP的包: 在L2CAP ...

  5. FTS抓包看L2CAP Connection的建立(一)

    一.概述     在前面的文章中介绍了inquiry和ACL connection的建立过程.这个连接建立后,L2CAP signaling channel(CID = 0x0001)就已经存在,可以 ...

  6. 抓包分析SSL/TLS连接建立过程【总结】

    1.前言 最近在倒腾SSL方面的项目,之前只是虽然对SSL了解过,但是不够深入,正好有机会,认真学习一下.开始了解SSL的是从https开始的,自从百度支持https以后,如今全站https的趋势越来 ...

  7. charles抓包看性能数据

    1.优化某个接口或加载速度(H5加载速度慢) 抓包看Overview ①看Duration,就是接口的加载时间 ②看Latency,就是延时一端传播到另一端所花费的时间:一般和网络有关:可以综合Dur ...

  8. wireshark抓包看ECN

    由于实验需要,要统计ECN信息.为了验证拓扑中是否真的有ECN信息,用了wireshark进行抓包查看. 网上找到的相关有用资料有:http://blog.csdn.net/u011414200/ar ...

  9. https确实加密了。 抓包是一个中间人攻击过程

    https加密了为什么抓包还是明文 有客户已经正确部署了SSL证书,但是向我们提出了这个问题:我今天采用抓包工具进行抓包,但是我发现数据没有加密,请问是怎么回事?那采用证书加密有什么用?是不是很轻易的 ...

随机推荐

  1. JVM的GC理论详解

    GC的概念 GC:Garbage Collection 垃圾收集.这里所谓的垃圾指的是在系统运行过程当中所产生的一些无用的对象,这些对象占据着一定的内存空间,如果长期不被释放,可能导致OOM(堆溢出) ...

  2. Xamarin如何生成Android项目的APK

    Xamarin如何生成Android项目的APK 首先需要选择Release模式生成项目.然后从“生成”菜单中选择Export Android Package命令,就可以导出APK包.APK保存在An ...

  3. DFS HDOJ 2181 哈密顿绕行世界问题

    题目传送门 题意:中文题面 分析:直接排完序后DFS.这样的题以后不应该再写题解的. #include <bits/stdc++.h> using namespace std; vecto ...

  4. 简单几何(圆与多边形公共面积) UVALive 7072 Signal Interference (14广州D)

    题目传送门 题意:一个多边形,A点和B点,满足PB <= k * PA的P的范围与多边形的公共面积. 分析:这是个阿波罗尼斯圆.既然是圆,那么设圆的一般方程:(x + D/2) ^ 2 + (y ...

  5. LCS(打印全路径) POJ 2264 Advanced Fruits

    题目传送门 题意:两个字符串结合起来,公共的字符只输出一次 分析:LCS,记录每个字符的路径 代码: /* LCS(记录路径)模板题: 用递归打印路径:) */ #include <cstdio ...

  6. UVa11324 The Largest Clique(强连通分量+缩点+记忆化搜索)

    题目给一张有向图G,要在其传递闭包T(G)上删除若干点,使得留下来的所有点具有单连通性,问最多能留下几个点. 其实这道题在T(G)上的连通性等同于在G上的连通性,所以考虑G就行了. 那么问题就简单了, ...

  7. POJ2553 The Bottom of a Graph(强连通分量+缩点)

    题目是问,一个有向图有多少个点v满足∀w∈V:(v→w)⇒(w→v). 把图的强连通分量缩点,那么答案显然就是所有出度为0的点. 用Tarjan找强连通分量: #include<cstdio&g ...

  8. 斐波那契数[XDU1049]

    Problem 1049 - 斐波那契数 Time Limit: 1000MS   Memory Limit: 65536KB   Difficulty: Total Submit: 1673  Ac ...

  9. Sky数[HDU2097]

    Sky数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  10. AMPPZ2014

    [AMPPZ2014]The Lawyer 记录每天结束的最早的会议以及开始的最晚的会议即可. #include<cstdio> #define N 500010 int n,m,i,d, ...