主頁 >  其他 > BLE 技術(五)--- Generic Access Profile + Security Manager(Core_v5.2)

BLE 技術(五)--- Generic Access Profile + Security Manager(Core_v5.2)

2020-09-18 19:56:29 其他

文章目錄

  • 前言
  • 一、GAP Roles and Requirements
  • 二、Operational Modes and Procedures
    • 2.1 Broadcast mode and Observation procedure
    • 2.2 Discovery modes and procedures
    • 2.3 Connection modes and procedures
    • 2.4 Bonding modes and procedures
    • 2.5 Periodic advertising modes and procedure
    • 2.6 Isochronous broadcast modes and procedures
  • 三、GAP Security Aspects
    • 3.1 Security Manager Protocol
    • 3.2 GAP security modes and procedures
  • 更多文章:

前言

前篇博文鏈路層廣播通信與連接通信介紹了藍牙協議在鏈路層是怎樣實作廣播通信與連接通信的,鏈路層可以說是藍牙控制器部分的協議實作主體,通過藍牙鏈路層提供的報文就可以實作藍牙的廣播通信與連接通信功能,

對于藍牙控制器與主機分體設計的方案,藍牙控制器芯片與藍牙主機芯片之間通過標準的HCI 命令互動資料,這里的HCI 命令實際上就是對藍牙鏈路層報文的簡單封裝,開發者不管是操作藍牙鏈路層報文還是HCI 命令,都不直觀方便,會大幅降低藍牙開發的效率,
BLE Protocol stack layer
藍牙主機部分為開發者提供了Profile 規范,比如GAP(Generic Access Profile) 和GATT(Generic Attribute Profile),讓藍牙應用開發更簡單高效,兩個藍牙設備之間要想實作通訊,首先應能夠發現彼此、建立連接,甚至完成系結,這些程序都是由GAP 規范定義的,開發者可以通過GAP 實作待通訊藍牙設備間的訪問控制,

一、GAP Roles and Requirements

要理解BLE,首先應了解兩個藍牙設備之間如何能發現對方、與對方協作以及不斷找到對方并彼此連接,這些都在GAP 中定義,GAP 為BLE 定義了四種主要角色:

  • Broadcaster role:發送advertising events 或 periodic advertising events 的設備,Bluetooth 5.2 版本設備還可以發送Broadcast Isochronous Stream (BIS) events,處于廣播者角色的設備應具有發射機功能,也可以具有接識訓功能;
  • Observer role:接收advertising events 或 periodic advertising events 的設備,Bluetooth 5.2 版本設備還可以接收Broadcast Isochronous Stream (BIS) events,處于觀察者角色的設備應具有接識訓功能,也可以具有發射機功能;
  • Central role:在LE 連接建立階段,支持中央角色的設備將處于“Initiating” 狀態以發起連接,當LE 連接建立后,處于中央角色的設備將處于“Connection” 狀態的Master 角色,處于中央角色的設備應同時具有發送機和接識訓功能;
  • Peripheral role:在LE 連接建立階段,支持外圍角色的設備可以接受來自中央角色設備的連接請求,當LE 連接建立后,處于外圍角色的設備將處于“Connection” 狀態的Slave 角色,處于外圍角色的設備應同時具有發送機和接識訓功能,

如果控制器支持,一個設備可以同時以多個GAP角色運行,比如既可以是Broadcaster role,又可以同時為Peripheral role,

為了便于說明低功耗藍牙的作業原理,下面給出一個典型的用戶場景:

一用戶剛購買一個支持BLE 的心率帶,可以通過一部支持BLE 的智能手機連接該心率帶設備,并通過特定的APP 訪問該藍牙心率帶采集到的心率值,

用戶打開心率帶包裝并啟動設備,該藍牙心率帶將處于Broadcaster role;打開智能手機藍牙功能并掃描或添加設備,該智能手機將處于Observer role,智能手機會掃描到附近的多個藍牙設備,如果藍牙心率帶離手機比較近,將會在藍牙設備串列頂部看到剛購買心率帶的設備名,甚至顯示該心率帶的圖示,用戶選擇要連接的心率帶設備,智能手機將會向心率帶設備發送連接請求報文(如果待連接設備需要安全認證則輸入說明書中給定的密碼即可),心率帶設備接受連接請求后雙方都進入連接狀態,此時智能手機處于Central role,心率帶設備處于Peripheral role,

