私はこれを読んでいます:http ://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/
本当に素晴らしい記事でした。私が考えている問題の1つは、このステップ(記事の後半)にあります。
4. (OPTIONAL) The only way to protect against “replay attacks” on your API is to include a timestamp of time kind along with the request so the server can decide if this is an “old” request, and deny it. The timestamp must be included into the HMAC generation (effectively stamping a created-on time on the hash) in addition to being checked “within acceptable bounds” on the server.
5. [SERVER] Receive all the data from the client.
6. [SERVER] (see OPTIONAL) Compare the current server’s timestamp to the timestamp the client sent. Make sure the difference between the two timestamps it within an acceptable time limit (5-15mins maybe) to hinder replay attacks.
タイムスタンプを送信する必要がある場合、これは、タイムスタンプがクライアントとサーバーの両方のハッシュに含まれている必要があることを意味するため、同じ正確な時刻を使用する必要があります。さて、これは、日付をプレーンテキストまたは暗号化して(おそらくヘッダー値として)送信する必要があることを意味します。これは正しいです?なぜなら、それが明白な場合、リプレイ攻撃者は日付を許容範囲内に簡単に変更できないためです(検証目的で)...したがって、日付を暗号化することはできますが、それは代わりにハッシュと暗号化されたデータの両方が機能していることを意味しますすべてのデータを一緒に暗号化するだけです。
私の評価は正しいですか、それとも安全な日付を含める方法はありますか?または、このシナリオでは暗号化する必要がありますか?
ありがとう。