Peter Williams wrote:
Can anyone explain the muscle applet external authentication code's design, to me?

Hi,

the intended usage of the protocol command is straightforward: allow the
other end communicating with the card to prove possession of a
cryptographic key, either providing an encryption of the card-generated
challenge, or providing a signature on the card-generated challenge.
In the first case, the ExtAuth command is invoked with parameters
analogous to an MSCComputeCrypt invokation for decrypting a
cryptogram (by using an on-card symmetric key or asymmetric public key).
In the latter one, it is invoked with parameters
analogous to an MSCComputeCrypt invokation for verifying a signature
(by using an on-card asymmetric public key).

In either cases, no data is returned to the application, but only the
result of the test: SUCCESS if it succeeded and the corresponding
identity was logged in, AUTH_FAILED if cryptogram verification failed,
or one of the other possible errors.

Are you claiming the Applet code has a bug/misbehaviour in case (b) ?

Please, send me the version you're referring to in your message, as it's
a while I just use to play with an internal version at our lab for
biometrics related stuff.

((maybe a key should be provided with a restriction on the allowed
ExtAuth modes of operation when it is created/injected for increasing
security .... anyway, in the first protocol formulation there were not
so many choices :-) ))

(a) when cipher-dir == CD_VERIFY, the applet will verify an MD5RSA signature (over the Value of challenge object), and perform strongLogon, if the verification suceeds.

(b) when cipher-dir == CD_DECRYPT, the applet will decrypt the incoming ciphertext using TDES_CBC_NOPAD, compare the plaintext for equality with the stored challenge value V, and reflect the plaintext value back to the consumer (over an insecure channel), if there is a match, without performing strongLogon.

What is the context for (b)? How is it to be used? Is there any host sample code? Are (a) and (b) supposed to be used in conjunction, perhaps?

Once upon a time, all of this was tested. If I manage to find the old test programs, I'll be more than happy to send them to you. As an alternative, maybe I have at reach some test code for the JNI bridge of MuscleCard API -- have to check --... it might also be the case that just writing a short program is actually faster than searching this old stuff :-)

Bye,
        Tommaso.

--
,----------------------------------------------------.
|  Tommaso Cucinotta PhD <t.cucinotta *at* sssup.it> |
>----------------------------------------------------<
!       Scuola Superiore di Studi Universitari       !
!              e Perfezionamento S.Anna              !
!    Pisa                                   Italy    !
`----------------------------------------------------'
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to