智能手機與心率帶設備建立連接后,Central role 將會發現Peripheral role 支持的服務串列,以便更方便的使用外圍設備公開的各種服務,比如心率帶設備支持的讀取當前心率值的服務,通過特定的APP就可以在智能手機上訪問心率帶設備的當前心率值,為了實作設備間高效及時的資料傳輸,不僅Central role 可以主動訪問Peripheral role 公開的服務資料,Peripheral role 還可以主動通知Central role 自身服務資料的更新,為Peripheral role 公開服務開發的專有APP 還可以利用服務資料擴展新的功能(如果需要Peripheral role 提供更多的服務資料,則可以增加Peripheral role 公開的服務),比如利用一段時間持續采集的心率值繪制心電圖,

如果該心率帶設備后續有很大可能再次連接該智能手機,雙方在首次建立連接后可以建立系結關系,當心率帶設備與智能手機完成系結后,智能手機內將保存一部分該心率帶設備的資訊,下次啟動心率帶設備并打開智能手機藍牙功能后,雙方可以自動快速建立連接(使用High duty cycle connectable directed advertising,已完成系結設備不需要再次進行安全認證),如果有通信加密需求還可以對通信鏈路進行加密,

上面的應用場景中,可以分為兩部分理解:一部分是手機發現心率帶藍牙設備并建立連接的程序(包括系結程序和重連程序),該部分主要在GAP 中定義;另一部分是手機發現心率帶藍牙設備公開的服務并完成服務資料傳輸的程序,該部分主要在GATT 中定義,本文主要介紹GAP 相關規范,限于篇幅將在下一篇博文介紹GATT 相關規范,

GAP 規范比較靠近用戶層,主要由鏈路層實作,前面已經介紹過主要的四種GAP 角色(也即Broadcaster、Observer、Central、Peripheral),每個GAP 角色對物理層和鏈路層功能的合規性要求如下:
GAP compliance requirements
每個GAP 角色對物理層的功能要求比較簡單,也就是支持Transmitter 或Receiver 功能;對鏈路層的功能要求比較復雜,主要包括鏈路層States、Advertising event types、Scanning type、Link Layer control procedures、Broadcast control procedures 等部分,這些在前篇博客鏈路層廣播通信與連接通信中都有介紹過,

二、Operational Modes and Procedures

GAP 規范中有兩個基本概念用來描述藍牙設備的行為,即模式Mode 和程序Procedure:

  • Mode:當一個設備被配置為按照某種方式作業一段較長的時間,則稱該設備正處于某種模式,比如當一個設備正在進行廣播時,稱其為“廣播模式”;
  • Procedure:當一個設備被配置為在某一段有限的時間內執行某種特定的操作時,則稱該設備正執行某個程序,比如當一個設備正在找尋廣播者時,稱其為“觀察程序”,觀察程序往往持續一段較短的時間,用以構建用戶界面或者尋找需要的指定資訊,

Bluetooth 5.2 版本的GAP 定義了如下幾種模式與程序:

  • Broadcast mode and Observation procedure
  • Discovery modes and procedures
  • Connection modes and procedures
  • Bonding modes and procedures
  • Periodic advertising modes and procedure
  • Isochronous broadcast modes and procedures

上述模式和程序中的每一個組合彼此獨立,且又密切相關,藍牙設備也可以同時執行幾種不同的模式和程序(對于大多數藍牙設備的彼此通信,模式和程序的組合是必需的),

2.1 Broadcast mode and Observation procedure

廣播模式與觀察程序允許兩個藍牙設備使用廣播事件以單向無連接方式進行通信,下表定義了Broadcaster role 與Observer role 在廣播模式與觀察程序組合中的要求:
Broadcast mode and observation procedure requirements
廣播模式與觀察程序是廣播通信的典型組合,Broadcaster role 處于Broadcast mode,Observer role 處于Observation procedure,一個廣播者可以向一個或多個主動偵聽的觀察者通過廣播信道單向發送廣播報文,由于廣播報文沒有任何確認程序,無法保證觀察者接收到的廣播報文是正確的,因此廣播通信程序是不可靠的,

2.2 Discovery modes and procedures

