

# AWS IoT Core for LoRaWAN 的資料和傳輸安全
<a name="iot-lorawan-security"></a>

AWS IoT Core for LoRaWAN 使用以下方法來保護 LoRaWAN 裝置、閘道與 AWS IoT Core for LoRaWAN 之間的資料和通訊：
+ 裝置與 LoRaWAN 閘道進行通訊時所遵循的安全最佳實務，如 [LoRaWAN 安全](https://lora-alliance.org/sites/default/files/2019-05/lorawan_security_whitepaper.pdf)白皮書所述。
+ AWS IoT Core 用來將閘道連線到 AWS IoT Core for LoRaWAN，並將資料傳送到其他 AWS 服務的安全。如需詳細資訊，請參閱 [AWS IoT Core 中的資料保護](https://docs.aws.amazon.com/iot/latest/developerguide/data-protection)。

## 如何在整個系統中保護資料
<a name="lorawan-security-data-how"></a>

此圖表顯示連線至 AWS IoT Core for LoRaWAN 的 LoRaWAN 系統中的重要元素，用來呈現資料的整體保護方式。

![\[顯示 AWS IoT Core for LoRaWAN 資料如何從無線裝置傳遞至 AWS IoT 和其他服務的影像。\]](http://docs.aws.amazon.com/zh_tw/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


1. LoRaWAN 無線裝置會在傳輸二進位訊息之前，先使用 AES128 CTR 模式加密該訊息。

1. 閘道與 AWS IoT Core for LoRaWAN 的連線是由 TLS 保護，如 [AWS IoT 中的傳輸安全性](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html) 所述。AWS IoT Core for LoRaWAN 會解密二進位訊息，並將解密的二進位訊息承載編碼為 base64 字串。

1. 產生的 base64 編碼訊息會當作訊息承載傳送至 AWS IoT 規則，而此規則是在指派給裝置的目的地中加以描述。AWS 內的資料是使用 AWS 擁有的金鑰進行加密。

1. AWS IoT 規則會將訊息資料導向至規則組態中所述的服務。AWS 內的資料是使用 AWS 擁有的金鑰進行加密。

## LoRaWAN 裝置和閘道傳輸安全
<a name="lorawan-security-devices"></a>

LoRaWAN 裝置和 AWS IoT Core for LoRaWAN 會存放預先共用的根金鑰。工作階段金鑰是由 LoRaWAN 裝置和 AWS IoT Core for LoRaWAN 遵循通訊協定所衍生。對稱工作階段金鑰用於標準 AES-128 CTR 模式中的加密和解密。4 位元組訊息完整性代碼 (MIC) 也會用來遵循標準 AES-128 CMAC 演算法檢查資料完整性。工作階段金鑰可以使用聯結/重新聯結程序進行更新。

 LoRa 閘道的安全實務會在 LoRaWAN 規格中加以描述。LoRa 閘道會使用 [https://lora-developers.semtech.com/resources/tools/lora-basics/lora-basics-for-gateways/](https://lora-developers.semtech.com/resources/tools/lora-basics/lora-basics-for-gateways/) 透過 Web 通訊端連線至 AWS IoT Core for LoRaWAN。AWS IoT Core for LoRaWAN 僅支援 `Basics Station` 2.0.4 版及更新版本。

建立 Web 通訊端連線之前，AWS IoT Core for LoRaWAN 會使用 [TLS 伺服器和用戶端身分驗證模式](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html)來驗證閘道。為了確保 LoRaWAN 通訊協定的機密性，則會使用 [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) [1.2 版](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.2)。多種程式設計語言與作業系統提供 TLS 支援。AWS 內的資料是由特定的 AWS 服務加密。如需有關其他 AWS 服務上資料加密的詳細資訊，請參閱該服務的安全性文件。

 AWS IoT Core for LoRaWAN 也會維護組態與更新伺服器 (CUPS)，用來設定並更新用於 TLS 身分驗證的憑證和金鑰。