ラベル FIDO の投稿を表示しています。 すべての投稿を表示
ラベル FIDO の投稿を表示しています。 すべての投稿を表示

2024年10月17日木曜日

Credential Exchange Format/Protocolの新Working draft

こんにちは、富士榮です。

Authenticate 2024が10/14-16で開催されましたね。
各社イベントに向けて色々と実装をして発表にこぎつける、というのは世の常ですが、これはもちろんスペックライターについても同じようです。



ということで満を持して発表されましたね。

  • Credential Exchange Format
  • Credential Exchange Protocol
これらの新しいWorking draftが今週金曜日18日にリリースされるようです。

以前から触れていたCredential Exchange Specificationsですがパスキーのインポート・エクスポートのための仕様という冠で登場って感じですかね。

同期パスキーなど色々と新しい考え方が盛り込まれてきたFIDO関係ですが、NISTを含めちゃんと利用ガイドを整えていかないといけませんね。(まぁ、そもそも鍵はデバイスから出ないっていうのが原則だったわけなので、考え方を変えていかないといけません)

2024年10月10日木曜日

Windowsのパスキー対応の今後

こんにちは、富士榮です。

いよいよ来週はAuthenticate 2024ですね。残念ながら参加できませんが。


ということで、Authenticateに向けて各社パスキー周りの話題が進んできていそうです。


MicrosoftからもWindowsのパスキー対応について記事を公開しています。

Passkeys on Windows: Authenticate seamlessly with passkey providers

https://blogs.windows.com/windowsdeveloper/2024/10/08/passkeys-on-windows-authenticate-seamlessly-with-passkey-providers/


こちらの機能がWindows Insiderチャネルで配信されるようです。久しぶりにWindows PCでも触ろうかな・・・

  • A plug-in model for third-party passkey providers
  • Enhanced native UX for passkeys
  • A Microsoft synced passkey provider


サードパーティプロバイダとの連携では1Passwordなどとの連携ができるようになるようです。3点目のMicrosoftが提供する同期ファブリックと連携できたりすると面白そうです。Credential Exchange Specificationが実装されてくると面白いと思います。

いずれにしても来週のAuthenticateで詳しく言及されるのかと思います。楽しみですね。

2024年10月7日月曜日

Entra IDを使ったパスワードレスでのオンボーディングシナリオ

こんにちは、富士榮です。

Entra IDもVerified IDやFIDOなど色々な要素が組み合わさってきているので、それらの機能をどうやって組み合わせて使うのが良いのか?という疑問が湧いてきます。

そんな時にパスワードレスでオンボーディングをするというシナリオに基づくデザイン〜実装ガイドがMicrosoftから発行されていますので、見てみようかと思います。

Phishing-resistant passwordless authentication deployment in Microsoft Entra ID

こちらのドキュメントです。

全体像はこんな感じですね。


Onboarding step 1: Identity verification

最初のステップではEntra Verified ID(+3rdパーティソリューション)を使って政府発行のIDなどで本人確認するところからスタートします。その後、PCのBootstrapではTAP(Temporary Access Pass)を使ってドメイン参加〜認証器のエンロールをする、という流れですね。(もしくは、最近PreviewになったGraph APIで事前にFIDO認証器をプロビジョニングしておく、という方法もありますね)

関連資料)
前のフェーズでTAPでBootstrapし、最初のクレデンシャルのエンロールをするタイミングです。ここで重要なのはデバイスにバインドされたクレデンシャルではなくポータブルなクレデンシャルをエンロールすべきである、という点です。当然働き方・デバイスの使い方によって事情は異なりますが、最初のクレデンシャルがデバイスにバインドされてしまうと後々困ることになるからですね。

Onboarding step 3: Bootstrap local credentials on computing devices

ポータブルなクレデンシャルがエンロールされれば、あとは個別のデバイスのセットアップを自由にできるわけです。この段階でデバイスごとのローカルクレデンシャルをエンロールしていきます。典型的にはWindows HelloのPINの生成ですね。要するにローカルの鍵ストアをオープンするための手段を作っていくところです。


まぁ、非常に典型的な話ではありますが、ドキュメントではもっと細かくパターン分けされたデザインが出てきますので、みなさんの仕事の仕方、デバイスの種類を考えて適切なデザインをしていってください。

2024年8月29日木曜日

