[e-gold-list] AxiomaticTokenizer - Increased payment security
with one time tokens
Patrick J Kobly
patrick at kobly.com
Wed Oct 31 10:43:57 MST 2007
Good start. 'tis important to be thinking about stuff that's
implementable in mobile / low computing power devices...
First rule of crypto: don't roll your own.
There are pure JavaScript implementations of RSA...
(http://www.ohdave.com/rsa/ is one,
http://www-cs-students.stanford.edu/~tjw/jsbn/rsa.html is another)
I am not a cryptanalyst, but on an initial scan, I would not use this
protocol to secure anything related to money.
Just a couple thoughts...
- Because your salt (you call it a seed) is static, the "shared secret"
is vulnerable to pre-computation attacks.
- This doesn't really matter, because the step of converting to a
"shared secret" does not add any further security over just storing the
passphrase and using that as a key in the MAC- given the pass-phrase, an
attacker can generate the shared secret, and the passphrase itself is
not used in the authentication of the messages. The passphrase just
provides a simple mnemonic to communicate the shared secret.
- This will likely be vulnerable to replay attacks, regardless of the
presence of a timestamp. Because the spend token generator is on a
disconnected machine, its time will not likely be synched close enough
to the payment processor's to have a tight TTL. Further, because of the
transcription time required for the user to copy the token from the
screen, the TTL of the message would have to be even wider. This could
be partially remediated by adding a random nonce, checked for uniqueness
over TTL by the payment processor, or by preventing multiple spends in
the TTL timespan by the user
...
PK
George Hara wrote:
> (This is an interesting idea which could be used by service providers,
> if only just as a starting point. No special hardware required.)
>
> Increased payment security with one time tokens
>
It is probably unwise to use the phrase "one time" with respect to this
scheme. This implementation is a MAC (message authentication code)
http://en.wikipedia.org/wiki/Message_authentication_code
And is unrelated to a one-time pad
http://en.wikipedia.org/wiki/One-time_pad
Which would also be implementable on a small device, though requiring
significant storage, and similar key exchange problems.
Incidentally, because both of these are symmetric schemes, neither
provides for non-repudiation - the payment processor cannot prove that
the spend was authorized, as it would be able to in a digital signature
approach.
> In order to send a token to the service to make a payment, you can
> simply copy it from the display of the computer which generated it to
> the computer which is connected to the Internet, or you can use a memory
> card to transfer it between the two computers.
>
How does the system you use to generate spend tokens get the information
(spend-specific) that it needs to build the token?
> However, in order for the service to be able to known that a token it
> receives was indeed generated by you, both you and it need to know a
> secret, called shared secret. You can generate a token in order to send
> your shared secret to the service, but this time it's in the clear, so
> anyone who can intercept it, can steal all your money.
>
This scheme allows, among other things, for replay attacks by either the
receiver or a MITM.
> To protect yourself against such possible events, you always have to
> send your shared secret from a computer which is free of malicious
> applications. Since you can never be sure of this, it's possible to
> split the shared secret in two parts and send each part, to the service,
> from a different computer. As long as the two parts are not intercepted
> by a thief and linked together, your money is safe.
That's a pretty big if. And it breaks the "password-equivalent only
ever exists on a non-connected computer" assumption. It also doesn't
protect against exploitation of the payment processor (who needs a full
copy of either your passphrase or the shared secret [which are
equivalents] online, in order to process payments)
Better way to do it is with a scheme that doesn't require you to reveal
secrets to anyone.
PK
More information about the E-gold-list
mailing list