[AFS3-std] file servers, uuids, and GSS identities
Benjamin Kaduk
kaduk@MIT.EDU
Thu, 14 Feb 2013 15:28:52 -0500 (EST)
Trying to summarize the other half of the previous thread and keep forward
momentum...
The VLDB holds (uuid,key,kvno,enctype) tuples for fileserver keys. This
can be managed manually or by use of RegisterAddrsAndKey; this discussion
focuses on the latter method.
Clients wanting to talk to part of a fs bnode (i.e., fileserver or
volserver) call AFSCombineTokens to the vlserver with the fileserver's
uuid.
Now we get into what is probably just implementation questions.
We need to restrict who can call RegisterAddrsAndKey, so that rogue
parties cannot hijack or rekey fileserver entries in the vldb. These
restrictions will be based on the GSS identity encoded in the rxgk token
used to secure the connection over which RegisterAddrsAndKey is called.
We can either encode the uuid into the GSS identity in some fashion (there
have been several suggestions) or use a "leap of faith" method wherein the
identity used to make the first registration is tied to the uuid and is
the only identity that can make further changes (other than cell
administrators, of course). Or we can make GSS identity/uuid mapping
part of the static cell configuration, but that seems like it would be
annoying to administrators. On the other hand, if a fileserver is to be
upgraded from rxkad to rxgk, there needs to be some way to indicate in the
configuration that it is ready to do so, otherwise all rxkad fileservers
are subject to hijacking by a rogue RegisterAddrsAndKey call.
I am inclined to say that RegisterAddrsAndKey should be leap of faith for
new UUIDs, probably limited to afs3-fileserver@hostname (one uuid per
identity, no stomping on existing addresses, etc.). We can still allow
cell admins to use RegisterAddrsAndKey for existing uuids, and maybe
provide a tool to do so and write out a "keytab" that contains the key
shared between fileserver and vldb. Such upgraded fileservers would not
be able to rekey themselves (say, upon address change) without
administrator intervention, but presumably the administrator could also
update the database to include a uuid<-->GSS identity mapping for that
uuid.
-Ben