パスワード不要の認証「WebAuthn」 - Shinichi0713/security_specialist GitHub Wiki

概要

パスワードに依存しない認証を実現するためのFIDO2という認証技術を構成する技術の一つ。 ブラウザや関連するWebサービスの基盤に組み込む標準のWeb APIを定義している。

FIDO2では、パスワードによる認証に代わり、指紋認証や顔認証といった生体認証やスマートフォンやセキュリティキー等の外部デバイスを用いて認証を行います。

肝:パスワード以外の認証情報を利用、認証に使った情報がやり取りされない。
例: スマホやセキュリティキーを用いて本人確認を行い、データは暗号化されて安全に通信される仕組み。

背景

多くのクラウドサービス、Webサービスを使うようになった昨今。 多くのサイトに登録したパスワードの管理が煩雑になってきている。

このため、パスワードの流用や、推測しやすいパスワードを利用することが多くなっている。 →現状のパスワード認証の手法そのものが、リスクが大きくなっている

WebAuthn

2018年4月10日、Web技術の標準化を推進する団体である「W3C」とオンライン認証の変革を目指す団体である「FIDOアライアンス」から、「WebAuthn」というWebサービスにおける認証技術に関する仕様が勧告候補となったことが発表された。

WebAuthnの認証手順

  1. ユーザは、携帯電話でWebサービスにアクセスし、その端末をあらかじめ設定されたPINコードや生体認証を用いて登録します。
  2. ノートPCやデスクトップPCでWebサービスを利用する場合、ユーザは「携帯電話でログインする」というオプションを選択すると、登録済みの携帯電話に通知が届くので、携帯電話でIDを選択し、PINコードや生体認証を用いて認証を行うと、PC側でサインインが完了します。
  3. 送付された情報(オリジン、デジタル署名などのデータ)を認証サーバーに送付する
  4. 認証サーバーで、あらかじめ登録されている利用者の公開鍵を用いて3の情報の検証を行い、オリジンが一致することが確認されるとログインを許可する

セキュリティキーと呼ばれるような外部デバイスを用いて、USBやBluetooth、NFC等を通じて認証を行うこともできます。

パスワード認証の課題との対比

パスワード認証の主な課題

  • 複数のパスワードを記憶する必要があり忘れてしまう。再発行手続きが面倒。
  • 推測されやすいパスワードを設定していたために、不正にログインされる。
  • ブルートフォースやリスト型攻撃による被害。
  • フィッシングや中間者攻撃による被害。
  • サービス提供者側から認証情報が漏洩する可能性。

パスワード認証のセキュリティを高める方法として、二要素認証が利用できるサービスもありますが、現状では、サービス毎にトークンを管理する必要があるため、利用するサービスが多いと面倒が増えてしまいます。

WebAuthnのメリット

  • パスワードを覚えておく必要がなく、同じ認証方法で複数のサービスが利用できる。
  • 他人がなりすまして不正にログインすることが困難になる。
  • 認証に必要な機密情報がネットワーク上を流れないので、フィッシングや中間者攻撃の脅威が無い。
  • サービス提供者から認証に必要な情報が漏洩することがない。

WebAuthnのデメリットとしては、スマートフォン等の外部デバイスの故障や紛失時に、ログインできなくなる可能性が考えられますが、これについては、サービス提供側で何らかのバックアップ手段が用意されることになるでしょう。