Kyle, It seems that you are saying that MSIE caches PIN-codes because that is a prerequisite in order to silently reuse a smart-card based private key. If this is indeed the case, do you also claim that this caching is independent on who (=domain) is asking?
Although plausible, I find this slightly hard to believe. Anders ----- Original Message ----- From: "Kyle Hamilton" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <dev-tech-crypto@lists.mozilla.org> Cc: "Rolf Oppliger" <[EMAIL PROTECTED]> Sent: Monday, March 20, 2006 10:09 Subject: Re: Accessing the handshake messages hashes of the TLS "Finished"message from a plugin (I'm going to send this reply back to the dev-tech-crypto list, as it is a situation which is sorely misunderstood by many people. Please pardon my alarm, but the fact that a member of the ACM misunderstood the situation suggests to me that it's a wider problem in understanding than most people within the field realize.) On 3/19/06, Ralf Hauser <[EMAIL PROTECTED]> wrote: > Hi Kyle, > > Thanks for your detailed comment. > Ok, if within a transactional context such as an "online banking session", > new session keys are renegotiated from scratch, how does this work in with > client certificate authentication? Under the assumption I do not permanently > unlock my client private key, how can I be avoided being prompted to unlock > my private key upon each CerificateVerify message > (http://rfc.net/rfc2246.html#s7.4.8.)? In order to describe the current situation (and believe me, I do have reservations about how it currently works), I'm going to have to define several different uses of the word 'session'. 1) SSL Session: This is the actual context of the underlying SSL/TLS connection, the one that your proposal is attempting to use as the 'proof'. 2) Transactional Session: This is the logical interaction between the client (usually but not always browser) and a specific server, which may span several SSL sessions. (This transactional session usually follows a finite state diagram, with a definite starting point, any number of intermediate and possibly back-referencing steps, and a definite ending point.) 3) User Session: This is the interaction between the (usually but not always) human user and the client software, for whom the transactional session is generated and who navigates the state diagram. As it currently stands, the private key is (generally) unlocked for the lifetime of the requesting process. (This is the case for MS Internet Explorer, for example -- once it has a handle to the underlying CryptoAPI context object, that handle [to my knowledge, which may be incomplete or incorrect] never expires.) I do not know how Mozilla/Firefox currently treat their private key store -- however, I believe that this viewpoint is much more security-friendly than the MS CryptoAPI viewpoint, in any case. (If only because context information can be passed to the store for management purposes.) The ideal, in my view, would be this: All public-key cryptography is done by and within the security boundary of the cryptographic module, which is unlocked only for a specific context (in this case, a specific website identified by a specific key), and only for a specific period of time. Any SSL session renegotiations (and associated CertificateVerify messages) should, within a given user session, for that site only, and only for the amount of time allowed by the unlock token, be silent to the user. (A means of enforcing this would be to include the server's public key along with any request to use that token, thus enforcing that the authorized server's public key is used to encrypt the response of the client's private key, along with the ability to assert that a given token is only used with a specific server's public key.) For any other site, or after the unlock token expires, the user is prompted to unlock the token once again. I am going to have to reread the SSL and TLS specifications to ensure that this would be workable (I seem to recall that the CertificateVerify messages are always encrypted with the peer's asserted public key); however, if it does mesh with reality, it would make a lot more sense than "unlocked for the lifetime of the process", which is where MSIE currently stands. (Again, I don't know about Mozilla NSS-based software, as I have never had occasion to test its behavior.) > Ralf Cheers, -Kyle H _______________________________________________ dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto _______________________________________________ dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto