Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Kerberos: The Definitive Guide

Posted by timothy on Mon Feb 14, 2005 04:00 PM
from the connecting-stuff dept.
nazarijo (Jose Nazario) writes "Everyone knows that Kerberos is the biggest solution to the single sign-on dilemma. How can you get everyone using one bank of accounts on loads of machines, from UNIX, OS X, and Windows environments, and do so securely? You can shoehorn in a variety of mechanisms, or you can adopt Kerberos. However, Kerberos intimidates a lot of people, somewhat deservedly so, but also somewhat needlessly. Enter Kerberos: The Definitive Guide, one of the latest 'definitive guides' from O'Reilly." Read on for the rest of Nazario's review.
Kerberos: The Definitive Guide
author Jason Garman
pages 272
publisher O'Reilly and Associates
rating 7/10
reviewer Jose Nazario
ISBN 0596004036
summary A comprehensive, cross platform guide to Kerberos

I got started using Kerberos many moons ago, at my university. This is probably how many people got to know about it. While I didn't use it very much, it's there that I learned the basics and experimented a bit with Kerberos. Interest in it took off after Microsoft incorporated Kerberos authentication mechanisms into Windows 2000. Suddenly it wasn't such arcane knowledge.

Two open source Kerberos implementations exist, the MIT reference implementation, and the Heimdal Kerberos implementation. Even then, there are two main versions which you can find, Kerberos IV and Kerberos V. Kerberos IV went away for most environments with the passing of the Y2K mark, but some legacy apps need support. So, you still have to deal with it on occasion.

In writing Secure Architectures with OpenBSD, I got a lot more intimate with Kerberos, and even set up a decently sized realm in my house. Hence, I got to experience the turmoil of setup and debugging. A book like Kerberos: The Definitive Guide (K:TDG) would have been very welcome. Instead, I slogged my way through it, and got it to work for the most part.

K:TDG will help you set up your Kerberos world by introducing you to the complex subject, terminology, and the pieces. Once you learn the basics, you recognize that a simple realm is actually somewhat easy to set up. The author, Jason Garman, uses a mixed Mac OS X, UNIX, and Windows environment, focusing on UNIX most of the time. The bulk of the examples deal with MIT Kerberos 5 version 1.3 (krb5-1.3) but should work for most versions. Some attention is given to the Heimdal implementation (which is integrated with BSD, for example), and for the most part you'll be OK. Windows examples are also pretty copious but always come second. If you're comfortable with UNIX, you'll easily be able to translate these into Windows examples to help bridge the Windows gaps.

Chapter 1 is an obligatory Introduction, a short chapter that introduces the key concepts of Kerberos and what the book will cover. A very quick comparison of Kerberos to DCE, SESAME, and earlier versions of Kerberos is given. This chapter serves as a nice selling point for the book, it's the type of thing you'd flip through in the book store to decide if you should buy the book or not.

Chapter 2 is a decent overview for the new user of Kerberos to the system and how it works. Kerberos is placed into its role in a AAA infrastructure - authentication, authorization, and accounting - as well as some caveats that are commonly made. You'll learn about core Kerberos features like tickets, realms, principles, instances, ticket granting tickets, and the ticket cache. A decent overview for practical purposes is given, but you will definitely want another resource if you're interested in diving headlong into Kerberos.

These pieces come together in Chapter 3, where the actual protocols are described. They're laid out for a non-cryptographer, so go elsewhere if you want to learn the real formal material behind the system. Understanding the protocols is important to understanding the service as a whole. For someone new to Kerberos, you'll probably want to spend a little more time reading this to get oriented in the Kerberos world. The chapter doesn't mess around too much and delivers a fair treatment of the material.

Chapter 4 is the meat of the book's material, setting up your implementation. It all starts with the KDC (key distribution center) and realm initialization. Again, the bulk of the treatment is on the MIT implementation on UNIX, with the Heimdal and then Windows sections following next. Slave KDCs are also introduced, which is useful for large environments. An OS X server is missing, but Kerberos clients for all three (UNIX, Windows and OS X) is given. The role of DNS is also explained well, a useful touch that's missing in some Kerberos documents I've used in the past. This chapter will get you started, and with some of the supplied documentation you should be up and running in no time.

Chapter 5 is devoted to troubleshooting, an all too familiar task for a new Kerberos administrator. Common problems, their diagnosis, and resolution are discussed. I like the presentation of this chapter and think it will be useful for most real-world situations you'll encounter.

Security concerns with Kerberos are covered in Chapter 6, which discusses concrete and abstract attacks on the Kerberos scheme. Since all of the security in Kerberos resides in your KDC hosts, obviously this covers some of the material. However, the clients can exposes your Kerberos realm to attacks, as well, and how to circumvent these problems is covered. A decent and practical chapter, and covered on both UNIX and Windows.

In Chapter 7 a number of Kerberos enabled applications are discussed. After all, you can do more than just log on locally with Kerberos, you can use remote login programs like SSH, remote access scenarios like printing, and even control X via Kerberos. While not every application that I would have liked was covered, the treatment was fair and should get you started with a number of Kerberos enabled tools in your new realm.

