idtoken は、バックエンド サーバーとのフォローアップ通信でそれ自体の (おそらくソルト化された) SHA2 ハッシュに置き換える以外にセキュリティを提供しないと仮定するのは正しいですか?
想定されるフローは次のようになります。
- Android アプリは Google から idtoken を取得します
- アプリは idtoken を自己ホスト型バックエンド サーバーに送信し、そこで gitkitclient.VerifyGitkitToken を使用してバックエンドによって検証されます。
- バックエンドは、トークンの SHA2 ハッシュを有効期限と関連付けられたユーザー ID と共に作成し、将来の参照用にルックアップ テーブルに保存します。
- Android アプリは、idtoken の同じ SHA2 ハッシュを作成し、その後の通信で idtoken を使用する代わりに、バックエンドとの今後の通信でヘッダーにそれを渡します。
これにより、システムのセキュリティが何らかの形で低下しますか?
https インスペクションを備えた透過プロキシ (およびデバイスに、つまり企業環境に合法的にインストールされた証明書) がトラフィックを盗聴する場合、idtoken またはその SHA2 ハッシュが取得されても、その透過プロキシはidtoken の存続期間全体にわたって、Android アプリに代わって (おそらくルージュな方法で) 行動できるでしょうか?
私の問題は、サーバーとのフォローアップ通信ごとに gitkitclient.VerifyGitkitToken を呼び出すのはコストがかかりすぎて、idtoken の有効性が確認されたら必要ないことです。
また、今後の参照のためにidtokenをサーバーに保存したくありません。代わりに、idtokenのハッシュを保持することを好みます。idtoken の SHA224 ハッシュは十分であり、衝突が発生しないと想定しても安全ですか?