在GAP 規范中,只有Peripheral role 才允許被發現,Central role 則執行發現外圍設備的程序,為了提供不同的可發現性,外圍設備提供了三種作業模式:不可發現模式、有限可發現模式、常規可發現模式,為了應對不同的可發現性,中央設備提供了兩種發現程序:有限發現程序、常規發現程序,中央設備和外圍設備都提供了一個名稱發現程序,
Device Discovery requirements

  • Non-Discoverable mode:正在執行常規發現程序或有限發現程序的任何設備都不會發現以不可發現模式配置的設備,處于不可發現模式的外圍設備可以發送廣播事件,如果設備發送廣播事件,則不得在Flags AD型別中設定“LE General Discoverable Mode”標志或“LE Limited Discoverable Mode”標志;
  • Limited Discoverable mode:配置為有限可發現模式的設備可以由執行有限或常規發現程序的設備在有限時間段TGAP(lim_adv_timeout)內發現,處于有限可發現模式的外圍設備應發送廣播事件,且應在Flags AD型別中設定“LE Limited Discoverable Mode flag” 為1,“LE General Discoverable Mode flag” 為0;
  • General Discoverable mode:執行常規發現程序的設備可以無限期的發現以常規可發現模式配置的設備,但執行有限發現程序的設備不會發現處于常規可發現模式的設備,處于常規可發現模式的外圍設備應發送廣播事件,且應在Flags AD型別中設定“LE Limited Discoverable Mode flag” 為0,“LE General Discoverable Mode flag” 為1;
  • Limited Discovery procedure:執行有限發現程序的中央設備只能發現配置為有限可發現模式的外圍設備;
  • General Discovery procedure:執行常規發現程序的中央設備可以發現配置為常規可發現模式或有限可發現模式的外圍設備;
  • Name Discovery procedure:執行名稱發現程序的設備(可以是中央設備,也可以是外圍設備)可以發現對端設備的名稱,

處于Limited Discoverable 或General Discoverable 模式的設備發送的廣播報文中,除了配置AD(Advertising Data) Type Flags 欄位的可發現性標識外,為了提高發現效率,還應該在廣播資料中包含下列有用資訊:

  • TX Power Level AD type:用于計算路徑損耗,判斷距離,實作發現設備串列的排序;
  • Local Name AD type:用于顯示設備的命令;
  • Service UUIDs AD type:可根據設備支持的服務對設備進行過濾,

上面談到的這些AD Type 欄位都屬于廣播報文資料的一部分,前篇博文鏈路層空口報文設計已經介紹了鏈路層的廣播報文結構,我們知道分層協議報文是層層封裝的,從上層至下層要逐層添加相應的報文頭部,更上層Host 部分的Advertising, Periodic Advertising, and Scan Response data 都屬于鏈路層廣播報文中的AdvData field,或者鏈路層擴展廣播報文中的ACAD(Additional Controller Advertising Data) field,藍牙Host 部分Advertising, Periodic Advertising, and Scan Response data 的格式如下:
Advertising and Scan Response data format
藍牙Host 中廣播或掃描相應報文資料分為重要部分和非重要部分,其中重要部分包含一系列AD structures,每個AD structure 包含Length 欄位、AD Type 欄位、AD Data 欄位 三部分,前面介紹的Flags、TX Power Level、Local Name、Service UUIDs 欄位都是屬于AD Type欄位的內容,下面給出一些常用的AD Types 欄位供參考:
AD Types

2.3 Connection modes and procedures

