巻頭言
個人情報のセキュリティがますます注目されるにつれ、ユーザーは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)
- Fido2Clientインスタンスの初期化 Fido2Client fido2Client = Fido2.getFido2Client(activity);
詳細情報
Huawei開発者公式サイトには、対応するデモ、サンプルコード、開発ドキュメントもあります。Githubデモとサンプルコード:
ファーウェイFIDO2カテキョビデオ:
開発ガイド:
プレビュー
元記事へのリンク
発案者:イチゴは食べるな




