SiG Staff Blog

福井と金沢にあるSIGという会社で流行らそうとしたノウハウ集。主に流行らないが・・・。

FIDOの基礎情報

FIDOの基礎

TL;DR

実装方法ではなく、FIDOがどんなものか?なぜ使われるようになってきそうか?の説明。

FIDOの背景

現在の認証はパスワードで行うことが一般的だが、パスワードが漏れただけで第三者にログインされてしまう。 その対策として現在は下の2つが主に使われる様になっってきた。

OTPの問題

  • ジェネレータを使ったサービスを複数使うと、キーを沢山管理しないといけなくなり、大変。
  • 有効期限などがあり、タイミング悪く使用できない時がある。
  • 手入力というアナログ手法なのでミスが多い。

これらの問題に対して、どうにかしようって事で、FIDOを使いましょう。

FIDO Allianceとは

FIDOの特徴と必要性

  • ハードウエアトークンなどが作成する公開・秘密キーをサーバーに送り、端末を登録する。
  • 一度登録したら、パスワードなどの情報を送らなくても認証が完了するので、よりセキュアに使える。
  • サーバーの情報が漏洩しても、ハードウエアトークンが無ければログインできないので、漏洩対策にもなる。
  • 一つのキーがあればどのサービスにもログインできる。
  • パスワードを覚える必要がない。
  • トークンさえ作れれば、ハードが無くても使えるはず。(未確認)
  • yahoo!楽天Amazongoogle等の多くの企業がworking groupに入っている。ログインのデファクトになると思われるので、ほか案件をする上で知っておかないと辛い目に合うかも。

1.0

  • U2F(Universal 2nd Factor)
    • 多要素認証を導入する仕様
  • UAF(Universal Authentication Framework)
    • 信頼した端末でパスワード無しで認証する仕様
      • 自分の端末の指紋認証を他のサービスのログインに使用する

の仕様を決めている。

2018/05では1.2が最新で、NFCやBLEに対応している。

2.0

w3cと決めてるよう。web authentication api の事かな。

やってる事

クライアントとサーバー間で公開キーと秘密キーの交換をする。 webサービスだけじゃなく、androidiOSでも使える。 クライアントは何でもいいが、jsが多くなるかな。

今後のプラットフォームの対応

  • 2018/5でブラウザがまだchromeしか対応していない。(web authentication api)
  • iOSがまだ未対応
  • android8から、OSレベルでサポートする。

これからの動き

仕様が頻繁にアップデートされると思われる。 色んな機器が対応してくると思われる。