在GAP 中,只有Peripheral role 才可使用可連接模式,Central role 則執行連接建立程序, 就可連接性而言,可連接的外圍設備可處于下列三種模式:不可連接模式、定向可連接模式、不定向可連接模式,對中央設備而言,存在四種不同的連接建立程序:自動、常規、選擇、定向連接建立程序,
Connection modes and procedures requirements

  • Non-connectable mode:處于不可連接模式的設備不允許建立連接,但允許執行廣播模式和觀察程序,處于該模式的設備允許發送ADV_NONCONN_IND 或 ADV_SCAN_IND 廣播報文;
  • Directed connectable mode:處于定向可連接模式的外圍設備可以通過ADV_DIRECT_IND 廣播報文通告中央設備,并接受來自已知中央設備的連接請求,該請求會執行自動連接建立程序或常規連接建立程序;
  • Undirected connectable mode:處于不定向可連接模式的外圍設備可以通過ADV_IND 廣播報文通告中央設備,并接受來自執行自動連接建立程序或常規連接建立程序的設備的連接請求;
  • Auto connection establishment procedure:執行自動連接建立程序的中央設備通常將系結過的設備添加進白名單,當發現一個或多個處于定向可連接模式或不定向可連接模式的外圍設備,且該設備在白名單中,將自主向這些設備發起連接請求以建立連接,通過自動連接建立程序建立的連接只能使用一套基本的連接引數,連接建立成功后雙方可以更新連接引數;
  • General connection establishment procedure:執行常規連接建立程序的中央設備通常不使用白名單,當發現一個或多個處于定向可連接模式或不定向可連接模式的外圍設備,將使用定向連接建立程序向用戶選擇的設備發起連接請求以建立連接;
  • Selective connection establishment procedure:執行選擇連接建立程序的中央設備首先將選定的待連接設備添加進白名單,而后啟用白名單并開始掃描,當發現一個或多個處于可連接模式且在白名單中的外圍設備,將使用定向連接建立程序向這些設備發起連接請求以建立連接,中央設備可以查找并使用外圍設備期望的連接引數發起連接請求;
  • Direct connection establishment procedure:執行定向連接建立程序的中央設備可以忽略白名單,直接向指定外圍設備發起連接請求以建立連接,中央設備可以使用外圍設備建議的連接引數發起連接請求;

connection establishment procedure

  • Connection parameter update procedure:連接引數更新程序允許中央設備或外圍設備更新已建立的ACL連接的引數,
  • Terminate connection procedure:終止連接程序允許中央設備或外圍設備終止與對等設備的連接,如果存在CIS 連接,則應先終止CIS 連接,然后再終止ACL 連接;
  • Connected Isochronous Stream Central Establishment procedure:執行CIS 連接建立程序的中央設備可以使用主機選擇的引數向外圍設備發起建立CIS 的請求,中央設備與外圍設備可以使用已建立的CIS 傳輸同步資料流;
  • Connected Isochronous Stream Peripheral Establishment procedure:執行CIS 連接建立程序的外圍設備可以接受或拒絕中央設備發起的建立CIS 請求;
  • Connected Isochronous Stream Terminate procedure:CIS 終止程序允許中央設備或外圍設備終止與對等設備直接的CIS,當中央設備或外圍設備執行終止ACL 連接程式時,若存在CIS 則需先終止CIS 連接,

2.4 Bonding modes and procedures

系結允許兩個連接的設備之間交換或存盤安全性與身份資訊,以創建可信任的關系,像前面介紹的可發現性和可連接性類似,系結也定義了相應的模式與程序,外圍設備與中央設備之間的系結模式只有兩種:不可系結模式、可系結模式,程序也只有一種:系結程序,
Bonding compliance requirements

  • Non-Bondable mode:處于不可系結模式的設備不允許與對等設備創建系結,且應在配對程序中將Bonding_Flags設定為“ No Bonding”,雙方不得交換或存盤系結資訊;
  • Bondable mode:處于可系結模式的設備允許與處于可系結模式的對等設備創建系結,且應在配對程序中將Bonding_Flags設定為“ Bonding”,雙方交換并視情況存盤密鑰等系結資訊;
  • Bonding procedure:當非系結設備嘗試訪問需要系結的服務時可以執行系結程序,執行系結程序的設備應發起配對并設定Bonding_Flags,如果對等設備是可系結的則回復回應并同樣設定Bonding_Flags,一切順利的話,將在連接鏈路加密后進行密鑰的分發與存盤,也即交換并存盤系結資訊,

The bonding procedure

2.5 Periodic advertising modes and procedure

周期廣播模式和程序允許兩個或多個設備使用擴展廣播事件和周期廣播事件以單向無連接方式進行通信,下表定義了各GAP role 在周期廣播模式和程序中的要求:
Periodic advertising modes and periodic advertising procedure requirements

  • Periodic Advertising Synchronizability mode:處于周期性廣播同步模式的設備可以在擴展廣播事件中發送周期性廣播序列的同步資訊,處于該模式的設備也處于周期性廣播模式;
  • Periodic Advertising mode:處于周期性廣播模式的設備可以在確定時間間隔內,使用周期性廣播同步資訊中指定的跳頻序列發送周期性廣播事件;
  • Periodic Advertising Synchronization Establishment procedure:執行周期性廣播同步建立程序的設備可以掃描包含有關周期性廣播序列的同步資訊的廣播事件,也可以通過現有連接來接收周期性廣播同步資訊,當設備接收到用于周期性廣播同步的同步資訊時,可以使用在周期性廣播同步資訊中指定的時間間隔和跳頻序列來偵聽周期性廣播事件;
  • Periodic Advertising Synchronization Transfer procedure:執行周期性廣播同步傳輸程序的設備可以在現有連接上發送有關周期性廣播序列的同步資訊,

