2021年7月28日水曜日

生体認証で、パスワードが不要になる?

パスワードの不適切な管理は、情報漏えいや不正ログイン等のセキュリティインシデントを招きます。では、パスワードを使わなれば、セキュリティは向上するのではないでしょうか。今回は、生体認証を使うことで、パスワードレスで、セキュアにサービスを利用できるようにする仕組みについて、簡単にご紹介します。Gluegent Gateでも対応しています。



パスワードによる認証の仕組み

まず、伝統的でかつ、今も主流となっている「IDとパスワードの組み合わせ」による認証について、その仕組みをまとめます。その根底にあるのは以下の二つが満たされているという前提条件です。これは「秘密の共有」と言います。

  1. 利用者側と認証サーバ側で、IDとパスワードの組み合わせを共有している。 
  2. パスワードを知っているのは、利用者だけである。

実際には、1.で言う認証サーバ側が持つパスワードは、そのまま持っているわけではなく、特定のルールで変換した値を持っています。認証サーバ側での認証時に、利用者が提出したパスワードを変換して、自分がもっている値と比較します。パスワードが間違っていれば、変換後の値も異なり、認証失敗となります。

ここで、2.の前提が満たされない場合、つまり、パスワードが利用者以外にも知られる状況になった場合、不正なログインが起こり得ることになります。この条件を維持するのは、簡単ではありません。パスワードが短い場合は、総当りで突破されますし、十分に長くても、類推可能であれば突破されます。さらに、複数のサービスで同一のパスワードを設定することを妨げられないため、たくさん記憶できない利用者は、どこでも同じパスワードとIDとを使うということも少なくありません。どこかで漏れると他のサービスで不正ログインが可能になってしまいます。

多くの重要な情報や資産が、構造的に脆弱な仕組みに依存していることがわかります。この構造的な弱さは、守りにくい「秘密」について、認証サーバ側で認証する構造にあります。

パスワードを使わない生体認証の仕組み

「では、パスワードを使わないようにしたら良いのでは?」という大胆な認証方法が提唱されています。パスワードを人間に覚えさせ、セキュリティの責任の一端を担わせるという構造を避けることができます。FIDO Allianceが進めるFIDOという認証モデルです。

FIDO認証モデルでは、利用者側で「認証機」を利用することで、パスワードを使わない認証を実現します。大まかな流れは以下の通りです。

  1. 利用者は、特定のサービスに対して、認証機を登録する。認証機では、秘密鍵を保持し、認証サーバでは、対応する公開鍵を保持する。 
  2. 利用者がログインを認証サーバにリクエストする。 
  3. 認証サーバは、チャレンジコードを認証機に送る。
  4. 利用者は、認証機に生体情報を入力し、認証機は、チャレンジコードに秘密鍵を使って署名して、認証サーバに返答する。
  5. 認証サーバは、返答を公開鍵をつかって検証し、問題なければ、ログインを許可する。

この過程で、パスワードは入力されていません。また、利用者と認証サーバ側で、「秘密」は共有されていません。認証サーバ側には、公開鍵が保持されるだけです。また、守るべきは、秘密鍵ですが、これは、認証機内で安全に管理され、外に持ち出すことはできません。さらに、認証機ごと紛失するようなことがあったとしても、認証サーバ側に登録されている公開鍵は、生体情報と秘密鍵のペアに対応するものなので、この二つが揃わなければ、認証されないという構造です。

人間の記憶という曖昧な部分に頼らず、かつ、秘密が共有されてないという構造により、高度なセキュリティを実現することができます。

FIDO認証機とは

認証機は、FIDO Allianceが認めるデバイスや機能を指します。前述した通りの「秘密鍵」を適切に管理し、定められた方法により利用者を検証することが要件です。ここで言う「利用者の検証」は、生体認証やローカルパスコードを指しますが、この記事ではパスワード不要の文脈なので、生体認証に注目します。実際の機器では、指紋や虹彩、顔等を使って、正しく利用者であることを検証します。USBを使った外付けデバイスや、PC、スマートフォンに内蔵されたカメラや指紋読み取り機能で実現します。これらは、FIDO Allianceが定める仕様にそって実装され、FIDO Allianceにより認定されたもののみが利用されます。

もう使っているかも

実は、FIDOという名前は表に出ていないかも知れませんが、スマートフォンでの金融系アプリでは生体認証という機能で広く使われています。少し前までは、金融機関から、小型のコードジェネレータが配布され、パスワードとジェネレータで生成した数値を使った多要素認証が広く使われていました。ですが、Androidでも、iOSでも、端末のロック解除に生体情報をつかったものが普及したことにより、より高度なセキュリティを確保できるよいうになったと言えるでしょう。

FIDOを使った生体情報によるパスワードレス認証は、スマートフォン等のネイティブアプリにとどまらず、ブラウザからも利用できるようになっています。定められた認証APIを実装したウェブサイトを対応するブラウザで表示することで、その端末からアクセス可能な認証機でFIDO認証を実施することができます。

FIDO認証には、「認証機」が必要という大きなハードルがありましたが、新たに導入しなくても、既にデバイスに組み込まれているということも多くなっています。組み込まれていなくても、外付けの認証機の選択肢も増え、より普及していくことが予想されます。パスワードを使わず、よりセキュアな認証を実現する生体認証の導入を検討してみてはいかがでしょうか。

弊社が提供するGluegent Gateでも、FIDOをサポートしています。ご検討の際は、ぜひお声がけください。

(ま)

  Gluegent Gate