問題タブ [two-factor-authentication]
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.
database - 二要素認証用の「バックアップコード」を保存する最良の方法は?
私はサイドプロジェクトの1つに2要素認証システムを実装しており、Googleが2要素認証に使用しているのと同じように、いくつかの「ワンタイムコード」を導入したいと考えています。
私の質問は、これらのコードをサーバーに保存する最も安全な方法は何でしょうか?それらはデータベースで暗号化する必要がありますか?パスワードをハッシュするのと同じ方法でbcryptのようなものを使用しますか?攻撃者が各ハッシュが6桁の数字を表し、ブルートフォース時間をほとんどゼロにすることを知っていることを考えると、それはやり過ぎかもしれないと思います。
windows - SecurID エージェントのドキュメントはどこにありますか?
どうやら、「RSA Authentication Agent」がインストールされている Windows マシンでは、それを利用して認証サービスを提供できるようです。これを行うためのドキュメント/SDKがどこかにあるようです。この機能を静的にリンクしたり、「aceclnt.dll」からエクスポートされたいくつかの関数を呼び出して動的にロードしたりできるようです。
ただし、RSA の Web サイトが emc.com に移動したため、古いサイトへのリンクはすべて無効になっています。新しいサイトのどこにもドキュメントが見つかりません。これをグーグルで助けてください!
PAM を介して、UNIX/Linux 上のアプリケーションで SecurID 認証を簡単に使用できます。特別な SecurID API を使用して資格情報を受け入れる/拒否するかどうかを照会する必要があるのは、Windows のみです。
php - 2段階認証/検証によるZend Gdataログイン
最近、Gmail アカウントの 2 段階認証を有効にしたところ、Zend Gdata ライブラリを使用するアプリケーションが動作しなくなったことに気付きました。2 要素認証を無効にすると、再び機能し始めました。
Zend Gdata ライブラリでの 2 段階認証の使用について、オンラインで何も見つかりません。誰かが解決策を見つけましたか?
two-factor-authentication - ベビーベッドに 2 要素認証を追加しますか?
一般的に、2 要素認証 (2FA) とは何か、またそのしくみは知っています。また、アクセスが必要なアプリケーションにコード化されていることも知っています。私が疑問に思っているのは、COTS (商用、既製) プログラムに 2FA を使用する方法に遭遇したり、考案した人はいますか?
ここにシナリオがあります: 私は製品 X を持っています。X が機能するには、ファイアウォール内のサーバーにアクセスできるように、ファイアウォールのポートを開く必要があります。X には 2FA がありません。しかし、2FA プロセスによって認証が有効であると見なされた後にのみ、X を使用してファイアウォール内のサーバーをアドレス指定できるように、2FA を有効にしたいと考えています。
明らかに、Web から X をダウンロードしてインストールし、それを実行してサーバーにアクセスするだけの、一部の反逆者ユーザーを望んでいません。しかし、X は COTS であり、コードにアクセスできないため、その使用に 2FA を追加する方法がわかりません。
生き物のいない木に吠えているのでしょうか、それとも考えもしなかったことがありますか?
api - アカウントのセキュリティへのアクセスを許可するGoogleAPI(re:2要素認証)
私はこれがセキュリティに与える影響をよく知っているので、それが存在しないと確信しているので、あなたが私をクレイジーと呼ぶ前に、それが私が尋ねている理由です。
私は自分の携帯電話だけを持っていて、新しいアプリなどをインストールし、突然新しいアプリケーション固有のパスワードをその場で作成する必要があることに気づき、Googleの明らかにモバイルフレンドリーではないセキュリティページをナビゲートしなければならないことに本当にうんざりしましたそれ。テキストやAndroidアプリ自体など、アプリケーション固有のパスワードを生成できるようなアプリを作成したいと考えています。私が見ているように、ここには2つのオプションがあります。
- GoogleアカウントセキュリティAPI(存在する場合)を使用して、アプリケーション固有のパスワードを作成します
- スクレイピングタイプの動作を(もちろん、適切な資格情報を使用して)実行して、その作成を自動化します。私は本当にこれをしたくありません。
(a)このタイプのAPIが存在するかどうか、または(b)これを実行する他の方法があるかどうかを誰かが知っていますか?このアプリは、明らかにセルフホスティングのためにGithubで公開されます。
rest - 安らかなWebAPIでの2要素認証
ストレートHTML5とWebAPIRESTfulサービスを使用して新しいasp.netWebAPIアプリケーションを構築しています。すでにフォーム認証と[Authorize]属性を使用して、WebAPI呼び出しを保護しています。私は、安らかな原則にできる限り忠実であり続けようとしています。
2要素認証を使用し、asp.netWebフォームを使用する既存のアプリの機能を模倣しています。二要素認証は、ログインには使用されませんが、サイトとプラグインを介して別のマシンにリモート接続するという追加のタスクに使用されます。
既存のWebアプリケーションは、セッション状態を使用して、生成されてユーザーに電子メールで送信されるピンを格納します。次に、ユーザーがPINを入力すると、セッション状態のPINと照合されます。
だから私の選択肢は...
- サーバーで生成されたピンを暗号化し、JavaScriptでクライアントに送り返します。このオプションはセキュリティリスクのようです。これは、より安らかなオプションになります。
- 同僚は、AmazonS3が公開鍵と秘密鍵のペアを使用して行うようなものを使用することを提案しました。
- Web APIを使用しているにもかかわらず、セッション状態を使用します。
では、これらのオプションのうち、最良のオプションは何ですか?他の可能性はありますか?
windows - Windows で 2 要素認証を実装するにはどうすればよいですか?
私が行う必要があるのは、ユーザーが通常どおりドメイン/ユーザー名/パスワードを入力するだけでなく、ログインプロセス中に何らかの方法で傍受し、認証し、ログインを許可する追加のトークンも入力することです。したがって、事実上、ユーザーはWindows で許可されている場合にのみログインし、この 2 次認証プロセスで許可されます。
Windows はこれをサポートしていますか? これを実装するためのメカニズムはありますか?
php - 2段階認証
私が書いているSymfony2アプリケーション内に2要素認証スキームを実装しようとしています。基本的に、システムは現在、DoctrineORMエンティティをユーザープロバイダーとして使用して正常に動作しています。しかし、これを適切かつ最も効率的に追加する方法を見つけるのに問題が発生しています。
基本的に、認証はそのように機能する必要があります。ユーザーにはログインフォームが表示されます。ユーザーとパスワードの組み合わせを入力し、OTP(この場合はyubikey)を入力します。
標準のsymfony2認証は、ユーザー/パスワードを適切に処理します。ただし、OTPサポートを追加するオプションを追加したいと思います(ユーザーがyubikeyのデータベースエントリを持っていて、サイト全体で有効になっている場合)。
誰かがそのようなスキーマで運が良かったですか?車輪の再発明を避けたいので、これを現在の認証スキーマに結び付ける方法を理解する必要があります。
もともと、私が使用しているカスタムパスワードエンコーダー(bcrypt)内でisPasswordValid()関数を使用することを考えていました。ただし、その関数にotpを渡す方法はないようです。
security - 2 要素認証の成功を記憶するために Cookie が必要 (永続的なログインではない)
「remember me」オプションに Cookie を使用する方法については、ここや他の場所をよく読みましたが、私が探しているのは、2 要素認証の成功を記録する Cookie を設計する方法です。これは、たとえば Google が行うことです。2 番目のステップが成功すると (たとえば、SMS で受け取ったコードを入力した場合)、一定期間 (たとえば 30 日間) 有効な Cookie が設定されます。 2 番目のステップはバイパスできます。これを「検証 Cookie」と呼びます。その間にログアウトしてから再度ログインすると、2番目のステップは実行されず、最初のステップのみが実行されると理解しています。(私はこれをテストしましたが、そのように見えました。)
私の質問は、このクッキーをどのように設計するかです。1 つのアイデアは、ユーザー ID と 128 ビットの乱数を Cookie に入れ、その数値をユーザー ID と共にデータベースに格納することです。これは、Charles Miller が推奨する ( http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/ ) 永続ログイン Cookie です。
しかし、それだけでは十分ではないと思います。問題は、ユーザーが 2 要素認証を使用しているため、2 番目のステップが成功したことを記録するために使用される Cookie が何であれ、1 要素認証の場合よりも安全である必要があることです。
私が避けたいのはこれです: クラッカーはデータベースからハッシュ化/ソルト化されたパスワードを持っており、どういうわけかパスワードを取得しています. 彼/彼女がそれだけ持っている場合、検証 Cookie にあった 128 ビットの乱数も使用できると思います。(クラッカーが別の方法でパスワードを取得し、データベースを持っていない場合、コンピューターに物理的にアクセスできない限り、検証 Cookie は安全です。私が心配しているのは、データベースが侵害された場合だけです。)
たぶん、128 ビットの乱数を暗号化するという考えはありますか? (双方向である必要があります -- ハッシュではありません。) 暗号化キーはアプリケーションからアクセスできますが、データベース資格情報は保存されている可能性があります。
私が検証 Cookie (永続的なログイン Cookie ではない) と呼んでいるものを誰かが実装し、それがどのように行われたかを教えてくれますか?
更新: これについて考えると、十分に安全だと思うものは次のとおりです: Cookie はユーザー ID と 128 ビットの乱数で構成されます - R と呼びます。
データベースにはパスワードと R が含まれており、それぞれハッシュ化およびソルト化されています (たとえば、PhPass を使用)。R は 2 番目のパスワードと見なされます。利点: 最初のパスワードが悪い場合でも (例: "password1")、R は非常に優れたパスワードです。データベースは本当にクラックできないので、心配する必要はありません。(余計な心配もしたと思います。)