安らかで、高速で、セキュリティが低い簡単な認証方法を実現できないかと考えています。
クライアントのサーバーで有効な SSL 証明書に依存できないため、SSL はオプションではありません。また、適切に使用すると、リクエストの本文に署名する必要があるため、HMACは実際には不可能ですが、私の場合、その本文は大きなファイルになる可能性があります。さらに、JavaScript/AJAX で認証が可能である必要があります。
とてもシンプルなことを考えました。その問題は何ですか:
HEADER: X-Authentication: タイムスタンプ:ユーザー名:sha256(タイムスタンプ:パスワード)
サーバーはユーザーのパスワードを知っており、ハッシュをチェックできます。タイムスタンプは、たとえば 10 秒前に行われた要求のみを許可するために使用されます。リプレイ ウィンドウは非常に小さく、サーバー側にはセッションがありません。
ハッシュがクラックされた場合、攻撃者はパスワードを知っており、無制限にアクセスできます。
代わりに使用することです
HEADER: X-Authentication: タイムスタンプ:ユーザー名:HMAC(パスワード、「タイムスタンプ+リクエストメソッド+動詞」)
行く方法は何ですか?私はセキュリティの専門家ではありません。セッションをサーバーに保存する方がよいでしょうか (RESTful ではありません)。