[AFS3-std] rxgk/rxgk-afs updates

Benjamin Kaduk kaduk@MIT.EDU
Mon, 4 Mar 2013 18:49:23 -0500 (EST)


I pushed a few more changes to 
https://github.com/kaduk/openafs/commits/prot (log below).

In particular,
6204312 Prescribe leap of faith for RegisterAddrsAndKey
is a pretty substantive change, though we have talked about related issues 
a fair amount on this list.  The idea is that (for departmental 
fileservers) the vldb must have a binding between fileserver UUID and some 
GSS identity, to authenticate VL_RegisterAddrs and friends.  A GSS 
identity is needed because we want these RPCs to run over rxgk 
connections, which requires a token, and it's easiest to use the GSS 
negotiation service.  We don't have to care what identity that is, and can 
use "leap of faith" to create a binding for future use (or use 
administrator intervention).  However, to prevent denial of service, we 
cannot use VL_RegisterAddrsAndKey to upgrade an existing fileserver uuid 
using whatever GSS credentials are presented.  (A superuser could still do 
so, though, and a fileserver with the cell-wide key can print tokens which 
are implicitly superuser tokens.)  Hopefully the added text accurately 
conveys these ideas.

There are also a couple of changes to make clear split between 
database+fileservers, which have special treatment for tokens, and other 
AFS services using rxgk, which operate as more standard rxgk services.  We 
also suggest the afs3-bos@hostname type principal name.

Comments/review welcome.

-Ben


commit 63b2ace02681ec56b1cf5b42ad8a0f63256663bc
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 18:35:57 2013 -0500

     Inline VL_RegisterAddrs elements

     Do not attempt to incorporate by reference a reference which does
     not exist.

     Change-Id: I41d725a7ef27525be2002919d04980a45d89c289

commit 620431272eb1365f3eb9fd3dcf89cd6c8195176c
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 18:22:34 2013 -0500

     Prescribe leap of faith for RegisterAddrsAndKey

     Bind a GSSAPI identity to fileserver UUID, needed to authenticate
     future operations on that database entry.  Also suggest periodic
     rekeying per best practice on key lifetimes.

     Change-Id: Idec26ee2184fd458186fcbdc4783dbea7d29b4eb

commit 34ed8c60f64b7c81cd0654b27cb8ee63b7621384
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 16:54:59 2013 -0500

     Allow empty authenticator appdata opaque for bosserver

     We don't need a cache manager to talk to a bosserver (or potentially
     other non-db, non-fileservers) and may not have a stable UUID 
available.

     Change-Id: I28b62bf5f711066b8f43e2680d4abffa949b99cd

commit a1f731943b2522a84c1815f2f056c3f3398ce9c6
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 16:47:03 2013 -0500

     Mention non-database non-files AFS servers

     E.g., bosserver, which must run a negotiation service for the
     bootstrapping stage.

     Change-Id: I83bb749310bf030c1f342a31d1e0e0217e249946

Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 16:13:43 2013 -0500

     Tweak RXGK error code descriptions

     Do not restrict BAD{LEVEL,ETYPE} to the negotiation RPCs.

     Change-Id: I9b581d31d342907cb6fdfbf3902a1c49137d3283

commit db73249fa194cb05dccd2de9a8e97794592e9cc5
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 15:35:52 2013 -0500

     Talk about acceptor principal names for GSSNegotiate

     The client has to know the target principal's name; give it a
     suggestion for when it knows better.
     The server, however, should not specify a name, since that would
     be overly restrictive.

     Change-Id: I24481178aef93b40ae10097f9b76e3765431bbb0

commit e8d2457b4e2f33cee6bc684008edfdd250eb6275
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 13:11:22 2013 -0500

     Attempt to make the GSS negotiation loop correct

     Describing these things is always challenging.

     Change-Id: I15ac1d7c8962aac6cd853cbcc404c55df52a8a04

commit bc8ffaf692db07ee5d87e95d03f95015c32b37e8
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 12:35:40 2013 -0500

     RXGK challenges do not contain a version stamp

     Such a thing would be useless without discriminated unions, which
     we don't have yet.

     Change-Id: I5d06b3dd80a898701765f755fafa67ca97e1cd27

commit bab989047a2ab41b8f9825c4866355356fff8d8a
Author: Ben Kaduk <kaduk@mit.edu>
Date:   Mon Mar 4 12:31:40 2013 -0500

     Mention maxcalls support

     Now that the explicit variable has gone, add a mention of how to
     use call_numbers<> to determine the maximum number of calls per
     connection supported by this client.

     Change-Id: I46955a6465d911f894d0ae38979c0b9bed5bc430