Shawn,

The SCardBeginTransaction and SCardEndTransaction functions are meant to be used to temporarily lock the card from access by other processes.
A properly implemented application would:

SCardBeginTransaction
{
  Verify the PIN
  Do anything that requires the PIN
  Logout (optional)
}
SCardEndTransaction (RESET) - RESET if there is no Logout command for the card.

There is some code (I believe in winscard_svc or alike) that checks to see if the calling application is from the socket that made the original lock.

Thanks,
Dave



On Mar 22, 2006, at 3:51 PM, Shawn Willden wrote:

Hi,

While musing about some related issues today, a major possible problem with pcsc-lite's security model cropped up. It doesn't appear that there is any way to restrict smart card access by user. This means that any user on a multi-user system can use any smart card in any reader attached to that
system.  Now, access to security-critical features on smart cards is
generally controlled by a PIN/password, but nearly all cards remember their authentication state. Indeed, they almost have to. This means that once I present my PIN to the card to, say, sign an e-mail, any other user logged
onto my system can also use the credentials on my card.

Is it even possible for pcscd to enforce user-level access controls? Ideally,
the first process to access the card (well, *ideally* the process that
presents the PIN, but pcscd can't know that) should be able to tell pcscd to reject connections to that card from processes owned by other users. The only way for a different user account to obtain access to the card should be to reset the card. Allowing any user process to reset the card in the reader enables a DOS attack, but that's *much* less of a problem than the ability to
impersonate another by using his card credentials.

Is there some mechanism in pcsc-lite to prevent this sort of attack? If not, is it even possible for pcscd to identify the owner of the processes that
connect to its socket?

I'm really hoping I've missed something here...

Thanks,

        Shawn.
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle


_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to