顔認証によるEC不正防止
重要なアカウント操作やチェックアウト操作の前に顔認証を追加します。いつ起動し、処理を続行するかはバックエンドが決定し、FACEIOの結果を不正対策の一つのシグナルとして利用します。
損失につながりやすい不正の種類
電子商取引における不正リスクは、ログイン、アカウント変更、決済、支払い情報の更新、特典の利用時などに生じます。追加の認証結果をどこで利用するか決める前に、対象となる操作を整理してください。
不正をユーザーの具体的な操作に対応付けると、全員に同じ認証変更を求めるよりステップアップ確認が有効になります。攻撃者が利益を得ようとする箇所だけを保護し、通常の買い物の流れは維持できます。
アカウント乗っ取り(ATO)
Credential stuffingツールは漏えいした認証情報を継続的に試します。一度一致すると、保存済みの支払い方法や注文履歴が露出する可能性があります。攻撃者は所有者が気付く前に行動することが多く、直接的な損失や追加の異議申し立て費用につながります。
プロモーションの悪用
不正利用者は複数のアカウントを作成したり、侵害されたアカウントを使ったりして、初回割引、紹介ボーナス、ロイヤルティ特典を繰り返し悪用します。利益率が直接低下し、取り消しに伴う管理コストも増えます。
侵害されたアカウントによるチャージバック
侵害されたアカウントで不正注文が行われると、正当な所有者が異議を申し立てます。加盟店はチャージバック、異議申し立て費用、商品の損失を負担し、長期的には決済手数料が上がる可能性もあります。
チェックアウトを妨げない対象限定の追加確認
すべてのユーザーに認証変更を求める方法は、ECサイトでは負担が大きくなりがちです。毎回のログインに追加の手順を設けても、攻撃者を止める以上に正当な購入者を困らせます。離脱が増え、コンバージョンが下がり、不正利用者も適応します。そのためチームは パスワードレス認証 と対象を絞ったステップアップ確認を組み合わせます。
必要な場面だけの確認
ステップアップ確認は、認証済みセッションで特定のリスク条件を満たした場合だけ起動します。通常の閲覧やチェックアウトは基本的に変わりません。
アプリケーションのロジックで制御
起動条件はアプリケーションが定義します。FACEIOは顔認証の仕組みを提供しますが、いつ呼び出すかは社内のリスクロジックで決めます。通常の購入を行う正当な顧客の多くは確認画面を見ません。
アプリケーションのリスクシグナルからステップアップ確認を起動する方法を確認できます。
ルールが起動した場合だけ表示
ステップアップ確認のUXの基本は比例性です。リスクに応じて負担を変えます。呼び出されると、FACEIOの authenticate() ウィジェットが同じページ内で起動します。リダイレクトや別ページ、追加の端末は必要ありません。
正当な顧客の場合
ルールが確認を起動すると、顧客は現在のページ内でFACEIOのカメラフローを完了します。バックエンドが結果を受け取り、その操作用のポリシーを適用します。
攻撃者の場合
パスワードやセッションCookieだけでは登録ユーザーの顔は得られません。失敗、キャンセル、不一致の結果を受けたバックエンドは、操作を保留し、別の方法を案内するか審査へ送れます。
ステップアップ確認を適用する場所
EC サイトの重要な操作に顔認証を適用すると、すべての顧客に確認を求めずに不正リスクを下げられます。アイデンティティ設計の背景については、Web アプリの生体認証とクレジットカード詐欺を参照してください。
-
配送先住所の変更
配送先住所の変更を高リスク操作として扱うことができます。保存前に顔認証を要求し、承認、拒否、確認の判断はバックエンドで行います。
-
高額注文
自社で設定した金額を超える注文では、バックエンドが支払いを送信または確定する前に顔認証を起動できます。
-
不審なログインシグナル
独自の端末、ネットワーク、位置情報シグナルからログイン後の顔認証を起動できます。FACEIOの結果はセッションポリシーの一つの入力になります。
-
支払い方法の変更
新しい支払い方法の保存や請求情報の変更前に顔認証を要求します。支払い方法の検証と変更の承認はバックエンドが担当します。
-
プロモーションコードの利用
特典の適用前に
authenticate()を呼び出し、返された Facial ID を現在のアカウントに関連付けた値と比較します。
プラットフォームへの統合
ステップアップ確認は、ユーザーがすでに FACEIO に登録済みであることを前提とします。登録後は、重要な操作の前に authenticate() を呼び出して再確認できます。登録とセッションの設計については、顔認証ログインのフローを参照してください。
// 例:高額注文を処理する前に確認
async function processHighValueOrder(order) {
try {
const result = await faceio.authenticate({ locale: 'auto' });
// 成功した場合のみ注文を処理
await submitOrder(order, result.facialId);
} catch (err) {
// 顔認証に失敗したか、ユーザーがキャンセル
return blockOrder(order, err);
}
}
返された Facial ID をバックエンドへ送り、適切な非公開 API で検証して、ログイン中のアカウントに関連付けた Facial ID と比較します。その後、独自の認可ルールと不正対策ルールを適用します。REST API リファレンスを参照してください。
関連ソリューション
FACEIOはECサイトの不正防止以外にも、認証と本人確認のフローを提供します。
ECサイト事例のリソース
EC 不正防止向けの顔認証ステップアップを構築
これらのリソースを使い、選択したアカウント、チェックアウト、支払い、特典、復旧操作の前に顔認証を追加します。リスク評価と認可はバックエンドが担当します。
プラットフォームに顔認証ステップアップを追加
FACEIOアプリを作成し、バックエンドポリシーが選んだ重要なアカウント操作やチェックアウト操作の前に authenticate() を呼び出します。