問題タブ [google-authenticator]
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.
ssh - SSH を使用した Google Authenticator PAM、サーバーとクライアントの時間差により認証が失敗する
SSH ログインでGoogle オーセンティケーター PAM モジュールを使用しています。私のセットアップは、ホーム ネットワークを介してローカル セットアップで動作しています。しかし、公開サーバーにインストールすると、サーバーとクライアント (Google 認証 Android アプリ) の間の時間差により、OTP 検証が失敗します。Google Authenticator PAM wikiが言うように、時間ベースのOTPコードを使用しています。正しいOTPを3回連続して入力すると、サーバー側のPAMモジュールが時間のずれを計算し、将来のすべてのログインに対してそれを修正します。そのように機能しています. しかし、すべての新規ユーザーが OTP を 3 回入力するのは面倒です。回避策はありますか?
Gmail アカウントで OTP 検証を有効にしましたが、OTP を 3 回入力する必要はありませんでした。彼らは、Google Authenticator PAM モジュールにいくつかの変更を加えたに違いありません。これを解決するための指針は本当に役に立ちます。
android - Google 認証システムを開く意図
Intent を介して Google Authenticator を開く方法はありますか。はいの場合、ユーザーにとって実用的なものにするために、すでに入力されているキーで開くことは可能ですか?
ios - Objective-C で別の iOS アプリから Google Authenticator を設定しますか?
Google Authenticator iOS アプリを自動的に起動し、Objective-c コードからデータ (発行者、ユーザー、シークレット) を送信する方法は?
この質問は Swift では部分的に解決しますが、Objective-c を探しています。 iOS で Google Authenticator アプリを自動的に起動する
java - 文字列を FileWriter/BufferedWriter に書き込めません
Google Authenticator の秘密鍵を作成し、OTP を認証するアプリケーションを作成しようとしています。すべてのパスワードを、それらに付随する名前でタイトルが付けられた個々のファイルに書き込んでいます。
何よりもまず、私はこのライブラリを使用しています。 https://github.com/aerogear/aerogear-otp-java
これは私のコードです:
の値をs
「Hello」などに変更しても問題ありません。ただし、そのランダムな文字列は書き込まれません。それが私が助けを必要としているものです。何時間もかけて答えを探しましたが、何も見つかりませんでした。
php - Laravel 5: ユーザーログインセッションに追加の属性を保存する方法
私は実際にプロジェクトに2要素認証を実装しています。私がしたことは
実際、実際には保存されません。別のページに移動すると、値が失われます。
また、ユーザーがログアウトすると (またはユーザーがブラウザーからセッション Cookie を削除すると)、ログイン ページが表示され、2 要素認証が再度行われるため、別のセッションを維持したくありません。
ユーザーセッションにもう1つの属性を保存する方法はありますか?
android - Google Authenticator アプリの仕組みを理解する
Google 認証アプリのような多くの 2 要素認証アプリを見てきました。
アプリはオフラインで動作し、30 秒ごとに電話のキーをリセットします。
では、サーバーはどのキーが有効かをどのように知るのでしょうか?
私はこれを理解するのに苦労していますか?
そして、もし私がそのようなアプリを自分で作成したとしたら。どうすればそうできますか?
python - Google 認証コードがサーバー生成コードと一致しません
バックグラウンド
現在、ユーザーがスマートフォンを使用して認証できる二要素認証システムに取り組んでいます。ユーザーが自分のデバイスを使用する前に、まずデバイスを確認する必要があります。そのためには、私が提供した QR コードをスキャンし、続いて表示されるコードを入力する必要があります。
問題
QR コードのスキャンは正常に機能し、Google 認証アプリによって正しく読み取られます。ただし、生成されたコードは、サーバー上で生成しているコードと一致しません。
私は何を試しましたか
私の問題を見つけることを期待して、いくつかのことを試しました。
'thiswasmysecretkeyused'
デフォルトの secret:とbase64.b32encode()
エンコードされたバージョンの secret: の両方を Google Authenticator アプリに直接挿入しようとし'ORUGS43XMFZW26LTMVRXEZLUNNSXS5LTMVSA===='
ましたが、これらは両方ともサーバーとは異なるコードを生成しました。====
キーの末尾が原因で機能しない可能性があると読んだので、それらも含めずに追加してみました。それでも良い結果は得られません (同じコードが生成されます)TOTP コードを生成するために別のアルゴリズムを使用してみました。これは、使用しているアルゴリズム ( django-otp ) が正しくない場合に備えてです。私が使用した別のアルゴリズムは、この回答から取られました。どちらのアルゴリズムも、同じキーを使用すると同じコードを生成しました。
システムの時刻を確認しました。オペレーティング システムが
15:03
スマートフォンと同じように表示されていることがわかりました。time.time()
両方でPythonで時間をダンプした後datetime.datetime.now()
、返された時間がオペレーティングシステムの時間より1時間遅れていることがわかりました。を示してい14:03
ます。3600
コード生成に使用されるタイムスタンプに秒を追加しようとしましたが、役に立ちませんでした。他にもいくつか試してみましたが、それらがすべて何であったかを思い出せません。
Google Authenticator でキーを受け入れるコードを調べたところ、base32 文字列が必要であることを確認しました。したがって、私の知る限り、キーのエンコードは正しいです。コードから ( EnterKeyActivity.java、78行目):
入力フィールドに有効な base32 文字列が含まれていることを確認します
コード
秘密鍵の生成;
QRコードの生成;
TOTP コードの生成;
django-otp 実際の totp 生成コードなど、さらにコードが必要な場合はお知らせください。
エラー
エラーなし。
予感
私の推測では、鍵の生成または Google Authenticator への鍵の受け渡しのどこかで間違っているに違いありません。キーを手動で Google Authenticator に入れても、正しいコードを生成できないためです。ユーザーの追加など、キーが保存されると、Google Authenticator はそれ以上の処理を行いますか?
私が使用した他のアルゴリズムでも、そこにある秘密が最初にデコードされることに気付きました。
元のキー (SHA512 ハッシュ) は間違っていますか? でエンコードする必要がありbase64.b32encode()
ますか? ハッシュをエンコードせずに生成された QR コードをスキャンしようとすると、Google Authenticator はそれを (有効な) キーとして認識しないと言います。
android - 「Google でクライアントを認証する」にはどうすればよいですか?
Google でクライアントを正しく認証するにはどうすればよいですか? 私はこのチュートリアルに従ってい ます https://developers.google.com/android/guides/client-auth
このテキストをコマンド プロンプトにコピーします。
keytool -exportcert -list -v \ -alias androiddebugkey -keystore %USERPROFILE%.android\debug.keystore
「-alias は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。」というメッセージが返されます。
何が間違っていますか?