home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / protocol / kerberos / 682 < prev    next >
Encoding:
Text File  |  1992-09-09  |  18.2 KB  |  419 lines

  1. Newsgroups: comp.protocols.kerberos
  2. Path: sparky!uunet!stanford.edu!ATHENA.MIT.EDU!bjaspan
  3. From: bjaspan@ATHENA.MIT.EDU ("Barry Jaspan")
  4. Subject: RELEASED: Kerberos FAQ Version 0.0
  5. Message-ID: <9209091615.AA08945@portnoy.MIT.EDU>
  6. Sender: news@shelby.stanford.edu (USENET News System)
  7. Organization: Internet-USENET Gateway at Stanford University
  8. Date: Wed, 9 Sep 1992 16:15:39 GMT
  9. Lines: 408
  10.  
  11.  
  12. Enclosed below is the first draft of the Kerberos Users' FAQ.  Some of
  13. you may have heard that Craig Lien was working on this project, but
  14. turned out not to have enough time and handed the project over to us.
  15.  
  16. This is a "beta release" of the Kerberos FAQ.  The choice of questions
  17. was based on articles posted to the Kerberos mailing list starting
  18. January 1, 1992.  Please make suggestions and contribute any
  19. information that you can.  Version 1.0 will be released within a week
  20. or two.
  21.  
  22. Barry Jaspan, bjaspan@athena.mit.edu
  23.  
  24. ---- snip snip ----
  25.  
  26. Kerberos Users' Frequently Asked Questions Version 0.0
  27. September 1, 1992
  28. Compiled by: Barry Jaspan, <bjaspan@athena.mit.edu>
  29.              Geer Zolot Associates
  30.  
  31.      Kerberos; also spelled Cerberus.  "n.  The watch dog of
  32.      Hades, whose duty it was to guard the entrance--against
  33.      whom or what does not clearly appear; .  . . is known to
  34.      have had three heads. . ."
  35.  
  36.         -Ambrose Bierce, The Enlarged Devil's Dictionary
  37.  
  38. This document answers Frequently Asked Questions about the Kerberos
  39. authentication system.  It is freely distributable.  Direct all
  40. responses and questions to bjaspan@athena.mit.edu.  Most of the
  41. information presented here has been collected from postings to the
  42. comp.protocols.kerberos newsgroup (gatewayed to the mailing list
  43. kerberos@athena.mit.edu) and in general credit has not been given;
  44. complain if you feel offended.
  45.  
  46. DISCLAIMER: Geer Zolot Associates makes no representations about the
  47. suitability of this information for any purpose.  It is provided "as
  48. is" without express or implied warranty.  In particular, this document
  49. is not intended as legal advice for exporting Kerberos, DES, or any
  50. other encryption software.
  51.  
  52. Release Notes: This is a "beta release" of the Kerberos FAQ.  The
  53. choice of questions was based on articles posted to the Kerberos
  54. mailing list starting January 1, 1992.  Please make suggestions and
  55. contribute any information that you can.  Version 1.0 will be released
  56. within a week or two.
  57.  
  58. Questions addressed in this release:
  59.     (a * indicates that no answer is currently available)
  60.  
  61. (1)    What is Kerberos?  What is it good for?
  62. (2)    Where can I get Kerberos version 4 or 5?
  63. (3)    What is the current status of version 4?
  64. (4)    What is the current status of version 5?
  65. (5)    Are version 4 and version 5 compatible?
  66. (6)    How/why is Transarc's Kerberos different from MIT Kerberos V4?
  67.     Can they interoperate?
  68. (7)*    How/why is OSF DCE Kerberos different from MIT Kerberos V5?
  69.     Can they interoperate?
  70. (8)    List references for Kerberos and network security in general.
  71. (9)    Can I use Kerberos for local password validation?
  72. (10)    What operating systems has Kerberos been ported to?
  73.     What vendors provide commercial support for Kerberos?
  74. (11)    What is the export status of Kerberos?
  75. (12)    What is Bones?  What is it for?
  76. (13)    How can I delete a principal from the database?
  77. (14)    What are the officially assigned Kerberos port numbers?
  78. (15)    Are there Kerberos versions of telnet and ftpd?
  79. (16)    Why doesn't KRB5_defs.h exist when I build version 5?
  80.  
  81. ----------------------------------------------------------------------
  82.  
  83. (1)    What is Kerberos?  What is it good for?
  84.  
  85. The following is an excerpt from [1]:
  86.  
  87.    Kerberos is a trusted third-party authentication service based on
  88.    the model presented by Needham and Schroeder.[3] It is trusted in
  89.    the sense that each of its clients believes Kerberos' judgement as
  90.    to the identity of each of its other clients to be accurate.
  91.  
  92. [This really isn't a very good description.]
  93.  
  94. It is important to realize that Kerberos is a one-trick pony.  It
  95. provides for mutual authentication between principals on an open
  96. network.  It does not provide a mechanism for authorization; that is
  97. left to the application.  It also does not provide password validation
  98. for individual workstations unless care is taken; see question 7.
  99.  
  100. (2)    Where can I get Kerberos version 4 or 5?
  101.  
  102. In the United States, Kerberos is available via anonymous FTP from
  103. athena-dist.mit.edu (18.71.0.38).  For specific instructions, obtain
  104. and read the README file in pub/kerberos (for version 4) and
  105. pub/kerberos5 (for version 5).  Note that *YOU WILL NOT BE ABLE TO
  106. RETRIEVE KERBEROS WITHOUT READING THIS FILE*.
  107.  
  108. Outside the United States, you can get Bones via anonymous ftp from
  109. ftp.funet.fi (128.214.6.100) in pub/unix/security/kerberos.  A DES
  110. library is available from the same place.  See question 11 for
  111. information on Bones.
  112.  
  113. (3)    What is the current status of version 4?
  114.  
  115. MIT Kerberos 4 is stable and more or less cast in stone; MIT is no
  116. longer putting any resources into its development.  From time to time
  117. minor bugs are reported; these may or may not be included in MIT's
  118. distribution.
  119.  
  120. Several vendors provide their own versions of Kerberos which may
  121. contain improvements or extensions; see question 8.
  122.  
  123. (4)    What is the current status of version 5?
  124.  
  125. A beta release of MIT Kerberos V5 is available; see question 2.  The
  126. release is a year old, however, and is somewhat out of date and not
  127. conformant with the latest protocol specification.  The next beta
  128. release was scheduled for the end of July; obviously, it's late.
  129.  
  130. [What is the status of DCE Kerberos?]
  131.  
  132. (5)    Are version 4 and version 5 compatible?
  133.  
  134. No.  Versions 4 and 5 are based on completely different protocols.
  135. The MIT Kerberos V5 distribution contains some compatibility code,
  136. however: (a) there is a library which converts Kerberos V4 library
  137. calls into Kerberos V5 requests, so you can run many V4 programs in a
  138. V5 environment by relinking; (b) the Kerberos server can optionally
  139. service V4 requests; (c) there is a program to convert a V4 format
  140. Kerberos database to a V5 format database.  The names used by the V5
  141. library have a prefix "krb5_" so they do not conflict with the V4
  142. library.
  143.  
  144. (6)    How/why is Transarc's Kerberos different from MIT Kerberos V4?
  145.     Can they interoperate?
  146.  
  147. Transarc's AFS Kerberos and MIT Kerberos V4 use the same protocol and
  148. can therefore, in principal, talk to each other.  There are a few
  149. caveats, however.
  150.  
  151. The two versions use a different string-to-key function (the algorithm
  152. that turns a password into a DES key); the AFS version uses the realm
  153. name as part of the computation while the MIT version does not.  A
  154. program that uses a password to acquire a ticket granting ticket (e.g.
  155. kinit or login) will only work with one version.
  156.  
  157. The two versions also use a different method of finding Kerberos
  158. servers.  MIT Kerberos uses /etc/krb.conf and /etc/krb.realms to map
  159. hostnames to realms and realms to Kerberos servers.  AFS kaservers for
  160. a realm, by definition, are located on the AFS database servers and
  161. can therefore be located using /usr/vice/etc/CellServDB.  This means
  162. that a program built using the MIT Kerberos libraries will look in one
  163. place for the information while a program built using the AFS Kerberos
  164. libraries will look in another.  You can certainly set up all three
  165. files and use both libraries, but be sure that everything is
  166. consistent.
  167.  
  168. So, in summary, AFS Kerberos and MIT Kerberos can interoperate once
  169. you've acquired a ticket granting ticket, which you can do with kinit
  170. (MIT) or klog with the -tmp option (AFS).  With a tgt, Kerberos
  171. programs such as rlogin can talk to an MIT or AFS Kerberos server and
  172. achieve correct results, assuming the libraries it is built with can
  173. locate an appropriate Kerberos server.
  174.  
  175. (7)*    How/why is OSF DCE Kerberos different from MIT Kerberos V5?
  176.     Can they interopate?
  177.  
  178. (8)    List references for Kerberos and network security in general.
  179.  
  180. See the bibliography at the end of this document.
  181.  
  182. (9)    Can I use Kerberos for local password validation?
  183.  
  184. Yes, but only under certain circumstances and only if you are
  185. careful.
  186.  
  187. Requests for Kerberos ticket granting tickets (tgts) (e.g. from kinit
  188. or login) are sent in plaintext to the Kerberos server, which then
  189. responds with credentials encrypted in the requesting principal's
  190. secret key.  The program then attempts to decrypt the data with the
  191. supplied password and considers the authentication "successful" if the
  192. decryption appears to yield meaningful results (such as the correct
  193. principal name).
  194.  
  195. The problem here is that the requesting program cannot know for sure
  196. whether the decryption succeeded or, more importantly, whether the
  197. response actually came from the Kerberos server.  An attacker could,
  198. for example, walk up to an unattended machine and "log in" as a
  199. non-existent user.  Kerberos will eventually respond with an
  200. appropriate error, but the attacker can arrange for another program to
  201. deliver a fake response to login first; he then types the correct
  202. password (which he knows because he created the fake response in the
  203. first place) and succeeds in spoofing login.
  204.  
  205. The solution to this problem is for login to verify the tgt by using
  206. it to acquire a service ticket with a known key and comparing the
  207. results.  Typically, this means requesting an rcmd.<hostname> ticket,
  208. where <hostname> is the local hostname, and checking the response
  209. against the key store in the machine's /etc/srvtab file.  If the keys
  210. match then the original tgt must have come from Kerberos (otherwise
  211. the TGS would not have issued the service ticket), and login can allow
  212. the user to log in.
  213.  
  214. The solution works only so long as the host has a srvtab containing an
  215. rcmd.<hostname> (or any other standard principal) entry.  This is fine
  216. for physically secure or single-user workstations, but does not work
  217. on public workstations in which anyone could access the srvtab file.
  218.  
  219. (10)    What operating systems has Kerberos been ported to?
  220.     What vendors provide commercial support for Kerberos?
  221.  
  222. The following port survey is compiled from data obtained from the
  223. first SF Bay Area Kerberos User Group meeting, plus additional
  224. information obtained from other sources. Corrections and additions
  225. welcomed (to edwardsg@iscnvx.is.lmsc.lockheed.com and/or
  226. kerberos@lmsc.lockheed.com).  Note that this is guaranteed to be
  227. incomplete and out of date and almost certainly contains errors.
  228.  
  229.          Kerberos Port Survey - 17 June 1992
  230.  
  231. 5 - Kerberos v5 port done 
  232. D - DCE version of Kerberos done
  233. d - DCE version of Kerberos being ported or planned
  234. 4 - K4 port done, works
  235. p - porting or planned port of version 4
  236. - - no product here
  237.  
  238. who        c  f  m  o  p  r  t  w  z  ?
  239. AIX 3.2        4  -  -  4  -  -  -  -  -  -
  240. Cisco        -  -  -  -  -  -  -  -  p  -
  241. Convex        -  -  -  -  -  -  -  -  -  -  LMSC partial port
  242. Cray            -  -  -  -  -  -  -  -  -  -  LLNL partial port, LMSC porting
  243. DECstation      4  -  -  -  -  -  -  -  -  -
  244. HP        -  -  -  -  -  -  -  -  -  d
  245. Intel Sv.4    -  -  -  -  -  -  -  -  -  d
  246. Mac 6.x        p  -  -  4  -  -  -  -  -  -
  247. Mac 7.x        p  -  -  4  -  -  -  -  -  -
  248. MsDos            -  4  -  4  -  -  -  -  -  -
  249. MVS        -  -  -  p  -  -  -  -  4d -
  250. NeXT        -  -  -  4  -  -  -  -  -  -
  251. Novell          -  -  -  p  -  -  -  -  d  -
  252. Pyramid            -  -  -  -  -  -  -  -  p  -
  253. Sequent        -  -  -     p  -  -  -  -  -  -
  254. SGI Irix 4.0.3    4  -  -  -  -  -  -  -  -  p Sandia port
  255. Solaris 2.0    p  -  -  -  -  -  -  -  d  -
  256. SunOS 4.0.1    4  -  4  4  -  -  -  -  -  -  
  257. SunOS 4.1    4  -  4  4  -  -  -  -  -  -  
  258. Ultrix 4.1    4  -  -  -  -  -  -  -  4  -  
  259. VM        -  -  -  -  -  -  -  -  d  -
  260. VMS        -  -  -  -  4d -  4  4  -  -
  261. Win3.1          -  -  -  -  -  -  -  -  -  p
  262. Xyplex        -  -  -  -  -  -  -  -  4  -
  263. who        c  f  m  o  p  r  t  w  z  ?
  264.  
  265. c --> Cygnus Support /Steve Wilson 415/322-3811 swilson@cygnus.com
  266. f --> FTP Software  /Kristine Kilduff 617/246-0900 kpk@ftp.com
  267. m --> MIT release
  268. o --> Open Computing Security Group  /Michael Evans 206/883-8721
  269. p --> Project Pilgrim  /Art Gaylord 413/545-2420 art@cs.umass.edu
  270. r --> Cisco Routers & Bridges
  271. t --> TGV  /S. Vance 800/tgv-3440 vance@tgv.com
  272. w --> Wollengong (sp)
  273. x --> Xyplex (terminal server)
  274. z --> Product for one OEM/self
  275.  
  276. Rumored ports by:
  277.   Gradient Technologies
  278.   Transarc - makes DCE developers kits
  279.   Security Dynamics ?
  280.  
  281. (11)    What is the export status of Kerberos?
  282.  
  283. There is a tremendous amount of confusion on this topic.
  284.  
  285. In general, the COCOM treaty, signed by twenty or so countries
  286. including the United States, says that all cryptographic material will
  287. be treated as munitions.  This means that these countries treat
  288. exporting DES the same way they would treat exporting weapons, fighter
  289. planes, and other nasty stuff.  You cannot export such materials to
  290. any other country without an export license.
  291.  
  292. However, it *is* possible to get an export license for Kerberos (DEC
  293. apparently has one for ULTRIX) provided it is hacked up in the correct
  294. way.  The correct way appears to include making it impossible to
  295. perform encryption on arbitrary user data; authentication is okay, but
  296. secrecy is not.  Since the Kerberos API provides this functionality,
  297. it must be carefully removed before an export license will be granted.
  298.  
  299. Of course, I am not a lawyer; this information is merely a collection
  300. of what others (who are also not lawyers) have said and should not be
  301. interpreted as legal advice.  If anyone out there has firm legal
  302. advice, feel free to contribute it.
  303.  
  304. (12)    What is Bones?  What is it for?
  305.  
  306. Bones is a system that provides the Kerberos API without using
  307. encryption and without providing any form of security whatsoever.  It
  308. is a fake that allows the use of software that expects Kerberos to be
  309. present when it cannot be.
  310.  
  311. Why does it exist?  Kerberos is a network security system which relies
  312. on cryptographic methods for its security.  Since Kerberos' encryption
  313. system, DES, is not exportable, Kerberos itself cannot be exported or
  314. used outside of the United States in its original form.
  315.  
  316. As a partial solution to this problem, the Kerberos source code was
  317. modified by the addition of #ifdef NOENCRYPTION around all calls to
  318. DES functions.  Compiling this version with the symbol NOENCRYPTION
  319. defined results in a system that looks like Kerberos from an
  320. application's point of view but that does not require DES libraries
  321. (and, as a result, does not speak the real Kerberos protocol and does
  322. not provide any security).
  323.  
  324. The final piece in this puzzle is a program called "piranha" which
  325. takes the Kerberos sources and removes all of the calls to the
  326. encryption routines, replacing it with the code which was under #ifdef
  327. NOENCRYPTION, producing the system known as Bones.  Bones has the
  328. property that there is absolutely no question about whether or not it
  329. is legal to transport its sources across national boundaries, since it
  330. neither has any encryption routines nor any calls to encryption
  331. routines.
  332.  
  333. #ifdef NOENCRYPTION was not documented, and it was only intended to be
  334. used in the above manner.  Someone who tries compiling Kerberos with
  335. that #define has in some sense "voided the warranty", and will get
  336. something which is both (a) not secure and (b) not Kerberos.
  337.  
  338. (13)    How can I delete a principal from the database?
  339.  
  340. MIT Kerberos V4 does not include a single command to delete a Kerberos
  341. principal.  This was an intentional omission based on the assumption
  342. that by making deletion difficult, accidents were less likely to
  343. happen.  If you want to delete a principal, do "kdb_util dump", edit
  344. the ASCII dump with an editor, and do a "kdb_util load".  Obviously,
  345. you can write a shell script to make this more convenient.
  346.  
  347. Kerberos V5's admin tools have a simple delete request.
  348.  
  349. (14)    What are the officially assigned Kerberos port numbers?
  350.  
  351. The file src/prototypes/services.append in the MIT Kerberos
  352. distribution contains the commonly used port assignments.  This file
  353. is not the whole story, however.
  354.  
  355. "kerberos" has officially been moved to port 88, although people will
  356. have to listen on port 750 for some time to come, and assume
  357. that many servers won't be converted to listen to port 88 for some
  358. time.
  359.  
  360. "kerberos_master" and "krb_prop" have not been reserved, but they are
  361. only used for intra-site transactions so having them reserved probably
  362. isn't necessary.  Furthermore, both of their port numbers have already
  363. been assigned to other services, so requesting an official assignment
  364. will force them to change.
  365.  
  366. "eklogin", "kpop", and "erlogin" have not been officially reserved,
  367. but probably should be.  Their ports are not currently assigned to
  368. other services, so hopefully they will not have to change if an
  369. official assignment is requested.
  370.  
  371. (15)    Are there Kerberos versions of telnet and ftpd?
  372.  
  373. A Kerberos telnet is available via anonymous ftp from ftp.uu.net, in
  374. /networking/telnet.91.03.25.tar.Z.  There is also a Kerberos telnet in
  375. the V5 distribution which is based on the 4.4BSD telnet/telnetd.
  376.  
  377. A distributable Kerberos version of ftpd does not appear to exist.
  378.  
  379. (16)    Why doesn't KRB5-types.h exist when I build version 5?
  380.  
  381. There's a bug in Sun's imake/cpp setup, so the Makefile that is
  382. generated in lib/asn.1 is broken.  KRB5-types.h is generated by the
  383. ISODE program pepsy; look in the makefile just before pepsy is called.
  384. It's fairly obvious where a tab character is missing.
  385.  
  386. ----------------------------------------------------------------------
  387.  
  388. BIBLIOGRAPHY
  389.  
  390. The FTP site for a reference, when known, is listed in square brackets
  391. following the entry.  Yes, I know that these are not in Officially
  392. Blessed Bibliography Format.  Sue me.
  393.  
  394. [1] Jennifer G. Steiner, Clifford Neuman, Jeffrey I. Schiller.  Usenix
  395. paper "Kerberos: An Authentication Service for Open Network Systems",
  396. 3/30/88.  [athena-dist.mit.edu:pub/kerberos/doc/usenix.PS]
  397.  
  398. [2] S. P. Miller, B. C. Neuman, J. I. Schiller, and J. H. Saltzer,
  399. "Kerberos Authentication and Authorization System", 12/21/87.
  400.  
  401. [3] R. M. Needham and M. D.  Schroeder, "Using Encryption for
  402. Authentication in Large Networks of Computers," Communications of the
  403. ACM, Vol.  21(12), pp. 993-999 (December, 1978).
  404.      
  405. [4] V. L. Voydock and S. T. Kent, "Security Mechanisms in High-Level
  406. Network Protocols," Computing Surveys, Vol.  15(2), ACM (June 1983).
  407.  
  408. [5] Li Gong, "A Security Risk of Depending on Synchronized Clocks",
  409. Operating Systems Review, Vol 26, #1, pp 49--53.
  410.  
  411. [6] S.M. Bellovin and M. Merritt, "Limitations of the Kerberos
  412. Authentication System," Computer Communications Review 20(5), pp.
  413. 119-132 (October 1990).  [research.att.com:dist/kerblimit.usenix.ps]
  414.  
  415. [7] Refik Molva, Gene Tsudik, Els Van Herreweghen, and Stefano Zatti,
  416. "KryptoKnight Authentication and Key Distribution System."
  417. [jerico.esc.edu:pub/gene/kryptoknight.ps.Z]
  418.  
  419.