メインコンテンツまでスキップ

7. セキュリティに関する考慮事項 (Security Considerations)

CoAP仕様である[RFC7252]のセクション11のセキュリティに関する考慮事項が適用されます。

リソースを観察すると、増幅攻撃の悪影響が劇的に増大する可能性があります。つまり、通知メッセージが要求メッセージよりもはるかに大きくなる可能性があるだけでなく、プロトコルの性質により、多数の通知が生成される可能性があります。したがって、クライアント認証がない場合、サーバーは、データに対するクライアントの実際の関心を確認する確認応答を受信するまでの間に送信する通知の数を厳密に制限する必要があります(MUST)。つまり、確認不能メッセージで送信される通知には、確認可能メッセージを混在させる必要があります(MUST)。確認可能メッセージが十分に予測可能である場合、攻撃者は依然として確認応答をなりすます可能性があることに注意してください。

プロトコルは、クライアントによって観察された状態とサーバーでの実際のリソース状態を同期させるためのベストエフォートアプローチに従います。これにより、クライアントとサーバーが同期しなくなる場合があります。観察されたリソースの感度によっては、古い状態で操作することがセキュリティ上の脅威になる可能性があります。したがって、クライアントはMax-Ageの有効期限が切れた後に表現を使用しないように注意する必要があり、サーバーはMax-Ageオプションを適切な値に設定する必要があります。

状態を作成する他のプロトコルと同様に、攻撃者は、各リソースの観察者リストを維持するためにサーバーが利用できるリソースを使い果たそうとする可能性があります。サーバーは、この状態の作成にアクセス制御を適用したい場合があります。劣化した動作として、サーバーは、リソースの観察者リストにクライアントを追加できない場合や追加したくない場合(システムリソースが使い果たされた場合や使い果たされそうになった場合を含む)、常にリクエストを通常のGETリクエスト(Observeオプションなし)として処理することにフォールバックできます。

中間者は、通知を使用してループを作成できないように注意する必要があります。ループを断ち切る簡単な方法は、中間者で通知を転送するためにキャッシュを使用することです。

RFC 7252のセクション9で説明されているセキュリティモードのいずれかを使用して、Datagram Transport Layer Security(DTLS)によって保護されているCoAPを介してリソースを観察できます。DTLSの使用は、「coaps」URIスキームによって示されます。Observeオプションを使用したGETリクエストから生じるすべての通知は、リクエストと同じ接続の同じエポック内で返されなければなりません(MUST)。