Azure Managed Service Column <Azure運用コラム>

FIDO2とは?

Category: 入門編

2022.09.16

パスワード認証のリスクとは?安全な次世代の認証方法を解説

サイバー攻撃の多様化やセキュリティ技術の向上により、認証の方法も変わりつつあります。従来のパスワード認証の欠点が叫ばれて久しいですが、パスワード認証に代わる手段として、生体認証、多要素認証などと共に、よく耳にするようになった認証方式に「 FIDO2 」があります。

近年、ネット銀行や SNS など、FIDO2 を採用するオンラインサービスが増えてきましたが、FIDO2 とはどのような技術なのでしょうか。本記事では、FIDO2 の概要や登場の背景、特徴、具体的な認証手順について解説します。

1. FIDO2 とは

近年、従来のパスワード認証に代わる認証方法が採用されるようになっています。まずは、FIDO2 の概要について解説します。

FIDO2 の概要

FIDO2 とは、パスワードを使わずに認証を行う「パスワードレス」認証の標準化を推進する業界団体「 FIDO Alliance 」が 2018 年に制定した最新の技術規格です。認証のためのパスワードを利用せず、指紋や顔、虹彩などを用いた生体認証を用いて認証器( Authenticator )と呼ばれる FIDO 対応デバイスで認証を行い、認証結果をサービス側で持つ FIDO サーバーへ送信することでログインを行う方式です。

FIDO2 は大きく下記 2 つの規格で成り立っています。

  • WebAuthn( Web Authentication )
  • CTAP( Client To Authenticator Protocol )

WebAuthn は、W3C( World Wide Web Consortium )が規定した、端末と FIDO サーバー間の Web アプリケーションのやりとりを規定する Web 認証の規格です。CTAP は、端末と認証器の間の通信を定めた規格です。

FIDO2登場の背景

パスワード認証

従来の認証方式であるパスワード認証では、サービス側のサーバーがユーザー ID とパスワード情報を保持・管理する方式です。パスワード認証では、クライアントから送られてくる ID とパスワードを基にユーザーを識別し、ログイン許可を行いますが、この方式には下記の問題点がありました。

  • なりすましにより別サーバーへアクセスを誘導
  • ID / パスワード使い回しにより不正アクセスの被害が拡大
  • サーバーごとに ID / パスワードを変えることによる利便性の毀損

これらの問題を解決するために、Nok Nok Labs (認証技術開発企業)、 Paypal (オンライン決済企業)、 Lenovo ( PC メーカー)の 3 社により設立された業界団体が FIDO Alliance です。 FIDO Alliance は、パスワード依存を回避するための技術仕様の標準化に取り組み、 2013 年に最初の FIDO 規格を発表し、2018 年に最新規格である FIDO2 をリリースしています。

FIDO2 の構成要素

FIDO2 で認証を行うために必要な構成は下記の通りです。

  • クライアント
  • サーバー
  • FIDO サーバー
  • 認証器

クライアント

オンラインサービスを利用するためのクライアントです。FIDO2 に対応した Web ブラウザやアプリケーションなどが該当します。Web ブラウザ上のアプリケーションが FIDO2 を利用するために WebAuthn と CTAP を使用します。

サーバー

オンラインサービスを提供するサーバーです。FIDO サーバーと連携して認証を行います。

FIDO サーバー

FIDO2 の認証処理を行うための認証専用サーバーです。Web サービスと連携し、クライアントと FIDO サーバーとの間で認証指示(チャレンジコード)のやり取りを行うことで認証処理を実行します。

認証器( Authenticator )

認証器( Authenticator )とは、FIDO2 で認証を行うための専用デバイスです。ユーザーの本人性を検証する機能を持ちます。PC やスマートフォンに内蔵、もしくは外付けされるデバイスを想定しています。

2. FIDO2 の特徴

従来のパスワード認証と比較して、FIDO2 はどのような違いがあるのでしょうか。FIDO2 の特徴は下記の通りです。

  • パスワードレス
  • 認証情報をサーバーに保存しない
  • 利用中のデバイスをそのまま利用できる

パスワードレス

FIDO2 は、従来必要だったパスワードを必要としない方式です。認証器( Authenticator )とよばれるデバイスを使用して認証を行うため、パスワードを使用しません。そのことにより、パスワードを用いることによるなりすましや不正アクセスなどのリスクを回避することが可能です。認証器には下記 2 通りの方式があります。

1. 外付け認証器
USB ポートに接続するキーやカードタイプなど様々な形式がある
2. プラットフォーム認証器
スマートフォンやタブレット、 PC などに組み込まれた生体認証機能

認証情報をサーバーに保存しない

利用者のスマートフォンやタブレットなど、手元にあるデバイスが認証器として利用者の本人性を検証する機能を持ちます。検証結果は FIDO サーバーに送付され、FIDO サーバーは公開鍵と秘密鍵を用いて検証結果の妥当性を確認し、認証が完結します。

つまり、FIDO2 ではネットワーク上に資格情報が流れることがなく、ID とパスワードをサーバー側で保持することもありません。

利用中のデバイスをそのまま利用できる

FIDO2 は認証のために、手元のスマートフォンやタブレットを使用することができます。そのため、認証専用の機器を購入する必要がなく、普段使用している機器をそのまま利用できるというメリットがあります。

3.FIDO2の認証手順

FIDO2の認証手順

FIDO2 による認証には、認証器と FIDO サーバーが必要です。具体的にどのような流れで認証が行われるのか見ていきましょう。FIDO2 では下記の流れで認証が行われます。

⓪ ログイン要求
① 認証開始要求
② 認証指示送信
③ 資格情報入力
④ チャレンジコード送信
⑤ 公開鍵による検証とログイン受入

⓪ ログイン要求

まず、ユーザーが FIDO 認証に対応したクライアント( FIDO 対応 Web ブラウザ、アプリケーションなど)から WebAuthn による認証要求を行います。

① 認証開始要求

クライアントからのログイン要求を受けたサーバー(オンラインサービス側)は、次にFIDO サーバーに対して認証開始要求を行います。

② 認証指示送信

認証開始要求を受けた FIDO サーバーは、クライアントに向けて認証指示(チャレンジコード)を送信します。チャレンジコードはランダムな文字列です。

③ 資格情報入力

認証指示(チャレンジコード)を受け取ったクライアントは、認証指示に従って認証器を起動し、資格情報(生体など)の入力を要求します。この時、CTAP によって PC やスマートフォンと認証器を連携します。

④ チャレンジコード返信

資格情報を受け取りユーザー認証に成功すると、認証器は自身が持つ秘密鍵でチャレンジコードを暗号化し、FIDO サーバーへ送信します。

⑤ 公開鍵による検証とログイン受入

FIDO サーバーは、暗号化されたチャレンジコードを受け取ると、FIDO サーバー側で保持する公開鍵で復号して検証を実施します。検証に成功するとユーザーのログインを受入れ、FIDO2 認証が完了となります。

4. まとめ

この記事では、FIDO2 の概要、特徴、認証手順について解説しました。従来のパスワード認証のリスクを避けて安全な認証を行うために FIDO2 は有効です。まだ FIDO2 を導入しているオンラインサービスは少ないですが、安全な認証を実現するために、ノウハウを持つ専門家の力を借りながら、導入を検討してみてはいかがでしょうか。

Azure の導入を相談する

Azure導入支援サービス

Azure 導入支援サービス

Azure 導入にあたり専門家の知見を活用したいお客様にお薦めのメニューです。お客様の業務やシステムを把握し、最適なサービス選定、移行の実現性の検証、導入計画の立案から、Azure 移行後の運用設計、バックアップ計画までご支援します。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Microsoft Azureを利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Azure導入個別相談会(無料)

Tag: FIDO2

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php