DUOLABS
Work

Biometric authentication security module

We built a biometric security library that lets people go from sign-in all the way to an account transfer in a banking app with a single fingerprint check, without loading a certificate or typing a password. Fingerprint sensors were just arriving in smartphones, so most of the work was reading the international standard and the researchers' reference code, porting it for the app, and meeting the bank's acceptance requirements. This is an authentication component, so one step out of place could let someone other than the account holder pass. The library was designed as pure logic with no screens so several banking services could adopt it, and it was aligned to run the same standard flow as the version for the other platform.

Launch
2015
Client
A major Korean bank
Type
Banking & Identity

01 / 04

Sign-in and transfers opened with a fingerprint instead of a password

Biometric authentication in a banking app means going from sign-in to approving an account transfer with a single fingerprint check, without loading a certificate or typing a password. Fingerprint sensors were only just appearing in smartphones, so what each device and platform supported, and how it failed, differed. We checked that support and those exceptions one by one and concentrated on keeping the authentication flow steady.

Sign-in and transfers opened with a fingerprint instead of a password
02 / 04

An authentication flow that checks keys and never stores fingerprints

The biometric security library never stores biometric data such as fingerprints directly. Fingerprint matching finishes inside the smartphone, and only the authentication result, never the fingerprint, travels to the bank. That result is verified with asymmetric encryption using a public and private key pair, and one-way hashing is added to complete the security flow. The core of this design is that identity is confirmed by a key, not by the fingerprint itself.

An authentication flow that checks keys and never stores fingerprints
03 / 04

The standard and the reference code, implemented to fit a banking app

The biometric flow follows the order set by an international standard. We analysed the reference code supplied by researchers, ported it into a library for the app, and reconciled implementation differences so it runs the same standard flow alongside the version for the other platform. Interpretation of the standard was checked together with the doctoral researchers and the bank's staff, and the constraints and acceptance requirements for a live banking service were built in.

The standard and the reference code, implemented to fit a banking app
04 / 04

A screenless security component that fits any banking service

The biometric library has no screens; it is made of logic, and more than 99% of the code is authentication processing. So it could be carried into several banking services, the interface that callers use was designed separately from the internal processing flow. Each service keeps its own screens and hands only the authentication to this library.

A screenless security component that fits any banking service

Highlights

01

Biometric authentication that checks keys, never stores fingerprints

02

A verification flow built on public and private key encryption and one-way hashing

03

A screenless security library that plugs into several banking services

Insights

Read the blog