問題タブ [one-time-password]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
85 参照

python-2.7 - ssh の 2 レベル認証

OPEN SSH に 2 レベルの認証を実装しようとしています。1 つ目は ssh 公開鍵と秘密鍵認証で、2 つ目は OTP 認証であり、Google 認証システムを使用しています。第 1 レベルの認証まではすべてが期待どおりに機能し、OTP を生成して第 2 レベルの入力として供給します。私はここで立ち往生しています.. OTP が一致する場合、ユーザーにシェルを与えるコマンドを実行しています。最初のレベルの認証が既に行われているため、一致しない場合はどうすればよいかわかりません。ユーザーをシェルからログアウトするにはどうすればよいですか...?

以下はコードです:

0 投票する
1 に答える
265 参照

android - Android の SMS チャネルで SMS 配信に関する通知を受け取る

Androidアプリを介してOTP SMSをユーザーに送信しています。SMS の送信には、SMS チャネルを使用しています。だから私はSMSを送信するためにURLを押すだけです。SMS がユーザーに配信されたときにアプリに通知して、その OTP を自動で読み取ることができるようにします。

0 投票する
1 に答える
391 参照

android - Android で Sinch SMS Verification を使用して受信した OTP を検証しているときに、間違ったコールバックが発生する

アプリに Sinch SMS Verification API を統合していますが、半分は既に完了しています。これまでのところ、特定の携帯電話番号の OTP 要求/応答を送信および生成し、その携帯電話番号で受信することができました。ただし、OTP を受信したことを確認しようとすると、間違ったコールバックが発生します。

以下は私のコードです、

受信した OTP または間違った OTP をテキスト ボックスに入力し、コールバックの下の [送信] ボタンをクリックすると、このコールバックが発生します

理想的には、コールバックの下で起動する必要があります

参照リンク: https://www.sinch.com/docs/verification/android/#verificationlistener

0 投票する
2 に答える
17697 参照

ios - メッセージを受信したときに OTP を TextField に自動入力する iPhone アプリ

アプリから登録しているときに、OTP を登録済みの携帯電話番号に送信していました。SMS アプリを開かずにアプリでその OTP を取得したい...ユーザーが OTP メッセージを受信したときに、ここにその OTP を表示する必要があります...どうすれば達成できますかこれはiOSで?ユーザーの電話番号も持っています。

検索でこれを見つけまし が、これを開始する方法が明確ではありません。誰かがこれから私を助けることができますか?

0 投票する
1 に答える
3900 参照

python - Google 認証コードがサーバー生成コードと一致しません

バックグラウンド


現在、ユーザーがスマートフォンを使用して認証できる二要素認証システムに取り組んでいます。ユーザーが自分のデバイスを使用する前に、まずデバイスを確認する必要があります。そのためには、私が提供した QR コードをスキャンし、続いて表示されるコードを入力する必要があります。

問題


QR コードのスキャンは正常に機能し、Google 認証アプリによって正しく読み取られます。ただし、生成されたコードは、サーバー上で生成しているコードと一致しません。

私は何を試しましたか


私の問題を見つけることを期待して、いくつかのことを試しました。

  1. 'thiswasmysecretkeyused'デフォルトの secret:とbase64.b32encode()エンコードされたバージョンの secret: の両方を Google Authenticator アプリに直接挿入しようとし 'ORUGS43XMFZW26LTMVRXEZLUNNSXS5LTMVSA===='ましたが、これらは両方ともサーバーとは異なるコードを生成しました。

  2. ====キーの末尾が原因で機能しない可能性があると読んだので、それらも含めずに追加してみました。それでも良い結果は得られません (同じコードが生成されます)

  3. TOTP コードを生成するために別のアルゴリズムを使用してみました。これは、使用しているアルゴリズム ( django-otp ) が正しくない場合に備えてです。私が使用した別のアルゴリズムは、この回答から取られました。どちらのアルゴリズムも、同じキーを使用すると同じコードを生成しました。

  4. システムの時刻を確認しました。オペレーティング システムが15:03スマートフォンと同じように表示されていることがわかりました。time.time()両方でPythonで時間をダンプした後datetime.datetime.now()、返された時間がオペレーティングシステムの時間より1時間遅れていることがわかりました。を示してい14:03ます。3600コード生成に使用されるタイムスタンプに秒を追加しようとしましたが、役に立ちませんでした。

  5. 他にもいくつか試してみましたが、それらがすべて何であったかを思い出せません。

  6. Google Authenticator でキーを受け入れるコードを調べたところ、base32 文字列が必要であることを確認しました。したがって、私の知る限り、キーのエンコードは正しいです。コードから ( EnterKeyActivity.java、78行目):

    入力フィールドに有効な base32 文字列が含まれていることを確認します

