blog

ファーウェイのFIDO2指紋/ 3D顔ログイン技術を読むための記事

人々はより多くの個人情報のセキュリティに注意を払うように、ユーザーAPPのセキュリティ要件もますます高くなっており、特に金融APPは、多くは指紋をサポートしています &3Dログイン機能。従来...

Jun 16, 2020 · 4 min. read
シェア

巻頭言

個人情報のセキュリティがますます注目されるにつれ、ユーザーはAPP、特に金融APPに対するセキュリティ要求がますます高くなり、多くのAPPは指紋&3Dログイン機能をサポートしました。従来のログイン方法と比べ、指紋&3D顔認証ログインはアカウント、パスワード、認証コードなどを入力する必要がなく、ユーザーにとって最大限便利で、ユーザー情報のプライバシーも確保できます。では、どのようにアプリに指紋・顔ログイン機能を追加しますか?

HMSオンライン高速認証サービスにアクセスするだけで、あなたのアプリが指紋認証と3D顔認証ログイン機能を実現できます。

HMS Core FIDO2 それは何ですか?

Fast Identity Onlineは、IDフレームワークプロトコルのセットです。FIDOアライアンスは2012年7月に設立され、2019年5月までに業界をリードするベンダーを含む251のメンバーに達しました。技術仕様には、UAFとU2Fの2つのシリーズと、FIDO 2.0プロジェクトの立ち上げが含まれます。FIDOアライアンスメンバーのウェブサイト github.com/hm

FIDOメンバーの例

FIDO仕様は、汎用的で安全かつ利便性の高いパスワードレスおよび多要素オンラインユーザー認証技術ソリューションを提供するために設計されています。FIDO 2仕様は、ユーザーログイン、送金、決済など様々なシナリオで使用できる堅牢な認証ソリューションを定義しています。

FIDO2の代表的なアプリケーションシナリオは以下の3つです:

  • 指紋/3D顔ログイン;
  • 指紋/3Dフェイス転送/支払い;
  • 二要素認証

今回は最初のアプリケーションシナリオである指紋認証/3D顔認証ログインを紹介します。アプリケーション内のアカウントにログインする際、パスワードを入力する必要がなく、指紋/3Dフェイスを確認するだけでログインが完了するため、パスワードやデータベースクラッシュなどのセキュリティリスクを回避できます。

シーンデモ

下の図は、FIDO2がどのように指紋/3D顔認証ログインプロセスを完了させるかを示しています。

HMS Core FIDO2 どうやるの?

FIDO 仕様は、オンライン認証のための一連の技術アーキテクチャを定義しています。アプリケーションとアプリケーション・サーバに加えて、FIDO Authenticator、FIDO Client、および FIDO Server の 3 つのコンポーネントが含まれます。

  • FIDO 認証子:ローカル認証に使用されるメカニズムまたはデバイスで、プラットフォーム認証子およびローミング認証子に分類されます。認証子は、エンドユーザ向けの場合、セキュリティ・キーと呼ばれることが多い。プラットフォーム認証子:携帯電話やラップトップ上の指紋認識ハードウェアベースの認証子など、FIDO を使用するデバイスに統合された認証子。

  • ローミング認証機能:FIDO を使用するデバイスから離れ、Bluetooth、NFC、または USB 経由で接続する認証機能。

  • FIDO Client: プラットフォームに統合され、アプリケーション統合のためのSDKを提供します。または、ブラウザに統合され、サービス統合のためのJavaScript APIを提供します。FIDO Clientは、アプリケーションがFIDOサーバーとFIDO認証機能を呼び出し、認証を完了するためのブリッジです。

  • FIDOサーバー:アプリケーションサーバーがFIDO認証を開始する必要がある場合、FIDO仕様を満たす認証要求を生成し、アプリケーションサーバーに送信します。FIDO認証装置がローカル認証を完了した後、アプリケーションサーバーから返されるFIDO認証応答を受信し、比較テストを実行します。

FIDO仕様では、主に登録と認証の2つのプロセスを定義しています。ユーザーログインの実際のアプリケーションシナリオで言えば、登録プロセスは指紋/3Dフェイスによるログインを開始するプロセスに相当し、認証プロセスは指紋/3Dフェイスを使用してログインを完了するプロセスに相当します。

登録プロセスにおいて、FIDO 認証機関は、認証クレデンシャルとしてユーザの公開鍵と秘密鍵のペアを生成し、秘密鍵は FIDO 認証機関に保存され、公開鍵は保存のために FIDO サーバに送信されます。同時に、FIDO サーバは、認証プロセスで使用されるユーザと認証クレデンシャル間の関連付けを確立します。

認証プロセスでは、FIDO認証局がユーザの秘密鍵を使ってチャレンジ値に署名し、FIDOサーバがユーザの公開鍵を使って署名を検証し、検証に合格したユーザが正当なユーザとみなされます。

開発前の準備

FIDO2統合の準備は、超簡単な、HMS SDKへのアクセスに加えて、必要なagc、mavenと難読化およびその他の設定は、単にFIDO2コンパイル依存関係を追加することができます、座標は次のとおりです。実装'com.huawei.hms:fido-fido2:5.0.0.301'

開発FIDO2は、登録と認証の2つのオペレーションに分かれており、これらは同様に処理されます。鍵の処理コードは以下の通りです:

fido2Client.getRegistrationIntent(registrationRequest, registrationOptions, new Fido2IntentCallback() {
@Override
 public void onSuccess(Fido2Intent fido2Intent) {
 fido2Intent.launchFido2Activity(XXXActivity.this, Fido2Client.REGISTRATION_REQUEST);
 }
 @Override
 public void onFailure(int errorCode, CharSequence errString) {
 Log.e("errorCode: "+ errorCode + ", errorMsg: " + errString);
 }
});
Fido2RegistrationResponse fido2RegistrationResponse = fido2Client.getFido2RegistrationResponse(data)
  1. Fido2Clientインスタンスの初期化 Fido2Client fido2Client = Fido2.getFido2Client(activity);

詳細情報

Huawei開発者公式サイトには、対応するデモ、サンプルコード、開発ドキュメントもあります。Githubデモとサンプルコード:

ファーウェイFIDO2カテキョビデオ:

開発ガイド:

プレビュー

元記事へのリンク

発案者:イチゴは食べるな

Read next

RestTemplateを微調整する その2 - 基礎となるHTTPクライアントライブラリのさまざまな切り替え

は、他の HTTP クライアントの単なるラッパーであり、基本的な HTTP 機能を実装しません。基礎となる実装を切り替えるように構成することができます、このサブセクションでは、基礎となる実装を参照してくださいすることができますし、どのように基礎となる基本的なHTTPライブラリのスイッチを達成するために 。 Httと呼ばれる非常に重要なクラスがあります。

Jun 16, 2020 · 3 min read