私は、IoT、そのプロトコル、および通常のデバイスの制約についてほとんど知識がありません。今日はかなりのIoT経験を持つ誰かと話し合いましたが、セキュリティ関連の問題について話し合っており、共有キーの確立が浮上しました。私はDiffie-Hellmanが使用されると想定していましたが、この人は方法に精通していないようで、低電力デバイスに関する知識に基づいて、キーは実際には内部にプリロードされています。
これは、2つの要因に依存します。IoTデバイスで使用可能なリソース(プロセッサー速度、メモリー、電力)と、データが到着するまで待機できる時間です。これらの要素のいずれかが問題ではない場合(たとえば、1024バイトを受信するために1時間待つことができます)、それは任意のデバイスで実行できます。
一般的に、現在のテクノロジーは基本的な暗号化を実行するのに十分であり、帯域幅と待ち時間が主な問題です。低電力マイクロコントローラ Maxim MAX32621 (アクティブモードで12mW、スタンバイで2.6 µW)は、AES-128、AES-192、AES-256、DSA/RSAから2048およびTRNGネイティブを実行できます。 誰か でも実装 Attiny85のAES-CMAC (8kフラッシュ、512B RAM、8/16MHz、最大20MHz)。 EDHOCは、とりわけ、接続を確立するために必要なラウンドトリップの量を減らすことにより、待ち時間を解決することを意図しています。
完全なTLSスタックを実装する必要はなく、データの暗号化のみを行う場合は、独自のプロトコルを実装できます。サーバーの公開鍵をデバイスに保存し、対称鍵を生成し、サーバーの公開鍵で暗号化し、データを秘密鍵で暗号化し、暗号化されたデータと暗号化された秘密鍵の両方を連結して、一度にサーバーに送信します。ラウンドトリップなし、TLSセッション確立なし。 UDPを使用すると、接続を確立する必要なく、すべてのデータを1つのパケットで送信できます。
デバイスによって異なりますが、is特にバッテリーの節約が最も重要な場合、Diffie-Hellmanが低電力デバイスに対して集中的になる可能性があります。