パスキーのデモサイトが便利

こんにちは、富士榮です。


Googleのえーじさんが公開されているパスキーのデモサイトがめちゃ便利です。


こちらです。

登録した認証器がタイプなどの情報が見やすく表示されます。

この辺りでパスキーの実装を試していた時にも認証器を色々と試しては情報の解析をしたりしていたので、このサイトを使うとその辺の作業がとっても楽ですね!



2024年8月19日月曜日

端末がパスキーにどこまで対応しているか確認する方法

こんにちは、富士榮です。

パスキーのテストをする際によく使うpasskeys.devに、端末(プラットフォーム・ブラウザ)がどんな機能をサポートしているのかを確認するためのページができています。

WebAuthn Features and Capability Detection

これを使うとブラウザが何をサポートしているのかが一目でわかります。
確認できるのは、以下の通りです。
  • Features
    • Get Client Capabilities
    • Conditional Get (Autofill UI)
    • Conditional Create (Opportunistic Upgrades)
    • Related Origin Requests
    • toJSON().Method
    • Parse JSON Request Options
    • Parse JSON Creation Options
  • Client Capabilities
    • Passkey Platform Authenticator
    • User Verifying Platform Authenticator
    • Hybrid Transports
    • Extension: PRF

試しに手元のデバイス・ブラウザで確認してみました。

MacOS 14.6.1 / Safari
MacOS 14.6.1 / Firefox 129.0.1



Android 14 / Chromeブラウザ

iOS 17.5.1 / Safari



うーむ。まぁわかってはいましたが先日の「パスキーはパスすべきなのか?」に書いた通りまだまだサポートレベルにばらつきはありますよねぇ。





2024年8月5日月曜日

結局パスキーはパスすべきなのか?

こんにちは、富士榮です。

結局「パスキーはパスすべきなのか?」という話です。


昨日のポストでDean SaxeがIDProに反論記事を書いているということを書きましたが、今日はそちらを見ていきましょう。

Don’t Pass on Passkeys

https://idpro.org/dont-pass-on-passkeys/

IDProのポストより


昨日取り上げたポストでは、結局認証器ベンダや同期ファブリックを運営しているベンダと鍵を共有することになる、とか、異なるベンダのプラットフォームを跨いでの鍵の同期や再利用ができないことが指摘されていました。

今回のDeanのポストではそれらの指摘に対して以下のように反論しています。

  • デバイスにバインドされたパスキーであればTPMやTEE、SEに紐づいているので他者から抜き取られることはない
  • 同期ファブリックは安全に管理されている
  • クロスデバイス認証(Hybrid)を使うことで異なる事業者のプラットフォームでもパスキーを使える
  • 最近はパスワードマネージャを提供している事業者がパスキーにも対応してきているのでプラットフォームを跨いでパスキーを利用できるようになってきている
また、特にセキュリティの指摘(LastPassからの漏洩)に関しては、「パスワードマネージャを利用している人は30%くらいで、84%の人はパスワードを自分で使い回している」と反論しています。そして、こうなるとパスワードとパスキーの強度の比較の問題になるので、NIST SP800-63Bsup1でも取り上げられているように明らかにパスキーの方が強度が高いのである、と主張しています。

そして、相互運用(ベンダロックイン)問題については、それぞれのプラットフォームごとにパスキーを登録すればいいじゃないか、という若干乱暴(?)な主張とともに、一部ベンダでは秘密鍵のエクスポートにも対応してるぞ、おすすめはしないけどね、と書いています。

最後に、FIDOアライアンスではUniversal Credential Exchangeプロトコルを開発していて、これを使えば異なるクレデンシャルマネージャの間で安全にクレデンシャル情報を転送できるようになる、と締めくくっています。


まぁ、面白い議論ですね。
いずれにしてもこの手の話は100:0になることはないので、切磋琢磨しながら技術の進歩が進んでいくものだと思います。我々は常にこういう議論があることを理解しておくことが重要なんだと思います。

2024年8月4日日曜日

パスキーはパスすべきなのか?

こんにちは、富士榮です。

パスキー便利ですよね。これまでもパスキー推しのトーンでポストを書いてきましたが、一方でX(旧Twitter)ではうまく使えない、動かない、などの声がリテラシーの高い層からも聞こえてくるのも事実です。


