據我所知,在BLE僅安全連接(SCO)模式下,兩個配對設備之間的所有傳入和傳出流量都是經過認證和加密的。然而,BLE也允許為屬性分配個人訪問權限。
因此,我想知道如果兩個設備在SCO模式下進行通信,BLE規范是否允許存在既不需要認證也不需要加密的屬性。舉個具體的例子。設備A能否擁有一個不需要安全的屬性,而設備B能否在不需要安全的情況下訪問該屬性?
uj5u.com熱心網友回復:
請注意,僅安全連接模式只是GAP中的一個高級 "概念",在ATT/GATT協議層面上并不真正存在。
這就是規范中關于它的全部內容(藍牙核心規范v5.3,Vol 3 C部分(GAP)):
10.2.4僅安全連接模式
一個設備可能處于僅安全連接模式。當處于僅安全連接模式時,只應使用安全模式1級4,但只要求安全模式1級1的服務除外。
只有當遠程設備支持LE安全連接并使用驗證配對時,設備才應接受需要安全模式1、4級的服務的新傳出和傳入服務級別連接。
模式1級別1意味著未加密、未認證。模式1第4級意味著使用LE安全連接和認證配對,也就是說,不是 "LESC Just Works"。
因此,為了聲稱您的設備處于SCO模式,您可以混合使用完全不需要任何加密的服務和只允許在使用認證的LESC時使用的服務。不需要任何加密的服務可以在任何時候使用,無論是在鏈接加密時還是在未加密時。其他的服務只能在使用認證的LESC對連接進行加密時才能使用。
如果我的理解是正確的,因此你不能有一個具有多個特征的GATT服務,例如一個特征可以在不加密的情況下訪問,而另一個特征只能在加密的情況下訪問。在這種情況下,你需要把它分成兩個服務,一個是沒有加密要求的服務,一個是有認證的 LESC 作為要求的服務。
無論如何,"SCO 模式 "只是抽象的術語,除了對服務結構進行分類外,它在實踐中沒有任何意義。基本上,你可以用它來做的是在你的產品上列印一個標簽 "經認證支持SCO模式"。它也可以作為藍牙堆疊中的一個標志,你可以設定它來驗證本地GATT db是否滿足SCO的要求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/315105.html
標籤:
上一篇:json模式驗證不強制型別
下一篇:在tkinter中管理框架
