Liveness Settings

Keyless SDK provides three officially-supported configurations for the liveness detection (antispoofing component), listed below from the lowest to the highest level of security:

  • PASSIVE_STANDALONE_MEDIUM

  • PASSIVE_STANDALONE_HIGH

  • PASSIVE_STANDALONE_HIGHEST

PASSIVE_STANDALONE_MEDIUM is intended for testing purposes only. We recommend to use PASSIVE_STANDALONE_HIGH or PASSIVE_STANDALONE_HIGHEST in production.

Generally speaking, increasing the security level will increase the ability of the system to reject spoof attempts (true positive rate, or TPR). A higher security level will also increase the genuine reject rate (false positive rate, or FPR) and the time required by the anti-spoofing module to make a decision.

For most production scenarios, Keyless recommends the use of PASSIVE_STANDALONE_HIGH. This setting offers a good tradeoff between TPR, FPR, and time-to-decision. For scenarios that require a higher security level, we recommend increasing this setting to PASSIVE_STANDALONE_HIGHEST.

To customize the liveness detection you simply have to call .withLivenessSettings(livenessConfiguration, livenessTimeout) when initializing any configuration.

// Authentication Configuration
val authenticationConfiguration = AuthenticationConfiguration.builder
        .withLivenessSettings(livenessConfiguration: livenessConfiguration, livenessTimeout: livenessTimout)
//...
        .build()

// Enrollment Configuration
val enrollmentConfiguration = EnrollmentConfiguration.builder
        .withLivenessSettings(livenessConfiguration: livenessConfiguration, livenessTimeout: livenessTimout)
//...
        .build()
        
// De-Enrollment Configuration
val deEnrollmentConfiguration = DeEnrollmentConfiguration.builder
        .withLivenessSettings(livenessConfiguration: livenessConfiguration, livenessTimeout: livenessTimout)
//...
        .build()

Last updated