そんな中、IDProが「I’ll Pass (for now) on Passkeys」という記事を先日公開しています。

https://idpro.org/passing-on-passkeys/

IDProの記事より


もちろん、IDProとしても著者個人の意見である旨を断った上で記事を掲載していますが、ある方面からの見え方としては正しいこともあるので把握しておくことは大切だと思います。

なお、別途書こうと思いますが、後日Dean Saxeが同じくIDProに反論(?)記事も書いているのでそれはそれで面白いです。


今回は「今の所、パスキーはやめとくわ」っていう著者の主張を見ていきましょう。

主な理由として、以下を挙げています。

  • セキュリティ
  • 相互運用性

セキュリティ

著者は、認証器を購入する、認証器の回復をする、という行為を考えると認証器に関する情報は所有者・利用者のみならずベンダーやバックエンドファブリックを運営している事業者とも共有されてしまう、という点を挙げています。例としてLastPassからの漏洩事故を挙げていますね。
まぁ、全ての人が他人に推測されない十分なエントロピーのあるパスワードをパスワードマネージャなどに依存せずに運営できる、という状態が来れば著者の主張も納得できますが私には無理です。

相互運用性

著者はこう主張しています。
Passkeys did seem like an initial positive middle ground, however the confusing marketing, implementation limitations, sometimes lack of transparency and interoperability has so far, undermined their potential to be a truly great improvement on current password and MFA options.

 パスキーは、初期のポジティブな中間的な選択肢のように思えたが、マーケティングの混乱、実装の限界、時折見られる透明性の欠如、相互運用性により、パスワードやMFAのオプションを真に大きく改善する可能性は、今のところ損なわれている。

特に透明性の欠如の部分ではProtonのブログを引用しています。

https://proton.me/blog/big-tech-passkey

Protonのブログは若干の誤認識がありそうですが、簡単にいうと結局GoogleとAppleが牛耳ってるじゃん、Synched Passkeyの鍵の同期もAppleワールドの中ではできるけど自分で好きにExportしてWindowsでも使えるようになってないじゃないか、という主張がされています。

同じようにGoogleはChromeを使っている限りはパスキーの同期はできるけどFireFoxを使ったらダメじゃん、ということで相互運用性や透明性について課題があると主張がなされています。


うーん、全体にそこじゃない感じしかしませんが。

私が観測している範囲だと、パスキーが使えないっていう主張のほとんどは一部は上記の2点に関連するところはあるものの、実際はパスキーを設定させるまでのユーザ導線が難しすぎる、とか、機種変更やサービス側の機能Updateが発生した場合に過去に設定したパスキーが見つからないとか、詰む、などサービス側の問題な気がしているんですが。。。


2024年5月4日土曜日

NIST SP800-63B-3の同期可能クレデンシャルに関する追補版を読む(1)

こんにちは、富士榮です。

先日紹介した通り、NIST SP800-63-3の追補版という形で同期可能なクレデンシャルの取り扱いに関する文書がリリースされました。

今回から中身を少し見ていこうと思います。

しかし、ちょうど最近iOSやmacOSの共有パスワードグループでAirDrop環境外でもパスワードに加えてパスキーまで共有ができるようになった、というアナウンスが界隈では話題に上りました。なんだか単純な同期の話だけでは済まなくなってきてしまった気もしますが、この機能がこのガイドラインにどのような影響を与えるのかは継続ウォッチということで、まずはガイドライン(追補版)を見ていきましょう。

参考)共有パスワードグループ

とりあえずイントロです。例によってDeeplで機械翻訳です。

Introduction

NIST デジタル ID ガイドラインは、ID 証明、認証、およびフェデレーションを 含む、デジタル ID のプロセスと技術要件を規定している。NIST 特別刊行物(SP)800-63B(SP 800-63-3 に関連する第 B 巻)は、認証およびライフサイクル管理 の要件を特に取り上げている。改訂 3 は、このガイドラインの最新の大幅な改訂であり、2017 年 6 月に発行された。シリーズ全体の更新が進行中であり、改訂 4 で完結する予定であるが、技術のペースは NIST の典型的な文書開発およびレビューのプロセスよりも速いため、この補足的な更新が正当化される。

