31.12.2014 Views

Best Practices for Implementing Fingerprint Biometrics in Applications

Best Practices for Implementing Fingerprint Biometrics in Applications

Best Practices for Implementing Fingerprint Biometrics in Applications

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

A DigitalPersona Whitepaper<br />

<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong><br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong><br />

<strong>Applications</strong><br />

Tips and guidel<strong>in</strong>es <strong>for</strong> achiev<strong>in</strong>g high per<strong>for</strong>mance <strong>in</strong><br />

f<strong>in</strong>gerpr<strong>in</strong>t-enabled applications us<strong>in</strong>g DigitalPersona’s<br />

U.are.U® family of SDKs<br />

September 2012<br />

<strong>Biometrics</strong> can help you enhance the security and usability of your<br />

application. By follow<strong>in</strong>g a few simple guidel<strong>in</strong>es and us<strong>in</strong>g<br />

DigitalPersona’s biometric software development kits, you can easily<br />

add fast f<strong>in</strong>gerpr<strong>in</strong>t identification and verification capabilities that<br />

enable your application to recognize <strong>in</strong>dividual users without requir<strong>in</strong>g<br />

other <strong>for</strong>ms of ID. This can be used <strong>in</strong> a variety of ways – from sign-on<br />

and confirmation of important actions to special approvals by other<br />

users – to help combat fraud and boost customer efficiency.<br />

© 2009-2012 DigitalPersona, Inc.


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

Introduction<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> biometrics makes it fast and easy <strong>for</strong> your<br />

application to determ<strong>in</strong>e who is us<strong>in</strong>g it. <strong>Biometrics</strong><br />

can be used to:<br />

• Identify users without requir<strong>in</strong>g other <strong>for</strong>ms of ID<br />

(such as usernames, ID numbers or swipe cards).<br />

• Verify another <strong>for</strong>m of identification without<br />

requir<strong>in</strong>g passwords or PINs.<br />

• Confirm that particular actions are be<strong>in</strong>g<br />

per<strong>for</strong>med by the right user – turn<strong>in</strong>g the<br />

f<strong>in</strong>gerpr<strong>in</strong>t sensor <strong>in</strong>to a k<strong>in</strong>d of “Enter” key that<br />

tells your application who is do<strong>in</strong>g what.<br />

• Prevent unauthorized access and stop <strong>for</strong>mer<br />

users from sneak<strong>in</strong>g <strong>in</strong>to your application.<br />

This whitepaper provides a variety of guidel<strong>in</strong>es and<br />

tips that can help you use f<strong>in</strong>gerpr<strong>in</strong>t biometrics to<br />

boost the security and usability of your application. It<br />

complements the documentation provided <strong>for</strong><br />

DigitalPersona’s U.are.U® software development kits.<br />

Benefits of<br />

Us<strong>in</strong>g <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong><br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s provide a compell<strong>in</strong>g way to<br />

differentiate your application:<br />

• Accountability – <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s can tie actions<br />

to specific <strong>in</strong>dividuals – deterr<strong>in</strong>g<br />

<strong>in</strong>appropriate behavior.<br />

• Work<strong>for</strong>ce Management – <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s<br />

provide accurate time and attendance<br />

track<strong>in</strong>g, reduc<strong>in</strong>g waste.<br />

• Loss Prevention – Supervisors’ f<strong>in</strong>gerpr<strong>in</strong>ts<br />

can be required <strong>for</strong> special actions,<br />

facilitat<strong>in</strong>g adherence to corporate policies.<br />

• Compliance – <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s can be used to<br />

provide an audit trail identify<strong>in</strong>g who came <strong>in</strong><br />

contact with sensitive data.<br />

Keys to a Successful Application<br />

<strong>Applications</strong> that use f<strong>in</strong>gerpr<strong>in</strong>t biometrics most<br />

successfully often have the follow<strong>in</strong>g attributes:<br />

• Simple setup – Your application should guide<br />

users through register<strong>in</strong>g or “enroll<strong>in</strong>g” their<br />

f<strong>in</strong>gerpr<strong>in</strong>t, typically when a user account is<br />

added. This usually takes about a m<strong>in</strong>ute and is<br />

only done once, often <strong>in</strong> the presence of a<br />

supervisor or adm<strong>in</strong>istrator.<br />

© 2009-2012 DigitalPersona, Inc 2


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

• Ease of use – With a few visual cues from your<br />

application, f<strong>in</strong>gerpr<strong>in</strong>ts can be used with little<br />

ef<strong>for</strong>t to l<strong>in</strong>k specific actions to the <strong>in</strong>dividuals<br />

who per<strong>for</strong>m them.<br />

• Speed – Implemented correctly, f<strong>in</strong>gerpr<strong>in</strong>ts can<br />

be used to recognize <strong>in</strong>dividuals with<strong>in</strong> groups of<br />

thousands of people <strong>in</strong> under a second.<br />

• Flexibility – Allow users to register whichever<br />

f<strong>in</strong>gers are most convenient <strong>for</strong> them and allow<br />

two or more f<strong>in</strong>gers to be used so that there is a<br />

backup <strong>in</strong> case of <strong>in</strong>jury.<br />

• Privacy – Always store and use <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong><br />

M<strong>in</strong>utiae Data (FMD), not raw images. This is<br />

much more efficient and helps protect users’<br />

privacy.<br />

• Logg<strong>in</strong>g – Record all uses of – and failures to use –<br />

biometrics, <strong>in</strong>clud<strong>in</strong>g details such as time, place,<br />

and context with<strong>in</strong> your application and so on.<br />

Important Concepts About <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s<br />

“<strong>Biometrics</strong>” literally means the measur<strong>in</strong>g of a<br />

