物聯網安全 物聯網網路技術與安全
標題 物聯網網路架構與技術 物聯網短距離無線技術:BLE 物聯網性短距離無線技術:IEEE 802.15.4 物理層、連結層 安全 物聯網性短距離無線技術:IEEE 802.15.4 拓撲類型 安全性 物聯網短距離無線技術:IEEE 802.15.6 https://en.wikipedia.org/wiki/Internet_of_Things
物聯網網路架構(1/2) 物聯網設備透過鏈結2與周遭設備交換資訊 物聯網設備透過鏈結1將資訊回傳
物聯網網路架構(2/2) 當地的短距離傳輸 與基地台的長距離傳輸 物聯網設備之間的通訊 物聯網設備與和合作節點(例如手機)的通訊 交換當地的相關資訊達成合作感測(Collaborative Sensing) BLE NFC 802.15.4 與基地台的長距離傳輸 物聯網設備將感測資料回傳到應用伺服器 2G/3G/4G/5G 電信網路 WiFi相關技術
BLE(1/2) 定義與目的 主要特性: 用於短距離通訊的無線技術 用於取代連結攜帶性之間的實體連線 可在全球運作 穩健性(Robustness) 低功耗 低成本
BLE(2/2) 藍牙核心規範 v4.0 兩個主要配置: 基本速率 (BR) 低功耗 (LE) 可選的增強數據速率(EDR)和交替的MAC和PHY(AMP)的擴展 低功耗 (LE) 更低的功耗:設備使用鈕扣電池即可運作 降低複雜性 成本較低 較低的數據速率
BLE基本概念 每一件事都是為最低功耗進行優化 設計用於發送小數據 短封包降低發射峰值電流 短封包減少接收時間 減少射頻(RF)通道,以改善發現和連接時間 簡易狀態機 單一協議 設計用於發送小數據 數據可通過本地事件觸發 數據可以在任何時間由客戶端讀取
BLE裝置模式 雙模式 單模式 藍牙 BR/EDR and LE 任何現有的BR/EDR在任何實後皆可使用 僅實現藍牙低功耗(BLE) 將用於新設備與應用
BLE協議 細節參考: http://thinkingiot.blogspot.tw/2015/03/bluetooth-low-energy-developers_19.html
物理層(1/2)
物理層(2/2) 2.4 GHz ISM頻段 1Mbps高斯頻移鍵控(GFSK) 40個通道以2 MHz為間距
物理層–通道(1/2) 兩個型態的通道 三個廣告通道傳輸信號(Signal) 兩個資料通道傳輸資料
物理層–通道(2/2) 廣告通道設計為避免802.11的最常用1,6,11
連結層
連結層–狀態機 運作的狀態與角色
連結層–網路拓樸(1/3) 星狀拓樸 Master可以有多個連結層連結 Slave只能擁有一個連結層連結
連結層–網路拓樸(2/3) 發起連結請求 Master可以同時是Scanner和Master Master可以同時是initiator和Master
連結層-網路拓樸(3/3) Master和Slave可以都作為Advertiser 只有廣告事件不會導致Slave
連結層–通訊流程(1/5) 不同模式下的BLE: 原圖 D_M_B.png Device A – Slave Device B – Master
連結層–通訊流程(2/5) 未連結通訊
連結層–通訊流程(3/5) 連結建立
連結層–通訊流程(4/5) 已連結通訊 主要參數 Connection Interval : 多久開始連結事件 Slave Latency : Slave可以選擇不要回應Master要求的次數 Supervision Timeout : 藉由最後交換數據的時間來確認連結是否中斷 Conditions : SupervisionTimeout > (1+SlaveLatency) ∗ (ConnectionInterval)
連結層–通訊流程(5/5) 已連結通訊
連結層–封包格式 用於廣告與數據通道的封包 Preamble 存取地址(Access Address) 封包數據單位 頻率同步(Frequency Synchronization),符號定時估計(symbol timing estimation) 存取地址(Access Address) 廣告封包 : 固定為0x8e89bed6 數據封包 : 每個不同的連結層連線擁有不同的位置 封包數據單位 基於數據包類型的定義
主機控制器接口(HCI)(1/2)
主機控制器接口(HCI)(2/2) HCI提供統一的訪問藍牙控制器的功能界面的方法(命令物理層和連結層、訪問硬體狀態、控制寄存器) 可選的接口(SPI、USB、etc…) 實現獨立主機(Host)和控制器(Controller)的可能性 不同子系統的互通性
L2CAP– 邏輯鏈路控制和適配協議(1/2)
L2CAP– 邏輯鏈路控制和適配協議(2/2) L2CAP為上層提供數據封裝服務,允許邏輯上的端到端數據通信 多協議功能 分段和重組 每個通道的流量控制和重傳
ATT–屬性協議(1/3)
ATT–屬性協議(2/3) 屬性(Attributes)就是資料 屬性公開數據在遠程設備上 數值代表的意義(UUID),權限(讀/寫),藉由handle可以被定址 屬性公開數據在遠程設備上 ATT是一個伺服器(Server)和一個客戶端(Client)之間點對點的協議 伺服器:包含屬性,接收要求,執行,回應,指定數值 客戶端:發送要求,下指令,等待回復,確認指定的值
ATT–屬性協議(3/3) 屬性操作 推(Push):當它更改或按照配置時,服務器將數據發送給客戶端 拉(Pull):當客戶端需要數據時,從伺服器上要求數據 設定(Set): 配置伺服器 廣播(Broadcast):伺服器週期性地廣播數據(使用連結層廣告PDU) 取得(Get):客戶端的要求屬性的handles和UUID去發現伺服器所提供的服務
GATT– 通用屬性配置文件(1/2)
GATT– 通用屬性配置文件(2/2) GATT的設計是由一個應用程序或另一個配置文件使用 屬性都集中在服務 service = 數據收集及相關行為 characteristic = 在服務中使用的值,以及屬性和描述(如何訪問、顯示和表示)
GAP–通用訪問配置文件(1/2)
GAP–通用訪問配置文件(2/2) 藍牙配置文件定義了藍牙系統每一層所需要的功能和特點 GAP:所有設備實現的基本配置文件 裝置的基本要求 設備發現、連結建立、安全性、認證、關聯模型、服務發現的行為和方法的描述 四個BLE角色: Broadcaster Observer Peripheral Central
設備配置文件(1/2)
設備配置文件(2/2) 配置文件可以在一個層次結構中組織 應用配置文件:上層的配置文件,描述了應用之間的互通性
安全管理協議(1/5)
安全管理協議(2/5) 藍牙低功耗提供 主機和控制器之間的安全功能被分割 竊聽保護 中間人保護 設備隱私 控制器 > 連結層:加密和認證 主機 > SMP:安全協議
安全管理協議(3/5) 加密與認證 AES128 – CCM加密 硬件和軟件信息完整性檢查字段的有效載荷的末尾被包括在每個加密的PDU Bit stream 流程:
安全管理協議(4/5) 定義如何設置安全連結 密鑰管理和交換
安全管理協議(5/5) 隱私 用於防止設備跟踪的功能 兩種型態的位置 隨機位置只知道IRK也能夠被解析 隨機位置可以頻繁的被更換 Public:IEEE MAC 位置 Random:obtained through a hash function from the IRK (Identity Resolving Key) 隨機位置只知道IRK也能夠被解析 隨機位置可以頻繁的被更換
無線個人區域網路 (Wireless Personal Area Network) 定義與目的 傳輸耗電量小 最大傳輸單位(Maximum Transmission Unit)相對較小 低耗電量 成本低 為了讓平常生活中的各種裝置可以互相連結彼此 放在桌子上的裝置 身上攜帶、穿戴的裝置
802.15.4的用途 工業上的控制與應用 無線感測網路 智慧農業 安防系統 智慧電網 接著就講更多關於這個協定可以用在哪方面,例如那張羊的圖就是WSN跟Intelligent agriculture用上了
拓撲類型(1/2) 星狀拓墣 P2P拓墣
拓撲類型(2/2) Mesh網路 他可以組成像這樣的一個MESH網路,但缺點就是增加了message latency
IEEE 802.15.4(1/5) 裝置類型 Full Function Device(FFD) 可與所有類型的裝置連結與溝通 支援完整的協定 Reduced Function Device(RFD) 只能與FFD裝置連結與溝通 較低耗能 只需要最小的硬體支援
IEEE 802.15.4(2/5) 個人區域網路 (PANs) 一群裝置可以被分成好幾個PAN PAN們可以使用同一個頻道 每個PAN都有自己的PAN辨識碼 (PAN Identifier) PAN之間是可以互相溝通的
IEEE 802.15.4(3/5) 協調者(Coordinator) 結點(Node) 每個PAN都會有一個PAN協調者 只能由FFD擔任 負責指派短位址(Short address)給結點(可選) 結點(Node) FFD或RFD 當使用P2P(Peer-to-Peer)模式時,結點必須為FFD
IEEE 802.15.4(4/5) PAN 辨識碼(PAN Identifier) 16位元數字 封包可以藉由指定不同PAN ID來達到與其他PAN溝通的效果(Inter-PAN) 廣播用的PAN ID為0xffff
IEEE 802.15.4(5/5) 位址 每個裝置會有兩個位址 廣播 長位址與短位址可在MAC Header裡面被結合為一 長位址(Long Address):64位元的全域特有ID 短位址(Short Address): 16位元 在與 PAN 連結時由協調者指派 廣播 0xffff可以廣播給一個PAN裡所有結點 長位址與短位址可在MAC Header裡面被結合為一
IEEE 802.15.4架構 MAC Common Part Sublayer(MCPS)、Service Access Point(SAP)以及PHY Data(PD) SAP提供了資料從上層到PHY層的連結 MAC層管理資訊(MAC Sublayer Management Data)以及 PHY層管理資訊(PHY Layer Management Data)會經由 MAC Sublayer Management Entity(MLME)SAP 以及 PLME SAP 傳輸
MAC層(1/3) MAC層提供以下兩種溝通模式 Beacon-Enabled Beaconless PAN 協調者透過傳送 beacon 的方式來與結點同步 結點與協調者使用 CSMA/CA(slotted)來存取頻道 也提供了請求分配頻道資源的方法 因為有Inactive period的設計可以讓裝置較為省電 Beaconless 沒有 beacon 不能有Inactive period 傳送封包都需要爭搶頻道 Unslotted 較為耗電
MAC層(2/3) Beacon with superframe structure 一個beacon包含了:beacon 間隔(BI),superframe 長度 (SD),CAP 長度,CFP 長度
MAC層(3/3) Contention Access Period(CAP) Contention Free Period(CFP) 結點與協調者在此區域需要使用CSMA/CA的方法存取頻道 Contention Free Period(CFP) 此區域中的保證時槽(Guaranteed Time Slots , GTS)會保留給有向協調者要求的結點
PHY層(1/2) 頻段: 2.4 GHz ISM band 915 MHz 868 MHz (Q-QPSK at 250 kb/s) (BPSK at 40 kb/s,ASK at 250 kb/s,Q-QPSK at 250 kb/s) 868 MHz (BPSK at 20 kb/s,ASK at 250 kb/s,Q-QPSK at 100 kb/s)
PHY層(2/2) 資料傳輸率(Data Rate) 最大傳輸單位(MTU) 根據頻段與模式的不同,最大可高達 250 kb/s 如果使用廠商自訂的模式的話,則可更高 (MRF24J40 在Turbo模式下可高達 625 kb/s) 最大傳輸單位(MTU) 127 Bytes(包含標頭檔) 802.15.4g可能會支援2047 byte的MTU 但這需要不同的硬體支援 講一下MTU的概念
安全性(1/2) 預設是NULL(不具安全性) 總共四種封包型態 ACK封包不具安全性保護 其他的封包都可以選擇加密保護或完整性保護 Beacon、Data、ACK、Control packets for MAC ACK封包不具安全性保護 其他的封包都可以選擇加密保護或完整性保護
安全性(2/2) 802.15.4具有以下幾種安全性套件 NULL AES-CTR(只有加密功能,CTR模式) AES-CBC-MAC(只保護MAC,32、64與128位元MAC) AES-CCM(加密與保護MAC, 32、64與128位元MAC) Relay保護
上層協定 ZigBee MiWi Mesh and MiWi P2P 6LoWPAN WirelessHART ISA100.11a IPv6 over 802.15.4 WirelessHART ISA100.11a
ZigBee ZigBee與IEEE 802.15.4 是兩個不一樣的東西
總結 支援 Peer-to-Peer 模式 結點只需要支援最小的硬體要求 設計成能夠支援大型網路 已經有很多上層的協定使用了IEEE 802.15.4
Agenda Introduce to WBAN Purpose of IEEE standard IEEE 802.15.6 Architecture MAC layer PHY layer Summary
無線人體區域網路 (Wireless Body Area Network) 定義與目的 一個有著很多感測器的網路 感測器 監測著不同的生理訊號 在人體內或人體周圍 提供了感測器與處理單元之間的溝通連結 這邊講一下為何可以沒有Wireless前綴以及BAN是由什麼所組成
人體區域網路架構 Hub Nodes Relays BAN的架構是由HUB與Nodes組合而成,而除了one hop之外還可以有relay加入形成two hop 舉個例子來說,比如你的Hub在項鍊上,而你裝在腳上的Node無法有效的傳輸資料到Hub,就可以用Relay
可能的結點位置 項鍊 皮帶 手環 鞋子 人體外 沙發 床邊 這邊就可以用來輔助上一頁,也講一下HUB可以放在哪裡,以及如果不穿在身上,他又可以放哪裡
IEEE 802.15.6 IEEE針對無線人體感測網路提供一個具有以下特性的國際標準: 給那些在人體內和人體外的感測器 短距離 低耗電量 高可靠性無線通訊 給那些在人體內和人體外的感測器 為什麼要有IEEE standard? 是為了給各個感測器提供了一套支援短距離、低功耗、高可靠度的無線通訊標準
IEEE 802.15.6 架構(1/2) 1個MAC加上三種不同的PHY 而15.6的架構如下,MAC層是負責決定如何存取Channel,而PHY層則是負責去存取Channel與偵測Channel是否有人在用,15.6的架構底下包含了三個不同的PHY,可以依據使用情境選用不同的PHY
IEEE 802.15.6 架構(2/2) The logical hub management entity(HME)以及node management entity(NME)彼此之間交換各層的管理訊息 上層來的MAC service data units(MSDUs)經由MAC Service Access Point (SAP) 傳送到MAC層 MAC protocol data units(MPDUs or MAC frames)經由 PHY SAP從MAC層傳送到PHY層 要講的在下一頁
MAC層 MAC層提供了三種不同的溝通模式 Beacon mode with superframes Non-beacon mode with superframes Non-beacon mode without superframes 這邊就是稍微解釋一下,什麼是beacon,beacon裡面包含了superframe的結構定義,下次beacon來的時間等等 以及所謂的EAP那些區域為何,然後這些區域除了RAP以外其他的區塊長度都可以設為0 而Non-Beacon mode在有superframes的情況下,為了界定superframe的時間,還是需要有一個timed frames (T-poll)來告知結點superframe boundaries (這裡都用後兩頁輔助)
隨機存取(1/2) EAP 代表 Emergency Access Period,是給最高優先權封包所使用 RAP 與 CAP 分別代表 Regular Access Period 與 Contention Access Period,是給最高優先權以下的普通優先權封包使用 在 EAP、RAP、與CAP中,有以下兩種存取頻道的方法 CSMA/CA Slotted ALOHA 照上面的講
隨機存取(2/2) 在 Managed access period (MAP)中,如下頁圖所示,Hub 可以 安排預先規劃好的uplink、downlink、bilink時間(Scheduled allocation interval) 提供未預先規劃的傳輸時間規劃(Unscheduled allocation interval) 以Polled allocation interval與Post allocation interval來詢問是否需傳送與提供傳送時間 在 Type I/II 階段中,polling是用來分配資源posting是用以資料傳輸或管理 照上面的講,這裡的resource就是我們的通道使用時間(allocation interval)
CSMA/CA(1/5) 一個 CSMA/CA 時槽的組成如下: pCCATime: carrier sensing 的時間 pCSMAMACPHYTime: MAC 與 PHY層溝通的時間
CSMA/CA(2/5)
CSMA/CA(3/5) CSMA/CA backoff 程序的實際例子
CSMA/CA(4/5) 封包可分為8個優先權 講一下各個優先權的用途
CSMA/CA(5/5) 封包可分為8個優先權
PHY層 PHY層需要負責以下的工作: 開啟與關閉無線電傳送、接收器 Clear Channel Assessment(CCA) 資料傳輸與接收 講一下一個PHY層需要具備的功能
Narrowband PHY(1/2) 802.15.6 Narrowband 可使用較冷門的頻譜 現在NB可以使用的頻段很少人在使用,因此我們會遇到的干擾較少
Narrowband PHY(2/2) 較低的平均與峰值電流 CR2032 can deliver ~20mA peak 與BLE比較起來,15.6所消耗的電量較少,因此可以保留更多電力給感測器的運算上 CR2032 can deliver ~20mA peak
為何不使用Bluetooth LE? 802.15.6 Narrowband 與 BTLE 是針對不同的使用情境設計的 資料量小,而且頻率不高 不是設計用來: 串流或其他需要高資料傳輸率的應用(>20kbps) 需要高可靠性的應用(BTLE 沒有 FEC,且使用 2.4GHz band) 802.15.6 Narrowband 專注在醫療應用上,大多會需要短距離雙向連結。基本上,一個連結至少會有一端是在人體上 是設計用來: 提供高可靠性的無線通訊(FEC & quiet MBAN band) 支援串流 照著說,他們兩個的use case不同
Ultra wideband PHY(1/2) 實作較簡單 訊號強度 對其他醫療裝置會有較小的干擾 這對低耗電來說非常重要 in the order of those used in the MICS band(Medical Implant Devices) 對人體較為安全 對其他醫療裝置會有較小的干擾
Ultra wideband PHY(2/2) 具有兩種模式:預設模式與High Quality of Service(QoS) 模式 預設模式是給醫療與非醫療的應用所使用 High QoS 是給高優先權的醫療應用所使用
Human Body Communication PHY 是設計來藉由觸碰傳遞資訊 與身體接觸的裝置藉由人體傳送訊號到另一個裝置
安全性(1/4) 802.15.6 標準定義了3個安全等級 Level-0:未被保護的通訊 = 不需認證、不具有機密性 (Confidentiality)、完整性(Integrity)、隱私保護機制 Level-1:需要認證(但沒有經過加密) Level-2:需要認證(有加密)
安全性(2/4) 認證過程依賴: Diffie-Helman 金鑰交換程序 技術 沒有預先共享的秘密 有預先共享的秘密(master 金鑰或密碼) 建立秘密(公開金鑰被隱藏或公開)
安全性(3/4) 加密通訊的連結(斷開連結)過程
安全性(4/4) 非加密通訊的連結(斷開連結)過程
總結 支援Quality of Service(QoS) 支援MICS band 支援Emergency Communications 支援Relay 可大可小的訊號強度管理 良好的共存與有效的減低干擾