web-dev-qa-db-ja.com

REST APIキーとSSLのみを使用したセキュリティ

私はいくつかの単純なREST Webサービスを構築することを探しています。ここで、

  • サーバー側のクライアントから呼び出すだけです(つまり、mobile/javascript/desktopは必要ありません)。
  • hTTPSでのみアクセス可能(HTTPへのダウングレードなし)
  • クライアントは安全で信頼できる場所にのみ展開されます
  • クライアントはそれぞれ固有のAPIキーを持ちます
  • 各サービスは、許可されたクライアントキーのリストを保持します

Webサービスにアクセスするとき、クライアントは、そのサービスへの認証のために、各リクエスト本文に独自のクライアントキーを提供します。

質問:サービスへのアクセスを既知のクライアントのみに制限するには、この単純なアプローチで十分ですか?

5
rogersillito

したがって、原則として、サーバー間通信である場合、ユーザー認証に関する標準的な懸念の一部は機能せず、得られるものは妥当に聞こえますが、考えるべきいくつかの事項(およびこれらが関連性は脅威モデルに大きく依存します)

  • 使用されるAPIキーには、推測攻撃や総当たり攻撃を防ぐのに十分なエントロピーがありますか?
  • クライアントのセキュリティの1つが危険にさらされた場合の鍵の取り消し/再発行のための適切なプロセスがありますか?.
  • 証明書のピン留めまたは類似のものを使用して、攻撃者が「信頼できる」CAから証明書を発行できるMITM攻撃を受けたクライアントマシンのリスクを軽減していますか。
  • キーをクライアントとサーバーにロードするプロセスは、プロセスの参加者がキーをコピー/悪用するリスクを軽減しますか?
  • サーバー側でキーをどのように保存していますか?平文で、可逆的に暗号化された形式ですか、それともハッシュ形式ですか?
5
Rory McCune