person’s physical traits. It is a technology that can be<br />

used to recognize and authenticate <strong>in</strong>dividuals based<br />

on who they are, <strong>in</strong>stead of what they know<br />

(passwords or PINs) or what they possess (keys or<br />

swipe cards).<br />

There are many types of biometrics, <strong>in</strong>clud<strong>in</strong>g palm or<br />

iris scann<strong>in</strong>g, voice and face recognition. <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s<br />

are the most widely used <strong>for</strong>m of biometrics <strong>in</strong><br />

commercial applications. <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> sensors are now<br />

built <strong>in</strong>to most notebook computers, are offered as an<br />

option on many brands of po<strong>in</strong>t of sale (POS) stations,<br />

and are <strong>in</strong>creas<strong>in</strong>gly be<strong>in</strong>g used <strong>in</strong> door locks, medical<br />

dispensary cab<strong>in</strong>ets and other embedded devices.<br />

When add<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts to your application, the<br />

most important concepts to understand are:<br />

• <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s are unique – No two people, even<br />

identical tw<strong>in</strong>s, have the same f<strong>in</strong>gerpr<strong>in</strong>ts.<br />

• Everybody has f<strong>in</strong>gerpr<strong>in</strong>ts – But, sometimes the<br />

pr<strong>in</strong>ts on one or more f<strong>in</strong>gers can become difficult<br />

to read. Rough physical labor can wear pr<strong>in</strong>ts<br />

down and dry sk<strong>in</strong> (whether due to climate or<br />

constant wash<strong>in</strong>g with alcohol-based cleaners)<br />

can make pr<strong>in</strong>ts harder to detect. In contrast,<br />

body oil on f<strong>in</strong>gers can actually help make<br />

f<strong>in</strong>gerpr<strong>in</strong>ts easier to read.<br />

• Images and <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> M<strong>in</strong>utiae Data (FMD) –<br />

When a user touches a f<strong>in</strong>gerpr<strong>in</strong>t sensor, the<br />

hardware scans the pad of their f<strong>in</strong>ger to capture<br />

an image of their f<strong>in</strong>gerpr<strong>in</strong>t. Commercial<br />

applications rarely use or store the raw f<strong>in</strong>gerpr<strong>in</strong>t<br />

images; <strong>in</strong>stead, they convert the image <strong>in</strong>to an<br />

object conta<strong>in</strong><strong>in</strong>g <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> M<strong>in</strong>utiae Data<br />

(FMD), a much smaller mathematical<br />

representation of a f<strong>in</strong>gerpr<strong>in</strong>t image and then<br />

discard the orig<strong>in</strong>al image. <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> M<strong>in</strong>utiae<br />

Data cannot be converted back <strong>in</strong>to the orig<strong>in</strong>al<br />

image.<br />

• Registration or Enrollment – Scann<strong>in</strong>g a person’s<br />

f<strong>in</strong>gerpr<strong>in</strong>ts the first time is called registration or<br />

enrollment. This is typically done by an application<br />

<strong>in</strong> a controlled, secure sett<strong>in</strong>g, often under the<br />

supervision of an attendant. Dur<strong>in</strong>g enrollment, it<br />

is common practice to capture multiple scans of a<br />

f<strong>in</strong>gerpr<strong>in</strong>t to <strong>in</strong>crease accuracy and so that<br />

people can later touch the f<strong>in</strong>gerpr<strong>in</strong>t sensor from<br />

different angles.<br />

• Match<strong>in</strong>g – Compar<strong>in</strong>g one FMD aga<strong>in</strong>st another<br />

FMD (usually the one created dur<strong>in</strong>g the<br />

© 2009-2012 DigitalPersona, Inc 3


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

registration process) to see if they both represent<br />

the same f<strong>in</strong>gerpr<strong>in</strong>t is called match<strong>in</strong>g.<br />

• Identification – Compar<strong>in</strong>g a f<strong>in</strong>gerpr<strong>in</strong>t FMD<br />

aga<strong>in</strong>st a database of many stored f<strong>in</strong>gerpr<strong>in</strong>t<br />

FMDs (typically, the f<strong>in</strong>gerpr<strong>in</strong>ts of all users of<br />

your application) to see if one or more of them<br />

matches is called identification. This technique<br />

allows your application to determ<strong>in</strong>e who is us<strong>in</strong>g<br />

it without hav<strong>in</strong>g to request other <strong>for</strong>ms of ID<br />

such as usernames or ID numbers.<br />

• Verification – Us<strong>in</strong>g a f<strong>in</strong>gerpr<strong>in</strong>t to confirm that a<br />

user is who they claim to be accord<strong>in</strong>g to some<br />

other <strong>for</strong>m of ID (such as a username or ID<br />

number) is called verification. Unlike other<br />

mechanisms such as passwords, swipe cards or<br />

PINs, f<strong>in</strong>gerpr<strong>in</strong>ts can’t be lost, <strong>for</strong>gotten or shared.<br />

• Authentication – The act of confirm<strong>in</strong>g that<br />

somebody is who they claim to be is called<br />

authentication. It usually <strong>in</strong>volves two steps: (1)<br />

identify<strong>in</strong>g who they say they are; and (2)<br />

verify<strong>in</strong>g that they really are that person. When a<br />

f<strong>in</strong>gerpr<strong>in</strong>t is used to both identify and verify<br />

somebody <strong>in</strong> one step, it is often called “touchand-go”<br />

authentication.<br />

• False Match Rate (FMR) – This is a measure of the<br />

probability that f<strong>in</strong>gerpr<strong>in</strong>ts from two different<br />

people might mistakenly be considered a match. A<br />

lower False Match Rate requires a more exact<br />

match, which could <strong>for</strong>ce legitimate users to<br />

