2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

はじめに

過去に参画していた案件で、FIDOという認証技術とそれに関連したものについて
扱ったので、それらの情報を簡単にですがまとめました。

FIDOについて

FIDOとは
**Fast IDentity Online(素早いオンライン認証)**の略語で、認証技術の1つになります。
FIDOはPKIと同様に、公開鍵暗号による署名技術を採用しています。

PKIについてはこちらを参照してください。

認証技術なので本人確認の為にFIDOは利用されますが、FIDOでの認証では
ユーザーの生体情報等を利用するので、ユーザーがパスワードを覚える必要がないことが特徴になります。

加えて、認証自体は専門端末で実行されるので、
認証に利用した情報はネットワーク上に流れず、サーバーで保持しないため
情報漏洩のリスクが軽減されることも特徴の一つです。
コメント 2020-08-10 233906.jpg
FIDOの仕様では、ネットワーク上に流れる情報は
端末側の秘密鍵で署名されたトークンのみで、サーバー側には公開鍵の情報のみ保持しています。
そのため、第三者がトークンと公開鍵を傍受したとしても、秘密鍵に応じたトークンを
作成することはできず、不正ログインを行うことはできません。

FIDOには、FIDO/UAFFIDO/U2Fと呼ばれる2種類の規格が存在しています。

登録時の詳細については、こちらを参照してください。
認証時の詳細については、こちらを参照してください。

FIDO/UAFとは

FIDO1.0仕様での規格の1つで、
**Universal Authentication Framework(汎用的な認証基盤)**の略語です。

FIDOに対応するデバイスを利用することで、パスワードを使わずに認証を行う仕組みになります。

こちらの方式では、認証に指紋や声紋などの生体情報を用います。
パスワードは一切不要で、認証のために使われた生体情報はサーバー側に一切流れません。
よって、個人情報はネットワーク上にはまったく流れないで済みます。

万一、認証用の端末を紛失・盗難などがあった場合でも、不正に利用される可能性は現状ではきわめて低いと言えます。
将来的には生体情報の偽装が容易になる可能性はありますが、現状ではきわめてハードルが高いものになります。

しかし、UAFの利用にはFIDOに対応した端末が必要となり、FIDO対応の端末を揃える際は相応のコスト負担が発生します。
端末変更にともない、ユーザーインターフェースの変更が発生する可能性もあります。

FIDO/U2Fとは

FIDO1.0仕様での規格の1つで、
**Universal 2nd Factor(汎用的な第2要素)**の略語です。

二段階認証を採用しており、ID/パスワードの1段階目の認証に加えて、
セキュリティコードやセキュリティキーを使った認証を行います。

セキュリティキーとして、USBキーに加えてBluetoothとNFCをサポートした仕様となっています。

認証の流れとしては、ユーザーIDとパスワード、あるいは安全が確保された上での
PINコード(暗証番号)入力により行います。
このあと、端末のUSBポートにトークンを挿す、あるいはNFCやBluetoothを用いた
キーを近づけることで、本人認証を行います。
対応端末が必要ない分、UAFに比べると導入が容易であると言えます。

認証の情報はローカルに留まりますが、完全にパスワードフリーにはなりません。
そのため、UAFに比較するとセキュリティは弱くなる面が存在します。

FIDO2について

FIDO2とは、WebAPI仕様として提案されたUAFとU2Fを統合した仕様のことです。

FIDO1.0では生体認証に専用端末を利用していましたが、FIDO2では
専用端末を利用せずPCやスマホからFIDO2対応ブラウザを介して認証ができるので、
導入コストを抑えつつ強固なセキュリティを維持できます。

FIDO2は、

  • 認証デバイス(TPM内蔵PCの指紋リーダー、USBやBluetoothデバイス等)
  • ブラウザ(FireFox、Edge、Chrome等のFIDO2対応ブラウザ)
  • RPサーバー(FIDO2/WebAuthn認証サーバー、サービス等)

の要素で構成されます。

FIDO2では、WebAuthnCTAPという2つのプロトコルで認証を行い、
WebAuthnはネットワークを流れるプロトコル部分を、CTAPはPC内でブラウザから
USBなどに接続されている認証デバイスを呼び出す部分を担当します。

WebAuthnとは

WebAuthnとは、FIDO2を構成する技術の一つで、ブラウザや関連するWebサービスの
基盤に組み込む標準のWeb APIを定義しています。
WebAuthnのAPIによって、認証デバイスから取得した生体情報を利用し
登録/認証の処理を行います。

CTAPとは

CTAPとは、「Client to Authenticator Protocol」の略語で、
FIDOの外部認証デバイスとPlatform(クライアントプログラム)との通信プロトコルのことです。
CTAPによって、WebAuthn実行時に端末で利用できる認証デバイスの検出を行います。

登録/認証の流れ等については、こちらを参照してください。

最後に

これまでFIDOとFIDO2について紹介しましたが、FIDOに類似したPBIと呼ばれる
日立が開発した認証技術も存在しているので、ご興味のある方はこちらをご覧ください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?