2.6 Isochronous broadcast modes and procedures

等時同步廣播模式和程序允許兩個或多個設備使用擴展廣播事件、周期性廣播事件、等時同步事件,以單向、無連接的方式進行通信,下表定義了Broadcaster role 和 Observer role 支持這些模式和程序的要求:
Isochronous Broadcast modes and procedure requirements

  • Broadcast Isochronous Synchronizability mode:處于廣播等時同步模式的設備可以通過AUX_SYNC_IND 廣播報文中的ACAD欄位發送BIGInfo,處于該模式的設備也處于廣播等時廣播模式;
  • Broadcast Isochronous Broadcasting mode:處于廣播等時廣播模式的設備可以在BIG 的BIS 子事件中發送加密或未加密的廣播等時同步資料流;
  • Broadcast Isochronous Synchronization Establishment procedure:執行廣播等時同步建立程序的設備應首先執行周期性廣播同步建立程序,并接收廣播等時同步資訊BIGInfo,當完成BIG 中BIS 的建立后,Broadcaster 和 Observer 之間就可以進行單向、無連接的等時同步通信了;
  • Broadcast Isochronous Channel Map Update procedure:廣播等時信道映射更新程序允許Broadcaster 使用和發送BIG 的新信道映射,或者允許Observer 接收和使用BIG 的新信道映射;
  • Broadcast Isochronous Terminate procedure:廣播等時終止程序允許Broadcaster 終止BIG,或者允許Observer 終止與BIG 的同步,

三、GAP Security Aspects

在介紹GAP 安全模式與程序之前,先介紹下BLE 的Security Manager Protocol,從下圖可以看出GAP 安全模式與程序主要靠SM 協議來承載:
Relationship of the Security Manager to the rest of the LE Bluetooth architecture

3.1 Security Manager Protocol

在無線通信中,如何保證資訊的安全可靠傳輸一直是不可或缺的一環,BLE 的通信安全主要由Security Manager Protocol (SMP) 保證,保證通信安全最簡單直接的方法是對資訊進行加密傳輸,BLE 使用的加密演算法是AES-CMAC(可參考博文:TLS 加密原理),AES-CMAC 加密演算法可以保證通信的機密性和完整性,但共享密鑰的生成和分發如何解決呢?

BLE 借鑒了TLS 安全傳輸協議的設計思想,共享密鑰的交換也使用了Diffie-Hellman 密鑰交換演算法,為了提高密鑰交換效率,也引入了橢圓曲線運算,所以BLE 使用的密鑰交換演算法是ECDH(Elliptic Curve Diffie-Hellman,可參考博文:TLS 加密原理),BLE 建立安全鏈路前的握手程序稱為配對(Pairing),配對程序如下(可參考博文:TLS 握手程序):
LE pairing phases
從上圖可知,BLE 排隊程序主要有三個階段:

  • Phase 1(Pairing Feature Exchange):通過Pairing Request與Pairing Response報文交換I/O 能力、OOB身份認證資料可用性、身份認證請求(包括是否系結、是否請求中間人攻擊防護、是否支持安全連接等)、最大密鑰大小、生成/分發哪些密鑰等配對資訊,I/O 能力和OOB資料也是跟身份認證相關的,跟TLS 遠程網路協議需要數字證書驗證身份不同的是,藍牙設備一般都是近場局域網通信,可以直接由使用者辨識通信設備的身份,受限于藍牙設備的I/O 能力,首次配對可以通過掃描MAC 地址、輸入配對密鑰、OOB資料傳輸(比如NFC 通信)等方式驗證要連接的藍牙設備身份,并交換配對資訊(當重新連接已系結過的設備時,由于雙方都保存有之前的配對資訊,可以直接通過一個簽名資料完成身份驗證,比首次連接更簡單些);
    Pairing Request/Response packet
  • Phase 2(Long Term Key Generation):最初每個設備都會生成自己的ECDH public-private key pair,要配對的設備雙方會在Phase 1 交換public key,然后在本階段通過ECDH 密鑰交換演算法生成共享長期密鑰LTK(Long Term Key) ,通信雙方可使用LTK 加密在連接鏈路上傳輸的資訊,這就完成了安全加密連接的建立(在重新連接已系結過的設備后,可以直接用LTK 加密,不需要再執行完整的配對程序);
  • Phase 3(Transport Specific Key Distribution):雙方建立安全加密通信鏈路后,還需要生成并分發一些特殊的密鑰,比如IRK(Identity Resolving Key) 和CSRK(Connection Signature Resolving Key),其中IRK 可用于決議Resolvable Private Address(由亂數和IRK生成的隨機設備地址,只能被擁有相同IRK 的設備掃描到,防止被未知設備掃描和跟蹤),CSRK 可用于決議連接對端設備生成的資料簽名(當重新連接已系結過的設備時,可以通過驗證配對資訊的資料簽名,直接完成身份認證),如果還需要后續重新建立安全連接,則可以將配對資訊(包括LTK、IRK、CSRK 等密鑰資訊)保存到本地安全資料庫中,這個程序稱為系結(當重新連接已系結過的設備時,只需驗證配對資訊,不需要再執行完整的配對程序),