rescan their f<strong>in</strong>gerpr<strong>in</strong>ts on occasion. Most<br />

applications allow this rate to be adjusted to<br />

handle different populations of users.<br />

ones previously enrolled, <strong>for</strong>c<strong>in</strong>g the user to<br />

rescan. Typically, a lower False Match Rate will<br />

result <strong>in</strong> a higher False Reject Rate.<br />

• Failure To Capture (FTC) – This occurs whenever a<br />

user presses their f<strong>in</strong>ger to the sensor and the<br />

sensor does not recognize that a f<strong>in</strong>ger is present.<br />

This can sometimes happen when people have<br />

very dry sk<strong>in</strong>.<br />

• Duplicate Enrollment Check (DEC) – This is the<br />

process of identify<strong>in</strong>g <strong>in</strong>dividuals who have<br />

already registered their f<strong>in</strong>gerpr<strong>in</strong>t with your<br />

application. This can be used dur<strong>in</strong>g enrollment to<br />

make sure the user isn’t be<strong>in</strong>g entered a second<br />

time.<br />

• User ID – The piece of data that your application<br />

uses <strong>in</strong>ternally to identify each dist<strong>in</strong>ct user of<br />

your application is frequently called a “user ID.”<br />

This unique identifier (often a <strong>for</strong>m of user name<br />

or serial number) is used to quickly look up<br />

<strong>in</strong><strong>for</strong>mation about each person <strong>in</strong> whatever data<br />

store is used to record user <strong>in</strong><strong>for</strong>mation.<br />

• User Account Data – Your application most likely<br />

stores <strong>in</strong><strong>for</strong>mation associated with each User ID <strong>in</strong><br />

some sort of user account database. Typically, this<br />

<strong>in</strong>cludes attributes like account names, log<strong>in</strong><br />

names or IDs, ID numbers, PINs and other k<strong>in</strong>ds of<br />

<strong>in</strong><strong>for</strong>mation that are used dur<strong>in</strong>g sign-on.<br />

• False Reject Rate (FRR) – This is a measure of the<br />

probability that f<strong>in</strong>gerpr<strong>in</strong>ts from a legitimate user<br />

might mistakenly be rejected as not match<strong>in</strong>g the<br />

© 2009-2012 DigitalPersona, Inc 4


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

Steps <strong>for</strong> Us<strong>in</strong>g <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s <strong>in</strong> Your Application<br />

To get the most out of f<strong>in</strong>gerpr<strong>in</strong>t biometrics <strong>in</strong> your<br />

applications, focus on the follow<strong>in</strong>g areas:<br />

• Where to Store <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> FMDs<br />

• Access<strong>in</strong>g Stored <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> FMDs<br />

• Enroll<strong>in</strong>g Users’ <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s<br />

• Check<strong>in</strong>g <strong>for</strong> Duplicate Enrollments<br />

• Preload<strong>in</strong>g FMDs at Application Startup<br />

• Look<strong>in</strong>g Up Users by Their <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong><br />

• Sign-on<br />

• <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s as an “Enter” key<br />

• Approvals<br />

• Sign-out<br />

• Remov<strong>in</strong>g Users<br />

• Logg<strong>in</strong>g<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s can be used to implement various<br />

security processes to make your application easier to<br />

use and more secure:<br />

• Identify users by their f<strong>in</strong>gerpr<strong>in</strong>t – Give users<br />

“touch-and-go” authentication without the need<br />

<strong>for</strong> other <strong>for</strong>ms of ID, such as usernames, swipe<br />

cards or ID numbers.<br />

• Verify another <strong>for</strong>m of ID – <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s can be<br />

used to confirm that a username or ID number<br />

provided by the user actually belongs to them.<br />

This avoids the need <strong>for</strong> passwords or PINs which<br />

can be easily lost, stolen or shared.<br />

Most applications give customers’ adm<strong>in</strong>istrators the<br />

ability to set policies that control how users log onto<br />

the application. Common examples of logon policies<br />

<strong>in</strong>clude:<br />

• <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>-only<br />

• <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> or UserID+Password/PIN<br />

• <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> and UserID+Password/PIN<br />

Your application implements the logic <strong>for</strong> these<br />

policies, giv<strong>in</strong>g you the flexibility to choose the most<br />

appropriate options <strong>for</strong> your customers.<br />

Where to Store <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> FMDs<br />

The f<strong>in</strong>gerpr<strong>in</strong>t FMDs that are created whenever a<br />

user enrolls f<strong>in</strong>gerpr<strong>in</strong>ts need to be stored <strong>in</strong> a way<br />

that your application can access them and know the<br />

user accounts to which they correspond.<br />

Your exist<strong>in</strong>g user account data probably already has<br />

some <strong>for</strong>m of User ID that can be used to quickly look<br />

up <strong>in</strong><strong>for</strong>mation about the user (e.g., a username or ID<br />

number). <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s can provide a quick way to<br />

determ<strong>in</strong>e this User ID without hav<strong>in</strong>g to ask the user<br />

<strong>for</strong> another <strong>for</strong>m of ID.<br />

There are two common approaches to choos<strong>in</strong>g where<br />

f<strong>in</strong>gerpr<strong>in</strong>t FMD data is placed:<br />

Where<br />

How<br />

Pros<br />

Cons<br />

Extend Exist<strong>in</strong>g<br />

User Account Data<br />

Add f<strong>in</strong>gerpr<strong>in</strong>t FMDs<br />

(at least two) as extra<br />

fields <strong>in</strong> the data you<br />

store about each<br />

UserID.<br />

Takes advantage of<br />

your exist<strong>in</strong>g data<br />

backup and<br />

management tools.<br />

Requires changes to<br />

exist<strong>in</strong>g user data<br />

