rfc2693.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,494 行 · 第 1/5 页

TXT
1,494
字号
   invented a new construct: a digitally signed data record containing a
   name and a public key.  He called this new construct a CERTIFICATE.
   Because it was digitally signed, such a certificate could be held by
   non-trusted parties and passed around from person to person,
   resolving the performance problems involved in a central directory.

2.2 The X.500 Plan and X.509

   Ten years after Kohnfelder's thesis, the ISO X.509 recommendation was
   published as part of X.500.  X.500 was to be a global, distributed
   database of named entities: people, computers, printers, etc.  In
   other words, it was to be a global, on-line telephone book.  The
   organizations owning some portion of the name space would maintain
   that portion and possibly even provide the computers on which it was
   stored.  X.509 certificates were defined to bind public keys to X.500
   path names (Distinguished Names) with the intention of noting which
   keyholder had permission to modify which X.500 directory nodes.  In
   fact, the X.509 data record was originally designed to hold a
   password instead of a public key as the record-access authentication
   mechanism.

   The original X.500 plan is unlikely ever to come to fruition.
   Collections of directory entries (such as employee lists, customer
   lists, contact lists, etc.) are considered valuable or even
   confidential by those owning the lists and are not likely to be
   released to the world in the form of an X.500 directory sub-tree.
   For an extreme example, imagine the CIA adding its directory of
   agents to a world-wide X.500 pool.

   The X.500 idea of a distinguished name (a single, globally unique
   name that everyone could use when referring to an entity) is also not
   likely to occur.  That idea requires a single, global naming
   discipline and there are too many entities already in the business of
   defining names not under a single discipline.  Legacy therefore
   militates against such an idea.



Ellison, et al.               Experimental                      [Page 6]

RFC 2693                SPKI Certificate Theory           September 1999


2.3 X.509, PEM and PGP

   The Privacy Enhanced Mail [PEM] effort of the Internet Engineering
   Task Force [RFC1114] adopted X.509 certificates, but with a different
   interpretation.  Where X.509 was originally intended to mean "the
   keyholder may modify this portion of the X.500 database", PEM took
   the certificate to mean "the key speaks for the named person".  What
   had been an access control instrument was now an identity instrument,
   along the lines envisioned by Diffie, Hellman and Kohnfelder.

   The insistence on X.509 certificates with a single global root
   delayed PEM's adoption past its window of viability.  RIPEM, by Mark
   Riordan of MSU, was a version of PEM without X.509 certificates.  It
   was distributed and used by a small community, but fell into disuse.
   MOSS (a MIME-enhanced version of PEM, produced by TIS (www.tis.com))
   made certificate use optional, but received little distribution.

   At about the same time, in 1991, Phil Zimmermann's PGP was introduced
   with a different certificate model.  Instead of waiting for a single
   global root and the hierarchy of Certificate Authorities descending
   from that root, PGP allowed multiple, (hopefully) independent but not
   specially trusted individuals to sign a <name,key> association,
   attesting to its validity.  The theory was that with enough such
   signatures, that association could be trusted because not all of
   these signer would be corrupt.  This was known as the "web of trust"
   model.  It differed from X.509 in the method of assuring trust in the
   <name,key> binding, but it still intended to bind a globally unique
   name to a key.  With PEM and PGP, the intention was for a keyholder
   to be known to anyone in the world by this certified global name.

2.4 Rethinking Global Names

   The assumption that the job of a certificate was to bind a name to a
   key made sense when it was first published.  In the 1970's, people
   operated in relatively small communities.  Relationships formed face
   to face.  Once you knew who someone was, you often knew enough to
   decide how to behave with that person.  As a result, people have
   reduced this requirement to the simply stated: "know who you're
   dealing with".

   Names, in turn, are what we humans use as identifiers of persons.  We
   learn this practice as infants.  In the family environment names work
   as identifiers, even today.  What we learn as infants is especially
   difficult to re-learn later in life.  Therefore, it is natural for
   people to translate the need to know who the keyholder is into a need
   to know the keyholder's name.





Ellison, et al.               Experimental                      [Page 7]

