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

**本篇會列舉出 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET 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?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