structures.<br />

Use A Separate<br />

Database<br />

Store f<strong>in</strong>gerpr<strong>in</strong>t<br />

FMDs <strong>in</strong> a separate<br />

database along with<br />

the UserID to which<br />

they correspond.<br />

Insulates f<strong>in</strong>gerpr<strong>in</strong>t<br />

FMDs from user<br />

data <strong>for</strong> enhanced<br />

privacy and security.<br />

Adds another<br />

database to backup<br />

and ma<strong>in</strong>ta<strong>in</strong>.<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> FMDs are typically represented as b<strong>in</strong>ary<br />

data stored <strong>in</strong> variable-length arrays of bytes. The<br />

FMD <strong>for</strong>mat used most commonly with DigitalPersona<br />

© 2009-2012 DigitalPersona, Inc 5


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

software development kits is less than 2048 bytes<br />

long; however, other FMD <strong>for</strong>mats have different<br />

sizes. If you are us<strong>in</strong>g Microsoft SQL Server, you can<br />

use a “varb<strong>in</strong>ary(3000)” field.<br />

Access<strong>in</strong>g Stored <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> FMDs<br />

If your application can be used by multiple people at<br />

the same time (such as from different computers, POS<br />

stations or other devices), you can m<strong>in</strong>imize memory<br />

consumption and code complexity by creat<strong>in</strong>g a<br />

separate service <strong>for</strong> stor<strong>in</strong>g and look<strong>in</strong>g up FMDs.<br />

touch<strong>in</strong>g the pad (not the tip) of their f<strong>in</strong>ger to the<br />

surface of the f<strong>in</strong>gerpr<strong>in</strong>t reader can avoid problems<br />

later.<br />

DigitalPersona’s U.are.U W<strong>in</strong>dows SDK <strong>in</strong>cludes<br />

graphical user <strong>in</strong>terface controls that can either be<br />

used as is or to provide ideas if you wish to create<br />

your own <strong>in</strong>terface:<br />

This service, which can even run on a separate<br />

computer, can be called by other parts of your<br />

application us<strong>in</strong>g technologies such as RPC, DCOM,<br />

WCF or Web Services. It provides an <strong>in</strong>ternal <strong>in</strong>terface<br />

<strong>for</strong> your application to look up the User ID associated<br />

with a given f<strong>in</strong>gerpr<strong>in</strong>t FMD. Keep<strong>in</strong>g stored<br />

f<strong>in</strong>gerpr<strong>in</strong>t data <strong>in</strong>sulated from your end users also<br />

helps to protect people’s privacy.<br />

Enroll<strong>in</strong>g Users’ <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s<br />

Each person who will be us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts with your<br />

application has to enroll their f<strong>in</strong>gerpr<strong>in</strong>ts with your<br />

software. Many applications make this part of the user<br />

account creation or provision<strong>in</strong>g process. Typically, an<br />

adm<strong>in</strong>istrator or other authorized user br<strong>in</strong>gs up the<br />

appropriate screen with<strong>in</strong> your application and helps<br />

the user through their <strong>in</strong>itial f<strong>in</strong>gerpr<strong>in</strong>t scans.<br />

If you create your own enrollment screens, make sure<br />

that users scan their f<strong>in</strong>gerpr<strong>in</strong>ts several times to<br />

make subsequent matches more reliable.<br />

The middle f<strong>in</strong>ger, <strong>in</strong>dex f<strong>in</strong>ger and thumb on each<br />

hand typically provide the best f<strong>in</strong>gerpr<strong>in</strong>ts to use.<br />

To avoid match<strong>in</strong>g problems <strong>in</strong> case of an<br />

<strong>in</strong>jured f<strong>in</strong>ger, your application should ask users<br />

to register f<strong>in</strong>gerpr<strong>in</strong>ts from at least two f<strong>in</strong>gers.<br />

Graphical screens should be used to guide the user<br />

through the enrollment process. While touch<strong>in</strong>g a<br />

f<strong>in</strong>gerpr<strong>in</strong>t reader is a natural, easy to understand<br />

action, <strong>in</strong>clud<strong>in</strong>g a picture or short video of somebody<br />

Also, make sure that your application provides visual<br />

feedback to the user.<br />

© 2009-2012 DigitalPersona, Inc 6


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

Check<strong>in</strong>g <strong>for</strong> Duplicate Enrollments<br />

With biometrics, you can easily catch people who<br />

attempt to enroll more than once to use your<br />

application. This gives you the ability to consolidate<br />

older accounts, avoid accidental duplicate<br />

registrations and prevent fraudulent attempts to<br />

masquerade as somebody else.<br />

Your application can either check <strong>for</strong> duplicates <strong>in</strong> real<br />

time dur<strong>in</strong>g enrollment or offl<strong>in</strong>e (Footnote: FMDs of<br />

type DP_REGISTRATION cannot be cleansed offl<strong>in</strong>e.<br />

FMDs of ANSI and ISO can.) as part of a database<br />

cleans<strong>in</strong>g process. Either approach can be<br />

implemented us<strong>in</strong>g the 1:n identification capability <strong>in</strong><br />

the U.are.U SDKs and is useful even if your application<br />

only uses f<strong>in</strong>gerpr<strong>in</strong>ts to verify another <strong>for</strong>m of ID.<br />

Preload<strong>in</strong>g FMDs at Application Startup<br />

In order to ensure the fastest identification<br />

speeds\response times, do not read FMD data from a<br />

database at the po<strong>in</strong>t a user attempts to authenticate.<br />

You should pre-populate a list of FMDs at application<br />

startup by read<strong>in</strong>g all FMD data from the database.<br />

When a user attempts to authenticate, all the<br />

