2018-05-17 00:58:59 +00:00
|
|
|
|
<?xml version="1.0"?>
|
|
|
|
|
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
|
|
|
|
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
|
|
|
|
]>
|
|
|
|
|
<chapter id="intro" xmlns:xi="http://www.w3.org/2003/XInclude">
|
|
|
|
|
<title>Introduction</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
libfprint is an open source library to provide access to fingerprint
|
|
|
|
|
scanning devices. For more info, see the
|
2018-06-02 22:30:32 +00:00
|
|
|
|
<ulink url="https://fprint.freedesktop.org/">libfprint project homepage</ulink>.
|
2018-05-17 00:58:59 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
This documentation is aimed at application developers who wish to integrate
|
|
|
|
|
fingerprint-related functionality into their software. libfprint has been
|
2018-05-18 03:51:58 +00:00
|
|
|
|
designed so that you only have to do this once – by integrating your
|
2018-05-17 00:58:59 +00:00
|
|
|
|
software with libfprint, you'll be supporting all the fingerprint readers
|
|
|
|
|
that we have got our hands on. As such, the API is rather general (and
|
|
|
|
|
therefore hopefully easy to comprehend!), and does its best to hide the
|
|
|
|
|
technical details that required to operate the hardware.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
This documentation is not aimed at developers wishing to develop and
|
|
|
|
|
contribute fingerprint device drivers to libfprint.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Feedback on this API and its associated documentation is appreciated. Was
|
|
|
|
|
anything unclear? Does anything seem unreasonably complicated? Is anything
|
|
|
|
|
missing? Let us know on the
|
2018-06-02 22:30:32 +00:00
|
|
|
|
<ulink url="https://lists.freedesktop.org/mailman/listinfo/fprint">mailing list</ulink>.
|
2018-05-17 00:58:59 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<refsect2 id="enrollment">
|
|
|
|
|
<title>Enrollment</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Before you dive into the API, it's worth introducing a couple of concepts.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
The process of enrolling a finger is where you effectively scan your
|
|
|
|
|
finger for the purposes of teaching the system what your finger looks like.
|
|
|
|
|
This means that you scan your fingerprint, then the system processes it and
|
|
|
|
|
stores some data about your fingerprint to refer to later.
|
|
|
|
|
</para>
|
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
|
|
<refsect2 id="verification">
|
|
|
|
|
<title>Verification</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Verification is what most people think of when they think about fingerprint
|
|
|
|
|
scanning. The process of verification is effectively performing a fresh
|
|
|
|
|
fingerprint scan, and then comparing that scan to a finger that was
|
|
|
|
|
previously enrolled.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
As an example scenario, verification can be used to implement what people
|
|
|
|
|
would picture as fingerprint login (i.e. fingerprint replaces password).
|
|
|
|
|
For example:
|
|
|
|
|
</para>
|
|
|
|
|
<itemizedlist mark='dot'>
|
|
|
|
|
<listitem>
|
|
|
|
|
I enroll my fingerprint through some software that trusts I am who I say
|
|
|
|
|
I am. This is a prerequisite before I can perform fingerprint-based
|
|
|
|
|
login for my account.
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
Some time later, I want to login to my computer. I enter my username,
|
|
|
|
|
but instead of prompting me for a password, it asks me to scan my finger.
|
|
|
|
|
I scan my finger.
|
|
|
|
|
</listitem>
|
|
|
|
|
<listitem>
|
|
|
|
|
The system compares the finger I just scanned to the one that was
|
|
|
|
|
enrolled earlier. If the system decides that the fingerprints match,
|
|
|
|
|
I am successfully logged in. Otherwise, the system informs me that I am
|
|
|
|
|
not authorised to login as that user.
|
|
|
|
|
</listitem>
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
</refsect2>
|
|
|
|
|
|
|
|
|
|
<refsect2 id="identification">
|
|
|
|
|
<title>Identification</title>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
Identification is the process of comparing a freshly scanned fingerprint
|
|
|
|
|
to a <emphasis>collection</emphasis> of previously enrolled fingerprints. For example,
|
|
|
|
|
imagine there are 100 people in an organisation, and they all have enrolled
|
|
|
|
|
their fingerprints. One user walks up to a fingerprint scanner and scans
|
|
|
|
|
their finger. With <emphasis>no other knowledge</emphasis> of who that user might be,
|
|
|
|
|
the system examines their fingerprint, looks in the database, and determines
|
|
|
|
|
that the user is user number #61.
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
In other words, verification might be seen as a one-to-one fingerprint
|
|
|
|
|
comparison where you know the identity of the user that you wish to
|
|
|
|
|
authenticate, whereas identification is a one-to-many comparison where you
|
|
|
|
|
do not know the identity of the user that you wish to authenticate.
|
|
|
|
|
</para>
|
|
|
|
|
</refsect2>
|
|
|
|
|
</chapter>
|