問題タブ [yubico]
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.
fido-u2f - Chrome 拡張機能を使用しないが u2f-api.js を使用しない複数の FacetID との U2F 統合
Web アプリケーションに U2F を実装しようとしています。アプリケーションは複数の URL で使用できるため、仕様で説明されているように、有効な FacetID を含む JSON ファイルを追加する必要があります。Yubico のWeb サイトには、その仕様の短い要約があります。
残念ながら、u2f.register(...)
メソッドを呼び出すと、エラー コード 2 が表示されます。これは、AppID に問題があることを意味します。
My AppID は JSON ファイルへの URL です。仕様にあるとおり、application/fido.trusted-apps+json
コンテンツタイプとして追加します。とにかく、この URL が呼び出されることはありません。
最新の Chrome (v46.0.2490.80m) を使用しています。ここで述べたように、Chrome 拡張機能はもう必要ありません。
さらに、仕様に従って U2F が実装されていることを示す Chromium プロジェクトに関するクローズドバグ レポートを見つけました。
Chrome 拡張機能の代わりにu2f-api.jsを使用しています。
この u2f-api.js は問題ですか? より新しいものはありますか?
これまでの私のコードは次のとおりです。
java - Yubico OpenPGP スマートカードで使用するための PGP データ暗号化
Java アプリケーションで Yubikey NEO OpenPGP スマート カード アプレットに基づく PGP 暗号化を実装しようとしています。それは暗い芸術のようで、このようなものをグーグルで検索するのは簡単ではありませんが、これまでのところ私が得た場所は次のとおりです。
カードが初期化され、キーが gpg ツールを使用して生成されます。それは一般的に機能します。公開鍵が
.asc
フォーマットされていて、なんとかロードできましたorg.bouncycastle.openpgp
javax.smartcardio
APIを使用して USB ドングルのスマート カードに接続します。OpenPGP アプレットを選択します
/li>正しい PIN をカードに正しく提示する
/li>準成功 (以下を参照)
decipher
コマンドを送信するの場合
data = "xxxx".toByteArray()
、結果はSW=9000
(= 成功) ですが、データは返されません。52ページのOpenPGPアプレットのドキュメントに次のように記載されているため、これは単純なテストです。コマンド入力 (パディング インジケータ バイトを除く) は、暗号化の前に PKCS#1 に従ってフォーマットされます。
データを暗号化して PKCS#1 形式にする方法がわかりません。
Yubico OpenPGP カードの実装テストも読んでみましたが、別の「失敗した」例 (196 行目) しか提供されていません。私はそれを実行しようとしましたが、結果は異なります: テストは期待してSW=0050
います (例外を示していますか?) と、私が得たものは(このドキュメントSW=6f00
によると、正確な診断はありません) です。
コード全体を含むGitHub リポジトリを作成しました。Kotlin で書かれていますが、読みやすいはずです。
authentication - FIDO U2F: 署名方式の独立性?
任意の署名方式で FIDO U2F 標準を実装できますか? 特定の方法を使用する必要がある場合、情報が見つかりませんでした。
追加の質問: 登録段階で複数の公開鍵を依拠当事者に送信することは可能ですか (たとえば、1 回限りの署名スキームが使用されている場合)。
javascript - Javascript / ブラウザ暗号化: Yubikey を使用
ブラウザ内のデータを暗号化したいとしましょう (JavaScript 経由、PGP を使用)。キーをブラウザー (LocalStorage) に保存するのは保存されないため、PGP 暗号化/復号化を提供するYubiKeyのような外部デバイスにキーを保持したいと考えています。
したがって、ユーザーは秘密のテキストを書き込み、YubiKey を差し込み、ボタンを押すと、秘密のテキストが YubiKey に送られ、暗号化されます (暗号化のキーは YubiKey に残り、暗号化されたテキストを返します。復号化についても同じです。 .
そのようなことは技術的に可能ですか?そうでない場合、暗号化用のキーを他にどこに保管しますか?
github - 電話なしで GitHub で YubiKey 2FA をセットアップするにはどうすればよいですか?
私はスマートフォンを持っておらず、誰かに連絡するために実際に必要になる可能性があることがわかっている場合にのみ、安価なダンフォンを持ち歩いています (つまり、ほとんどありません)。一般的に言えば、信頼できるデバイスとして使用する電話はありません。
私はYubiKey Neo とラップトップを持っています。
GitHub の 2FA は、構成を開始するために、信頼できる SMS 対応の電話を必要とするようです。
- この要件を回避する方法はありますか?
- この要件には正当な理由がありますか? 「誰もが 1 つ持っている」というのは、既に述べたように、正当な理由ではありません。
google-chrome - ホスト名/IP アドレスが変更されたサイトでの FIDO U2F
ログイン後にシステムを管理するために、ロードバランサーへの管理インターフェースに FIDO U2F (YubiKey を使用) を実装したい状況があります - U2F を追加の認証レイヤーとして使用する必要があります。
システムの寿命を通じて、アクセスに使用される IP アドレスとホスト名が変更されるのはよくあることです (たとえば、一度https://192.168.0.20/になったら、その後はhttps://lb-admin.company.com/になります)。 、それからそれは何か他のものなど)。
問題は、キーが appId (サイトの URL) に対して登録され、appId が keyHandle でエンコードされることです。キーを登録するときに、複数の appId を許可したり、appId の制限を削除したりする方法はありますか?
つまり、1 つの YubiKey を登録し、それを Web サイトの任意のエントリ ポイントから使用したり、キーが最初に登録された IP アドレスまたはドメインとは異なる IP アドレスまたはドメインを使用して Web サイトにアクセスしたとしても、それを使用しますか?
yubico - Yubico デバイスからキーを取得する方法
https://developers.yubico.com/でキーを取得するためのライブラリが見つかりませんでした。ボタンを押した後、Yubico からワンタイムキーを取得する方法を知っている人はいますか?
java - Java で U2F トークン (例: Yubikey Neo) の公開鍵と秘密鍵を取得する方法
Yubikey Neo などの U2F トークンから公開鍵と秘密鍵を取得できるアプリケーションを Java 言語で作成しようとしています。コンソールで単純なスキャナーを使用して Yubikey Neo から何かを取得しようとしましたが、メモ帳で印刷される OTP とは異なり、印刷されないため (おそらく形式が原因で) 機能しませんでした。リーダーによってキャプチャされます。
Yubico のように、ユーザーが U2F トークンのボタンに触れたときに公開鍵を取得できる Javascript の実装のみを提供していることは知っていますが、これまでのところ、それを実行できる Java のライブラリは見つかりませんでした。U2Fトークンから公開鍵と秘密鍵を取得できる方法はありますか?
fido-u2f - マルチファセット App ID を使用した U2F
ホスト名をアプリ ID ( https://auth.company.com )として認証 Web アプリで U2F を直接使用しており、正常に動作しています。ただし、 HTTP API 経由で認証サーバーと通信する他のアプリ (およびhttps://customer.app.comなどのホスト名) から認証サーバーで認証できるようにしたいと考えています。
API 呼び出しを介して署名要求などを生成し、それらをクライアント アプリに返すことはできますが、アプリ ID が検証されない (クライアントが独自のホスト名をアプリ ID として使用している) ため、サーバー側 (認証サーバー) で失敗します。 . これは理解できますが、これをどのように処理すればよいでしょうか。ファセットについて読みましたが、まったく機能しません。
クライアント アプリの JS は次のようになります。
これにより、しばらくするとエラー コード 5 (タイムアウト エラー) が表示されます。/facets へのリクエストが表示されません。これを回避する方法はありますか、それとも間違ったツリー (または別のフォレスト) に吠えていますか?
————</p>
さて、これを数時間調査した後。Firefox U2F プラグインのこの厄介な部分が、私の悩みの原因であると確信しています。
https://github.com/prefiks/u2f4moz/blob/master/ext/appIdValidator.js#L106-L110
基本的に、appID のスキームが http の場合、それがページのホストとまったく同じである場合にのみ許可するということです (信頼されたファセット JSON を取得するための動作を実行しますが、https に対してのみ)。
これをどのように設計しようとしているのかはまだわかりません。