application should do is call a s<strong>in</strong>gle function –<br />

“identify()”.<br />

When your application starts, have it iterate over the<br />

enrolled f<strong>in</strong>gerpr<strong>in</strong>t FMDs (wherever you have chosen<br />

to store them) and add each one to a list,<br />

“identification collection” object. Once this is done,<br />

<strong>in</strong>dividual lookups will typically take less than a<br />

second, even when there are thousands of enrolled<br />

FMDs.<br />

If you are not us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts <strong>for</strong><br />

identification, but only to verify another <strong>for</strong>m of<br />

ID, you do not need to use a 1:n identification.<br />

Look<strong>in</strong>g Up Users by Their <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong><br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s provide a natural way <strong>for</strong> your application<br />

to recognize the user without the need <strong>for</strong> other<br />

<strong>for</strong>ms of ID (e.g., usernames, ID numbers or swipe<br />

cards). People learn quickly how to use f<strong>in</strong>gerpr<strong>in</strong>ts<br />

and can do so naturally, without hav<strong>in</strong>g to stop or<br />

<strong>in</strong>terrupt the flow of what they are do<strong>in</strong>g. This makes<br />

f<strong>in</strong>gerpr<strong>in</strong>ts ideal not only <strong>for</strong> sign-on, but also <strong>for</strong><br />

confirm<strong>in</strong>g who is per<strong>for</strong>m<strong>in</strong>g important operations –<br />

especially when multiple people might be <strong>in</strong>volved<br />

(such as <strong>for</strong> an approval).<br />

Identification <strong>in</strong> U.are.U SDKs is not easily scalable as a<br />

service and is ideal <strong>for</strong> local identification as there is<br />

no memory or per<strong>for</strong>mance penalty dur<strong>in</strong>g preload of<br />

FMDs. Under most circumstances, identification will<br />

be faster if the local mach<strong>in</strong>e per<strong>for</strong>ms the lookup as<br />

opposed to a server.<br />

Your service or module may receive more than one<br />

possible match candidate. 1 By default, the returned<br />

list of candidates will be pre-sorted so that the first<br />

item <strong>in</strong> the list is likely the best match. Your<br />

application should log which users were matched and<br />

alert the adm<strong>in</strong>istrator <strong>in</strong> the condition multiple<br />

candidates are returned dur<strong>in</strong>g identification. Part of<br />

this messag<strong>in</strong>g should <strong>in</strong>clude <strong>in</strong>structions on how to<br />

elim<strong>in</strong>ate multiple matches, either by hav<strong>in</strong>g the<br />

matched users re-register their f<strong>in</strong>ger(s) or by<br />

adjust<strong>in</strong>g the False Match Rate.<br />

Once the appropriate enrolled FMD has been<br />

identified, your service or module can then return the<br />

UserID associated with the FMD to your application.<br />

You may wish to also return the enrolled FMD that<br />

1 Under certa<strong>in</strong> conditions, a f<strong>in</strong>gerpr<strong>in</strong>t FMD may partially<br />

match multiple enrolled FMDs, particularly if your application<br />

has lowered the False Match Rate to allow people with hard-toread<br />

f<strong>in</strong>gerpr<strong>in</strong>ts to use your application without hav<strong>in</strong>g to<br />

touch the f<strong>in</strong>gerpr<strong>in</strong>t scanner multiple times.<br />

© 2009-2012 DigitalPersona, Inc 7


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

was matched so that the caller can cache it <strong>for</strong> quick<br />

match<strong>in</strong>g <strong>in</strong> the future.<br />

Never implement f<strong>in</strong>gerpr<strong>in</strong>t identification by<br />

iterat<strong>in</strong>g over your database of enrolled<br />

f<strong>in</strong>gerpr<strong>in</strong>t FMDs, match<strong>in</strong>g each one <strong>in</strong>dividually. This<br />

approach is very <strong>in</strong>efficient and will make users th<strong>in</strong>k<br />

your application is slow. Instead, utilize the<br />

Identification feature of the SDK to match the user <strong>in</strong><br />

one operation.<br />

Sign-On<br />

The most common use of f<strong>in</strong>gerpr<strong>in</strong>ts is <strong>for</strong> sign-on,<br />

either as a <strong>for</strong>m of identification or as a way to<br />

confirm another <strong>for</strong>m of ID.<br />

When a user scans their f<strong>in</strong>gerpr<strong>in</strong>t dur<strong>in</strong>g sign-on,<br />

your application will receive an event from the<br />

f<strong>in</strong>gerpr<strong>in</strong>t SDK <strong>in</strong>dicat<strong>in</strong>g that an image or FMD<br />

(depend<strong>in</strong>g on which SDK you are us<strong>in</strong>g) is available. If<br />

your application is us<strong>in</strong>g an SDK that provides a raw<br />

image, immediately extract the f<strong>in</strong>gerpr<strong>in</strong>t FMD and<br />

discard the orig<strong>in</strong>al image.<br />

If you are us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts as a <strong>for</strong>m of ID, your signon<br />

code can call your lookup service or module (see<br />

above) to determ<strong>in</strong>e the UserID of the person who<br />

touched the f<strong>in</strong>gerpr<strong>in</strong>t reader.<br />

If you are only us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts <strong>for</strong> verification, then<br />

your application can use the other <strong>for</strong>m of ID to<br />

determ<strong>in</strong>e which UserID to look up. That UserID can<br />

then be used to f<strong>in</strong>d the user’s enrolled FMDs to<br />

compare aga<strong>in</strong>st.<br />

If you will be us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts to confirm actions that<br />

are per<strong>for</strong>med frequently, obta<strong>in</strong> a copy of the<br />

