1

更新: Windows、IOS、Android プラットフォームでモバイル アプリを構築して、規制されたシステム用の OTP (ワンタイム パスワード) を生成しています。ユーザーがログインを試みると、システムはチャレンジ フレーズを表示し、表示されたチャレンジをモバイル アプリに入力して OTP を生成する必要があります。生成された OTP はシステムに戻され、正常にログインされます。

これまでのところ、必要なセキュリティを備えた OTP を生成するサービスを公開できるため、モバイル OTP 生成アプリの要件は適切です。

ただし、モバイルがインターネットに接続されていないオフライン機能で同じ機能をサポートするには、有線の要件があります。私たちが知っている唯一の選択肢は、OTP アルゴリズムとキーをアプリに埋め込み、適切なセキュリティ メカニズムを適用することです。Algorithm は独自に構築された専用アルゴリズムであり、セキュリティを損なうことなくオフライン機能を実現する必要があります。アルゴリズムとキーをアプリに埋め込んでオフライン機能を有効にするのは良い方法ですか? 推奨される解決策は何ですか。

4

1 に答える 1

1

「エンタープライズは API を公開する」という言葉の意味がわかりません。

ただし、SIM モジュール (つまり、電話番号) や、2 要素認証が機能するための安全な/プライベート ストレージを備えたアプリなど、物理的な電話デバイスに関連付けられたものが必要になります。

認証トークン (電話) への強力なリンクがなければ、インターネット上に公開された API は安全ではありません。

したがって、唯一の答えは次のとおりだと思います。はい、アプリに「OTP アルゴリズム」を実装する必要があります。アプリは、他のアプリから (簡単に) アクセスできないプライベート ストレージに共有シークレットを保存する必要があります。次に、OTP の種類に応じて、アプリとサーバー間の同期手段を提供する必要があります。Google のオーセンティケーターの場合、「OTP」は厳密には 1 回限りではなく、現在の日付と時刻に応じて (のみ) 変化するため、これは共通のタイムベースを確立するだけです。したがって、現在の時刻は、クライアントが正しい応答を返すようにサーバーが暗黙的に提起する「チャレンジ」になります。良い点は、アプリで現在の時刻を知るためにインターネットにアクセスする必要がないことです。

サーバーは代わりに、連番などの明示的なチャレンジを送信することもできます。このチャレンジは、ログインしようとしているユーザーに表示され、ユーザーはアプリに番号を入力し、アプリの回答をサーバーに返す必要があります。

さらに多くのオプションを利用できますが、最終的には次のようになります。合理的なセキュリティを提供するには、電話で OTP を計算する必要があります。

于 2015-05-13T11:30:46.347 に答える