web-dev-qa-db-ja.com

IoTデバイスとのDTLSセッションの存続期間はどのくらいですか?

MQTT-SNアプリケーション層プロトコルを使用してアプリケーションデータを送信しているアプリケーションを使用しています。 DTLSを使用してUDPポートを暗号化しました。

ここでの問題は、クライアント経由で送信するPUB/SUBパケットごとにハンドシェイクを再初期化する必要があるかどうか、または作成したセッションを保存して無期限に使用できるかどうかです。

2
Muhammad Ahsan

実際、ここには2つの異なる質問があります。

Q:クライアント経由で送信するPUB/SUBパケットごとにハンドシェイクを再初期化する必要がありますか?

A:いいえ

DTLSハンドシェイクは 非常に高価 であるため、後続のすべてのpub/subインタラクションで同じセッションを維持/再開することは、特に制約された環境(これは 仕様のセクション )で概説されているすべてのMQTT-SN使用シナリオ。

実際、RFC 7925「モノのインターネットのためのTLS/DTLSプロファイル」、セクション7「セッションの再開」は強く示唆しています- まさに

ご使用の環境がまったく制約を受けておらず、モノのインターネットとはまったく関係がない場合は、 MQTT-SN を他のものに置き換えることを検討してください。

Q:一度作成したセッションを無期限に使用できますか?

A:はいのソートですが、期間によって異なります。

これが問題である場合、DTLSセッションは、適切なセッション暗号が与えられてもageしません。ただし、一定の期間が経過した後でも、それを削除し、新しいハンドシェイクを介して新しいものを初期化したい場合があります。

そうすることが理にかなっている簡単な例は、1月1日のTLS証明書を使用して3月1日まで有効なサーバーに接続する場合です。 2月の終わりに、別のハンドシェイクを要求し、証明書が更新されたかどうかを確認することにより、リモートエンドポイントが接続しているサーバー名を引き続き操作しているかどうかを再確認することができます。

ケースでのリモートエンドポイント認証(パブリッシャーとサブスクライバーの両方)の設計方法(物理的なセキュリティトークンなど)に応じて、異なる制限を課すことができます。

2
ximaera