enrolled f<strong>in</strong>gerpr<strong>in</strong>t from your f<strong>in</strong>gerpr<strong>in</strong>t lookup<br />

service or module and cache it <strong>in</strong> your application.<br />

Your code can then rapidly per<strong>for</strong>m a direct match<br />

aga<strong>in</strong>st the f<strong>in</strong>gerpr<strong>in</strong>t <strong>in</strong> cache be<strong>for</strong>e attempt<strong>in</strong>g a<br />

full lookup.<br />

F<strong>in</strong>ally, always create a log entry whenever users sign<br />

on and note whether or not they used their<br />

f<strong>in</strong>gerpr<strong>in</strong>t. Even if you do not create a policy requir<strong>in</strong>g<br />

the use of f<strong>in</strong>gerpr<strong>in</strong>ts to sign on, it is still a good idea<br />

to note when anyone with registered f<strong>in</strong>gerpr<strong>in</strong>ts<br />

signs on without us<strong>in</strong>g them. This can help customers<br />

spot potential problems early.<br />

Two-F<strong>in</strong>ger Match<strong>in</strong>g<br />

For extra high security, you can request and<br />

match two f<strong>in</strong>gerpr<strong>in</strong>ts <strong>in</strong>stead of just one. To<br />

avoid surpris<strong>in</strong>g users, always ask <strong>for</strong> both<br />

f<strong>in</strong>gerpr<strong>in</strong>ts, even if the first one correctly<br />

matches.<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s as an “Enter” Key<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s are useful <strong>for</strong> more than just sign-on.<br />

They are a fast, <strong>in</strong>tuitive way <strong>for</strong> users to confirm that<br />

they are who they say they are when per<strong>for</strong>m<strong>in</strong>g<br />

<strong>in</strong>dividual application functions, such as:<br />

• Enter<strong>in</strong>g new orders<br />

• Chang<strong>in</strong>g or delet<strong>in</strong>g important data<br />

• Open<strong>in</strong>g a cash drawer <strong>in</strong> a cash register<br />

• Pr<strong>in</strong>t<strong>in</strong>g sensitive <strong>in</strong><strong>for</strong>mation<br />

• Access<strong>in</strong>g client credit card numbers<br />

When you have an action that you want to confirm by<br />

a f<strong>in</strong>gerpr<strong>in</strong>t, prompt the user to touch the f<strong>in</strong>gerpr<strong>in</strong>t<br />

sensor and obta<strong>in</strong> a FMD as described above.<br />

© 2009-2012 DigitalPersona, Inc 8


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

S<strong>in</strong>ce most people tend to use the same f<strong>in</strong>ger<br />

over and over, if your application has previously<br />

cached the enrolled FMD that was successfully<br />

matched at sign on, try to match that cached FMD<br />

first.<br />

If your application isn’t cach<strong>in</strong>g any recently-used<br />

FMDs, or the FMD didn’t match, do a look up us<strong>in</strong>g the<br />

approach described above <strong>for</strong> sign-on. This will tell<br />

you whether the f<strong>in</strong>gerpr<strong>in</strong>t came from a different<br />

f<strong>in</strong>ger on the same person or from a different person.<br />

If the f<strong>in</strong>gerpr<strong>in</strong>t doesn’t come from the user who<br />

signed on, you can use the FMD to determ<strong>in</strong>e if<br />

another authorized user is attempt<strong>in</strong>g to use your<br />

application. This is an easy way to implement<br />

approvals by supervisors or other privileged users (see<br />

next section).<br />

Make sure that your application logs the fact that the<br />

action was confirmed with a f<strong>in</strong>gerpr<strong>in</strong>t.<br />

As stated be<strong>for</strong>e, never iterate over all enrolled<br />

f<strong>in</strong>gerpr<strong>in</strong>ts look<strong>in</strong>g <strong>for</strong> a match. It will make<br />

your application very slow, particularly as the number<br />

of users rises. Instead, use the 1:n identification<br />

capabilities of the U.are.U SDK to deliver a vastly<br />

superior user experience.<br />

Approvals<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s can help guide users to follow proper<br />

bus<strong>in</strong>ess processes. They provide a simple way to<br />

allow other people (such as supervisors or<br />

adm<strong>in</strong>istrators) to authorize actions requir<strong>in</strong>g special<br />

permissions without cumbersome switch<strong>in</strong>g of users.<br />

Your application implements the logic <strong>for</strong> approvals,<br />

giv<strong>in</strong>g you full control. For operations that require<br />

authentication from somebody with special privileges,<br />

provide a visual prompt explicitly identify<strong>in</strong>g the<br />

privilege level required or the role of the person<br />

needed (e.g., “Manager <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> Required <strong>for</strong><br />

Override”).<br />

A simple way to implement approvals is to use the 1:n<br />

identification capabilities of the U.are.U SDK to<br />

identify which user scanned their f<strong>in</strong>gerpr<strong>in</strong>t and, if<br />

that user is properly authorized, take the appropriate<br />

action. This elim<strong>in</strong>ates the need to prompt <strong>for</strong> another<br />

<strong>for</strong>m of identification (e.g., a username, log<strong>in</strong> name, ID<br />

number or PIN) to determ<strong>in</strong>e which user has scanned<br />

a f<strong>in</strong>gerpr<strong>in</strong>t. Workflow is fast and efficient and a<br />

powerful audit trail can be created.<br />

If you are not us<strong>in</strong>g the 1:n identification<br />

capabilities of the U.are.U SDK and don’t wish<br />

to prompt <strong>for</strong> another <strong>for</strong>m of ID, you will likely need<br />

to implement some <strong>for</strong>m of persistent cach<strong>in</strong>g to<br />

avoid hav<strong>in</strong>g to iterate over the list of all registered<br />

