私は、ランダムに生成された(ユーザー提供ではない)一意の文字列を使用してAPIを消費するサービスを認証する(開発中の)システムを処理しています。現在、これらの文字列はデータベースにプレーンテキストで格納されています。
これらの文字列がソルトおよびハッシュされるように、このシステムを再設計する大きな理由があるかどうかを知りたいのですが。
パスワードをソルトハッシュとしてのみ保存する理由についての私の理解は次のとおりです。
言い換えれば、パスワードをソルトおよびハッシュするポイントは、パスワードの再利用による影響からユーザーを保護することです。ただし、私の場合、パスワードの再利用は重要ではありません。
これらの「パスワード」もソルトしてハッシュするようにシステムを変更する強い理由はまだありますか?
これらのAPIキーの少なくともsomeは、とにかく広く分散しているアプリケーションに埋め込まれることになります。 APIキーだけでは、すべての機密情報にアクセスするのに十分ではありませんではありません。ほとんどの場合、通常のユーザー名とパスワードも必要です。特別な権限を持つ特定のAPIユーザーは、IPアドレスによって制限されます。
それはあなたが考えていなかったかもしれない考慮事項がある公正な質問です:
私のアドバイスは、パスワードをハッシュ化することです。それは十分簡単で、その利点はそこにあります。
私は実際にこの正確な問題を以前に考えました。 APIキーが基本的に挿入にのみ使用される場合、実際の問題は、キーのリークとユーザーのアカウントへの不正なデータの取得です。本当に重要なこと、つまりユーザーによるデータへのアクセスについて、適切なセキュリティ管理を行っているようです。これらを必ずしもハッシュする必要があるとは思いません。理想的には、認証クレデンシャルは書き込みのみで読み取りも含めてハッシュ化する必要がありますが、システムはすでに構築されているため、変更するには多大な労力が必要になることを理解しています。 APIキーを秘密にして共有しないようにする必要があることをユーザーが認識していることを確認します。