A strong selling point of the book is given in Chapter 8, titled Advanced Topics. Three main topics are discussed. The first is cross-realm authentication, where you have more than one separate Kerberos realm on your network but you want to have users switch between the two without creating accounts in the other. This can get tricky, and the book does a decent job of introducing it, but it's not as complete as it could be. The second main topic in this chapter is Kerberos 4 and 5 interoperability, which is relatively straightforward. Most Kerberos 5 implementations come with tools to process Kerberos 4 ticket scenarios to handle legacy applications. And finally, a really valuable section covers UNIX and Windows Kerberos interoperability, a hairy issue. Again, incomplete but strong enough that you should be able to get it working with some elbow grease. This is probably the most valuable chapter of the book, which does a decent job at the introductory level, but you'll be left to tie up a few loose ends on your own.

An obligatory case study is given in Chapter 9, where you can see a number of configuration samples and even a mixed Windows-UNIX environment. Not terribly useful when compared to chapters 4 and 8, but overall worthwhile. It may answer some of your questions, even. Chapter 10 wraps up the book with looking at Kerberos futures, which isn't all that useful, honestly. What gets more useful is the appendix, which gives an administration reference. Lots of commands are given for MIT, Heimdal and even for Windows, so you can quickly jump there to refresh your memory on a topic.

Overall this book is recommended if you need a place to start working on Kerberos, especially in a mixed environment. The MIT and Heimdal documents are a fair place to start for a UNIX only Kerberos realm, but if you find they aren't enough, this is probably the right book for you. The book's main strength is that it covers Kerberos on the three main platforms in use (Windows, OS X, and UNIX), although it could provide a deeper treatment to the mixed environment than it gives. Still, you should be able to use this as a starting point, and it's probably the best treatment I've seen so far on Kerberos setup and administration.


You can purchase Kerberos: The Definitive Guide from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page

