[OpenAFS-devel] aklog on MacOS X was Re: Service Ticket Questions

Alexandra Ellwood lxs@MIT.EDU
Tue, 21 Mar 2006 14:02:45 -0500


On Mar 21, 2006, at 12:12 PM, Ernest Prabhakar wrote:

> Hi lxs,
>
> On Mar 21, 2006, at 7:01 AM, Alexandra Ellwood wrote:
>> Apple has such a tool.  It's called Keychain Access.  It stores  
>> certs, passwords, identity preferences... basically anything  
>> living in your keychain.  I can't speak for Apple (I'm not even an  
>> Apple employee) but I'd place good money on this being where Apple  
>> would display Kerberos and AFS credentials if they were doing the  
>> support themselves.
>>
>> That being said I've never placed high priority on Kerberos  
>> support in Keychain Access because Mac users don't seem to want  
>> it.  Mac users want Kerberos to work without any interaction with  
>> any tools.  They want to be prompted for tickets when they need  
>> new ones (or have them automatically acquired in the pkinit case).
>
> Um, I'm having trouble following this argument, but I want to make  
> sure I understand your issue. I completely understand that AFS  
> users don't want to run a GUI application.  But, I'm confused with  
> how that impacts the issue of using "Keychain Services" as the  
> underlying API and storage mechanism for managing AFS tickets:
>
> http://developer.apple.com/documentation/Security/Conceptual/ 
> Security_Overview/Security_Services/chapter_4_section_6.html
>
> Presumably, it would be straightforward for AFS and Kerberos to use  
> Keychain Services and provide their own CLI interface, no?  Or are  
> you concerned about something completely different?


Using Keychain Services but implementing our own GUI doesn't make a  
lot of sense for the MIT Kerberos team.  We already have to provide  
cross-platform implementations for the credentials storage mechanisms  
(memory, file and CCAPI) since there's no Keychain Services on  
Windows or the UNIX platforms we support.  The only reason I can  
think for using Keychain Services is to leverage its Mac GUI:  
Keychain Access.  Last time I looked into this I ran into the  
following problems:

* The Keychain Access application doesn't deal terribly well with  
transient credentials.  Kerberos credentials disappear on reboot and  
logout (including if the computer panics), only last 10-21 hours and  
need to be renewed regularly.  If the site uses credentials with  
addresses in them, new credentials may be acquired every time the  
machine changes networks.  The Keychain Access GUI doesn't really  
have a good way of expressing the difference between a saved password  
and a 10 hour Kerberos credential.

* The Keychain Access application doesn't have a way of expressing  
the Kerberos concepts of ticket-granting and service credentials.  A  
Kerberos identity consists of a ticket-granting credential and one or  
more service credentials.  Since the user may have more than one  
Kerberos identity, these credentials need to be logically grouped in  
order for the user to understand what is going on.


That being said, my argument from my previous mail is basically this:  
Keychain Access, Kerberos.app and the Network Identity Manager all  
exist to debug and fix problems with identity selection and  
credential acquisition.  If everything is working the user won't  
launch these applications unless they're a "look under the hood" type.

Now Kerberos has serious problems with identity selection.  Currently  
applications automatically select the "default" credentials, which  
results in terrible behavior when the user has multiple identities  
which they want to use simultaneously.  So in the multiple-identity  
Kerberos case, something is going wrong constantly, and users need to  
use Kerberos.app all the time.  But rather than sinking resources  
into Kerberos.app now, I think we'd get a whole lot more bang for our  
buck if we replace the default ccache model with something more  
expressive.  Then users won't need to go to Kerberos.app except when  
they have a real problem.


None of this solves the problem for AFS of course, I'm just  
explaining why you shouldn't count on a Mac version of the Network  
Identity Manager (or similar functionality in Keychain Access) any  
time soon.


--lxs

Alexandra Ellwood <lxs@mit.edu>
MIT Kerberos Development Team
<http://mit.edu/lxs/www>