RFC 2693                SPKI Certificate Theory           September 1999


   Computer applications need to make decisions about keyholders.  These
   decisions are almost never made strictly on the basis of a
   keyholder's name.  There is some other fact about the keyholder of
   interest to the application (or to the human being running the
   application).  If a name functions at all for security purposes, it
   is as an index into some database (or human memory) of that other
   information.  To serve in this role, the name must be unique, in
   order to serve as an index, and there must be some information to be
   indexed.

   The names we use to identify people are usually unique, within our
   local domain, but that is not true on a global scale.  It is
   extremely unlikely that the name by which we know someone, a given
   name, would function as a unique identifier on the Internet.  Given
   names continue to serve the social function of making the named
   person feel recognized when addressed by name but they are inadequate
   as the identifiers envisioned by Diffie, Hellman and Kohnfelder.

   In the 1970's and even through the early 1990's, relationships formed
   in person and one could assume having met the keyholder and therefore
   having acquired knowledge about that person.  If a name could be
   found that was an adequate identifier of that keyholder, then one
   might use that name to index into memories about the keyholder and
   then be able to make the relevant decision.

   In the late 1990's, this is no longer true.  With the explosion of
   the Internet, it is likely that one will encounter keyholders who are
   complete strangers in the physical world and will remain so.  Contact
   will be made digitally and will remain digital for the duration of
   the relationship.  Therefore, on first encounter there is no body of
   knowledge to be indexed by any identifier.

   One might consider building a global database of facts about all
   persons in the world and making that database available (perhaps for
   a fee).  The name that indexes that database might also serve as a
   globally unique ID for the person referenced.  The database entry
   under that name could contain all the information needed to allow
   someone to make a security decision.  Since there are multiple
   decision-makers, each interested in specific information, the
   database would need to contain the union of multiple sets of
   information.  However, that solution would constitute a massive
   privacy violation and would probably be rejected as politically
   impossible.

   A globally unique ID might even fail when dealing with people we do
   know.  Few of us know the full given names of people with whom we
   deal.  A globally unique name for a person would be larger than the
   full given name (and probably contain it, out of deference to a



Ellison, et al.               Experimental                      [Page 8]

RFC 2693                SPKI Certificate Theory           September 1999


   person's fondness for his or her own name).  It would therefore not
   be a name by which we know the person, barring a radical change in
   human behavior.

   A globally unique ID that contains a person's given name poses a
   special danger.  If a human being is part of the process (e.g.,
   scanning a database of global IDs in order to find the ID of a
   specific person for the purpose of issuing an attribute certificate),
   then it is likely that the human operator would pay attention to the
   familiar portion of the ID (the common name) and pay less attention
   to the rest.  Since the common name is not an adequate ID, this can
   lead to mistakes.  Where there can be mistakes, there is an avenue
   for attack.

   Where globally unique identifiers need to be used, perhaps the best
   ID is one that is uniform in appearance (such as a long number or
   random looking text string) so that it has no recognizable sub-field.
   It should also be large enough (from a sparse enough name space) that
   typographical errors would not yield another valid identifier.

2.5 Inescapable Identifiers

   Some people speak of global IDs as if they were inescapable
   identifiers, able to prevent someone from doing evil under one name,
   changing his name and starting over again.  To make that scenario
   come true, one would have to have assignment of such identifiers
   (probably by governments, at birth) and some mechanism so that it is
   always possible to get from any flesh and blood person back to his or
   her identifier.  Given that latter mechanism, any Certificate
   Authority desiring to issue a certificate to a given individual would
   presumably choose the same, inescapable name for that certificate.  A
   full set of biometrics might suffice, for example, to look up a
   person without danger of false positive in a database of globally
   assigned ID numbers and with that procedure one could implement
   inescapable IDs.

   The use of an inescapable identifier might be possible in some
   countries, but in others (such as the US) it would meet strong
   political opposition.  Some countries have government-assigned ID
   numbers for citizens but also have privacy regulations that prohibit
   the use of those numbers for routine business.  In either of these
   latter cases, the inescapable ID would not be available for use in
   routine certificates.

   There was a concern that commercial Certificate Authorities might
   have been used to bring inescapable names into existence, bypassing
   the political process and the opposition to such names in those
   countries where such opposition is strong.  As the (name,key)



Ellison, et al.               Experimental                      [Page 9]

RFC 2693                SPKI Certificate Theory           September 1999


   certificate business is evolving today, there are multiple competing
   CAs each creating disjoint Distinguished Name spaces.  There is also
   no real block to the creation of new CAs.  Therefore a person is able
   to drop one Distinguished Name and get another, by changing CA,
   making these names not inescapable.

2.6 Local Names

   Globally unique names may be politically undesirable and relatively
   useless, in the world of the Internet, but we use names all the time.

   The names we use are local names.  These are the names we write in
   our personal address books or use as nicknames or aliases with e-mail
   agents.  They can be IDs assigned by corporations (e.g., bank account
   numbers or employee numbers).  Those names or IDs do not need to be
   globally unique.  Rather, they need to be unique for the one entity
   that maintains that address book, e-mail alias file or list of
   accounts.  More importantly, they need to be meaningful to the person
   who uses them as indexes.

   Ron Rivest and Butler Lampson showed with SDSI 1.0 [SDSI] that one
   can not only use local names locally, one can use local names
   globally.  The clear security advantage and operational simplicity of
   SDSI names caused us in the SPKI group to adopt SDSI names as part of
   the SPKI standard.

2.6.1 Basic SDSI Names

   A basic SDSI 2.0 name is an S-expression with two elements: the word
   "name" and the chosen name.  For example,

        george:  (name fred)

   represents a basic SDSI name "fred" in the name space defined by
   george.

2.6.2 Compound SDSI Names

   If fred in turn defines a name, for example,

        fred:  (name sam)

   then george can refer to this same entity as

        george:  (name fred sam)






Ellison, et al.               Experimental                     [Page 10]

RFC 2693                SPKI Certificate Theory           September 1999


2.7 Sources of Global Identifiers

   Even though humans use local names, computer systems often need
   globally unique identifiers.  Even in the examples of section 2.6.2
   above, we needed to make the local names more global and did so by
   specifying the name-space owner.

   If we are using public key cryptography, we have a ready source of
   globally unique identifiers.

   When one creates a key pair, for use in public key cryptography, the
   private key is bound to its owner by good key safeguarding practice.
   If that private key gets loose from its owner, then a basic premise
   of public key cryptography has been violated and that key is no
   longer of interest.

   The private key is also globally unique.  If it were not, then the
   key generation process would be seriously flawed and we would have to
   abandon this public key system implementation.

   The private key must be kept secret, so it is not a possible
   identifier, but each public key corresponds to one private key and
   therefore to one keyholder.  The public key, viewed as a byte string,
   is therefore an identifier for the keyholder.

   If there exists a collision-free hash function, then a collision-free
   hash of the public key is also a globally unique identifier for the
   keyholder, and probably a shorter one than the public key.

2.8 Fully Qualified SDSI Names

   SDSI local names are of great value to their definer.  Each local

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?