コード


秘密鍵の生成;

QRコードの生成;

TOTP コードの生成;

django-otp 実際の totp 生成コードなど、さらにコードが必要な場合はお知らせください。

エラー


エラーなし。

予感


私の推測では、鍵の生成または Google Authenticator への鍵の受け渡しのどこかで間違っているに違いありません。キーを手動で Google Authenticator に入れても、正しいコードを生成できないためです。ユーザーの追加など、キーが保存されると、Google Authenticator はそれ以上の処理を行いますか?

私が使用した他のアルゴリズムでも、そこにある秘密が最初にデコードされることに気付きました。

元のキー (SHA512 ハッシュ) は間違っていますか? でエンコードする必要がありbase64.b32encode()ますか? ハッシュをエンコードせずに生成された QR コードをスキャンしようとすると、Google Authenticator はそれを (有効な) キーとして認識しないと言います。

0 投票する
0 に答える
845 参照

c# - OTP ベース認証

Web API アプリケーションに OTP ベースの認証を実装したいと考えています。OTP認証についていくつかのアイデアがあります。OTP の場合、ランダムな英数字を生成しました。これをデータベースに保存しました。そして、この OTP をユーザーの携帯電話に送信します。ユーザーはこの OTP を送信し、この OTP を db と照合します。これが通常の流れです。私はそれをもっと確保する必要があります。つまり、sha256 で OTP をハッシュする必要があります。次に、このハッシュ値を DB に格納します。ここまでは大丈夫です。次のステップから、この OTP をプレーン テキストとしてユーザー モバイルに送信しますか。次に、モバイル クライアント アプリケーションはこの OTP をプレーン テキストとして渡します。このプレーン テキストの OTP をサーバーでハッシュし、これを DB と比較しますか? それは正しいですか? または プレーンテキストの代わりに, OTP をハッシュとしてユーザーの電話番号に渡しますか? そうですか, 安全ですか. 私はこれについて少し混乱しました。

私を助けてください。

0 投票する
0 に答える
801 参照

android - なぜ math.random() を使用する代わりに TOTP/HOTP を使用するのですか?

Android アプリで、サインイン用の OTP 機能を追加しようとしています。バックエンドに node.js を使用しています。さて、まず のような乱数を生成することを考えましmath.random()た。

サーバー側で PTP を簡単に生成でき、それらを MongoDB データストアに保存し、ユーザーが OTP を入力したときにそれらを照合しますが、OTP 用のこれらのビルド済みモジュールに出くわしました。これは Speakeasy https://www.npmjs です。 .com/package/speakeasy .

HOTP/TOTP の 2 種類の方法があります。なぜ誰かがこれら 2 つを使用し、乱数を使用しないのかを尋ねています。つまり、HOTP/TOTP の用途は何ですか? 誰かがアプリ/ウェブサイトでOTP機能を設計した場合は、私に教えてください.

UPDATE サーバーからのAndroidデバイスでのOTP認証の一般的な方法は何ですか?つまり、zomato、Airbnbなどのアプリは、ユーザーのOTP検証をどのように行うのですか?

0 投票する
1 に答える
649 参照

android - otpを生成するためのnpmモジュールとしてspeakeasyを使用したAndroidアプリでのモバイル検証?

こんにちは、時間枠内で totp を生成するために speakeasy npm モジュールを使用しています。以下は私のワークフローです。何か不足しているかどうか教えてください。ユーザーがサインアップすると、リクエストで携帯電話番号を取得し、それをシークレットとして使用して、totp がユーザーごとに一意になるように totp を生成しています

私は自分のユーザーの携帯電話番号に送信しており、サーバーに送信してサーバーに送信し、サーバーでtotpモジュールから再度確認しています

一致する場合は、登録を行います。それ以外の場合は、すべてを正しく行っているかどうか?? 教えてください、私のアプローチに何か問題がありますか