web-dev-qa-db-ja.com

AES(LoRaWAN)を使用したIoTネットワークのセキュリティ

LoRaWANのセキュリティについて研究しています。ネットワークの簡略化されたアーキテクチャを次に示します。

LoraWAN

ご覧のとおり、2つのキーがあります。

  • 1つはネットワークセキュリティ用(mitmなし、メッセージの変更なし)。 AES 128ビットキーを使用して、各メッセージのMIC(メッセージ整合性コード)を生成します。

  • 1つは、ペイロードのエンドツーエンド(アプリケーション間)暗号化用です。これもAES 128ビットキーです。

そのため、デバイスとゲートウェイに保存される2つの静的キーがあります。セキュリティはかなり良いと思いますが、キーの1つが危険にさらされるまでは。監視されていないデバイス(顧客宅など)では、キーを簡単に複製できます。

もう1つの問題は、侵害が発生した場合、デバイスのAESキーを変更できないことです(帯域外の安全なチャネルがないことを考慮して)。

私の分析は正しいですか?私が見たことのない他のセキュリティ欠陥はありますか? (おそらくはい)そして、開発者にとっては何を改善できるでしょうか(and-to-end非対称暗号化を統合するなど)?

場合は、 LoRaWANの仕様はこちら です。

2
Shan-x

セッションキーが危険にさらされると、セキュリティは無効になります。これはどのシステムでも同じです。ただし、LoRaWANのセキュリティを向上させるための優れた方法がいくつかあります。短い回答ではトピックに関与しすぎていますが、ここにいくつかの良い習慣があります。

  • OTAAプロビジョニングを使用します。この場合、セッションごとに、デバイスとネットワークサーバーおよびアプリケーションサーバーの間で鍵/証明書が動的にネゴシエートされます。次に、定期的にデバイスにネットワークを強制的に再参加させて、セッションキーを変更します。これは、両方のセッションキーを永続的に設定するABPプロビジョニング方法とは対照的であり、指摘された脆弱性につながります。
  • ABP方式を使用する場合は、セッションキーを各デバイスに固有にします。 1つが侵害されても、他の人は影響を受けません
  • デバイスの安全なハードウェア要素を使用して、セキュリティ資格情報を保存します。これにより、デバイスのメモリをスキャンしてキーをリバースエンジニアリングすることが非常に難しくなります。さらに、セキュアブートを使用して、デバイスファームウェアの整合性を確保します。
  • アプリケーション層に暗号化と認証の層を追加します。非常に効果的な非対称キーを使用できます。
  • ネットワークサーバーで常にアップリンク/ダウンリンクメッセージカウンターチェックを有効にして、リプレイ攻撃を防止する
  • 独自のプライベートネットワークサーバーやアプリケーションサーバーを独自のゲートウェイで使用して、クラウドレベルでの不正アクセスを防止できます。

ベストプラクティスに従うと、ハッキングが非常に難しいシステムを実現できます。 LoRaWANはハードウェアに制約のあるデバイス用に設計されたため、多くのトレードオフのバランスを取る必要がありました。また、ほとんどのアプリケーションは分散型センサーからクラウドにデータを送信するためのものであり、ATMキャッシュディスペンサーを制御するためのものではないことに注意してください。一般的なアプリケーションでは、使いやすく、安価で、効果的に安全なソリューションです。

3
Roman S.