dchen@is.Morgan.COM (Dave Chen) (02/28/91)
Hi, I work for Jo Goodson at Morgan Stanley & Co. I like to know what methods do you have in securing the key in the /etc/srvtab on the client machines. Our premise is that all client machines, who are maintain and controlled by their owner instead of our UNIX system administrators, are not securable. It is very easy for any knowlegeable unix user to gain root access if the owner does not maintain a tight security on his workstation. Once a user becomes root, he can get access to the /etc/srvtab file and use it to get a ticket granting ticket from kerberos via ksrvtgt. What security measures do you have in preventing this possible breach? Security Adminstration Dave Chen
tytso@ATHENA.MIT.EDU (Theodore Ts'o) (02/28/91)
Date: Wed, 27 Feb 91 11:12:30 EST From: dchen@is.Morgan.COM (Dave Chen) I work for Jo Goodson at Morgan Stanley & Co. I like to know what methods do you have in securing the key in the /etc/srvtab on the client machines. Our premise is that all client machines, who are maintain and controlled by their owner instead of our UNIX system administrators, are not securable. It is very easy for any knowlegeable unix user to gain root access if the owner does not maintain a tight security on his workstation. Once a user becomes root, he can get access to the /etc/srvtab file and use it to get a ticket granting ticket from kerberos via ksrvtgt. At Project Athena, we generally don't put service keys on client workstations. You only need to place a key on a machine which is going to be offerring some service. If a machine can be easily compromised by "any knowlegeable unix user", then there really isn't any point in putting Kerboers mediated security on the workstation --- that's like securing a barn door with a piece of string, and then using an extremely expensive, hardened padlock to secure the string. On the other hand, if you configure a workstation to have a service key and offer Kerberos-mediated rlogin, NFS service, etc., you don't cause any loss of security by doing so. The service will of course be only as secure as the workstation itself, but you don't lose anything by that. As far as getting a ticket granting ticket from Kerberos via ksrvtgt, yes, you can do that if you obtain control of /etc/srvtab, but that's only for the service principal "{service}.{hostname}", i.e., "rcmd.thor". That by itself will not cause any breach, unless "rcmd.thor" is on some particular access control list, which in general doesn't happen. It is also true that by obtaining possession of the /etc/srvtab for that workstation, it is possible to forge tickets for any user (principal) BUT ONLY FOR THAT SERVICE. Since the workstation must have been comprised to obtain the /etc/srvtab file, that service is already compromised anyway, so it's no big deal. Note that the program to forge a ticket for a service given the service key is not in the kerberos distribution. I wrote such a program a long time ago, and argued that it should be placed in the Kerberos distribution so that people realize how important it is to keep the contents of /etc/srvtab secret (no FTPing that file around in the clear!), but other people disagreed with me as to the wisdom of including that program. So in conclusing possession of the contents of /etc/srvtab allows you to obtain or forge: A) a ticket for the service principal for any other service. (But that's ok because the service principal shouldn't be on any access control list). B) a ticket for ANY principal for that particular service. (But that's ok because in order to obtain the /etc/srvtab file you must first compromise the service itself.) - Ted
GALINA@IBM.COM ("Galina Kofman") (02/28/91)
***** Reply to your note of: Wed, 27 Feb 91 14:51:08 ********************* So, how does Athena distribute srvtab files? Galina
tytso@ATHENA.MIT.EDU (Theodore Ts'o) (03/01/91)
Date: Wed, 27 Feb 91 15:20:02 EST From: "Galina Kofman" <GALINA@IBM.COM> So, how does Athena distribute srvtab files? We send the files over encrypted somehow. There are many ways to do this, but here's one: This assumes that you have a version of rlogin which supports DES encryption of the data stream. You would then be able to use a program to encrypt the srvtab file (it would be OK to type the password over the net, since you would be logged into the Kerberos server over an encrypted channel). You could then FTP the encrypted srvtab file to the destination machine, walk over to the destination machine, and decrypt the srvtab file while being logged in directly to the desintation machine. The reason why you wouldn't be able to get an encrypted rlogin channel to the destination machine is that this requires a srvtab, and the destination machine wouldn't have one yet. - Ted
galina (03/02/91)
> > > Date: Wed, 27 Feb 91 15:20:02 EST > From: "Galina Kofman" <GALINA@IBM.COM> > > So, how does Athena distribute srvtab files? > > We send the files over encrypted somehow. There are many ways to do > this, but here's one: This assumes that you have a version of rlogin > which supports DES encryption of the data stream. You would then be > able to use a program to encrypt the srvtab file (it would be OK to type > the password over the net, since you would be logged into the Kerberos > server over an encrypted channel). You could then FTP the encrypted > srvtab file to the destination machine, walk over to the destination > machine, and decrypt the srvtab file while being logged in directly to > the desintation machine. The reason why you wouldn't be able to get an > encrypted rlogin channel to the destination machine is that this > requires a srvtab, and the destination machine wouldn't have one yet. > > - Ted
qjb@ATHENA.MIT.EDU (03/02/91)
> So, how does Athena distribute srvtab files? > > We send the files over encrypted somehow. ... Actually, we often don't bother sending the srvtab over encrypted at all. We often simply copy the srvtab into a protect filesystem and copy it to the machine all in the clear. Then, once it's there, we run krsvutil change to change the keys via the admin protocol. This is analogous to giving a user an initial password and telling him/her to change it immediately. As you can imagine, there are quite a number of ways of doing this. I wrote a fairly program to generate srvtabs on the server machine directly via the admin protocol. The kerberos admin logs into the server (presumably physically at the machine), and types his admin password to this client which then uses the admin protocol to create new principals with random keys and write them into a srvtab file in the correct format. This program is not in the kerberos release because I wrote it after development on kerberos V had already started. If you are interested in this utility, feel free to send me personal mail. (I'm sure that if there is a problem with my giving it away, someone on this end will tell me so... :-) ) Jay Berkenbilt Project Athena
tytso@ATHENA.MIT.EDU (Theodore Ts'o) (03/02/91)
From: qjb@ATHENA.MIT.EDU Date: Fri, 1 Mar 91 16:46:39 -0500 Actually, we often don't bother sending the srvtab over encrypted at all. We often simply copy the srvtab into a protect filesystem and copy it to the machine all in the clear. Then, once it's there, we run krsvutil change to change the keys via the admin protocol. This is analogous to giving a user an initial password and telling him/her to change it immediately. People should note that, under this method, it is theoretically possible for someone with a Network sniffer to grab the srvtab as it passes by via FTP or NFS traffic, and then be able to use the knowledge of that key to figure out what the service key was changed to by spying on the ksrvutil's protocol exchange with the admin server. So this method doesn't really add that much security against a really determined (and knowledgable) attacker. People may want to decide that this amount of security is "good enough"; but they should be consciously aware of this decision. - Ted
Galina (03/02/91)
> > > > > > Date: Wed, 27 Feb 91 15:20:02 EST > > From: "Galina Kofman" <GALINA@IBM.COM> > > > > So, how does Athena distribute srvtab files? > > > We send the files over encrypted somehow. There are many ways to do > this, but here's one: This assumes that you have a version of rlogin > which supports DES encryption of the data stream. You would then be > able to use a program to encrypt the srvtab file (it would be OK to type > the password over the net, since you would be logged into the Kerberos > server over an encrypted channel). You could then FTP the encrypted > srvtab file to the destination machine, walk over to the destination > machine, and decrypt the srvtab file while being logged in directly to > the desintation machine. The reason why you wouldn't be able to get an > encrypted rlogin channel to the destination machine is that this > requires a srvtab, and the destination machine wouldn't have one yet. > > - Ted > Sorry for the previous append. Ted, do you mean that each user has to come do the database administrator and send srvtab file to her/his machine? Or does database administraotr has to come to each user's machine to decrypt srvtab? Thank you. Galina.. POST Newsgroups: comp.protocols.kerberos Subject: Re: srvtab on client machines From: Galina > > > > > > Date: Wed, 27 Feb 91 15:20:02 EST > > From: "Galina Kofman" <GALINA@IBM.COM> > > > > So, how does Athena distribute srvtab files? > > > We send the files over encrypted somehow. There are many ways to do > this, but here's one: This assumes that you have a version of rlogin > which supports DES encryption of the data stream. You would then be > able to use a program to encrypt the srvtab file (it would be OK to type > the password over the net, since you would be logged into the Kerberos > server over an encrypted channel). You could then FTP the encrypted > srvtab file to the destination machine, walk over to the destination > machine, and decrypt the srvtab file while being logged in directly to > the desintation machine. The reason why you wouldn't be able to get an > encrypted rlogin channel to the destination machine is that this > requires a srvtab, and the destination machine wouldn't have one yet. > > - Ted > Sorry for the previous append. Ted, do you mean that each user has to come do the database administrator and send srvtab file to her/his machine? Or does database administraotr has to come to each user's machine to decrypt srvtab? Thank you. Galina.
smb@ulysses.att.com (03/05/91)
Sorry for the previous append. Ted, do you mean that each user has to come do the database administrator and send srvtab file to her/his machine? Or does database administraotr has to come to each user's machine to decrypt srvtab? Thank you. Galina.. I think we have a misunderstanding here. In the environment for which Kerberos was designed, that's a non-issue. In general, workstations neither have nor need srvtab files, because they do not provide any services to the user community. In effect, they are very smart terminals (or interaction servers, if you prefer), with a substantial amount of computing power. A person sitting at such a workstation may want to access files that are stored remotely; for this, that person must somehow present credentials. But the workstation itself has no per-user files; it simply has the skeleton of a system on its local disk. And that local disk is, for all practical purposes, read-only. (For implementation reasons, it probably is not physically read-only.) When I visualize the Kerberos model, I tend to think of a large room filled with keypunches. (Yes, I know; my age is showing....) You, as a user, might prefer one keypunch over another. (Back when I used such things, I kept track of which keypunches had all of their starwheels intact.) But the ultimate host neither knew nor cared which one I used. Nor did I ever try to access the keypunch's drum card from the host. It's the same with Kerberos, at least as deployed at MIT. Not only is there no need to request services of a workstation, in general one cannot -- remote access is turned off. Thus, there are no services for which access is mediated by /etc/srvtab. The same reasoning explains why using /tmp for cached credentials is not as serious as it might appear at first glance: no one else has access to live tickets and their associated session keys. To be sure, I'd still prefer a different mechanism, but Kerberos workstations -- in their original environment -- minimize the exposure. There are, I believe, some private workstations at MIT. These may, if the owners wish, have network services. And there are certainly workstations on the martket whose computing abilities far exceed that of an overloaded central server; I can easily see why the owner of such a beast would want the ability to log in remotely. But if you want the privileges of a host, you have to accept the responsibilities: secure administration of /etc/srvtab files. (Note, too, that you have to deal with the database administrator anyway, so that entries for each service can be added to the Kerberos database.) It may be that your particular environment differs from MIT's. To the extent that it does differ, Kerberos may not be as good a fit. There are a number of issues; the maintenance of /etc/srvtab is only one of them. At the risk of repeating myself redundantly, a number of such issues are brought up in the Bellovin & Merritt Usenix paper; if you can't ftp it from research.att.com, I'll be happy to mail you a copy. --Steve Bellovin
don@ATHENA.MIT.EDU (03/06/91)
concerning workstation services, steve said: "There are, I believe, some private workstations at MIT. These may, if the owners wish, have network services. ... But if you want the privileges of a host, you have to accept the responsibilities: secure administration of /etc/srvtab files." please note that kerberos version 5 will allow client workstations to provide authenticated services ( like X service, rlogind, etc.) without need for clients' srvtabs. indeed, the mechanism will support such services on athena's own public workstations. p.s.: athena has 487 private workstations (~35% of total), as of today's count. -don davis, mit project athena staff