From: linux@horizon.com
To: linux-kernel@vger.kernel.org
Subject: Re: Driver for Microsoft USB Fingerprint Reader
Date: 6 Jul 2006 00:48:38 -0400 [thread overview]
Message-ID: <20060706044838.30651.qmail@science.horizon.com> (raw)
Alan Cox wrote:
> The very cheap readers all appear to be fairly crude image scanners, and
> they even lack hardware encryption/perturbation so they are actually of
> very limited value.
I utterly fail to see why multiple, generally knowledgeable people are
claiming that encryption in a fingerprint scanner is desirable.
As far as I can tell, the only thing you want is AUTHENTICATION - you
want proof that you are getting a "live" scan taken from a user
who's present, and not a replay of what was sent last week.
This is called "freshness" and is usually provided by including a
random "nonce" (known in other contexts as "magic cookie") in the
authenticated data.
That is,
1) Computer generates random nonce and sends to fingerprint reader
as part of the "please scan" command.
2) Fingerprint reader scans the image, and hashes it along with the nonce.
3) Fingerprint reader sends the (unencrypted) scan back to the computer.
4) Fingerprint reader computes a digital signature of the hash computed
in step 2, and sends it to the computer.
5) Computer verifies the signature, thereby proving that the reader
read the fingerprint after receiving the nonce (or has been
compromised internally).
To do it right, I'd have a per-reader signing key, signed by a vendor
model key, signed by a top-level vendor public key that's widely
published. These signatures and the public keys they sign can be stored
in ROM.
Also note that, if using DSA, the raw fingerprint reader's data, hashed
with the device private key and nonce, will make an excellent seed
to generate the per-signature random nonce K. It is a security disaster
if you make two signatures on different data with the same K, but by
combining some secret information and all of the input used to generate
the hash value, you guarantee that that will only happen if the data
signed is the same, in which case it's harmless.
Put another way, given the hash H to sign and the private key X,
you can let K = SHA(H,X). (You can also hash in other data, but H and
X are available and sufficient.)
If you don't have the signature verification information, you can still
use the device, you just can't be sure you aren't experiencing a replay
attack.
Encryption is useless, as is authentication without a host-provided
nonce or other means of guaranteeing freshness. You can just sniff
and replay. I'm sure keyghost.com would be happy to sell you the
necessary hardware.
Not that I expect "A-1 Computer Corporation" in Shenzhen to have a clue
about these things, but you'd think that Microsoft would have one or
two competent employees left on the payroll.
next reply other threads:[~2006-07-06 4:48 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-06 4:48 linux [this message]
2006-07-06 12:26 ` Daniel Drake
2006-07-06 17:38 ` Alan Cox
2006-07-06 17:49 ` Joel Jaeggli
[not found] <6vtYr-w2-5@gated-at.bofh.it>
[not found] ` <6vFQ5-1iV-71@gated-at.bofh.it>
2006-07-06 21:39 ` Bodo Eggert
-- strict thread matches above, loose matches on Subject: below --
2006-07-05 16:32 Daniel Bonekeeper
2006-07-03 6:51 Daniel Bonekeeper
2006-07-03 8:52 ` Daniel Drake
2006-07-03 10:04 ` Alon Bar-Lev
2006-07-03 18:04 ` Daniel Bonekeeper
2006-07-03 18:16 ` Alon Bar-Lev
2006-07-03 20:53 ` Daniel Bonekeeper
2006-07-03 21:45 ` Greg KH
2006-07-03 22:11 ` Daniel Bonekeeper
2006-07-03 22:26 ` Greg KH
2006-07-03 23:24 ` Daniel Bonekeeper
2006-07-03 23:29 ` Greg KH
2006-07-04 0:04 ` Daniel Bonekeeper
2006-07-04 0:13 ` Greg KH
2006-07-05 17:58 ` Daniel Drake
2006-07-05 18:09 ` Daniel Bonekeeper
2006-07-05 18:55 ` Daniel Drake
2006-07-05 19:46 ` Daniel Bonekeeper
2006-07-05 23:23 ` Daniel Drake
2006-07-06 2:05 ` Daniel Bonekeeper
2006-07-06 10:35 ` Daniel Drake
2006-07-04 3:56 ` Daniel Bonekeeper
2006-07-04 3:58 ` Greg KH
2006-07-03 22:35 ` Alan Cox
2006-07-03 22:49 ` Daniel Bonekeeper
2006-07-04 8:39 ` Alan Cox
2006-07-05 4:01 ` Bill Davidsen
2006-07-05 15:55 ` Daniel Bonekeeper
2006-07-03 11:44 ` Alon Bar-Lev
2006-07-03 15:00 ` Valdis.Kletnieks
2006-07-03 17:09 ` Alon Bar-Lev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060706044838.30651.qmail@science.horizon.com \
--to=linux@horizon.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®