SP 800-63B で扱われるこのような認証タイプは、多要素暗号認証である。通常、この認証タイプは、ハードウェアまたはソフトウェアで暗号鍵を保護し、第 2 の認証要素(記憶された秘密またはバイオメトリック特性のいずれか)による起動を必要とする。秘密鍵を不正な暴露から保護することは、多要素暗号認証機のセキュリティ・モデルの基本である。これには従来、秘密鍵がエクスポートまたはクローン可能でないことを保証することが含まれる。しかし、このパラダイムは変わり始めている。特に、新しい一連の認証プロトコルと仕様により、同期可能な認証子(一般に「パスキー」と呼ばれる)が急速に採用されるようになり、ユーザが異なるデバイス間で秘密鍵を同期(つまり、 複製)できるようになった。

SP 800-63-3 が 2017 年に発行されたとき、2 つの重要なサポート仕様である Fast Identity Online (FIDO) Client to Authenticator Protocol (CTAP) と W3C の Web Authentication(一緒に使用される場合は FIDO2 として知られる)は存在せず、実装の強固でよく理解されたエコシステムもなかった。当時利用可能であった暗号認証の種類に基づき、2017年のガイドラインは、多要素暗号認証が他のデバイスに鍵を「クローン」する能力を制限した。しかし、この2年間でエコシステムは急速に加速し、現在ではほとんどの主要なプラットフォーム・プロバイダが、スケーラブルで同期可能な認証機能を実装している。これらの認証機能は、耐フィッシング性のサポート、特定の依拠当事者にバインドする機能、パスワー ドを送信する必要性の排除、認証機能のリカバリの簡素化、保存された秘密鍵に付随する第 2 要素とし ての多様なデバイス固有の生体認証および PIN の使用など、多くの利点を提供する。また、ますますマルチデバイス、マルチプラットフォーム化する世界に適合する利便性も提供する。どのような新しい技術もそうであるように、技術革新の約束には、探求し理解しなければならない新たな脅威と課題が伴う。そのため、この補遺では、連邦機関が同期可能な認証機能を実装するかどうか、またどのように実装す るかを決定する際に、現代の脅威を含めて考慮すべき事項の概要を示す。
まぁ、先日のポストにも書いた通り、時代が変わったのでver.4を待たずに追補版で同期可能なパスキーに関してちゃんと分析して考慮をしよう、という話です。

次に文書の目的です。

Purpose

この文書の目的は、変化する認証およびクレデンシャルの市場を反映するために、現行の NIST ガイドラインを適合させることである。この補足では、SP 800-63-3 で確立された認証保証レベルと一致する方法で、同期可能な認証機能がどのように脅威を軽減するかを説明し、SP 800-63-3 認証保証レベル 2(AAL2)を達成するために活用できる同期可能な認証機能の理解を連邦機関に提供する。また、SP 800-63B の第 5.1.8 節で説明されているソフトウェア暗号化認証子の使用に関する最新情報、 特に、鍵が別のデバイスに複製(例えば、「クローン」または「同期」)された場合でも、当該認証子が AAL2 認証要件をサポートする能力についても提供する。最後に、本文書は、公衆向けアプリケーション(すなわち、OMB Memorandum M-19-17 に記 載されているように、公衆 ID と相互作用する連邦情報システム)と連邦エンタープライズ・ アプリケーション(すなわち、OMB Memorandum M19-17 に記載されているように、主に連邦エ ンタープライズ ID と相互作用する連邦情報システム)という 2 つのユースケースに基づ いて、実装に関するいくつかの考慮事項を示す。この文書は、SP 800-63-3 にある既存のガイダンスを補足するものであり、SP 800-63B-4 の最終版に取って代わられる。
記載の通りですが、同期可能であってもAAL2を達成できることを説明するための資料になっているってことですね。また、当然ですが最終的にはver.4へ統合されていく文書というわけです。

ということで、ちょっと長めのシリーズになりそうですが徐々に見ていきたいと思いますので、今回はここまでです。



2024年2月13日火曜日

Authentrendのカード型のPasskeyを試す

こんにちは、富士榮です。

なんだかステマっぽいですがそういう訳ではありません。

昨年末のFIDOアライアンスのイベントでAuthentrendの方から最新のカード型のパスキー「ATKey.Card NFC Bio-ID」をいただいたので試してみます。(いただいた段階では管理用のアプリがストア公開されていなかったので試せずにいたのですが2月に入りようやく公開されたので試せるようになりました)

