私は、不正アクセスから十分に保護する必要がある REST サービスを設計しています。すべてのリクエスト パラメータと秘密鍵を sha-256 でハッシュして生成されるセキュリティ ダイジェストを要求し、サービスを https 経由でのみ利用できるようにすることを考えています。これが十分なセキュリティであるかどうか、誰にも教えてもらえますか?
1 に答える
まず、「セキュリティ ダイジェスト」を生成するためにプレーンな SHA-256 ではなく、 en HMACを使用していることを確認してください。
次に、このダイジェストの入力に何を入れますか? 少なくともメソッド、URI、ペイロード、そしておそらくリクエストのほとんどのヘッダーが必要です (REST コンテキストで重要な HTTP リクエストの意味に影響を与える多くのヘッダーがあります)。クライアントが直接制御できない方法でヘッダーを設定または変更する可能性があるため、使用している HTTP クライアントによっては難しい場合があります。
最後に、このダイジェストをどこに配置しますか? クライアントが Web ブラウザーで実行されている場合は、カスタム ヘッダー (例: X-Request-Authenticator
) が適切であるか、Cookie である可能性があります。
自分で何かを作成するのではなく、可能であれば既存のツールを使用することをお勧めします。SSL を使用すると、メッセージの完全性が保護されるので、そこから始めてください。次に、単純なアクセス制御だけが必要な場合は、HTTP 基本認証が REST 要求で問題なく機能します。または、クライアントに証明書を提示して確認してもらうこともできます。