You will need a shared common key so that you can generate a PIN block
and the bank's host can check the PIN when provided. You will also
agree on a PIN block format with your bank.
I would imagine that your bank will already have a defined message
exchange protocol they use to do a key exchange. Have they given details
of how they need key exchanges to take place, how often and how they occur?
> Presently, the gateway i built sends transaction messages with
> NO field 52 to the postilion server and i receive successful
> responses. But now i want to include field 52 (PIN), please how do i
> go about this?
How is the PIN being entered (and where) by the card holder?
Do you have a terminal device that captures the PIN and passes it to you
- how is it transported?
Your chosen HSM will provide a transaction that does PIN translation
(from a terminal zone to an Issuer zone perhaps)? I would hope the
cardholder PIN is never ever in the clear?
--
Mark
Ah, but I mean...
... Does the bank generate PIN keys and send them to you in a message
exchange they initiate. Perhaps you generate a key and then ask them to
use it via a key exchange you start once a day or more frequently?
>
> The type of HSM installed on the postilion at the bank side is: THALES
> RG7000
Ok, but which one do you have or intend to have. Suppliers each have
there own hardware and associated protocol, you will need to acquire
your own HSM - unless you have access to their HSM hardware?
>
> To generate the PIN block format, the bank's said i need to use 3DES.
Yes, but the PIN block format that goes into the encryption step) comes
in a few flavours (format-0, Format-1).
>
> The PIN is being entered from the POS terminal pin pad, which I
> encrypt using AES algorithm before being transmitted to my JPOS
> gateway. At the gateway,
> I can decrypt it,
You should never decrypt it - outside of an HSM - not ever.
> after which i need to be
> formated in PIN BLOCK before being transferred to bank's host.
This decode+encode should all take place inside an HSM - a secure place
for clear PINs to exist and then only temporarily - the other place in
in the cardholders mind 8).
>
>
> Your chosen HSM will provide a transaction that does PIN translation
>> (from a terminal zone to an Issuer zone perhaps)? THIS IS NOT YET CLEAR TO ME PLS, MARK.
Usually a terminal will encrypt the PIN under a key that it and the
acquiring host share - within 'hardware'.
The acquirer host would then be use it's HSM to translate the PIN block
from under this key to under a key shared between the acquirer system
and the Issuer; in turn the Issuer would then ask it's HSM to check if
the PIN is valid. At no time is the PIN held in clear in any 'software
storage' variable or log.
I should mention that in test systems without real cardholders PIN the
rules are relaxed, but not by much.
--
Mark
I have some Thales-based examples of what chhil describes here (“translating…from the terminal zone to the issuer zone”) in my blog. [Dave referenced some of these pieces earlier.] See:
http://tinyurl.com/dmfjzj (PIN translation example where terminal does single DES DUKPT)
http://tinyurl.com/3uo68o (Implementing a Thales HSM Adapter + also makes reference to the PIN translation where the device does the Triple DES flavor of DUKPT)
Even though they’re Thales-based examples, the concepts are applicable to other manufacturer types.
Andy Orrock
And of course there is your/our redacted OLS.Switch Encryption Section here: http://tinyurl.com/cdmaop