Links

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
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.
For historical reasons the Keyless SDK also accepts the following configurations, which are now deprecated:
  • PASSIVE_MEDIUM
  • PASSIVE_HIGH
  • PASSIVE_HIGHEST
  • PASSIVE_AGGRESSIVE_MEDIUM
  • PASSIVE_AGGRESSIVE_HIGH
  • PASSIVE_AGGRESSIVE_HIGHEST
To customize the liveness detection you simply have to call .withLivenessSettings(livenessConfiguration, livenessTimeout) when initializing any configuration.
Android
iOS
// 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()
// Authentication Configuration
let authenticationConfiguration = Keyless.AuthenticationConfiguration.builder
.withLivenessSettings(livenessConfiguration: livenessConfiguration, livenessTimeout: livenessTimout)
//...
.build()
// Enrollment Configuration
let enrollmentConfiguration = Keyless.EnrollmentConfiguration.builder
.withLivenessSettings(livenessConfiguration: livenessConfiguration, livenessTimeout: livenessTimout)
//...
.build()
// De-Enrollment Configuration
let deEnrollmentConfiguration = Keyless.DeEnrollmentConfiguration.builder
.withLivenessSettings(livenessConfiguration: livenessConfiguration, livenessTimeout: livenessTimout)
//...
.build()
Last modified 2mo ago