こちらが製品のページです。

https://authentrend.com/atkey-card-nfc/

 こんなやつです。


バッテリーなしで動作するICカードタイプのセキュリティキーで、インターフェイスはNFCなのでパスキーとしての利用以外にも扉の開閉などにも使えます。(もちろん扉側の管理システムがNFCに対応していてカードを登録すれば、ですが)

パスキーとしてみた場合は単なるNFCタイプの指紋センサー付きの外部セキュリティキーとして使えます。

早速試してみましょう。


カードのセットアップ

カードをアクティブ化するにはiOS版かAndroid版の管理アプリをインストールする必要があります。(現状、Android版はベータ版です)
アプリケーションは先述の製品ページのQRコードからマーケットを開くとダウンロードできます。


こちらはiOS版ですが、初回起動するとカードをかざすように求められるのでNFCリーダーで読み取らせます。

こちらが初期状態なので、PINと指紋を登録していきます。
ちなみにSign-in Dataに38leftとあるように38サイト分のサインインデータの登録ができるようです。

こちらが指紋登録をしているところですが、iPhoneのリーダーにカードをかざして指紋にタップを繰り返すことで指紋が登録されます。


パスキーとして登録する

カードのセットアップが終わったら、普通にパスキーとして使えるようになっています。
いつものwebauthn.ioで試してみます。

いつも通り適当にユーザ名を入れてregisterからキー登録を行います。
ただし、デフォルトだとFaceIDが優先されてしまうので、Advanced SettingsでRegistration HintsとしてSecurity Keyを設定します。この設定によりセキュリティキーを使った登録が行われます。
この状態でRegisterをタップするとセキュリティキーを使ったパスキーの登録が始まります。

先ほどの指紋登録時と同じくカードをかざして指紋をタップすれば登録が完了します。

ちなみに管理アプリでカードを読み込ませてみるとSign-in Dataにwebauthn.ioのサインインデータが登録されたことがわかります。


サインインする

次にサインインしてみます。Authenticateボタンをタップするとサインインが求められるのでセキュリティキー・NFCを選択、先ほどと同じくカードをかざして指紋をタップします。
これで完了です。
正常にサインインできました。



という感じで簡単ですが試してみました。
セキュリティキーのネックレス問題が起きているので、カード型だと省スペースになるな〜というのと扉の開閉や身分証明書とのハイブリッド利用ができるようになると便利だと思います。


2021年8月6日金曜日

LINEがFIDO2サーバーをOSSで公開したので触ってみた

こんにちは、富士榮です。

もうすでに記憶の彼方ですがLINEさんは過去にFIDO2サーバーをOSSで公開する!と宣言していました。それが遂に公開されました!素晴らしい!

ということでとりあえず動かしてみました。(まだ中身は全然みてません、単に動かしただけです)




とりあえず公開されているレポジトリをcloneしてREADME.mdに記載の通り動かしてみました。


# Start RP Server
cd rpserver
./gradlew bootRun
# Start FIDO2 Server or Line-fido2-spring-boot Demo
cd server
./gradlew bootRun
cd spring-boot-starter/line-fido2-spring-boot-demo
./gradlew bootRun


やることとしては以上です。

これで http://localhost:8000 にアクセスするとテスト用のトップ画面が出てきます。

まずは認証器の登録

まず画面上部のuser nameとdisplay nameに適当に名前を入れます。

その状態で画面下部のregisterをクリックすると認証器の登録を求められます。今回はMacbook ProのTouch IDを使っていますが、Yubikeyなどのローミングキーやモバイルの場合はFace IDなども使えます。

うまくいけば成功したよ、というメッセージが表示されます。



認証器を使って認証してみる

次は登録した認証器を使って認証してみます。resident_keyにも対応しているので画面丈夫のuser nameを入れないとユーザ名の選択をするところからスタートしてくれます。とっても便利です。
もちろんuser nameを入れてAuthenticateをクリックするとユーザ名を選択することなく認証することもできます。

こちらもうまく認証されると画面下部に成功!とメッセージが出ます。




とりあえず動かしてみた、というだけなので簡単ではありますが以上となります。

