From: colinm@extro.ucc.su.OZ.AU (Colin McCormack)
Subject: Re: EFTPOS
Organization: Sydney University Computing Service, Sydney, NSW, Australia
Distribution: aus
Date: Sun, 11 Oct 1992 13:02:31 GMT

Yes, this belongs in aus.crypt.applications.to.banking
and misc.talk.banking.ripoffs and just about anywhere but aus.aarnet:
So send me $10 and I'll tell you how to use the kill-thread function of your
favourite newsreader.

malcolm@nutmeg.cs.ntu.edu.au (Malcolm Caldwell) writes:

>I know that the key to decrypt pin form your account number (+ other info) is
>kept in every ATM.  This must mean that Commonwealth + Westpack ATMs have two
>bank keys stored in every machine.  The papers I have read tell how important
>it is for the bank to keep the keys secure.

Kept but only in (very) volatile storage - it's sucked down on every power up.

>All this I understand.  But I do not think that EFTPOS machines keep all the
>keys for all the banks/Building Societies etc.  Besides the number of keys
>that would have to be stored/installed, EFTPOS machines are not in a secure
>environments.  It would be very easy to set up a small business and get a
>EFTPOS machine. (And since there is money in it someone would try!)

>I think that the PIN is transmitted from the EFTPOS to a bank's computer.
>There the PIN is checked against the correct one derived from account number
>and key.  This banks computer is not necessarily on line to all the other
>banks but it can decode the pin.

It once fell to me to write a driver for the pinpad on an eft-pos machine.
Key handling procedures were specified by a freely available Australian
Standards document (whose details I promptly forgot as soon as the thing
worked) which is one of a series on PIN handling and generation.

These AS documents are worth reading (if only for the disclaimer that yes,
PINS _can_ be compromised, but the standard gives an adequate level of
security for the price and anyway it's public perception that counts.)

A couple of memories I dredged up:  the pinpad is seeded with a key
by the vendor at power up time.  That key (or some crypto-variant of it)
is used to pull some more keys down from the bank's machine.

One session key is used to verify PINS as detailed elsewhere in this thread;
the other's used to cryptographically checksum messages to and from the bank's
big iron ("Message Authentication Code" springs to mind (that's also calculated
by the pinpad, incidentally))

Rivest Shamir and Adleman(?) give a key exchange protocol which seems secure
to me (they illustrate it with a box and two padlocks: I put something in the
box and padlock it, give it to you, you add your padlock and give back the 
box, I take my padlock off and return the box to you, you remove your padlock
- voila!)  I presume something of the sort occurs here.

The computer reads some data off the card, gives it to the pinpad, requests
that a PIN be read from the keypad and waits for the pinpad to say (in effect)
GO/NO-GO.

Suffice it to say that at no time does a key appear in plaintext outside the
"tamper proof" pinpad, that all encryption and pin verification is performed
inside the pinpad, and that the pinpad tells the computer that a valid PIN was 
entered at roughly the same time it gives you 'OK' on the LCD display.  

If you're really interested, have a look at the AS documents (and reflect
that whether or not you break the system, Standards Australia gets their $$$
for the document - you want to talk about larceny? :)

Colin.
---
nn reports 825,000 unread articles in 1000-odd groups.
Could someone please summarise to the net?

Newsgroups: aus.general