Skip to main content

🙂 การตรวจสอบความมีชีวิตของใบหน้าแบบแอคทีฟ

SDK จะรันเซสชันการตรวจสอบความมีชีวิตแบบแอคทีฟทั้งหมดให้คุณ: ล็อกใบหน้าของผู้ใช้ ออก ท่าทางแบบสุ่ม 3 ท่า (กะพริบตา หันซ้าย หันขวา ยิ้ม) ซึ่งตรวจสอบแบบเรียลไทม์ด้วยจุดสังเกตใบหน้าบนอุปกรณ์ เลือกเฟรมเซลฟีหน้าตรงที่คมชัดที่สุดจากทั้งเซสชัน แล้วสรุปผลผ่าน Face Active Liveness API1 IC ต่อเซสชันที่สรุปผล เซิร์ฟเวอร์จะตรวจสอบภาพเซลฟีซ้ำและส่งคืน ผลตัดสินที่ลงลายเซ็นด้วย HMAC-SHA256 ซึ่งแบ็กเอนด์ของคุณสามารถตรวจสอบความถูกต้องได้อย่างอิสระ

Flutter

import 'package:iapp_ekyc_sdk/iapp_ekyc_sdk.dart';

final client = IappEkycClient(apiKey: 'YOUR_API_KEY');

final liveness = await ActiveLivenessView.start(context, client: client);

if (liveness.verdict.passed) {
// ส่งต่อ liveness.verdict + liveness.signature ไปยังแบ็กเอนด์ของคุณ
// ตรวจสอบ HMAC ที่นั่น แล้วจึงดำเนินการลงทะเบียนต่อ
}

เว็บ

import { IappEkyc } from '@iapp-technology/ekyc-sdk';

const ekyc = new IappEkyc({ apiKey: 'YOUR_API_KEY' });

const liveness = await ekyc.startActiveLiveness({
mount: document.getElementById('ekyc-mount'),
});

if (liveness.verdict.passed) {
// ส่งต่อ liveness.verdict + liveness.signature ไปยังแบ็กเอนด์ของคุณเพื่อตรวจสอบ
}

เซสชันทำงานอย่างไร

  • ล็อกใบหน้า — ต้องมีใบหน้าหน้าตรงเพียงหนึ่งใบหน้า ขนาดใหญ่และอยู่กึ่งกลางเพียงพอ และถือนิ่งไว้ก่อนที่ท่าทางจะเริ่ม
  • ท่าทางแบบสุ่ม — สุ่มท่าทางที่แตกต่างกัน 3 ท่าต่อเซสชัน แต่ละท่าจะถูกตรวจสอบด้วยเงื่อนไขที่เข้มงวด (การกะพริบตาต้องเป็นการเปลี่ยนจากหลับตาแล้วลืมตา การหันหน้าต้องถึงมุม yaw ≥ 18° แล้วกลับมาตรงกลาง และการยิ้มต้องค้างไว้)
  • ป้องกันการโกง — การที่ใบหน้าหายไป มีใบหน้าที่สองเข้ามาในเฟรม หรือมีการสลับตัวบุคคล จะทำให้ท่าทางปัจจุบันเริ่มใหม่ การเริ่มใหม่ซ้ำหลายครั้งหรือหมดเวลาจะทำให้เซสชันล้มเหลว
  • การเลือกเฟรมที่ดีที่สุด — ทุกเฟรมที่คมชัด เป็นภาพหน้าตรง และลืมตา ตลอดทั้งเซสชันจะถูกให้คะแนน (ความคมชัดแบบ Laplacian × ขนาดใบหน้า) เฟรมที่ดีที่สุดจะกลายเป็นภาพเซลฟีที่ส่งไปยังเซิร์ฟเวอร์
  • ผลตัดสินที่ลงลายเซ็นโดยเซิร์ฟเวอร์ — endpoint สำหรับสรุปผลจะตรวจสอบบันทึกการทำท่าทาง รันการตรวจสอบความมีชีวิตแบบพาสซีฟกับภาพเซลฟีอีกครั้ง แล้วลงลายเซ็นบนผลตัดสิน ผลลัพธ์บนอุปกรณ์เพียงอย่างเดียวเป็นเพียงแนวทางด้าน UX เท่านั้น — กรุณาตรวจสอบลายเซ็นบนแบ็กเอนด์ของคุณเสมอ
เชื่อถือเฉพาะผลตัดสินที่ลงลายเซ็นเท่านั้น

ไคลเอนต์ที่ถูกดัดแปลงสามารถปลอมผลการทำท่าทางบนอุปกรณ์ได้ แบ็กเอนด์ของคุณต้องคำนวณ HMAC-SHA256(secret, canonicalJSON(verdict)) ซ้ำ แล้วเปรียบเทียบกับ signature ก่อนที่จะเชื่อถือ verdict.passed ดู ตัวอย่างการตรวจสอบลายเซ็น

เรียนรู้เพิ่มเติม