OSSでピュアなFIDOサーバーの実装が出てきたというのは非常に画期的なので、これから実装をする方にとってはもちろん、自社のWebサイトへFIDO認証を組み込む方にとっても一つの選択肢になるのかもしれません。(もちろんこれまでもKeycloakのようにOSSでFIDOをサポートしたソフトウェアはありましたが、FIDOの部分だけ抜き出すのも苦労するので)




















2019年12月31日火曜日

年忘れはFIDOで!指紋認証付きのeWBM Goldengateを試す

こんにちは、富士榮です。

世の中は大晦日ですが、今日になってeWBMさんよりGoldengate G310が届いたので軽く試してみます。

届いたのは、G310というFIDO2対応のキーです。
https://www.ewbm.com/security-keys/goldengate-g310/



韓国から直送で送られてきたっぽいです。
まだ日本のAmazonでは買えないので、直販サイトか米国Amazonで買うのがいいみたいです。
 直販サイト
  https://www.ewbm.com/store/products/goldengate-g310/
 米国Amazon
  https://www.amazon.com/s?k=ewbm+g310&ref=nb_sb_noss_2

定価は60ドルですが、直販サイトだと初回は45ドルで買えるみたいです。
(私はMVPのサードパーティ特典で頂きました)


なんだかキーばっかり増えちゃって微妙な感じですが、Yubikeyとの大きな違いは指紋認証機能があることですね。
キーだらけ・・・


やれることは正直他のFIDO2対応のキーと変わらないので、今更動きについて解説する必要もないと思いますので、先日のAXIES(大学ICT推進協議会)の年次大会でお見せしたG SuiteへAzure AD B2C+FIDO実装を使ってパスワードレスでログインするデモを張っておきます。



最大の特徴の指紋登録ですが、以下の2通りの方法で設定できます。
1.公式のツール「Goldengate BioManager」を使う
2.Windowsのアカウント設定を使う

それぞれ簡単に。
まずは公式ツール「Goldengate BioManager」を使う方式から。

ツールはこの辺りからダウンロードできます。
 https://www.ewbm.com/support/BioManager/

ちなみにダウンロードしてセットアップしようとするとWindowsに実行をブロックされますが無視して進めます・・・

セットアップが終わりツールを起動するとこんな画面が出てきます。
言語の切り替えもできて、日本語も選べます。


次は指紋の登録です。

指紋追加を選ぶとタッチする様に促されるのでベタベタ触ります。


登録が終わると、登録済みの指紋以外でタッチしてもキーが反応しなくなります。
あと、PINが聞かれなくなります。
※指紋登録していない状態だと単純にタッチ+PINだけでサインインできる(Yubikeyと同じ挙動)が、指紋登録をすると登録していない指だとサインインできない。


ちなみに、2つ目の登録手段であるWindowsの標準の設定です。
設定⇒アカウントのセットアップから登録できます。

ちなみにWindows Helloの設定も同じ設定メニュー内にありますが、あくまでセキュリティキーの設定なのでここでセットアップしてもセキュリティキーでWindowsログインが出来るようになるわけではありません。もしOSログインにも使いたければ使うアカウントの設定をMicrosoftアカウントなりAzure ADアカウントなりで設定する必要があります。

指紋の追加は先ほどのBioManagerとほぼ同じです。




セキュリティキー+PINだけでは不安な方は指紋認証機能も付いているGoldengateも一つの選択肢となりえますね!

2018年10月4日木曜日

Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す

こんにちは、富士榮です。

昨日は #idcon vol. 25 「fidcon 勝手に Meetup」が品川のマイクロソフトで開催されていたので、参加してきました。なんともタイミングの良い?ことに、ちょうど Edge が正式に WebAuthn に対応した、Windows 10 October 2018 Update がリリースされたタイミングと重なりました。

ローンチのアナウンス
https://blogs.windows.com/windowsexperience/2018/10/02/how-to-get-the-windows-10-october-2018-update/


ちょうど日本マイクロソフトの物江さんが Edge の WebAuthn のセッションでデモをされたりもしており、なんというタイミング?!ということで、何か持っているんだと思います。

私はセッション中に Windows Update が降ってきてついつい再起動してしまったので、イベント終了後も開きっぱなしの Macbook Air を持ったまま品川の街を歩くハメになりましたが・・・


ということで、Edge のWebAuthn を試してみましょう。
手元にあったのは、FIDO2 に対応した Yubikey Security Key(青い奴)とマウスコンピュータの指紋認証用の USB ドングルなので、この辺りを使ってみます。

