全3019文字
IDやパスワードを入力することなくアカウントにログインできるパスワードレス認証の「パスキー」が注目されている。Webサービスでの対応が進み、一部の企業でも導入が始まった。
パスワードを使わないため、フィッシング詐欺などの被害を避けられる。またパスワードを用いた認証と異なり、生体情報やPIN(暗証番号)などの大事な認証情報がネットワーク上を流れない点が特徴だ。
ではパスキーは具体的にどのような仕組みで認証をしているのだろうか。以下で解説しよう。
認証情報から「鍵」を作成
現状、パスキーという言葉は複数の意味で使われている。この特集ではFIDO2(Fast Identity Online 2、ファイド2)という仕様に基づいた、複数の端末(マルチデバイス)に対応するパスワードレス認証を指す。
そこでまずはFIDO2について説明しよう。FIDO2による認証を利用するには、認証を受け持つ「FIDOサーバー」に利用者を登録する必要がある。登録時の流れは次の通り。
最初に利用者はFIDO2に対応したサービスにアクセスして登録を要求する。するとサービスはFIDOサーバーに登録開始を要求。要求されたFIDOサーバーは、「チャレンジコード」と呼ぶランダムな文字列を生成し、利用者の端末に送る。
端末はチャレンジコードを受け取ると、認証器にチャレンジコードを転送する。認証器とは指紋や顔画像といった認証情報を読み取ったり管理したりする機器を指す。認証器には端末に組み込まれている内部認証器と、外付けの外部認証器がある。
利用者が認証器を使って本人認証すると、公開鍵暗号に使う秘密鍵と公開鍵のペアが生成される。このうち秘密鍵を使って、FIDOサーバーから送付されたチャレンジコードを暗号化する。この暗号化処理を署名と呼ぶ。
署名が終わると認証器は、端末を経由して公開鍵と署名したチャレンジコードをFIDOサーバーに送信する。FIDOサーバーは、受け取った公開鍵を使って署名済みのチャレンジコードを復号して検証。正しければ公開鍵と利用者のIDを登録し、サービスに対して登録完了を通知する。
FIDO2で認証する際の流れも大枠は変わらない。利用者がサービスにアクセスすると、FIDOサーバーが利用者の端末にチャレンジコードを送付する。端末は認証器にチャレンジコードを転送し、認証器で利用者が本人認証する。本人認証が成功した場合、秘密鍵でチャレンジコードに署名しFIDOサーバーに送る。FIDOサーバーは登録済みの公開鍵を使ってチャレンジコードを検証し、検証結果をサービスに送信する。
つまりFIDO2での認証では、端末とFIDOサーバーはチャレンジコードのみをやり取りする。生体情報やPINなどの認証情報がネットワーク上を流れないため、端末とFIDOサーバーの間に第三者が割り込んで情報を盗もうとする「中間者攻撃」への耐性が高い。加えてチャレンジコード自体も公開鍵暗号で暗号化しているため、改ざんされるリスクも低い。
認証器で本人認証する際、認証情報には生体情報以外の情報も利用できる。例えば生体認証がうまく機能しないときのリカバリー手段として、認証器にPINを登録しておく場合が多い。このほかジェスチャー(特定の操作)を利用する場合もある。
からの記事と詳細 ( 大事な情報はネットワークに流さない、パスワードレス認証「パスキー」の巧みな仕組み - ITpro )
https://ift.tt/q1IxvfY
No comments:
Post a Comment