[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Authentication vs. binding signature, and ephemeral vs.permanent key usage
Every time I think I understand what these bits mean, someone
shines a light in another dark corner and I see something I hadn't
considered before. The discussion regarding "ephemeral" signatures
has had that effect.
I'd therefore like to advance the argument that there really ought to
be two (at least) separate _services_ denoted by two separate bits,
i.e., Authentication and Binding Signature, and that the nature of
these services ought to be completely independent of the
_mechanisms_ that may be used to provide them.
I'd also like to argue the difference between "digital signature" and
"nonrepudiation" is NOT due to the difference between"ephemeral" and
permanent/enduring/eternal, but rather a confusion between a service
and a mechanism, coupled with a confusion regarding the effect of
certificate expiration (or revocation) upon either authentication or a
binding signature.
I'm therefore going to argue that "nonrepudiation" should be redefined
to say what the consequences of certificate expiration are upon either
authentication or a binding signature. Or better yet, since the lawyers
would argue that a signature can always be repudiated if the use of
force or compulsion, mental or legal incapacity, etc., can be shown,
we should use some other term to indicate whether a digital signature
(whether used for authentication or binding signature) is intended to
remain in effect after the expiration of the certificate. "Ephemeral"
seems way too short for what might be a three year period, so I would
suggest "enduring" for those signatures that are intended to have
lasting effect beyond the certificate expiration.
Finally, I will argue that the "digital signature" _mechanism_ bit should be
used to differentiate between a mechanism that can be used to encrypt
information for secrecy vs. a mechanism that cannot be used to conceal
information, but can only authenticate information. This distinction is crucially
important from an export control perspective, for high grade cryptography (long
keys and/or strong algorithms) may be acceptable from an export (or import/usage)
perspective if and only if it is used for authentication, but not if it is capable of
being used for information concealment.
This has nothing to do with key escrow per se, at least necessarily, although
some regimes might require key escrow for all data encryption keys (and
probably key encryption keys as well), or they might require key escrow for
key lengths and/or algorithm types that are beyond a certain "strength".
Key escrow does, however, significantly dilute the confidence of digital signatures
from a technical nonrepudiation standpoint. It also dilutes the confidence that the
originator might have when sending an encrypted message to someone!
So I would argue that we need a key usage bit that says "accessible by a third
party". (Key escrow means one particular scheme to those in that business, whereas
key recovery means something slightly different, and there are additional schemes
involving key derivation from escrowed keys that have to be considered. A simple
phrase like "key escrow" is not sufficiently broad.)
I'm not entirely sure that I understand the ISO notion of a _service_,
vs. a mechanism, perhaps because a service it sounds a little bit
too much like X.400, and I wonder and worry about who the service
provider is.
But I do agree that "authentication" ought to be a service,
even without some kind of an institutionalized service provider. The
service in this case ought to be independent of the mechanism,
whether it is based on password validation, biometric identification,
Kerberos tickets, asymmetric cryptography, a hashed MAC, or
whatever. Of course, not all of those authentication mechanisms would
necessarily be appropriate for inclusion in a digital signature certificate,
but that in itself is not sufficient justification to deprecate those mechanisms.
Just as sure as we say that something isn't needed, a protocol like IKE
will come along and use it.
In many cases, authentication is used to provide confirmation of identity
for access control purposes, but I would assert that it can also be used to
provide a cryptographic assurance of the integrity of an stored object and its
originator, just as encryption provides cryptographic assurance of the
confidentiality of the object and the recipient.
In other words, I ought to be able to use a digital signature _mechanism_
to cryptographically assure and authenticate the integrity of anything
from a random doodle, to a draft work in progress, to a scurrilous rumor that I
am passing on just because it is funny.
Now it happens that one of the more common usages of authentication
is for the duration of a session, and it is therefore understandable that
the notion of authentication as being "ephemeral" could have crept
in. But even in the case of SSL or IPSEC, it is possible to have a
permanent connection that might endure for years. Likewise, a digitally
signed draft will probably be of little or no interest after a few weeks or
months, but that shouldn't mean that the authentication automatically
becomes null and void a day later.
On the other hand, a "Binding Signature" ought to be another service,
and it probably ought to be independent of the mechanism(s) used to
provide it.
(As an aside, within the US legal community there has been an extensive
debate/wrangle about the desirability of defining digital (or more correctly
electronic) signatures in a "technology-neutral" manner, and most of the
recent statutes, including the US contributions to UNCITRAL, are moving
in that direction. This causes me considerable unease, because in some
cases the soundness of the technical underpinnings of some schemes seem
rather questionable. But it appears that I am losing that argument.)
To my way of thinking, the primary difference between the authentication
service and the binding signature service lies in the INTENT of the signer
to be bound or obligated by the semantic _content_ of the object being
signed, whereas I would claim that the authentication service is essentially
_independent_ of the semantic content.
Now, having said that, does that mean that there is no distinction between
an ephemeral (tactical), vs. enduring (strategic) authentication and/or
binding signature? No, it does not.
In particular, I can imagine circumstances under which a binding signature
might very well apply to the entire contents of a session, e.g., a home banking
transaction.
But it is important to understand that the length of time during which
either the authentication or the binding signature is associated with
an object, whether a session or a more conventional stored data object
has nothing whatsoever to do with the INTENT of the signer to be bound
(legally obligated by) the signed object.
That doesn't mean that there is no difference, of course.
In particular, one obvious difference is what assumptions are to apply
after the expiration of the CA's responsibility to continue to report the
status of a particular certificate, i.e., after the (public key) certificate
validity period has expired.
>From the standpoint of the user, a public/private key pair that never expires
carries with it a substantial and enduring liability, since it is possible that
key might have been compromised covertly.
>From the standpoint of both the originator and the relying party, if there
is some possibility that a document will be contested at some time after the
expiration of the certificate validity period, then a substantial amount of additional
effort must be invested into doing all of the things that are loosely and imprecisely
lumped under "nonrepudiation", including some form of trusted time-stamp and/or
third party certification of the validity of the certificate chain at the time the object
was signed.
On the other hand, if both the originator and all possible relying parties had a
common understanding that a binding signature was valid and enforceable
for a specified period of time, and was null and void, at least in terms of the
digital signature mechanism after that point in time, then the uncertainty of whether
or not timestamping the message and the entire certificate chain by a third or
fourth party would be necessary could be avoided completely.
In summary, I would suggest the following new key usage bits:
1. Authentication -- a service
2. Binding signature -- a service
3. Enduring -- an indication of the validity of the authentication or binding signature
after the certificate validity interval. This should replace the current "nonrepudiation"
bit, which should be deprecated.
4. Accessible by a third party -- i.e., subject to key escrow, key recovery, etc.,
whether by one's employer, a trusted third party, and/or the government directly.
5. Ideally, the "digital signature" mechanism bit must be exclusive of any other usage.
But if it is used in combination with other bits, it will may mean that the key will
NOT be exempt from key escrow or weakened cryptography requirements that
may be imposed by various regimes.
Bob
>
>
>>>> Hans Nilsson <hans.nilsson@ausys.se> 08/13 9:03 AM >>>
>Blake,
>
>Now that I have looked up "ephemeral" in a dictionary (it means short-lived,
>"only for a day", just like those beautiful insects), I think that the
>definitions a) and b) are good.
>
>However, I can then not understand why the document later states that "When
>the nonRepudiation bit is set, the digitalSignature bit shall always be set"
>
>Of course, one should be allowed to specify that a key ONLY should be used
>for long-term signatures (non-repudiation) and not anything else. When both
>bits are set, as required in 15782, it means that the key always may be used
>for ephemeral data also.
>
>And the statement above is also in conflict with the new table 8, where ANY
>combination is allowed for the two bits in combinations 1 and 2 (and I can
>see no difference between combination 1 and 2!)
>
>I think this should be changed in 15782 (and consequently in the German
>spec), by
>- deleting the sentence above
>- allowing just one bit in each of combinations 1 and 2 (digSignature and
>nonRepudiation respectively)
>
>Hans
>
>+-------------------------------------------------------------+
>+ For information about the cert-talk mailing list, including +
>+ archives and how to subscribe and unsubscribe, visit: +
>+ http://mail.structuredarts.com/cert-talk +
>+-------------------------------------------------------------+
Robert R. Jueneman
Security Architect
Novell, Inc.
Network Products Group
122 East 1700 South
Provo, UT 84604
801/861-7387
bjueneman@novell.com
"Architects, like prophets and saints, are
usually years ahead of their time. For this
reason they are often difficult to live with
at home."