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 - for testing purposes only

  • PASSIVE_STANDALONE_HIGH - for most production use (SDK default)

  • PASSIVE_STANDALONE_HIGHEST - for higher security production use

Increasing the security level increases the ability of the system to reject spoof attempts (true positive rate, or TPR). A higher security level also increases 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 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