私はワンタイムパスワード(OTP)システムの作成を任されており、これは最終的にモバイルデバイスでOTPジェネレーターを作成するために使用されます。
カウンターを使用してHOTP(rfc 4226)を使用することを検討していますが、いくつかのバリエーションがある可能性があります。OATHに準拠している必要はありません。
これはセキュリティ/暗号化の分野での私の最初の経験なので、セキュリティの新人を罠にかけるセキュリティの落とし穴を避け(そして学び)、そして私が何をする必要があり、完了するために知っている必要があるかをよりよく理解しようとしていますこの仕事。
この一般的なアドバイスに加えて、このプロジェクトの実装についていくつか具体的な質問があります。
SHA-1を使用しているだけでも、HOTPは安全であると見なされますか?私の同僚の1人は、HMAC-SHA-512を使用する必要があることを提案しました。使用している基本的なアルゴリズムを切り替えるのは簡単に見えます。ここで知っておくべき副作用はありますか?処理時間の増加など?
カウンターの同期について懸念があります。可能なカウンター値の正しい先読みとして何を使用する必要がありますか?ユーザーが先読み制限を超えてクリックした場合に同期を取り戻すための最良の方法は何ですか?対応するOTPと一緒にカウンターを表示して送信する方が簡単ですか、それともセキュリティが大幅に弱まりますか?
また、共有秘密やカウンター値などの関連情報を安全に保存するためのベストプラクティスについてもよく理解していません。
あなたが答えるとき、私がこのドメインに不慣れであり、専門用語と頭字語に追いつくことをまだ試みていることを覚えておいてください。前もって感謝します。