This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • But are people comfortable with SSO! (Score:3, Insightful)

    by zyridium (676524) on Monday February 14 2005, @04:03PM (#11671666)
    When are people going to realise that the problem with single sign on isn't a technical one....
    • by Anonymous Coward on Monday February 14 2005, @04:05PM (#11671698)
      Large corporations and educational institutions benefit greatly from single-sign-on ... Consider a college - When you have 10 computer labs with 4-5 operating systems and N SANs all mounting common home directories, the ability to log in to all of them with the same username/password saves a LOT of support headaches. We used to implment (S)LDAP, which worked great for everything but the Win2k boxes - SSO for OSX+Linux with NFS mounted homes actually made a lot of people happy.
      [ Parent ]
      • SSO != Single Account (Score:4, Informative)

        There is a big difference between SSO and having a central account database.

        Single Sign On means your enter your username/password once and you can connect to any resources you are allowed to.

        For example, you'd log into your Windows XP PC. Without entering your password again, you can browse other computers in the AD Domain. You start Outlook and you never have to enter your login info for your exchange server. From there, you point IE at your intranet server and it uses the kerberos ticket to log you in without a password.

        In the unix world, it means getting a ticket with kinit. From there, ssh, ftp, mozilla and so forth should be smart enough to not require you to log in again.
        [ Parent ]
        • Re:SSO != Single Account (Score:4, Informative)

          by 0racle (667029) on Monday February 14 2005, @05:20PM (#11672485)
          Without a central account database you (the admin) would still need to create on each system that same account, name and possibly UID. In a large environment where SSO makes the most sence, using Kerberos without a central account database, either an LDAP directory or NIS, makes no sence.

          Incidentally SSH, FTP, mozilla and so forth need to be told to use Kerberos, they will not use it simply because you have a valid ticket.
          [ Parent ]
      • Re:But are people comfortable with SSO! by tommyth (Score:1) Monday February 14 2005, @11:40PM
      • 1 reply beneath your current threshold.
    • Re:But are people comfortable with SSO! by Feyr (Score:3) Monday February 14 2005, @04:11PM
    • Re:But are people comfortable with SSO! by Daedala (Score:3) Monday February 14 2005, @04:13PM
    • by fm6 (162816) on Monday February 14 2005, @04:17PM (#11671829)
      (http://picknit.com/ | Last Journal: Saturday July 29 2006, @03:58PM)
      You started to say something interesting and useful, then your attention wandered. Inquiring minds want to know: if the problem with SSO isn't technical, what is it?
      [ Parent ]
    • Re:But are people comfortable with SSO! by ergo98 (Score:2) Monday February 14 2005, @04:28PM
    • Re:But are people comfortable with SSO! by blogeasy (Score:1) Monday February 14 2005, @04:49PM
    • by slamb (119285) * on Monday February 14 2005, @05:09PM (#11672361)
      (http://www.slamb.org/)
      When are people going to realise that the problem with single sign on isn't a technical one....

      The biggest one I see is technical: there's no good single sign-on system designed for the Internet.

      Kerberos is the only widely implemented system I'm aware of that implements one key criterium: service providers can't use the credentials passed to them to log in to another service. With web-based single sign-on systems, the password you enter for webmail will also get you in to the billing system. So if the webmail system is compromised (and it's typically held to a much lower standard), so is the billing system. That's no good.[*]

      Kerberos isn't designed for the Internet. You need to set it up explicitly for each trust domain on each client computer. So users can't just pull out their personal laptops and use them to log in, unless you've instructed them on setting it up. And certainly not on whatever public computer they've run across.

      What we need is a single sign-on system with a different model. I think it would require:

      1. a cheap physical token that has public-key cryptography.
      2. a password entered directly into the token that you carry with you. You shouldn't have to trust the machine you're using to not capture your password. That model works for ATMs, but not for net cafes.
      3. no setup for each trust domain on each client machine. Presumably, it would authenticate the domain's keyserver using PKI. Either the existing system where you buy a certificate from Verisign on DNSsec.
      4. wide acceptance - the physical readers should be present on any random machine you stumble across, and so should supporting software.

      Certainly #2 and #3 are technical problems. #4 is not. #1 is arguable.

      [*] - Some web applications make some effort to avoid this problem. But they're not good enough. The University of Iowa has the HawkID system, which redirects all login requests to the hawkid one, and then back to the application. But you still enter the password into a web form given by the application, and there's no UI for seeing the destination of the form. When you enter it, you don't have a guarantee that the web application doesn't get the password. We need a new system just for authentication that makes potential security problems blindingly obvious.

      [ Parent ]
      • Re:But are people comfortable with SSO! by noidentity (Score:1) Monday February 14 2005, @06:58PM
      • Re:But are people comfortable with SSO! by Clod9 (Score:3) Monday February 14 2005, @07:01PM
      • by rsilverman (266807) on Monday February 14 2005, @10:29PM (#11674709)
        Kerberos isn't designed for the Internet. You need to set it up explicitly for each trust domain on each client computer. So users can't just pull out their personal laptops and use them to log in...

        I'm afraid your entire point here is just technically false. Kerberos only requires host setup with if the host is a server; that is, to run a kerberized service on it, you need to establish a shared key for the service principal with the Kerberos system (KDC) and store it on the host where the corresponding server can find it (e.g. /etc/krb5.keytab). A Kerberos client can run anywhere and does not require a prior host connection with the realm at all. You *can*, in fact, do exactly what you describe here as impossible: connect your laptop to a network and type "kinit user@REALM" to get credentials, then use a kerberized application such as OpenSSH. The Kerberos software can find a KDC for "REALM" from the DNS (assuming the appropriate rr's are available). Note that this is secure despite the insecurity of the DNS in general, since Kerberos is a shared-secret system: since you share a secret with the KDC (essentially your password), you can validate the KDC's response.
        [ Parent ]
      • 1 reply beneath your current threshold.
    • Symmetric key vs public key by j1m+5n0w (Score:3) Monday February 14 2005, @05:17PM
    • Re:But are people comfortable with SSO! by iabervon (Score:2) Monday February 14 2005, @07:50PM
    • Re:But are people comfortable with SSO! by MonsterChicharo (Score:1) Monday February 14 2005, @06:47PM
    • 2 replies beneath your current threshold.
  • AFS Coverage? (Score:4, Insightful)

    by xlark (689369) on Monday February 14 2005, @04:09PM (#11671733)
    Too bad there seems to be no coverage of AFS. I'd love to see a book documenting using Kerberos V with AFS.
  • Kerberos Dialogue (Score:5, Informative)

    by Anonymous Coward on Monday February 14 2005, @04:10PM (#11671745)
    No article about Kerberos would be complete without a link to one of the more interesting introductions out there:
    Designing an Authentication System: a Dialogue in Four Scenes [mit.edu]
    • Bad HTML alert (Score:4, Informative)

      by fm6 (162816) on Monday February 14 2005, @05:04PM (#11672310)
      (http://picknit.com/ | Last Journal: Saturday July 29 2006, @03:58PM)
      This is one of those occasions I'm grateful I still have Internet Explorer (and the IEView extension [mozdev.org]). The authors of this page made the classic blunder of coding their HTML to the browser, not the the standard. Specifically, they used tables to encode non-tabular text. The result looks like a play script on whatever browser they tested it on, but Firefox doesn't have the smarts to deal with a table that long. And why should it, except to accomodate inept page designers? A goal that deserves some priority, but not an infinite amount.
      [ Parent ]
  • Not so bad (Score:1, Informative)

    by Anonymous Coward on Monday February 14 2005, @04:11PM (#11671758)
    we use kerberos here at work, and we solved the single-sign on issue with our program, co-sign. I think it's at cosign.org? Unsure.

    It was difficult at first but i've grown used to it, and it seems to be pretty great and .. er not so bad now.
    • hmmm by c0p0n (Score:1) Monday February 14 2005, @05:09PM
    • Re:Not so bad by Anomalyst (Score:1) Monday February 14 2005, @06:57PM
  • Bad editing (Score:5, Informative)

    by Dop (123) on Monday February 14 2005, @04:13PM (#11671781)
    I've read the majority of this book and overall it's pretty good. However, even considering that this is a first edition book there are quite a few mistakes (mostly editing... grammar, spelling, etc).

    I made a list of corrections that I sent to both O'Reilly and the author which were ignored. I think O'Reilly is getting too arrogant and it's going to hurt their reputation.
    • Re:Bad editing by jayhawk88 (Score:3) Monday February 14 2005, @04:33PM
    • Re:Bad editing (Score:4, Funny)

      by fm6 (162816) on Monday February 14 2005, @04:50PM (#11672159)
      (http://picknit.com/ | Last Journal: Saturday July 29 2006, @03:58PM)
      Getting too arrogant? O'Reilly's books have been badly edited as long as I can remember. Although this is the first time I've heard of them failing to run a spell check. What they usually do is let the author free-associate all over the landscape, with no overall structure and too many footnotes, irrelevencies, and grade-school-level jokes. Doesn't matter if the author has some self-discipline, but most of them don't. Smart people, but not good at expressing themselves clearly or concisely.

      I never buy the O'Reilly book if another publisher has a decent title on the same subject. But it's often the case that O'Reilly has the only title on a particular subject, or the only one by an author who really knows the subject. So they kind of have a guaranteed audience. Which, as you say, tends to make them arrogant.

      What makes this particular frustrating is that somebody at O'Reilly sat down and wrote one of the best writer's guides I've ever seen [oreilly.com]. If only they'd make their writers actually read it!

      [ Parent ]
      • 1 reply beneath your current threshold.
    • 1 reply beneath your current threshold.
  • by TheLoneGundam (615596) on Monday February 14 2005, @04:14PM (#11671797)
    (Last Journal: Friday May 16 2003, @01:55PM)
    "Dinosaurs" can play too. IBM has an implementation on z/OS that ties in with their LDAP implementation, their DCE implementations, etc. and it all connects with their "native' Resource Access Control Facility (or as it's now supposed to be known, Security Server). I've seen papers in fact where the LDAP/Kerberos combination can play nice with Active Directory should your organization's policies require it.
  • PKINIT (Score:3, Interesting)

    by savuporo (658486) on Monday February 14 2005, @04:14PM (#11671800)
    Well, Kerberos is nice and everything but as long as the different PKINIT [isoc.org]implementations dont get along with eachother, *cough*win2000*cough, we can still do simple social engineering to recover passwords...
    Heimdal has a pretty good support by now but the docs are scarce at best, and getting it ( the PKINIT part ) to interoperate is Mayor Payne
    • Re:PKINIT by cpuh0g (Score:1) Monday February 14 2005, @04:32PM
    • Re:PKINIT by TheCabal (Score:3) Monday February 14 2005, @05:00PM
      • Re:PKINIT by cpuh0g (Score:2) Monday February 14 2005, @05:16PM
      • Re:PKINIT by cpuh0g (Score:1) Tuesday February 15 2005, @07:53AM
      • 1 reply beneath your current threshold.
  • Uuh, kerberos is what? (Score:3, Funny)

    by Rosco P. Coltrane (209368) on Monday February 14 2005, @04:15PM (#11671808)
    Everyone knows that Kerberos is the biggest solution to the single sign-on dilemma.

    You mean it isn't Passport? I'm so confused now...
  • Incase of Slashdotting... (Score:3, Funny)

    by Anonymous Coward on Monday February 14 2005, @04:17PM (#11671821)
    bash-2.05a$ man kerberos

    KERBEROS(1)

    NAME
    kerberos - introduction to the Kerberos system

    DESCRIPTION
    The Kerberos system authenticates individual users in a network environment. After authenticating your-elf to Kerberos, you can use network utilities such as rlogin, rcp, and rsh without having to present passwords to remote hosts and without having to bother with .rhosts files. Note that these utilities will work without passwords only if the remote machines you deal with support the Kerberos system.
    .
    .
    .
    Currently, Kerberos support is available for the following network services: rlogin, rsh, rcp, telnet, ftp, krdist (a Kerberized version of rdist), ksu (a Kerberized version of su), login, and Xdm.

    SEE ALSO
    kdestroy(1), kinit(1), klist(1), passwd(1), rsh (1), rcp(1), rlogin(1), telnet(1), ftp(1), krdist(1), ksu(1), sclient(1), xdm(1), des_crypt(3), hash(3), krb5strings(3), rb5.conf(5), kdc.conf(5), kadmin(8), kadmind(8), kdb5_util(8), telnetd(8), ftpd(8), rdistd(8), sserver(8), klogind(8c), kshd(8c), login(8c)

    BUGS
    AUTHORS
    Steve Miller, MIT Project Athena/Digital Equipment Corporation Clifford Neuman, MIT Project Athena

    HISTORY
    Kerberos was developed at MIT. OpenVision rewrote and donated the administration server, which is used in the current version of Kerberos 5.

    RESTRICTIONS
    Copyright 1985,1986,1989-1996 Massachusetts Institute of Technology
    KERBEROS(1)
  • by fakeid (242403) on Monday February 14 2005, @04:18PM (#11671839)
    I think another good way to look (if you're interested in good interoperability) is openLDAP. I know there are a lot of tie-ins to Kerberos, but I believe it's a better direction to go, when you look at features, and supporting naming services, printers, etc.

    I've been pretty happy with the O'Reilly "LDAP" book, which has been terribly helpful. To be honest, it's still been a bit of a pain. I blame Sun more than anything else; should be a lot easier if you were implementing on Linux. I have used a lot of google also, but nobody seems to have the true complete guide to getting things working on Solaris, even if they claim to. :-)

    Regardless of all of this, maybe the LDAP book and this one could work well together.

    YMMV.
    • Re:interoperability with windows/ active directory by Piquan (Score:2) Monday February 14 2005, @04:20PM
    • OpenLDAP = Some Assembly Required by xxxJonBoyxxx (Score:3) Monday February 14 2005, @05:13PM
    • by 0racle (667029) on Monday February 14 2005, @06:01PM (#11672876)
      Kerberos and LDAP serve very different purposes. LDAP is a directory, it can store usernames, passwords, and a whole lot of other junk. in AAA it handles Authorization (usernames/UID's), and Auditing. Kerberos only provides Authentication, with a little auditing thrown in. Kerberos still requires there to be something else to provide that said username, identified by a ticket, is allowed to use a paticular resource. LDAP does have its own authentcation method, but for most things it is not used in favor of the more mature and tested kerberos authentication. In this manner LDAP provides the same functionality as your passwd file, and kerberos your shadow file. Using LDAP auth, to extend this analogy, would be like not using shadow passwords and simply keeping the password hash in the passwd file.

      Both the LDAP administration book and the Kerberos book mentioned here do work well together, I picked them both up when I kerberised/LDAPified my network at home. I haven't got my Solaris box up and running yet, so I don't know how difficult that will be.
      [ Parent ]
    • Apples and oranges... (Score:4, Informative)

      by rmdyer (267137) on Monday February 14 2005, @06:17PM (#11672997)
      You are spreading misinformation. Kerberos is an authentication system/protocol. LDAP is a directory service. The two are not the same. Technically you should never use LDAP for authentication since it wasn't designed for it. People do it, but that doesn't make it right.

      Kerberos was made to guarantee the authenticity of a user or service that has been granted access to the network. The right way to secure LDAP would be to use Kerberos authentication. You can use SSL with LDAP but you are just passing around encrypted plain text passwords. SASL allows the client to select whatever the best protocol it can support.

      What many in the industry have done with LDAP is wrecked it by using SSL with secret stores where the directory holds the encrypted passwords for every service you need to access. This basically amounts to nothing more than Microsofts old PWL files on Win9x. Its just a temporary patch for a long term problem, but many industry PHBs throw their hands up because even after a decade of Kerberos, very few products have been Kerberized. At least Microsoft was smart enough to realize with Win2k that in the long term, only Kerberos is the right way to do it.

      In the end though, this turns out to be a hot debate of public key vs. private key authentication systems. Kerberos is a private key system that has done well, but not as well as public key used in the internet. People are simply extending LDAP and public key as an alternative authentication system to using Kerberos. While many people may think this is a better solution, I beg to differ.

      So how about it slashdotters, which is it? Which system will win out, public, private, or a combination of both?
      [ Parent ]
  • by ThinkTiM (532164) on Monday February 14 2005, @04:24PM (#11671904)
    Everyone knows that Kerberos is the biggest solution to the single sign-on dilemma. Single sign-on needs more than what Kerberos provides - so Kerberos is only a component of a solution. Kerberos only does the authentication part, it's often paired with LDAP to hande authorization...
  • Kerberos? (Score:5, Funny)

    by null etc. (524767) on Monday February 14 2005, @04:26PM (#11671919)
    Everyone knows that Kerberos is the biggest solution to the single sign-on dilemma.

    Well, duh! Even my grandmother uses Kerberos to solve her single sign-on dilemma!

  • Kerberos and OTP (Score:1)

    by wkk2 (808881) on Monday February 14 2005, @04:34PM (#11672000)
    Does the book address using Kerberos and one time passwords? I stopped using Kerberos after having problems with OTP tokens. I never got a SNK working right and it doesn't appear to support the RSA or VeriSign tokens.
    • 1 reply beneath your current threshold.
  • Fetchmail, Linux, e-mail, Kerberos (Score:2, Interesting)

    by trip11 (160832) * on Monday February 14 2005, @04:43PM (#11672088)
    (http://nathan.triplett-family.net/)
    Although its been a few months since I've last tried. I recall hours upon hours trying to build fetchmail to worth with Kerberos 5 authentication. And after that failing because mit updated something but fetchmail didn't, or the like. And as far as I know, everyone at school here (Iowa State) has had the same problem. So I say "boo to kerberos!" Or at least boo to requiring it exclusivly over any other secure methods of remote access. My solution to this problem is one I would recomend to anyone trying to get around kerberos e-mail authentication is to simply have your e-mail forwarded to a g-mail account and pull it off of there to your box. Here at ISU, at least, its pretty easy to get your mail forwarded to another address. Again, "down with kerberos!"
  • Yeah, pure DoS (Score:1)

    by swanswan (859061) on Monday February 14 2005, @04:46PM (#11672120)
    At 272 pages, it DoSes too much spare time. An that Kerberos name sounds !EVIL!
  • by Wintrmte (172296) on Monday February 14 2005, @04:46PM (#11672127)
    Just curious if it actually talks about how to get clients using MIT Kerberos 5 on *NIX to authenticate against an W2K or W2K3 AD DC.

    This has been my biggest challenge thus far with interoperability of KerberosV..
  • Excuse me? (Score:1)

    by elwoodblues16 (666185) on Monday February 14 2005, @04:48PM (#11672137)
    Everyone knows that Kerberos is the biggest solution to the single sign-on dilemma.

    Not really. In fact, I have no idea what you're talking about.
    • Re:Excuse me? by dbIII (Score:2) Monday February 14 2005, @06:22PM
    • 1 reply beneath your current threshold.
  • by nr (27070) on Monday February 14 2005, @04:48PM (#11672146)
    (http://www.theserverside.com/)
    If you want working single-sign on across domains/organisational broders you can use Globus, the defaco open-source Grid framework/toolkit mostly in use in the research, univeristy world.

    New reworked version 4.0 scheduled for release this spring will provide for authorization thru firewalls and webproxies using Web Services tech.

    http://www-unix.globus.org/toolkit/docs/developmen t/4.0-drafts/GT4Facts/index.html/ [globus.org]
    http://www-unix.globus.org/toolkit/docs/developmen t/4.0-drafts/security/authzframe/index.html/ [globus.org]
    http://www-unix.globus.org/toolkit/docs/3.2/index. html#security/ [globus.org]
    http://www.globus.org/ [globus.org]
  • in one word - NAT (Score:2)

    by timmarhy (659436) on Monday February 14 2005, @05:00PM (#11672260)
    NAT breaks kerberos making it useless in many situations.
  • by TilJ (7607) on Monday February 14 2005, @05:08PM (#11672353)
    (http://www.seekingfire.com/)

    I'm a Kerberos fan. I wrote the Kerberos5 chapter of the FreeBSD Handbook (and I have a re-write mostly completed) and I worked with quite a few Realms over the past few years.

    I've read Kerberos: TDG several times now, and I've tried to find the answers to obscure problems often in it -- usually, without success. I think it should have been named Kerberos: An introduction because it isn't a Definitive Guide. Look at the page count alone: it's a slim, slim book. An in spite of being slim it tends to be a repititious. Not a good sign for something trying to living up the Definitive Guide tag.

    It also misses quite a few topics that would be great to see covered in a second edition:

    • OpenAFS (and this is a big one!)
    • web (browser and server) integration
    • A detailed discussion on setting up DNS support for Kerberos. Seriously, this eliminates most of the "maintaining a krb5.conf" issue.
    • GSSAPI
    • converting databases from Heimdal to MIT (or vice versa)
    • mixed KDCs (MIT master and Heimdal slave and vice versa)
    • scripting kadmin
    • best practices (i.e., what *is* a good KDC policy for new principals? Why?)
    • in-depth discussion on cross-realm trusts (including one-way trusts) and ways to use krb5.conf to avoid needing a ~/.k5login everywhere
    • Kerberos support in Ethereal, to aid in trouble-shooting (though to be fair this is fairly recent)
    • A real discussion of krb5to4. Sorry, a half-page doesn't cut it.
    • A better discussion of PAM and Kerberos. Do you know how many unrelated PAM modules there are all named krb5? Bah. If I wanted xdm and xscreensaver to do the right thing, the book wouldn't really help with that.
    • A listing of interesting Kerberos clients and servers and some practical configs for them would've been great. For example, Postgresql supports Kerberos, yet the book doesn't touch that.

    I liked the book. I'll take it over not having an O'Reilly Kerberos book any day. But I look forward to a revised second edition ;-)

  • Its good to see any type of book come out on Kerberos. Besides setup, configuration and management an even bigger challenge is programming to the API although GSSAPI/SASL is supposed to alleviate this problem for some definition of alleviate.

    The whole arena of Single-Sign-On (SSO) is at once a great opportunity and a great challenge to the Open-Source community. Unfortunately its also an arena where Open-Source initiatives seem to be slow in getting traction. In part this may be due to the fact that this type of work isn't very sexy. Unfortunately its also the area where control of the enterprise is going to get won or lost.

    Anybody who has been around Kerberos, SSO and other middleware initiatives know the frightful politics involved with this stuff at the organizational level. When technology like this gets deployed its extremely difficult to get organizations to change direction or try alternative solutions. The case can be made that the SSO middleware/identity solution that gets deployed is perhaps the single most important decision affecting the overall IT architecture of an organization.

    The issue that makes all this extremely important to the Open-Source community is the fact that whatever gets deployed tends to 'tie' the applications to the back-end server architecture. I don't think this fact is even remotely lost on those individuals or companies that prefer to see proprietary systems win control in the enterprise. Ultimately whoever or whatever defines who an individual is and what rights they have to access information has a pretty significant position of power in the information delivery world.

    The basic tools exist in open-source form but tend to have extremely high individual learning curves and little margin for error once deployed. Whats required for Open-Source to win in this space is a credible integration of these technologies which allow them to be deployed and managed in a coherent and consistent fashion.

    At the risk of getting in a plug the Hurderos Project is focused on these issues right now. Our goal is to provide an open-source based solution which is a superset of the functionality provided by Active Directory. The project web-site is at http://www.hurderos.org for anyone interested in learning a bit more.

    One of the issues that the project has extensively focused on is developing an open-source/open-protocol alternative for authorization. Its fair to conclude that Kerberos answers the authentication problem but an even bigger issue is authorization, which is really the question that most people want answered at service delivery time.

    Everyone concludes that LDAP directories should be used for authorization but no real methodology is articulated for doing this. The only real 'standard' unfortunately is Microsoft's use of Privilege Authentication Certificates (PAC) in Active Directory. Providing an authorization alternative to these is really at the heart of the project.

    The Samba project is working diligently to provide an open-source alternative to Active Directory. Unfortunately this goal is potentially problematic from a couple of angles. The first being philosophical and the second much more pragmatic.

    From a philosophical perspective the claim can be made that Open-Source doesn't innovate but rather clones. Thats certainly a topic for arguement in and of itself but an unbiased observer would have to conclude that 'cloning' has been a major focus of Open-Source initiatives. Cloning Active Directory, while useful, tends to perpetuate this notion.

    A clone of Active Directory is also problematic in the increasingly troubled legal waters that OSS initiatives will be steering through. Casual infringement of Intellectual Property will be problematic in and of itself. I would anticipate that it will be much more difficult to defend when the stated goal is to create a working clone of another product.

    The huge opportunity for Open-Source is to fix a fundamental problem that has vexed enterp
  • by totro2 (758083) on Monday February 14 2005, @10:11PM (#11674629)
    I have to say I highly doubt this book will get effectively get Kerberos "everywhere". Not even close. Only once a new layer of administrative convenience is painted over Kerberos (and OpenAFS, OpenLDAP, which all together make something tremendously useful), will Kerberos ever matter.

    I've been a Unix System Administrator for 4 years, and trust me, I would love to see Kerberos, OpenAFS, and OpenLDAP are to get together in a convenient way.

    All three are extremely flexible and therefore complex systems. Sadly, there are no best practices that clearly show a "best standard" way to integrate them all to truly be that silver bullet SSO system for the all-singing, all-dancing universal access to local login, distributed filesystem, email, web, etc.

    Why should you believe me? Case study: I know of one commercial product that does sucessfully combine these three into a worthy-of-geek-praise general solution/product: the "bkbox" (www.bkbox.com).

    I've met and spoken to the main developer (Noel Burton-Krahn) several times. And no, I don't work for him. He's got a Masters in Computer Science and it took him many months FULL TIME to truly understand these three and integrate them. Only by using low level tools like "strace" and combing the mailing lists did he finally understand enough to combine these three into a server where both Linux and Windows clients could connect in various ways (including web and email). This goes to show the complexity and obviously poor documentation out there.

    In summary: Kerberos, OpenAFS, and OpenLDAP are intensely complex, poorly documented (for use in real-world scenarios), and are therefore years away from being on the LAN of Joe Linuxnut, much less the nearest elementary school computer lab.

    I think that there is a huge oppurtunity for fame by creating a layer of convenience on top of these 3 that actually make a best-practices SSO solution a snap. Will it be implimented as a webmin module? Some simple Wizards in Gnome or KDE? A Plone Product? Using D-bus?

    I hope someone can prove me wrong.
    • 1 reply beneath your current threshold.
  • Links (Score:2)

    by darkpurpleblob (180550) * on Tuesday February 15 2005, @05:33AM (#11675921)
    Obligatory book website [oreilly.com] and sample chapter [oreilly.com] links.
  • Re:Kerberos? (Score:1)

    by darth_MALL (657218) on Monday February 14 2005, @04:12PM (#11671776)
    Sure [oreilly.com]
    [ Parent ]
  • Re:Kerberos? (Score:1)

    by Daedala (819156) on Monday February 14 2005, @04:20PM (#11671858)
    Kerberos was the three-headed dog who guarded the entrance to hell in Greek mythology. He could be bribed with honey cakes.
    [ Parent ]
    • Re:Kerberos? by einhverfr (Score:2) Monday February 14 2005, @04:23PM
      • Re:Kerberos? by Daedala (Score:2) Monday February 14 2005, @04:36PM
        • Re:Kerberos? by einhverfr (Score:2) Monday February 14 2005, @06:07PM
    • Just Three? by exp(pi*sqrt(163)) (Score:3) Monday February 14 2005, @04:44PM
      • 1 reply beneath your current threshold.
    • Re:Kerberos? by Anonymous Coward (Score:1) Monday February 14 2005, @06:50PM
  • File that (Score:5, Insightful)

    by mccrew (62494) on Monday February 14 2005, @04:24PM (#11671903)
    (http://www.mccrew.com/)
    I see OpenSSH as the best choice...

    File that one in the "When your only tool is a hammer everything looks like a nail" folder.

    [ Parent ]
  • Re:OpenSSH ... (Score:4, Insightful)

    I should not feed the trolls.... But oh well....

    OpenSSH is great for some things, but it does NOT do remote authentication for services, nor does it authenticate the service to the client. So it does not scale well.

    Kerberos scales better and is more secure than OpenSSH for most things, I think. You can even use it along with telnet to provide a single-sign on remote shell with an encrypted session (without the key management issues of OpenSSH). Of course you can also use OpenSSH with Kerberos (requires a patch I think) but then that negates your point.

    Also, it is *easy* to integrate Win2k and XP with Kerberos.
    [ Parent ]
    • Re:OpenSSH ... by TheCabal (Score:3) Monday February 14 2005, @05:08PM
    • Re:OpenSSH ... by wfberg (Score:2) Monday February 14 2005, @05:15PM
      • Re:OpenSSH ... (Score:4, Insightful)


        If you store the keys you need to authenticate at other services in the .ssh directory of the server you log into first, then ssh authenticates you to other services..


        Not really. It authenticates you to *a user account* on the *host system.* This is very different from authenticating to, say, and LDAP service, an HTTPS application, or a database manager. OpenSSH cannot readily do this. Sure you can use it for mining expeditions (lots of tunnels) but this does not approach problem in a reasonable manner.

        Kerberos isn't particularly impressive at scaling, what with all those secret keys flying about.

        It seems to scale better than the alternatives. I assume that this is why Novell, IBM, and even Microsoft use it for their larger-scale AAA systems. The reason is simply central management. You could try to hack something together using LDAP and SSH but the same issues exist regarding the fact that it doesn't really have a way to authenticate you to a centrally managed account from an application server's perspective.

        Really, the only thing SSH doesn't do is authenticate the remote service to the extent that Kerberos would, although really the only benefit Kerberos brings is that it prevents some MITM attacks - it's still based on remote systems (working together) "proving" who they are by knowing a shared secret (your password).

        No, actually, it protects you against modified replay attacks. MITM is a problem which can occur with SSH, SSL, and even Kerberos on the first time a key for a PKI server is received. This can be a X509 CA, and SSH server, or a Kerberos KDC.

        OTOH, the fact that each ticket is signed and timestamped (and cached against playback), and each service (including the KDC) is authenticated to the client, there is no way to forge or replay the ticket unless the keys are compromised.

        I do agree with your points regarding PKI but I am not really sure that there is a secure way to do this. It is a difficult problem (i.e. login requires the key which either must be cashed and then decrypted with a passphrase or be carried on the person of the user). This has its own dangers and is far from being perfect.
        [ Parent ]
  • I would have modded it as a TROLL....

    Mainly because SSH is not a network authentication protocol. It is a remote access protocol and this is fundamentally different.
    [ Parent ]
  • Re:OpenSSH ... (Score:3, Informative)

    by Homology (639438) on Monday February 14 2005, @04:35PM (#11672022)
    May someone explain why is this OFFTOPIC???.

    The editor comments on a book about a network authentication and encryption protocol, i comment about an approach that i consider better and more modern.

    In your parent post you claim that OpenSSH is a replacement of Kerberos. It's not offtopic, I grant you that. On the other hand. you are wrong in your claim.

    [ Parent ]
  • Re:OpenSSH ... (Score:2, Interesting)

    by kenaaker (774785) on Monday February 14 2005, @04:44PM (#11672101)
    I would say it was only slightly offtopic. OpenSSH is a collection of technologies, with the primary purpose being to set up communications pipes between systems. Generally, when it does authentication, it uses the underlying system authentication functions. That would be the /etc/passwd based authentication, NIS, LDAP, PAM, or what have you.

    The Public/Private key mechanisms seem to be another layer that's stacked on top of some of the simpler authentication mechanisms. Which is why is getting OpenSSH to work with Kerberos or Kerberos with OpenAFS can be a real grind. And when OpenSSH doesn't have anyplace to retrieve the public key information from (like your home directory) because it can't prove who the user is you're reduced to entering the password for the underlying target system authentication system every time...

    My impression of Kerberos is that it is more about Authentication (proving who you are) than anything else. Once you can prove who a user is, now you have another set of problems, in particular, Authorization.

    If you mention using the Public/Private key stuff (like OpenSSH uses) around some of the Kerberos groups, you'll get some interesting viewpoints.

    I know I've vastly over-simplifying this.

    [ Parent ]
  • Re:Kerberos? (Score:4, Informative)

    by Daedala (819156) on Monday February 14 2005, @05:03PM (#11672300)
    Actual answer:

    Kerberos is an authentication protocol. You have a client, a server, and a kerberos server. The kerberos server itself has three parts, the key distribution center, the authentication server and the ticket granting server. This is a symmetric encryption system: no public or private keys, just private keys.

    Before anything happens, both Client and Server share their cryptographic keys with the Key Distribution Center. This setup is required for kerberos to work. Kerberos doesn't work if you can't set things up beforehand.

    When it's authentication time, Client goes to Ticket Grantor and says, "I want to talk to Server, and here's my key." Ticket Grantor asks Server, "Client wants to talk to you. Is that okay?" Server says it's okay, so the Ticket Grantor sends a ticket-granding ticket (encrypted with Ticket Grantor's key, so only TG can read it) and a session key (encrypted with the Client's key, so only Client can read it) to Client. Note that at this point we haven't authenticated Client -- we've just checked that Client is authorized to talk to Server.

    Client unencrypts the session key using its own key. If Client really is who it says it is, the unencrypted key will be correct. Client goes to Ticket Grantor with the ticket-granting ticket and the session key and says, "Look, I can do it! It's me! Gimme a real ticket already so I can talk to the server." Ticket Grantor says "Ok" and does gives the Client a ticket encrypted with the Server's key and a new session key encrypted with the Client's key.

    The Client decrypts the session key: now it knows how to handle talking to the Server. Then it sends the Server the ticket. If the Server is who the kerberos server thinks it is, it will be able to decrypt the ticket and establish a session with the client.

    It's more complicated than that, but I think this covers it. Does that help? I expect if I have erred I will be corrected forthwith, as nothing gets the right answer faster than posting the wrong one.
    [ Parent ]
    • Re:Kerberos? by emurphy42 (Score:1) Tuesday February 15 2005, @12:48AM
  • by Theatetus (521747) on Monday February 14 2005, @05:59PM (#11672854)
    (Last Journal: Tuesday February 24 2004, @06:10PM)

    OpenSSL, while nice, is transport-level. The secure communication provided by OSSL does nothing to authenticate a given user or service. Now, Kerberos has and needs transport-level security, it just doesn't use OpenSSL to do it. You could, conceivably, re-write something like Kerberos using the public-private key model (which would solve some of the dilemmas in Kerberos design and introduce new ones), but that would be re-inventing a pretty big wheel.

    Personally, I use SSL to fake authorization on my network (this assumes secure hardware and some other things; no solution is foolproof; YMMV; etc.), so you can see where I fall on that debate.

    [ Parent ]
    • 1 reply beneath your current threshold.
  • 13 replies beneath your current threshold.