多くのWebアプリケーションは、ユーザーの認証にユーザー名とパスワードの組み合わせを用いています。
しかし、その方法にはさまざまな問題が指摘されています。身近なところでは、安全なパスワードを生成することの手間や、安全性を高めるために、パスワードの使い回しを避けようとした結果として起こる、多数のパスワードを管理することの手間などが挙げられます。
そして、こうしたパスワードの不便さが、結果としてパスワードの使い回しを引き起こし、いずれかのサイトで万が一パスワードが流出した場合には、それを基にしたリスト型攻撃が有効になってしまう、といった状況も引き起こしてしまいます。
この状況を改善するために、パスワードに依存した認証ではなく、公開鍵暗号などを用いることでWebの安全性や利便性をより高めようと、W3Cが標準化を進めているのが「Web Authentication(WebAuthn)」です。
WebAuthnは2018年4月10日、W3Cの勧告候補になったことが発表されました。同時にGoogle、Mozilla、Microsoftは「WebAuthn」のサポートを表明。それぞれのブラウザでの実装開始も発表されたのです(参照リンク)。
WebAuthnとFIDO2の技術とは?
WebAuthnは、「FIDO Alliance」(ファイドアライアンス)が策定した認証技術「FIDO2」を構成する技術の1つです。W3CとFIDO Allianceは協力してこの「FIDO2」の実現と普及を目指しています。
FIDO2では、パスワードの代わりに指紋認証や顔認証などの生体認証や、PINコードなどを使います。どの方法にするかは選択可能で、いずれにせよ、ユーザーはパスワードなどを覚えることなく簡単な操作で認証を行い、ログインや支払いなどの操作ができるのが1つ目の特長です。
そして、認証を行うときのクライアントとサーバ間のやりとりには、公開鍵暗号の技術を使います。
例えば、指紋認証のために指紋をクライアントデバイスに登録すると、その指紋に対応した秘密鍵と公開鍵が作成され、秘密鍵はクライアントデバイス内にある、外からはアクセスできない安全な領域に保存されます。
サーバには公開鍵が送られ、サーバ側で保存されます。公開鍵はもともと公開しても問題ない情報なので、通信経路上で誰かに見られても、サーバから漏えいしても問題ありません(もちろん全く問題ないわけではありませんが)。こうした漏えいに対する耐性がFIDO2の2つ目の特長です。
ユーザーがサーバへログインしようとするときには、まず、指紋認証などを使い、クライアントデバイスによって本人であることが確認されます。その後、クライアントデバイスはサーバから送られてきたデータを本人の秘密鍵で署名してサーバに返送します。
サーバは、受け取ったデータが本人の秘密鍵によって署名されたかどうかを、あらかじめ受け取っていた公開鍵を用いて検証できます。検証できれば、確かに本人がクライアントデバイスから通信していることが確認できるわけです。
このように、本人確認がパスワードに依存せず、クライアントデバイスによる指紋認証のような便利な方法で実現できて、通信経路上やサーバには漏えいしたら困るような情報が流れない、というのがFIDO2の特長なのです。
Copyright © ITmedia, Inc. All Rights Reserved.
ITmedia 総合記事一覧で全文を見る
0 件のコメント:
コメントを投稿