f<strong>in</strong>gerpr<strong>in</strong>ts. However, this adds significant complexity<br />

to your application and can greatly reduce<br />

per<strong>for</strong>mance.<br />

Always have your application log all approval attempts<br />

– successful and failed.<br />

Sign-Out<br />

When a user signs out of your application, all<br />

temporary copies of f<strong>in</strong>gerpr<strong>in</strong>t FMDs that your<br />

application is keep<strong>in</strong>g <strong>in</strong> memory should be released.<br />

If your application is not us<strong>in</strong>g the 1:n identification<br />

capabilities of the U.are.U SDK but is ma<strong>in</strong>ta<strong>in</strong><strong>in</strong>g its<br />

own persistent cache of registered f<strong>in</strong>gerpr<strong>in</strong>t FMDs<br />

that have recently been used, make sure the cache is<br />

properly updated.<br />

As always, make sure your application logs the fact<br />

that the user has signed out.<br />

Remov<strong>in</strong>g Users<br />

Us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts to control access to your application<br />

makes it easy to immediately block access by people<br />

© 2009-2012 DigitalPersona, Inc 9


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

whose permissions have been revoked (e.g., <strong>for</strong>mer<br />

employees or people who changed roles).<br />

The easiest approach is to delete any FMDs associated<br />

with the <strong>for</strong>mer user. If your application uses the 1:n<br />

identification capabilities of the U.are.U SDK, remove<br />

the user from the identification collection that was<br />

created at startup to immediately prevent their<br />

f<strong>in</strong>gerpr<strong>in</strong>ts from be<strong>in</strong>g recognized. Then delete the<br />

registered FMDs from the user data record or from<br />

the separate f<strong>in</strong>gerpr<strong>in</strong>t FMD database.<br />

If you wish to provide the ability <strong>for</strong> customers<br />

to flag term<strong>in</strong>ated users who attempt to use<br />

their f<strong>in</strong>gerpr<strong>in</strong>ts to ga<strong>in</strong> <strong>in</strong>appropriate access, do not<br />

immediately remove the user’s f<strong>in</strong>gerpr<strong>in</strong>t FMDs.<br />

Instead, mark the user’s account data as disabled.<br />

Then, when a user attempts to access your<br />

application, simply check the status of that user’s<br />

account to determ<strong>in</strong>e their access rights and log any<br />

failures.<br />

trail. Your application should automatically log all<br />

authentication and security activities, <strong>in</strong>clud<strong>in</strong>g:<br />

• Whenever a user enrolls a f<strong>in</strong>gerpr<strong>in</strong>t.<br />

• Whenever somebody has trouble enroll<strong>in</strong>g.<br />

• Whenever a duplicate enrollment is detected.<br />

• Whenever somebody signs on, confirms an action<br />

or otherwise authenticates – with the ways <strong>in</strong><br />

which they authenticated.<br />

• Whenever somebody tries to authenticate but<br />

can’t.<br />

• Whenever somebody who has f<strong>in</strong>gerpr<strong>in</strong>ts<br />

enrolled authenticates without them.<br />

• Whenever security sett<strong>in</strong>gs are changed –<br />

especially False Match Rate. Sett<strong>in</strong>g this<br />

improperly can have serious consequences. Make<br />

sure to <strong>in</strong>clude both the old and new values.<br />

If your application does provide such temporary<br />

retention of biometric data, make sure that you<br />

give customers the ability to permanently flush the<br />

registered f<strong>in</strong>gerpr<strong>in</strong>t FMDs from <strong>for</strong>mer users after a<br />

given number of days. Adm<strong>in</strong>istrators should be able<br />

control the length of time and to immediately delete<br />

FMDs if needed. This is important as it enables the<br />

customer to comply with any local data retention<br />

regulations and policies.<br />

Logg<strong>in</strong>g<br />

<strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong>s are valuable as a deterrent to<br />

<strong>in</strong>appropriate behavior, as a way of improv<strong>in</strong>g<br />

usability and as a valuable source of data <strong>for</strong> an audit<br />

© 2009-2012 DigitalPersona, Inc 10


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

Troubleshoot<strong>in</strong>g and Prevent<strong>in</strong>g Problems<br />

The follow<strong>in</strong>g capabilities can simplify your customers’<br />

use of f<strong>in</strong>gerpr<strong>in</strong>ts and avoid common problems.<br />

Provide visual feedback dur<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>t use<br />

While f<strong>in</strong>gerpr<strong>in</strong>ts are naturally easy <strong>for</strong> people to<br />

understand, applications should provide feedback<br />

dur<strong>in</strong>g successes as well as failures:<br />

<strong>for</strong>giv<strong>in</strong>g, particularly when f<strong>in</strong>gerpr<strong>in</strong>ts are used <strong>for</strong><br />

identification (<strong>for</strong> verification, the sett<strong>in</strong>gs rarely need<br />

to be changed).<br />

If you are us<strong>in</strong>g f<strong>in</strong>gerpr<strong>in</strong>ts <strong>for</strong> identification, you<br />

should provide a way <strong>for</strong> adm<strong>in</strong>istrators (but not end<br />

users) to adjust the FMR sett<strong>in</strong>gs. For example:<br />

• Prompt the user when a f<strong>in</strong>gerpr<strong>in</strong>t is needed.<br />

• Warn when the sensor is disconnected.<br />

• Prompt the user to retry if a f<strong>in</strong>ger is detected but<br />

no match is received with<strong>in</strong> a second or two.<br />

• Warn when a f<strong>in</strong>gerpr<strong>in</strong>t is received but no match<br />

is found.<br />

• Indicate success when a match is found.<br />

Offer help when repeated failures occur<br />

You can dramatically improve the user experience of<br />

