> For the complete documentation index, see [llms.txt](https://xiang753017.gitbook.io/zixiang-blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xiang753017.gitbook.io/zixiang-blog/security/ou-kuai-lian-wu-lian-wang-jia-gou-jie-jue-na-xie-an-quan-xing-yi-ti.md).

# 區塊鏈物聯網架構 解決哪些安全性議題？

**本篇會列舉出 IoT可能面對的安全性議題，並且闡述傳統和區塊鏈架構之間的差別與使用時機。**

物聯網的興起已經是種趨勢，2022 年全球可能會有20.4 billion物聯網裝置，也因著區塊鏈技術的興起，解決許多傳統必須考慮的安全性議題。尤其在middleware layer、network layer 的攻擊。

在過去物聯網裝置都是直接連上雲端裝置開始，漸漸的使用 fog架構因應同性質裝置的互連。而未來的使用場景即將是不同種類的裝置互連的使用場景。如圖1: Present IoT Architecture。

![Present IoT Architecture](https://cdn-images-1.medium.com/max/800/1*mR74mEpkEnUECXDYlA1KNA.png)

在未來的使用場景，各類裝置間的互連的需求下，因此在安全性議題也日益重要。本篇將會探討近年提出的「區塊鏈應用於物聯網的架構」，是否可能為未來的主流架構。

### IoT 架構面臨的安全性挑戰

![Types of attacks on IoT](https://cdn-images-1.medium.com/max/800/1*GqnW3fWy7-syO7f60zcEvw.png)

* Sensor layer: 指的是感測器層

| 編號 | 攻擊手法                            | 說明                                                            |
| -- | ------------------------------- | ------------------------------------------------------------- |
| 1  | Node Capturing                  | 透過惡意節點嘗試取、代控制既有的節點                                            |
| 2  | Malicious Code Injection Attack | 埋入惡意程式碼入記憶體，使得節點執行不該執行的或者企圖存取整個IoT系統                          |
| 3  | False Data Injection Attack     | 注入錯的資料使裝置看起來像是故障一樣                                            |
| 4  | Side-Channel Attacks            | 並非直接攻擊節點，而是攻擊環境。ex 電壓...                                      |
| 5  | Eavesdropping and Interference  | 竊聽裝置的資料，如在autth階段、資料傳輸階段                                      |
| 6  | Sleep Deprivation Attacks       | 企圖耗盡低功率裝置的電池,ex 使用無限迴圈                                        |
| 7  | Booting Attacks                 | 因為低功率裝置會有時常sleep、wakeup。而wakeup是相對比較脆弱的時候，因為大多數軟體都沒跑起來，可趁此時攻擊 |

* Network layer: Sensors 與 Middleware layer 中間的網路傳輸過程

| 編號 | 攻擊手法                   | 說明                              |
| -- | ---------------------- | ------------------------------- |
| 1  | Publishing Site Attack | 釣魚攻擊主要是使用假的網站企圖取得使用者的帳號密碼...等資料 |
| 2  | Access Attack          | 未認證的使用者存取，目的在於偷取資料，而不是去破壞其網路    |
| 3  | DDoS/DoS Attack        | 使用大量的request不斷的發送server.        |
| 4  | Data Transit Attack    | 資料若存取在local端容易被搬移至其他地方          |
| 5  | Routing Attack         | 透過重新導向，竊聽使用者的資料。                |

* Middleware layer: 作為Middleware 與 Application 的之間溝通層

  | 編號 | 攻擊手法                       | 說明                             |
  | -- | -------------------------- | ------------------------------ |
  | 1  | Main-in-the-middle Attack  | 控制架構中所使用的中間軟體，ex: MQTT         |
  | 2  | SQL Injection Attack       | 透過一些資料庫操作的關鍵字，間接的操作資料庫         |
  | 3  | DSignature Wrapping Attack | 破解其XML演算法，進而直接修改訊息             |
  | 4  | Cloud Malware Injection    | 藉由惡意程式碼，試圖在雲端啟同樣的惡意服務，以取得敏感的資料 |
  | 5  | Flooding Attack in Cloud   | 類似DDoS，使用無意義的request，攻擊其服務     |
* Gateway: 作為network與sensor之間的橋樑

  | 編號 | 攻擊手法                  | 說明                                      |
  | -- | --------------------- | --------------------------------------- |
  | 1  | Secure on-boarding    | 藉由Gateway去竊聽加密的key                      |
  | 2  | Extra Interfacces     | 透過額外的存取界面入侵Gateway                      |
  | 3  | End-to-End Encryption | 資料在傳輸的時候，GW需要解譯是哪種協定而需要再加解密，因此此時容易被竊取資料 |
  | 4  | Firmware updates      | 裝置韌體更新通常是透過GW下載，然而當下載錯誤的韌體則會使得所有裝置被控制   |
* Application layer: 指的是應用場景

  | 編號 | 攻擊手法                  | 說明                                      |
  | -- | --------------------- | --------------------------------------- |
  | 1  | Secure on-boarding    | 藉由Gateway去竊聽加密的key                      |
  | 2  | Extra Interfacces     | 透過額外的存取界面入侵Gateway                      |
  | 3  | End-to-End Encryption | 資料在傳輸的時候，GW需要解譯是哪種協定而需要再加解密，因此此時容易被竊取資料 |
  | 4  | Firmware updates      | 裝置韌體更新通常是透過GW下載，然而當下載錯誤的韌體則會使得所有裝置被控制   |

### IoT 傳統架構- Fog Computing

Fog 的概念很像是Cloud，在這個架構中，所有的device 不會直接上雲，而是透過Fog再把資料傳上雲。而Fog主要提供的服務就是雲的服務，但只是為了管理方便多了Fog當中繼。

![Fog Computing](https://cdn-images-1.medium.com/max/800/1*r3ZkahkqSdRtiQkGX6KoqA.png)

**Pros:**

1. 防止資料被攔截、減少cloud 負擔(只將必要的資料上傳cloud)
2. 加速device處理的速度: 相對於cloud，fog更貼近device減少對device的延遲。

**Cons:**

1. 集中化的架構: 集中化的架構會有 A single point of failure 問題

## 傳統架構應用於IoT場域

在傳統架構中，裝置不會直接連上cloud，反而是在中間建立fog服務，提供原本在cloud所提供的服務。為的就是減少cloud被攻擊的風險，但原本存在的攻擊問題還是需要被防範，而無法因為採用該架構就能防範攻擊。

* **IoT with Blockchain Architecture**

Blockchain 是透過分散式帳本的技術進行同步資料。其中該技術的特點是帳本的節點數夠多的時候，幾乎可以確保鏈上的資料不會被竄改。這種架構就是將裝置與區塊鏈連接，選擇性的將資料存放在鏈上，使得每一台裝置都自動的同步資料與達到真分散式架構

![IoT with Blockchain Architecture](https://cdn-images-1.medium.com/max/800/1*iVKScNWt_RtmVUbZNFHsqQ.png)

**Pros:**

1. 資料可以以區塊鍊作為儲存的中心，並在節點數量夠的情況下保證其安全
2. 避免未被認證的使用者存取
3. 取代中心化的服務，以去中心化

**Cons:**

1. 成本花費很高: 需要足夠多的節點才能達到一定的安全性。
2. 吞吐量: 已比特幣為例，一秒鐘的交易吞吐量只有10筆
3. 手續費: 若是選擇公有鏈來部屬的話，每一筆資料的read/write都需要成本(錢)

### 區塊鏈應用於IoT場域

在區塊鏈的應用場域中，根據其天生的機制防範住 Middleware、Network層的攻擊，基於於區塊鏈分散式帳本的機制，需要透過共識演算法驗證資料的正確性，以及區塊鏈本身鏈結的設計使得上鏈的資料基本上不可能被竄改。

然而也因為這一點的安全性優勢，也有些副作用。因為需要透過共識演算法驗證資料的正確性與不被竄改性，犧牲的是效能與成本。為了有夠多的分散式節點用以同步資料，因此有一套獎勵機制鼓勵外部節點加入，俗稱挖礦機制。

### 總結

區塊鏈的應用實際上的確可以防範很大一部份的安全性問題，同時所付出的成本也比較多。如: 吞吐量低、節點間資料同步成本…等。而傳統架構雖然需要面對的問題很多，可是並沒有吞吐量低、節點間資料同步成本…等問題。因此選用的關鍵點在於資料的價值，若是價值夠高則可考慮採用區塊鏈的方式，反之則傳統的就很適用了。

### 參考資料

\[1] Hassija, Vikas, et al. “A survey on IoT security: application areas, security threats, and solution architectures.” *IEEE Access* 7 (2019): 82721–82743.
