Read the original article:Are all the faces in userIAM 3D faces?
Problem Description
Currently, 3D facial recognition offers higher security than fingerprint authentication and is more resistant to attacks. Does the data returned via userIAM support facial recognition? Are all returned facial data 3D facial data? Which device models support 3D facial recognition versus standard facial recognition? How can we distinguish between them?
Background Knowledge
-
Authentication Trust Level (ATL): This is a core concept in the User Authentication Kit. It represents the security strength of an authentication method. The levels range from ATL1 (lowest) to ATL4 (highest). A higher ATL indicates a more secure and spoof-resistant method.
- ATL3: Represents standard 2D facial recognition or a 4-digit PIN password. It is susceptible to spoofing (e.g., using a photo or video).
- ATL4: Represents high-security authentication methods that are highly resistant to spoofing. includes 3D facial recognition (like structured light or TOF systems) and strong passwords (non-4-digit PINs).
-
3D vs. 2D Facial Recognition:
- 3D Facial Recognition: Uses specialized hardware (e.g., dot projectors, infrared cameras, TOF sensors) to create a depth map of the user's face. This makes it extremely difficult to bypass with a 2D photo or mask, hence its classification as ATL4.
- 2D Facial Recognition: Relies on a standard camera to capture a flat image of the face. It is more vulnerable to spoofing and is therefore classified as ATL3.
-
userAuth.getAvailableStatusMethod: This is the primary API used to query the device's authentication capabilities. By specifying an authentication type (e.g.,FACE) and a trust level (e.g.,ATL4), developers can programmatically determine what level of security the device's hardware and software support.
Solution
User Authentication Kit: Provides the capability to authenticate user identities based on locally registered lock screen passwords, facial recognition, and fingerprint data on the device. It delivers system-level user authentication functionality and offers a unified system-level authentication control across multiple devices, integrating various authentication methods (facial recognition, fingerprint, password).
userAuth.getAvailableStatus: Used to query whether authentication capabilities of specified types and levels are supported. The authTrustLevel parameter determines the authentication trust level. Note: If the user's registered lock screen password is a 4-digit PIN, its authentication trust level is ATL3. When calling this interface to query whether ATL4-level password authentication is supported, it must return 12500010.
Developers can determine the AuthTrustLevel via userAuth.getAvailableStatus: If ATL returns level ATL4, the facial recognition corresponds to a 3D face. Currently, only the entire MATE 80 series and other MATE series Pro and higher models support 3D facial recognition (foldable screens and P series are not supported at this time)
import { userAuth } from '@kit.UserAuthenticationKit';
try {
userAuth.getAvailableStatus(userAuth.UserAuthType.FACE, userAuth.AuthTrustLevel.ATL4);
console.info('current auth trust level is supported');
} catch (error) {
console.error(`current auth trust level is not supported, error = ${error}`);
}
Note: Iris and ultrasonic fingerprint authentication types are not currently supported.
Top comments (0)