クライアントアプリで作成した安全なデータがあり、ユーザーのバックアップとしてサーバーに保存したいと考えています。
ユーザーは、サーバーで認証するためのパスワードをすでに持っています。パスワードがサーバーに送信されることはありません(私はSRP6を使用してユーザーを認証します)。
だからここに私の考えがあります...
だから私の質問は...これは十分に安全ですか?最初はサーバー側にも反復回数を保存するつもりでしたが、サーバーにアクセスした攻撃者は簡単にキーをブルートフォース攻撃できる可能性があると感じました。繰り返しになりますが、ユーザーがパスワードと番号を覚えられるかどうかは別の問題です。
「これで十分安全ですか?」これは、誰に対して防御しているかによって異なります。
理論的には、TLA以外の攻撃者にもかなり耐えられるように見えますが、暗号化IVをどこにも保存していないように見えるため、復号化には少し注意が必要です。
実際には、大きなセキュリティホールがあります。実際のユーザーは、KDFの反復回数を記憶しません。それはどこかに書き留められます、そしてユーザーがそれを書き留めているので、彼らはおそらくそれのすぐ隣に彼らのユーザー名とパスワードを置くでしょう。