0
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?

【セキュリティ】FIDO2とは何か?なぜ今すべてのサービスが採用し始めているのか

0
Posted at

はじめに

〜パスワードの時代を終わらせるオープン標準〜

「パスワード弱い」「漏えいした」「フィッシングされた」──そんな問題が毎日のように起きる中で登場したヒーローが FIDO2
WebAuthn や Passkey の“母体となる標準”であり、パスワードレス時代の主役だ。

この記事では、技術・仕組み・実装ポイントまで気持ちよく解説する。


FIDO2 の構成

FIDO2 は以下 2 つの標準の総称:

規格 役割
WebAuthn (Web Authentication API) ブラウザとサーバー間の認証を定義
CTAP2 (Client To Authenticator Protocol) デバイス(指紋/FaceID/セキュリティキー)とブラウザの通信

シンプルに言うと:
WebAuthn = 表舞台
CTAP2 = 裏側で働く黒衣の忍者

二人が手を取り合って、最強のパスワードレス認証を成立させている。


FIDO2が解決する問題

1. パスワードの漏洩問題

そもそも パスワードを「持たない」
攻撃者は盗むものがない。

2. フィッシング完全無効化

rpId(Relying Party ID)=ドメイン名が一致しないと鍵は反応しない。
偽サイトは一発で拒否される。

3. データベース侵害に強い

サーバー側には 公開鍵しか保存されない
仮に漏えいしても問題なし。

4. 生体情報はデバイス外に出ない

指紋・顔データは OS 内で閉じる。
サーバーに送ることは一切ない。


認証の仕組み(図で直感的に理解)

登録 (Registration)

認証 (Authentication)


FIDO2 の鍵の正体

FIDO2 ではアカウントごとにデバイスが公開鍵ペアを生成する。

  • 秘密鍵
    • デバイス内の TPM / Secure Enclave に保存
    • 外に出せない
    • 生体認証(指紋/顔)でローカル解錠
  • 公開鍵
    • サーバーに保存
    • 認証時に署名チェックに使う

つまり「盗めない・漏れない・釣られない」。


Passkey との関係

Passkey は FIDO2 のクラウド同期版

項目 Passkey 従来のFIDO2
鍵の同期 あり(iCloud/Google) なし
UX デバイス間でスムーズ デバイス限定
安全性 暗号化された状態で同期 デバイスローカル

Apple / Google / Microsoft が一斉に推してる理由はここにある。


実装ポイント(エンジニア向け)

Web(React / JS)

WebAuthn を直接使える。

登録

navigator.credentials.create({
  publicKey: {
    challenge,
    rp: { name: "Example" },
    user: { id, name, displayName },
    pubKeyCredParams: [{ type: "public-key", alg: -7 }]
  }
});

認証

navigator.credentials.get({
  publicKey: {
    challenge,
    allowCredentials
  }
});

Android (Kotlin)

Credential Manager + Passkey が現在の正攻法。

val request = GetCredentialRequest(
    GetPublicKeyCredentialOption(json)
)
val result = credentialManager.getCredential(request)

Flutter

  • passkeys(iOS/Android)
  • web_authn(Web)
final credential = await Passkeys.authenticate(
  challenge: challenge,
  rpId: 'example.com',
);

FIDO2 のセキュリティ評価

攻撃視点の比較をしておくと理解が深まる。

攻撃 パスワード FIDO2
フィッシング 成功する 100%失敗
リスト攻撃 成功する 鍵が存在しない
中間者攻撃 影響あり origin署名で無効
デバイス盗難 危険 生体認証+TPMで保護

まとめ:FIDO2 は“安全で楽な未来”そのもの

FIDO2 / WebAuthn / Passkey は、
「パスワードという時代の呪い」を終わらせる技術。

  • 秘密鍵は外に出ない
  • 生体情報も外に出ない
  • 偽サイトには絶対に反応しない
  • クロスプラットフォーム
  • UX はむしろパスワードより速い

Web・モバイル・アプリ関係なく、
2025〜2030年の認証のデフォルトになる。

0
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
0
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?