認証アプリはシードを保護するためにどのようなセキュリティを使用していますか?

認証アプリはシードを保護するためにどのようなセキュリティを使用していますか?

この質問がここにあるべきなのか、それとも暗号化フォーラムにあるべきなのか 100% 確信はありませんが、とにかく試してみます。

Google Authenticator、Duo、Okta などのソフトウェア認証アプリが、TOTP 認証および HOTP 認証のシークレット (つまりシード) をどのように保存するのかについて、少し考えたいと思います。これらはすべてオフラインで動作できるので、シードはクライアント デバイスのどこかに保存されていることになります。シードはまったく暗号化されているのでしょうか? それとも、デバイス自体の所有権がこのような OTP 認証の唯一の要件であるため、シードを保護する必要はないのでしょうか?

答え1

デバイスによって提供されるセキュリティに依存します。

Android と iOS は、デスクトップ コンピューターよりもはるかに厳格なセキュリティ モデルを備えています。各アプリには、他のアプリからはアクセスできないプライベート ストレージがあります。通常の状況では、シードはこのストレージに保存するだけで十分であり、アプリにシードを抽出する手段を追加しないでください。このストレージは、シードの抽出を許可したり、十分に安全ではないと見なされるストレージ (サード パーティ クラウド) に保存したりすることになるため、バックアップ不可としてマークする必要があります。

このプライベート ストレージは、デバイスがルート化またはジェイルブレイクされている場合にアクセスできるため、そのようなデバイスを TOTP トークンとして使用するのは安全ではありません。

関連情報