Hi Tommaso,
Tommaso Cucinotta <[email protected]> wrote:
Hi,
Joao Pedro ha scritto:
I was hoping to hear better (and more general) solution than the
one proposed :) The idea was to know if there is any mechanism that
doesn't depend on pre-shared keys such as Secure Messaging.
I think what you actually didn't provide is *what problem* you want to solve.
It seems from the discussion that you are exclusively concerned
about security
of the PIN, but in the case the PC/Reader/SC communication may be spied upon,
Yes, the main focus is the protection of the PIN value.
I think there should be greater concerns around:
1. what about security of the exchanged data: such data might range from
public-key certificates or personal prefs (no issue at all) to
sensitive data
like passwords, or even cryptographic keys (think of the ImportKey APDU);
2. if the attacker may also inject its own messages inside the communication
(as I actually think it would be possible), then there are plenty
of problems,
because no matter spying on the PIN: once the legitimate user has
authenticated,
the attacker has the (unlocked) card at its own disposal for
doing whatever
with it (i.e., reading sensitive data, using cryptographic keys, etc...;
with proper equipment, authenticating to a second physical
terminal not too
far from the other one where the legitimate user is entering, if your
use-case is control to physical access to systems)
The main use case, would be a user entering its PIN in an "insecure area".
Assumptions:
Only passive attacks are possible (e.g. sniffing).
Pre-conditions:
The card was previously initialized.
All needed sensitive information is already on the card (e.g. keys).
1. The user tries to validate its PIN.
2. The card emits a challenge.
3. The user sends a hmac message, with key = PIN and the previously
received challenge.
4. The use case ends.
Secure Messaging is more complex because it does not aim to protect the PIN,
but it aims to protect the valuables inside the smart-card
(cryptographic keys
and sensitive user data), and for such purposes you need not only to
authenticate,
but also to establish a session key and encrypt all of the the
subsequent messages
inside the session.
Please, provide details about the typical use-case (scenario/story) where the
mechanism you are looking for is needed, and what security properties (i.e.,
requirements) you would need from such a mechanism.
Like you said, there are much more scenarios, that are more likely /
serious, where exclusively protecting the PIN would not help much, or
at all.
What I was trying to do, was to stimulate a conversation to find
whether is it feasible, or not, for a user to introduce his/her PIN
code and use the card securely in an hostile environment. This
mechanism should be as simple as possible and depend on the minimum
amount of shared information. I left the "threat model" more or less
vague so that the discussion wouldn't be limited - for that my
apologies.
One different idea was the user encrypting the PIN value with a public
key (that belonged to the user) present on the card. This way, only
the card could decipher it (using the private key) and check its
validity.
Another idea would be to implement just Diffie-Hellman for the Key
agreement. This, of course, is vulnerable to man in the middle
attacks, as DH doesn't provide authentication. Besides, I think DH to
work in the JC API needs a card with EC support...
The problem, I think, with Secure Messaging is that a user can't use
its card "anywhere" transparently - it needs an infrastructure
previously set up. Imagine this: I have the Muscle applet on my java
card and use OpenSC. This applet has a pair of pre-shared symmetric
keys with OpenSC: one for MAC the other for encryption of the secure
channel. This is ok as long as I only use my card with only "my"
version of OpenSC. If I try to use it in a friends computer, I'll have
to provide the keys. But, maybe, Secure Messaging its the only
adequate solution for an "end-to-end" security. Because protecting
only the PIN, as you said, would not protect against more serious
attacks.
Thank you for the feedback.
Regards,
Joao
Regards,
T.
--
Tommaso Cucinotta, Computer Engineering PhD, Researcher
ReTiS Lab, Scuola Superiore Sant'Anna, Pisa, Italy
Tel +39 050 882 024, Fax +39 050 882 003
http://feanor.sssup.it/~tommaso
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle