Changes between Initial Version and Version 1 of GeniControlIdentity


Ignore:
Timestamp:
02/07/08 12:39:36 (16 years ago)
Author:
Aaron Falk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GeniControlIdentity

    v1 v1  
     1= __Identity__ =
     2
     3== Why keep the identity and authorization systems separate? ==
     4
     5''Ted Faber, 28 Jan 2008''
     6
     7It's less flexible and makes anonymity difficult.
     8
     9An identity, to my mind, has 2 simple properties:
     10
     11        If a principal asserts an identity, anyone in the system can
     12        confirm that directly with the principal.  That is, I can prove
     13        that I am who I say I am.
     14
     15        Each identity maps to one principal, so two elements in the
     16        system with information tied to the same identity are sure it's
     17        information about the same principal.  That is, identities are
     18        impossible to forge. (Or impossible to forge with very high
     19        probability).
     20
     21That's pretty easy to implement: if a PGP key is an identity we're
     22already done; set the bit count high enough that collisions are unlikely
     23to as many nines as you'd like.
     24
     25Authorization is built up from statements about those identities that
     26trusted principals are willing to certify.  For example, ISI is willing
     27to assert that I'm an employee.  NSF GENI components may be willing to
     28grant some resources to any ISI employee.  One might be tempted to make
     29that property (being an employee at ISI) part of my identity, either
     30explicitly by putting a field into my ID (that is properly signed) or
     31implicitly by having ISI certify or issue my identity.  That binding
     32creates a typed ID.
     33
     34Don't do that.  Separate the assertion from the ID.  The cost is small -
     35two pieces of data presented at authorization time rather than one - and
     36the benefits are enhanced flexibility, not to mention cleanness of
     37design.
     38
     39Separating them can be done by the trusted principal (ISI) signing a
     40statement asserting a property (this ID represents an employee of ISI)
     41about my ID.  When I come to NSF GENI to get resources I assert my ID
     42(which I can prove) and present a ISI's declaration, which can be
     43checked.  The validation of these two authorization representations
     44(typed or untyped ID) is essentially the same - the same players are
     45contacted and the same trust connections are represented.
     46
     47In the simple case the separation and benefits are hard to see; in the
     48complex cases the separation makes life easier.  I'm also (lets say) an
     49IETF working group chair, which allows me to allocate resources on IETF
     50GENI (savor that scary combination).  If authentication information is
     51tied to my ID directly, I've either got to get a new ID for my
     52incarnation as an IETF principal or I've got to decide which of my ID's
     53is primary and encode the second as a signed assertion.
     54
     55These are both bad choices.
     56
     57While there's nothing in my formulation of identity that prevents
     58multiple IDs for the same principal, an authentication/authorization
     59system that requires it seems ugly.  More objectively, it also means
     60that I need a new ID whenever another principal wants to assert
     61something about me.  More confusingly, component managers may need to
     62make statements about multiple IDs to state their authorization
     63requirements even when one principal is involved.  (e.g., IETF chairs
     64who are ISI employees can allocate DETER resources).  And when
     65assertions about an ID change, the ID must be reissued or revoked.
     66
     67If I allow signed assertions about identity I have to do all the work of
     68the untyped IDs  and all the problems of needing a new typed ID if my
     69primary circumstances change.  Since all the hard work is done, just
     70remove the disadvantage.
     71
     72If identity and authorization data are kept separate, authorization
     73information about my ID can change independently of any changes to my ID
     74and my ID can be long lived and lightweight.
     75
     76Should one want to "revoke my ID" (a sign that they're thinking of ID as
     77a credential (ID card) rather than an intrinsic property (the fellow
     78with this retina scan)), one simply revokes the relevant authorization
     79statements.  These are roughly the same amount of work (see FN if you
     80care).
     81
     82
     83I'm arguing that the untyped ID design is more flexible, not more
     84efficient in terms of checking a given authorization.  But the
     85efficiency loss is pretty minimal.  The same trust chains are traversed
     86and the same proof of ID accomplished.  The encoding is just marginally
     87less optimized.
     88
     89Finally, and importantly, keeping ID and authorizarion separate leaves
     90the door open to real anonymity.  As I pointed out, if there's no
     91assertion of authorization rights tied to the ID, there's no need to
     92involve another entity in the ID's creation - PGP keys work and can be
     93generated at will.  It's easy to imagine a world in which an ID without
     94any authorization statements is worthless, but it leaves a door open
     95that costs little (a door that in fact that improves overall
     96flexibility) and allows another area of research into GENI.
     97
     98(FN: It's exactly the same if you've gone the multiple typed ID route
     99and either a little easier or a little harder depending on if you're the
     100primary certifier in the one typed ID case.  Each certifier in the
     101multiple ID route must revoke the ID; the primary certifier can break
     102the single ID chain, but another certifier can only revoke their
     103statements until they convince the primary to revoke it all. )