home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Unix / skey / README
Encoding:
Text File  |  1993-11-02  |  11.2 KB  |  298 lines

  1. S/KEY One-Time Password System (Version 1.1 11-01-03)
  2.  
  3.  
  4. Authors
  5. -------
  6.   
  7.    Neil M. Haller    nmh@thumper.bellcore.com
  8.    Philip R. Karn    karn@chicago.qualcomm.com
  9.    John S. Walden       jsw@thumper.bellcore.com
  10.    Scott Chasin         chasin@crimelab.com
  11.  
  12.  
  13. Archive Contents Listing
  14. ------------------------
  15.  
  16.    src        - Sources for the S/Key system (key, keyinit, keysh, libskey.a)
  17.    man        - Man pages for the S/Key tools
  18.    tools        - S/Key tools
  19.    misc        - Miscellaneous S/Key support programs (login, su, ftpd)
  20.    
  21.  
  22. S/Key anonymous FTP archive sites
  23. ---------------------------------
  24.  
  25.    thumper.bellcore.com [128.96.41.1]   Directory: /pub/nmh
  26.    crimelab.com [198.64.127.1]          Directory: /pub/skey
  27.  
  28.    Both archive sites contain "key" binaries for DOS, MSWINDOWS,
  29.    MAC, and various UNIX flavors.
  30.  
  31. S/Key mailing list
  32. ------------------
  33.  
  34. We have established a mailing list to be used for S/Key announcements,
  35. Bug reporting, and for any general discussion of S/Key system.
  36.  
  37. To get added or deleted from this list, send mail to:
  38.  
  39.         skey-users-request@thumper.bellcore.com
  40.  
  41. To send to the list, send mail to:
  42.  
  43.         skey-users@thumper.bellcore.com
  44.  
  45. Please do not send add/delete requests to the entire list.
  46.  
  47.  
  48. Description of The S/KEY One-Time Password System
  49. -------------------------------------------------
  50.   
  51. The S/KEY one-time password system provides authentication over networks
  52. that are subject to eavesdropping/reply attacks. This system has several
  53. advantages compared with other one-time or multi-use authentication
  54. systems.  The user's secret password never crosses the network during
  55. login, or when executing other commands requiring authentication such as
  56. the UNIX passwd or su commands.  No secret information is stored anywhere,
  57. including the host being protected, and the underlying algorithm may be
  58. (and it fact, is) public knowledge. The remote end of this system can run
  59. on any locally available computer.  The host end could be integrated into
  60. any application requiring authentication.
  61.  
  62.  
  63. Attributes of the S/KEY One-Time Password System
  64. ------------------------------------------------
  65.  
  66. The S/KEY authentication system is a simple scheme that protects user
  67. passwords against passive attacks.  It is not as powerful or general in
  68. scope as Kerberos or SDASS; nor does it protect against active attacks.
  69. It can, however, be easily and quickly added to almost any UNIX system
  70. without requiring any additional hardware and without requiring the
  71. system to store information (such as plain text passwords) that would
  72. be more sensitive than the encrypted passwords already stored.  The
  73. S/KEY system can be used with non programmable terminals or personal
  74. computers (e.g., systems running DOS or Apple Macintoshes) with
  75. conventional communications programs.
  76.  
  77. Some of the properties of the S/KEY system are:
  78.  
  79.    o    Eavesdropping protection
  80.  
  81.    o    Conceptually simple and easy to use
  82.  
  83.    o    Based on a memorized secret password; does not require a
  84.     special device although it can easily be adapted to do so.
  85.  
  86.    o    Can be automated for authentication from a trusted system.
  87.     (Can also be partially automated for fast operation.)
  88.  
  89.    o    No secret algorithms.
  90.  
  91.    o    No secrets stored on host.
  92.  
  93.  
  94.  
  95. Description of the S/KEY One-Time Password System
  96. -------------------------------------------------
  97.  
  98. There are two sides to the operation of our one-time password system.
  99. On the user (or client) side, the appropriate one-time password must
  100. be generated.  On the system (server) side, the one-time password must
  101. be verified.  One time passwords are generated and verified using a
  102. one-way function based on MD4 [Rivest].  (Conversion to MD5 would be
  103. trivial)  
  104.  
  105. We have defined our one-way function to take 8 bytes of input and to
  106. produce 8 bytes of output.  This is done by running the 8 bytes of
  107. input through MD4 and then "folding" pairs of bytes in the 16-byte MD4
  108. output down to 8 bytes with exclusive-OR operations.  This allows us to
  109. apply the one-way function an arbitrary number of times.
  110.  
  111.  
  112. Generation of One-Time Passwords 
  113.  
  114. The sequence of one-time passwords is produced by applying the one-way
  115. function multiple times.  That is, the first one-way password is
  116. produced by running the user's secret password (s) through the one-way
  117. function some specified number of times, (n).  Assuming n=4,
  118.  
  119.             p(1) =  f(f(f(f(s))))
  120.  
  121. The next one-way password is generated by running the user's password
  122. through the one-way function only n-1  times.
  123.   
  124.             p(2) = f(f(f(s))) 
  125.  
  126. An eavesdropper who has monitored the use of the one-time password  
  127. p(i) will not be able to generate the next one in the sequence p(i+1)
  128. because doing so would require inverting the one-way function. Without
  129. knowing the secret key that was the starting point of the function
  130. iterations, this can not be done.
  131.  
  132. Seeding the Password
  133.  
  134. A user might want to use the same secret password on several machines,
  135. or might allow the iteration count to go to zero.  An initial step
  136. concatenates a seed with the arbitrary length secret password, crunches
  137. the result with MD4, and folds the result to 64 bits.  The result of
  138. this process is then iterated n times.
  139.  
  140.  
  141. System Verification of Passwords 
  142.  
  143. The host computer first saves a copy of the one-time password it
  144. receives, then it applies the one-way function to it.  If the result
  145. does not match the copy stored in the system's password file, then the
  146. request fails.  If they match, then the user's entry in the system
  147. password file is updated with the copy of the one-time password that
  148. was saved before the final execution (by the server) of the one-way
  149. function.  This updating advances the password sequence.
  150.  
  151. Because the number of one-way function iterations executed by the user
  152. decreases by one each time, at some point the user must reinitialize the
  153. system or be unable to log in again.  This is done by executing a
  154. special version of the passwd command to start a new sequence of
  155. one-time passwords.  This operation is essentially identical to a
  156. normal authentication, except that the one-time password receive
  157. over the network is not checked against the entry already in the
  158. password file before it replaces it. In this way, the selection of a
  159. new password can be done safely even in the presence of an eavesdropper.
  160.  
  161.  
  162. Operation of S/KEY One-Time Password System
  163. -------------------------------------------
  164.  
  165. Overview 
  166.  
  167. The S/KEY one-time password authentication system uses computation to
  168. generate a finite sequence of single-use passwords from a single secret.
  169. The security is entirely based on a single secret that is known only to
  170. the user. Alternatively, part of or the entire secret can be stored in a
  171. non-retrievable way, in the computing device.
  172.  
  173.  
  174. Generation of S/KEY One-Time Passwords 
  175.  
  176. As mentioned above, the one-time password sequence is derived from the
  177. secret password using a computer.  The required computation has been
  178. executed on a variety of PC and UNIX class machines including notebook
  179. and palm-tops. A vendor has estimated that credit card size devices
  180. could be built for less than $30 in large quantities.
  181.  
  182. The program can also be stored on and executed from a standard floppy
  183. disk.  This would allow operation on a remote computer that could not be
  184. entirely trusted not to contain a Trojan Horse that would attempt
  185. to capture the secret password.  It is sometimes useful to pre-compute
  186. and print several one-time passwords.  These could be carried on a trip
  187. where public terminals or workstations were available, but no trusted
  188. local computation was available. 
  189.  
  190.  
  191. Description of Operation 
  192.  
  193. The following narrative describes the procedure for logging into a UNIX
  194. system using the S/KEY one-time password system.  To illustrate the
  195. most complex case, we assume a hand-held PC compatible computer is used.
  196.  
  197.   o  The user, call her Sue, identifies herself to the system by login name.
  198.  
  199.   o  The system issues a challenge including the sequence number of the
  200.      one-time password expected and a "seed" that is unique to the system.
  201.      This "seed" allows Sue to securely use a single secret for several
  202.      machines.  Here the seed is "unix3" and the sequence number is 54.
  203.  
  204.   o  Sue enters 54 and unix3 into her palm-top computer.  She is prompted
  205.      for her secret password.
  206.  
  207.   o  Sue enters her secret password that may be of any length.  The palm-top
  208.      computes the 54th one-time password and displays it.
  209.  
  210.   o  Sue enters the one-time password and is authenticated.
  211.  
  212.   o  Next time Sue wants access, she will be prompted for one-time
  213.      password sequence number 53.
  214.  
  215.  
  216. Semi-Automated Operation 
  217.  
  218. The complexity illustrated above is necessary only when using a terminal
  219. that is not programmable by the user, or when using a non-trusted
  220. terminal.  We have built semi-automatic interfaces for clients using
  221. communications software on popular personal computers.  The following
  222. example illustrates logging in using a trusted personal computer and a
  223. popular terminal emulation program.
  224.  
  225.   o  Before starting the communication program, Sue runs the CTKEY
  226.      program that ties a TSR to a "hot-key" such as F10.
  227.  
  228.   o  Sue identifies herself by login name as above.
  229.  
  230.   o  The system issues the same challenge including the seed "unix3"
  231.      and the sequence number 54.  The host system now expects an
  232.      s/key one-time password.
  233.  
  234.   o  Sue presses the hot-key and is then prompted for a secret password
  235.      by the TSR program on the local system.
  236.  
  237.   o  In response to Sue's secret password, the 54th one-time password
  238.      is displayed at the position of the cursor.
  239.  
  240.   o  Sue presses "Insert" and the terminal emulator transmits the
  241.      one-time password completing the authentication.
  242.  
  243. If the personal computer were in a trusted location, an option of the
  244. CTKEY program allows the secret password to be stored in a local file.
  245.  
  246.  
  247. Form of Password 
  248.  
  249. Internally the one-time password is a 64 bit number.  Entering a 64 bit
  250. number is not a pleasant task.  The one-time password is therefore
  251. converted to a sequence of six short words (1 to 4 letters). Each word
  252. is chosen from a dictionary of 2048 words.  The contents of this
  253. dictionary is not a secret.
  254.  
  255.  
  256. Acknowledgments
  257. ---------------
  258. The idea behind our system was originally described by Leslie Lamport. 
  259. Some details of the design were contributed by John S. Walden who
  260. wrote the initial version of the client software.
  261.  
  262.  
  263. Trademarks
  264. ----------
  265.    Athena and Kerberos of trademarks of MIT.
  266.    S/KEY is a trademark of Bellcore.
  267.    SPX and DEC are trademarks of Digital Equipment Company.
  268.    UNIX is a registered trademark of UNIX System Laboratories, Inc.
  269.  
  270.  
  271. References
  272. ----------
  273.  
  274. Eugene H. Spafford, "The internet worm program: An analysis."  Computer
  275. Communications Review 19(1):17-57, January 1989.
  276.  
  277.  
  278. D. C. Feldmeier and P. R. Karn, "UNIX Password Security - Ten Years
  279. Later", Crypto '89 Conference , Santa Barbara, CA August 20-24, 1989.
  280.  
  281.  
  282. J. G. Steiner, C. Neuman, and J. I. Schiller. "Kerberos: An
  283. authentication service for open network systems."   USENIX Conference
  284. Proceedings, pp. 191-202, Dallas, Texas, February 1988.
  285.  
  286.  
  287. Catherine R. Avril and Ronald L. Orcutt. Athena: MIT's Once and
  288. Future Distributed Computing Project.  Information
  289. Technology Quarterly , Fall 1990, pp. 4-11.
  290.  
  291.  
  292. R. L. Rivest, The MD4 Message Digest Algorithm,  Crypto '90 Abstracts
  293. (August 1990), 281-291.
  294.  
  295.  
  296. Leslie Lamport, "Password Authentication with Insecure Communication",
  297.  Communications of the ACM  24.11 (November 1981), 770-772.
  298.