右:Yubico セキュリティキー
左:マウスコンピュータ FP01

テスト用のサイトとして、https://webauthn.org/ を使います。
内容としては、

  1. ユーザとデバイスを登録する
  2. ログインする

というシンプルなモノですが、Debug Windows でプロトコルの詳細なメッセージが確認できるので非常に便利です。
ちょうど最後のセッションで @shiroica さんがお話ししてくださった各パラメータの紹介が非常に役に立ちます。


ちなみにこのテストサイトではあまり細かいパラメータが触れるわけではなく、authenticatorSelection の指定は出来ず、attestation も direct 固定となっています。
この辺りを試すには https://webauthn.io/ を使った方が良いかも知れません。
ちなみに Google の @agektmr さんの話では、Google としてはエンタープライズのシナリオを除き attestation は none がお奨めとのことです。(会社が指定した Authenticator だけを使わせたい、というようなケースですね)

1.ユーザとデバイスを登録する

Register タブで Usernameを指定して Register ボタンを押すだけです。

画面の下の部分の Advanced を開くと実際のメッセージを確認することが出来ます。

PubKeyCredParams で -7 と -257 があることから U2F と Windows Hello に対応していることがわかったり、 attestation は direct となっているあたりがわかります。

登録が正常に完了すると OK とステータスが返ってきていることもわかります。

2.ログインする

同じく Login タブを開いてユーザ名を指定、Login ボタンをクリックすると今度はログインのプロセスが実行されます。

尚、Resident-key が使える FIDO2 対応の Authenticator で同じユーザ名で複数回 Registration を行うとログイン時に一覧が出てきます。
(本来は先にユーザ名を指定しているのでキーの特定をした上でログインプロセスが走るのでアカウント選択は出ませんが、同じ名前で登録すると毎回鍵ペアが生成されてしまうみたいです。RPの作りの問題?)

Authenticator で認証します。

ちゃんと webauth.get が成功しています。


もう少し詳しく勉強しないと細かいところはよくわからないので、続きは今晩開催される WebAuthn もくもく会で!
 https://fido2-workshop.connpass.com/event/100944/

2018年5月12日土曜日

[FIDO]Firefox 60の正式版がリリースされたのでWebAuthnを試してみる

こんにちは、富士榮です。

先月WebAuthnがW3Cの勧告候補になってブラウザ各社が対応を表明したり、Windows 10 April Update 2018からWindows HelloでFIDO2 Security Keyが使えるようになったり(まだTAPなど一部ユーザにしか提供されていませんが)と、にわかにFIDO周りがにぎやかになってきました。

ということでWebAuthnに対応したFirefox 60.0が正式にリリースされたので手元のYubikeyで試してみます。
左から、Security Key By Yubico、Yubikey 4、Yubikey NEOです。
なんだか増殖してます。
Yubikeyの各エディション毎の比較は以下のページから。
https://www.yubico.com/products/yubikey-hardware/compare-yubikeys/


まずは、Firefoxのバージョンを確認しましょう。


ちゃんと更新されてます。

次にWebAuthnがちゃんと有効になっているか確認します。about:configを開きwebauthn関係の設定を検索し、「security.webauth.webauthn」がTrueであることを確認します。

これも大丈夫です。


ということで、テストしてみます。
今回テストに使ったのは、
https://webauthn.io/
https://webauthn.bin.coffee/
の2つのサイトです。

まずはhttps://webauthn.io/です。

ユーザ名を入れて、Register a User/Credentialをクリックします。

セキュリティ・トークンを求められるので、Yubikeyを差し込んでタップします。

登録とログインが成功しました!
ちなみにFIDO2にも対応しているSecurity Key by Yubico(青い奴)とYubikey 4はうまく動きますが、一番古いYubikey NEOだとダメでした。


同じように、https://webauthn.bin.coffee/でも試してみます。

Create Credentialをクリックすると同じようにキーを求められるので、Yubikeyを差し込んでタップします。

こちらも無事に登録が出来ました。


あくまでテストツールでブラウザの対応を確認しただけなので、面白味には欠けますが、これで実際にWebAuthnに対応したWebアプリケーションを作る環境はそろったことになるので、パスワードレスのWebサイトが登場してくるのも近いかもしれません。楽しみですね。