your application by detect<strong>in</strong>g repeated failed attempts<br />

to use the f<strong>in</strong>gerpr<strong>in</strong>t reader and offer<strong>in</strong>g h<strong>in</strong>ts, such as:<br />

• “Touch the f<strong>in</strong>gerpr<strong>in</strong>t sensor with the flat pad of<br />

your f<strong>in</strong>ger, not the tip.”<br />

• “If your f<strong>in</strong>gers are very dry, try touch<strong>in</strong>g your<br />

<strong>for</strong>ehead with the pad of the f<strong>in</strong>ger you are try<strong>in</strong>g<br />

to scan and then rescann<strong>in</strong>g your f<strong>in</strong>gerpr<strong>in</strong>t.”<br />

• “If the f<strong>in</strong>gerpr<strong>in</strong>t sensor is dirty, gently dab it with<br />

the sticky side of a piece of cellophane tape. Do<br />

not rub it with paper and do not get it wet.”<br />

Provide adm<strong>in</strong>istrative sett<strong>in</strong>gs <strong>for</strong> FMR<br />

For some populations of users, the default False<br />

Match Rate sett<strong>in</strong>gs might be too restrictive or too<br />

Your application can map High or Low sett<strong>in</strong>gs to the<br />

appropriate values needed by the appropriate SDKs.<br />

Incorrectly adjust<strong>in</strong>g the FMR can have serious<br />

consequences. It is extremely important that<br />

your application set the FMR accord<strong>in</strong>g to the SDK<br />

documentation and provide adm<strong>in</strong>istrators a thorough<br />

explanation of FMR options with<strong>in</strong> your user <strong>in</strong>terface<br />

to avoid confusion.<br />

Test Your Application with Multiple People<br />

The ease with which people’s f<strong>in</strong>gerpr<strong>in</strong>ts can be read<br />

is affected by many factors, <strong>in</strong>clud<strong>in</strong>g dryness, age, as<br />

well as wear and tear. For best results, try your<br />

implementation with multiple and diverse people.<br />

© 2009-2012 DigitalPersona, Inc 11


<strong>Best</strong> <strong>Practices</strong> <strong>for</strong> <strong>Implement<strong>in</strong>g</strong> <strong>F<strong>in</strong>gerpr<strong>in</strong>t</strong> <strong>Biometrics</strong> <strong>in</strong> <strong>Applications</strong><br />

Summary<br />

<strong>Biometrics</strong> can help you enhance the security and<br />

usability of your application. By follow<strong>in</strong>g a few simple<br />

guidel<strong>in</strong>es and us<strong>in</strong>g DigitalPersona’s biometric<br />

software development kits, you can easily add fast<br />

f<strong>in</strong>gerpr<strong>in</strong>t identification and verification capabilities<br />

that enable your application to recognize <strong>in</strong>dividual<br />

users without requir<strong>in</strong>g other <strong>for</strong>ms of ID. This can be<br />

used <strong>in</strong> a variety of ways – from sign-on and<br />

confirmation of important actions to special approvals<br />

by other users – to help combat fraud and boost<br />

customer efficiency.<br />

About DigitalPersona, Inc.<br />

DigitalPersona, Inc. provides biometric solutions which<br />

securely create, manage and authenticate the digital<br />

identities of <strong>in</strong>dividuals and bus<strong>in</strong>esses worldwide.<br />

The company’s f<strong>in</strong>gerpr<strong>in</strong>t biometrics technology<br />

helps organizations prevent fraud and <strong>in</strong>crease<br />

accountability; it is <strong>in</strong>corporated <strong>in</strong>to multiple national<br />

vot<strong>in</strong>g systems, almost all brands of biometricallyenabled<br />

po<strong>in</strong>t-of-sale (POS) stations, as well as many<br />

commercial applications <strong>in</strong> the retail, healthcare and<br />

f<strong>in</strong>ancial <strong>in</strong>dustries. DigitalPersona’s authentication<br />

and access management software is shipped by<br />

computer manufacturers on millions of notebooks and<br />

desktop computers per year; its cloud- and Active<br />

Directory-managed solutions multi-factor/strong<br />

authentication, s<strong>in</strong>gle sign-on (SSO) password<br />

management and emergency access recovery simplify<br />

compliance and cut IT costs.<br />

The <strong>in</strong><strong>for</strong>mation <strong>in</strong> this document is provided <strong>for</strong> <strong>in</strong><strong>for</strong>mational<br />

purposes only and is not <strong>in</strong>tended to be anyth<strong>in</strong>g other than<br />

the educated op<strong>in</strong>ion of the author. All statements, <strong>in</strong><strong>for</strong>mation<br />

and recommendations <strong>in</strong> this document are believed to be<br />

accurate, but DigitalPersona makes no claims, promises or<br />

guarantees about the accuracy, completeness or adequacy of<br />

the <strong>in</strong><strong>for</strong>mation. This <strong>in</strong><strong>for</strong>mation should not be relied upon as<br />

legal advice. DigitalPersona specifically disclaims all warranties<br />

of any k<strong>in</strong>d, express or implied. Users must take full<br />

responsibility <strong>for</strong> their application or any products or<br />

compliance with any legal requirements.<br />

© 2009-2012 DigitalPersona, Inc. All rights reserved.<br />

DigitalPersona and U.are.U are trademarks of DigitalPersona,<br />

Inc. registered <strong>in</strong> the U.S. and other countries. All other brand<br />

and product names are trademarks or registered trademarks of<br />

their respective owners.<br />

For more <strong>in</strong><strong>for</strong>mation contact DigitalPersona, Inc.<br />

at: +1 650.474.4000, or visit<br />

www.digitalpersona.com<br />

© 2009-2012 DigitalPersona, Inc 12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!