3.2 GAP security modes and procedures

在GAP 規范中,也定義了與ACL 連接或廣播的安全性相關的模式和程序如下(與CIS 安全相關的模式/程序與其關聯的ACL 中使用的模式/程序相同):
Requirements related to security modes and procedures

  • LE Security mode 1:主要用于在建立連接的Peripheral 和Central 之間,提供不同級別的資訊加密,該模式為連接加密提供四個等級:無身份認證且無加密、有加密但未經身份認證的配對、有加密且已經過身份認證的配對、使用128位強度加密且已經過身份認證的安全連接配對,這四個等級的安全性逐級增強;
  • LE Security mode 2:主要用于在建立連接的Peripheral 和Central 之間,提供不同等級的資料簽名,該模式為資料簽名提供兩個等級:帶有資料簽名但未經身份認證的配對、帶有資料簽名且已經過身份認證的配對,這兩個等級的安全性逐級增強;
  • LE Security mode 3:主要用于在同步廣播的Broadcaster 和Observer 之間,提供不同等級的BIS 同步廣播資訊加密,該模式為BIS 資訊加密提供三個等級:無身份認證且無加密、使用未經過身份認證的Broadcast_Code來加密在BIS中傳輸的資料、使用已經過身份認證的Broadcast_Code來加密在BIS中傳輸的資料,這三個等級的安全性逐級增強;
  • Authentication procedure:執行認證程序的設備要求對端設備提供身份認證資訊,通過身份認證后才能繼續安全通信,防止出現中間人攻擊,Central 與Peripheral 之間發起服務請求和回應服務請求時的身份認證程序如下圖示:
    Flow chart for a local device issuing and handling a service request
  • Authorization procedure:執行授權程序的設備可以授予對端設備訪問某個服務的權限,只有對端設備擁有相應的權限才能繼續訪問對應的服務;
  • Connection data signing procedure:執行連接資料簽名程序的設備會為與其連接的對端設備生成一個新的連接簽名決議密鑰CSRK,并通過加密鏈路將其發送給對端設備,以便對端設備使用CSRK 驗證來自本設備的簽名資料;
  • Authenticate signed data procedure:執行認證資料簽名程序的設備使用CSRK 驗證來自對端設備的簽名資料,從而驗證簽名資料發送方的身份,防止第三方偽裝身份發送虛假訊息,資料簽名常用于只需要身份認證不需要加密的連接通信中,比如需要快速建立連接和快速資料傳輸的服務(資料加密程序比資料簽名程序更慢);
  • Encryption procedure:執行加密程序的設備可以對當前連接進行加密,為連接通信提供機密性和完整性,

更多文章:

  • 《BLE 技術(四)— Broadcast communication + Connection communication (Core_v5.2)》
  • 《Bluetooth Core Specification_v5.2》
  • 《BLE技術揭秘》
  • 《藍牙協議分析》

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/76209.html

標籤:其他

上一篇:【Java并發編程】volatile(一):執行緒安全三要素

下一篇:阿里云發布第一臺云電腦《無影》,只需連接一塊螢屏,就可以進入專屬云電腦桌面

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more