הטמעת זיהוי חיוניות (Liveness Detection) מבוסס בינה מלאכותית לאימות
התקפות באמצעות תמונות, סרטונים ומסכות הן מציאות עבור כל שירות עם אימות מרחוק. זיהוי חיוניות (Liveness Detection) מבדיל בין אדם חי לבין אמצעי מלאכותי, אך הבחירה בין בדיקה אקטיבית לפסיבית היא קריטית. בדיקה אקטיבית דורשת פעולות (סיבוב ראש, מצמוץ) — היא מספקת הגנה גבוהה מפני זיוף תמונות אך מפחיתה את ההמרה ב-15–20%. בדיקה פסיבית מנתחת פריים בודד או סרטון קצר ללא דרישת פעולות, אך מתמודדת פחות טוב עם התקפות דו-ממדיות ללא ניתוח עומק.
אנו משלבים פתרונות זיהוי חיוניות מקצה לקצה: מאסטרטגיה ועד פרסום בחנות האפליקציות. במשך למעלה מ-5 שנים, סיפקנו 20+ פרויקטים למגזרי פינטק, EdTech וממשל. הסטACK שלנו כולל ARKit (iOS), ML Kit + ARCore (Android), CoreML/TFLite, ו-SDKs מוסמכים מוכנים (Iproov, Jumio, Onfido, Sumsub). עבור כל פרויקט, אנו בונים מודל איומים ובוחרים את האיזון האופטימלי בין אבטחה לחוויית משתמש.
מקרה אחד — אפליקציית בנקאות: לאחר הטמעת בדיקה פסיבית עם מפת עומק, זמן האימות ירד ל-3 שניות (מ-12 שניות בבדיקה אקטיבית), וההמרה עלתה ב-12%. תוצאות כאלה מאשרות שבחירה נכונה של זיהוי חיוניות משפיעה ישירות על מדדים עסקיים.
בחירה בין זיהוי חיוניות אקטיבי לפסיבי
זיהוי חיוניות אקטיבי דורש מהמשתמש לבצע פעולות ספציפיות: סיבוב ראש, מצמוץ או אמירת קוד. זה מספק עמידות גבוהה לזיוף תמונות, אך במחיר של חוויית משתמש — 15–20% מהמשתמשים נכשלים בניסיון הראשון, מה שמפחית את שיעורי ההמרה. בנוסף, זיהוי חיוניות אקטיבי פגיע לסרטוני deepfake שיכולים לסנתז את התנועות המבוקשות לפי פקודה.
זיהוי חיוניות פסיבי, לעומת זאת, מנתח פריים בודד או רצף וידאו קצר ללא הוראות משתמש; המשתמש פשוט מסתכל במצלמה. זה מציע חוויית משתמש טובה בהרבה עם המרה גבוהה יותר, אך הוא פחות חזק נגד התקפות דו-ממדיות כמו תמונות באיכות גבוהה. מודלים פסיביים מודרניים העומדים בתקן ISO 30107-3 רמה 2 יכולים לעמוד בהתקפות באמצעות תמונות מודפסות ומסכים דו-ממדיים, במיוחד בשילוב עם ניתוח עומק.
זיהוי חיוניות אקטיבי קל יותר לאישור לפי ISO 30107 רמה 2, בעוד שזיהוי חיוניות פסיבי דורש לעיתים קרובות חיישן עומק או שילוב של טכניקות כדי להגיע לאותה רמה. הבחירה תלויה במודל האיומים שלך ובסדרי העדיפויות של חוויית המשתמש. אם הדאגה העיקרית שלך היא הגנה מפני זיוף תמונות ואתה יכול לסבול שיעור המרה נמוך יותר, ייתכן שזיהוי אקטיבי מתאים. עבור יישומים עם תעבורה גבוהה שבהם חוויית המשתמש היא קריטית, פתרון פסיבי מעוצב היטב עם ניתוח עומק יכול להניב תוצאות עסקיות טובות יותר.
אם אינך בטוח איזו אסטרטגיה מתאימה לתרחיש שלך, קבל ייעוץ — ננתח את מודל האיומים שלך ונציע את הפתרון האופטימלי.
הטמעה ב-iOS באמצעות ARKit
ARKit ב-iPhone X+ וב-iPad Pro עם מצלמת TrueDepth מספק גישה למפת עומק בזמן אמת. ARFaceTrackingConfiguration יוצר ARFaceAnchor עם 52 צורות בלend — כולל eyeBlinkLeft, eyeBlinkRight, jawOpen. זה כבר נותן זיהוי חיוניות אקטיבי מלא ללא SDKs של צד שלישי.
let config = ARFaceTrackingConfiguration()
config.maximumNumberOfTrackedFaces = 1
session.run(config)
// В ARSCNViewDelegate
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
guard let faceAnchor = anchor as? ARFaceAnchor else { return }
let eyeBlink = faceAnchor.blendShapes[.eyeBlinkLeft]?.floatValue ?? 0
if eyeBlink > 0.7 {
livenessDetector.recordBlink()
}
}מפת עומק מ-let config = ARFaceTrackingConfiguration() config.maximumNumberOfTrackedFaces = 1 session.run(config) // В ARSCNViewDelegate func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) { guard let faceAnchor = anchor as? ARFaceAnchor else { return } let eyeBlink = faceAnchor.blendShapes[.eyeBlinkLeft]?.floatValue ?? 0 if eyeBlink > 0.7 { livenessDetector.recordBlink() } } ב-depthData מאפשרת לדחות תמונות שטוחות: אם סטיית התקן של עומק הפנים היא <5 מ"מ — משטח שטוח נמצא מול המצלמה.
מגבלה: ARKit FaceTracking עובד רק על מכשירים עם TrueDepth (מצלמת True Depth קדמית). iPhone SE, iPad mini — לא נתמכים. עבור מכשירים אלה, הפתרון החלופי הוא מודל CoreML מבוסס RGB בלבד.
הטמעה ב-Android באמצעות ML Kit Face Mesh
AVCapturePhotoOutput (ML Kit 18.0+) מספק 468 נקודות רשת תלת-ממדיות ממצלמה מונוקולרית. זה לא עומק אמיתי אלא שחזור תלת-ממדי מדו-ממדי — טוב מכלום אך חלש יותר מ-ARKit TrueDepth.
val options = FaceMeshDetectorOptions.Builder()
.setUseCase(FaceMeshDetectorOptions.FACE_MESH)
.build()
val detector = FaceMeshDetection.getClient(options)
detector.process(inputImage)
.addOnSuccessListener { faces ->
faces.firstOrNull()?.let { face ->
val zVariance = face.allPoints.map { it.position.z }.variance()
if (zVariance < FLAT_THRESHOLD) rejectAsFlatImage()
}
}ב-Android 10+ עם מכשירים תואמי ARCore, עדיף להשתמש ב-com.google.mlkit:face-mesh-detection + val options = FaceMeshDetectorOptions.Builder() .setUseCase(FaceMeshDetectorOptions.FACE_MESH) .build() val detector = FaceMeshDetection.getClient(options) detector.process(inputImage) .addOnSuccessListener { faces -> faces.firstOrNull()?.let { face -> val zVariance = face.allPoints.map { it.position.z }.variance() if (zVariance < FLAT_THRESHOLD) rejectAsFlatImage() } } — קבלת עומק אמיתי באמצעות אור מובנה או ToF (מכשירים עם חיישנים כאלה: Pixel 6+, Samsung S21+).
| פלטפורמה | טכנולוגיה | מכשירים |
|---|---|---|
| iOS | TrueDepth (ARKit) | iPhone X+, iPad Pro 2018+ |
| Android | ARCore (Depth API) | Pixel 6+, Samsung S21+ (עם ToF) |
| Android (גיבוי) | ML Kit Face Mesh | כל המכשירים עם מצלמה (ללא עומק) |
מתי להשתמש ב-SDKs של צד שלישי?
Iproov, Jumio, Onfido, Sumsub — SDKs מוכנים לזיהוי חיוניות עם אישור ISO 30107-3 רמה 2. האישור עצמו עולה מאות אלפי דולרים ולוקח חודשים. אם המוצר שלך פועל בסביבה רגולטורית הדורשת פתרון מוסמך, הטמעה מותאמת אישית אינה מומלצת.
אם הרגולציה אינה דורשת אישור והמטרה היא הגנה מפני התקפות בסיסיות (זיוף תמונות, וידאו מטלפון) — הטמעה מותאמת אישית על ARKit + CoreML / ML Kit + TFLite מתמודדת עם זה וחסכונית משמעותית. החיסכון האופייני נע בין $50,000 ל-$150,000 בשנה בהשוואה לרישוי SDK של צד שלישי, תלוי בהיקף.
מידע נוסף על תקנים ואישורים
התקן ISO/IEC 30107-3:2023 מגדיר רמות התקפה (Presentation Attack Detection) עבור מערכות ביומטריות. רמה 2 היא המינימום עבור KYC, כולל הגנה מפני תמונות מודפסות ומסכים דו-ממדיים. אישור לפי תקן זה הוא חובה עבור רגולטורים פיננסיים באיחוד האירופי, בארה"ב ובכמה מדינות נוספות.טעויות נפוצות
סף ללא הקשר. ArCoreApk בקוד ללא הסבר — אחרי חודש, אף אחד לא זוכר מאיפה הגיע המספר או איך הוא השתנה. השתמש בסף ניתן להגדרה עם בדיקות A/B ומדדי FRR/FAR.
התעלמות מהתקפות deepfake. זיהוי חיוניות פסיבי ללא עומק פגיע לפנים שנוצרו על ידי GAN. אם זה במודל האיומים שלך, אתה צריך ניתוח חוסר עקביות במרקם (אמנות GAN בתחום התדר באמצעות FFT) או חיזוי בצד השרת עם מודל כבד יותר.
מה העבודה שלנו כוללת
- ניתוח מודל איומים ובחירת זיהוי חיוניות אקטיבי/פסיבי/היברידי.
- שילוב SDK או פיתוח מותאם אישית על ARKit/ML Kit/CoreML/TFLite.
- כוונון סף עם בדיקות A/B ומדדי FAR/FRR.
- בדיקות התקפה (תמונה, מסך, מסכה, deepfake).
- שילוב עם צינור ה-IDV והשרת האחורי.
- פרסום ב-App Store / Google Play עם עמידה בהנחיות.
- תיעוד ארכיטקטורת המערכת, חוזי API ונהלי פריסה.
- הכשרת צוות המכסה תפעול, תחזוקה ותגובה לאבולוציה של התקפות.
- תמיכה שוטפת במשך 3 החודשים הראשונים לאחר ההשקה, עם אפשרויות להרחבת כיסוי.
לוחות זמנים: שילוב SDK מוכן — 2–4 שבועות. הטמעה מותאמת אישית עם אימון מודל — 8–14 שבועות. העלות מחושבת באופן פרטני.
הערך את הפרויקט שלך — צור קשר לייעוץ. קבל הערכה ראשונית של לוחות זמנים ועלות תוך יום עסקים אחד.







