

# 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 for LoRaWAN に接続し、データを他の AWSのサービスに送信するためにAWS IoT Core が使用するセキュリティ。詳細については、「[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/ja_jp/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


1. LoRaWAN ワイヤレスデバイスは、バイナリメッセージを送信する前に AES128 CTR モードを使用して暗号化します。

1. AWS IoT Core for LoRaWAN へのゲートウェイ接続は、「[AWS IoT でのトランスポートセキュリティ](https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html)」で説明されているように、TLS によって保護されています。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 アルゴリズムに従ってデータ整合性をチェックするために使用されます。セッションキーは、Join/Rejoin プロセスを使用して更新できます。

 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/) を使用して WebSocket を介して AWS IoT Core for LoRaWAN に接続します。AWS IoT Core for LoRaWAN でサポートされるのは `Basics Station` バージョン 2.0.4 以降のみです。

ウェブソケット接続が確立される前に、AWS IoT Core for LoRaWAN は [TLS Server and Client Authentication モード](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 は、TLS 認証に使用される証明書とキーを設定および更新する Configuration and Update Server (CUPS) も保守します。