CTAPとは? FIDO2の仕様の一部であるCTAPの概要と役割を解説
FIDO2を構成する要素の一つがCTAP(Client to Authenticator Protocol)です。
本記事では、FIDO2の仕様の一部を担うCTAPの概要とその役割について解説します。
目次
CTAP(client to authenticator protocol)とは
CTAP(読み方は「シータップ」)とは、FIDO2に対応したデバイスが、BluetoothやUSBなどを通じて外部の生体認証端末(オーセンティケーター=認証器)とデータのやり取りをする際に両者を媒介する仕様のことです。
CTAPを介することで、デバイス同士の間に安全な認証経路を確立できます。CTAPを用いた通信は、ユーザー自身が所有するスマートフォンやタブレットなどのオーセンティケーターと、デスクトップPCやノートPCといったクライアントプラットフォームとの間で実行されます。
より古い標準であるCTAP1と最新のCTAP2があり、CTAP2を利用することでパスワードレス認証を実現することが可能です。
CTAPはFIDO2の仕様の一部
FIDO2はWebAuthnとCTAP2の標準化されたコンポーネントから構成されています。この両者は連携しており、ログイン時のパスワードレス認証を実現するために必要なものです。
外部認証器と連携する以前のFIDO U2Fプロトコルは、WebAuthnの仕様においてCTAP1と名称を変更しています。CTAP2はCTAPのセカンドバージョンで、WebAuthnと併用することでFIDO2を機能させます。
FIDOにはFIDO1とFIDO2という2つの仕様があり、FIDO1に使われるのがCTAP1/U2F、FIDO2に使われるのがCTAP2と認識しておくと良いでしょう。本記事では主にCTAP2について言及しています。
オーセンティケーターについて
オーセンティケーターとは「認証器」とも呼ばれ、暗号化等の技術を駆使して認証に必要な情報を保管し、ログイン時に接続先のシステムに情報を入力するための端末を意味します。
本人以外の人間が不正に利用することを避けるため、オーセンティケーターを使う際には生体認証やPIN等で本人確認を実行します。
Touch IDやFace IDのように、スマートフォンやノートPCに統合された認証器はプラットフォームオーセンティケーター(Platform Authenticator)と呼ばれ、USBやBluetoothなどの転送プロトコルを経由せず使用されます。
また、Bluetooth対応のスマホアプリなどはローミングオーセンティケーターと呼ばれ、デバイス間でBluetoothなどの転送プロトコルを用いて接続されます。
FIDO2とは
パスワードレス認証の標準化を推進するFIDO Allianceが、Web上で使用されるさまざまな技術の標準化を目指すWorld Wide Web Consortium(W3C)とのコラボレーションにより構築された規格です。
FIDO2プロトコルは、CTAPとWebAuthnという2つのコンポーネントから構成されています。FIDO2によりユーザーは一般的な端末を活用し、モバイル・デスクトップ両方の環境で、安全かつ簡単にログイン認証を行うことが可能です。
FIDO認証には公開鍵暗号方式が採用され、パスワードやSMSワンタイムパスワードを用いるよりも安全で、導入・管理のしやすい認証を実現します。
WebAuthnとCTAP
ここでは、FIDO2を構成する2つの要素であるWebAuthnとCTAPの関係について解説いたします。
CTAPは、Web認証APIを呼び出すブラウザが動作するデバイスと外部認証器をBluetooth/NFC/USBを通じて安全に通信するための仕様です。
WebAuthnは、Webブラウザに表示されるウェブコンテンツからJavaScriptでFIDO認証器を呼び出し、認証サーバーとのやり取りでFIDO認証を可能にするためのWeb APIです。
これらはともにFIDO2の要素ですが、違った役割を持っています。
WebAuthnについての詳細は、こちらの記事を参照ください。
FIDO2のメリット
FIDO2を利用する認証の最も大きなメリットのひとつが、安全性の高いログインを実現できることです。FIDO2による認証では、認証に必要な情報は端末側で処理されるため、生体情報などの認証情報はサーバー側に送信されることがありません。
サーバー側に保存されるのは公開鍵のみとなり、サービス側がサイバー攻撃を受けたとしても、ユーザーの情報が漏洩するリスクは避けられます。企業にとって致命的なリスクとなり得る情報漏洩に対するセキュリティ性が高いことは大きなメリットと言えます。
また、ログインに関するユーザー側の負担軽減もメリットとなるでしょう。クラウドサービスやインターネットショッピングが普及した現代では、個人情報に対する堅固な防衛が不可欠です。
しかし、安全性を確保するための強力なパスワード設定は、利便性を損なう要因ともなってしまいます。FIDO2が実現するパスワード認証であれば、安全性と利便性を両立させることが可能です。
FIDO2のデメリット
パスワード不要で利用できるFIDO2のメリットは、認証に使用するデバイスを紛失すると利用できないというデメリットにもなり得ます。
パスワード認証の場合は、パスワードを忘れてしまっても再発行を申請することで、比較的簡単に問題を解決できます。しかし、FIDO2に使用するデバイスを紛失した場合には、再設定に時間がかかることを覚悟しなければなりません。
また、FIDO2のデメリットとして、現状では対応するWebサービスが少ないことも挙げられます。安全性と利便性の面でのメリットが大きいことは確かですが、今のところはそのメリットを活かせる機会が限定されていることが課題と言えるでしょう。
生体認証を用いるため、指が濡れていたりマスクを着用したりといった状況で、指紋認証や顔認証がうまく機能しないといった問題もあります。
CTAP(FIDO2)の仕組み
CTAP(FIDO2)の仕組みとして、大きく分けると「登録」と「認証」の2プロセスがあります。場合によってプロセスに若干の違いはありますが、一般的な流れを以下で紹介いたします。
登録
「登録」とは、認証器となるデバイスとWebサーバーを紐付けるプロセスです。具体的な流れは以下のようになります。
- デバイス上で設定を開始
- Webサーバーが1回限りのチャレンジキー(ランダムな文字列)を生成
- WebサーバーがWebアプリケーションにチャレンジキーとユーザー情報を送信
- Webアプリケーションからデバイスに返信
- デバイスがユーザーに承認を要求
- 承認後にユーザー情報をデバイスに保存
- WebアプリケーションがWebサーバーにクレデンシャルIDや公開鍵を送信
- デバイスの登録が完了し、チャレンジキーが無効化
認証
FIDO2にデバイスの公開鍵登録が完了したら、ログイン時に認証作業が開始されます。認証の具体的な流れは以下の通りです。
- FIDO対応のWebブラウザ/アプリケーション(クライアント)から認証を要求
- 要求を受信したWebサーバーがFIDOサーバーに認証を要求
- FIDOサーバーからクライアントにチャレンジキーを送信
- クライアントが認証器を起動し、ユーザーに生体情報入力を要求
(この時点でCTAPが認証器とデバイスを連携させる) - 生体情報を認証器が秘密鍵でチャレンジキーを暗号化し、FIDOサーバーに返信
- FIDOサーバーが公開鍵でチャレンジキーを復号し検証開始
- 検証に成功すると認証完了
まとめ
従来のパスワード認証よりも便利で、セキュリティリスク軽減にもつながるFIDO2は現在注目され始めています。
現状では利用できるWebサービスが少ないなどの課題もありますが、今後パスワードレス認証の大きな柱となっていくでしょう。
ぜひお気軽にご相談ください
ゼロトラストの構成要素に欠かせない統合的なID管理を実現します。
\詳しいPDF資料はこちら/
資料ダウンロードはこちら\お見積りや導入のご相談はこちら/
お問い合わせはこちら