home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / infosyst / gopher / 1314 < prev    next >
Encoding:
Text File  |  1992-11-23  |  5.2 KB  |  97 lines

  1. Newsgroups: comp.infosystems.gopher
  2. Path: sparky!uunet!news.uiowa.edu!tinyblue.cs.uiowa.edu!lbrintle
  3. From: lbrintle@tinyblue.cs.uiowa.edu (Lee Brintle)
  4. Subject: Security and Gopher+ (Authentication)
  5. Sender: news@news.uiowa.edu (News)
  6. Message-ID: <1992Nov23.223107.5119@news.uiowa.edu>
  7. Date: Mon, 23 Nov 1992 22:31:07 GMT
  8. Reply-To: Lee-Brintle@uiowa.edu (Lee Brintle)
  9. Nntp-Posting-Host: tinyblue.cs.uiowa.edu
  10. Organization: Project Panda, Iowa City, IA, USA
  11. Lines: 84
  12.  
  13.    Right now, the only security or authentication system gopher has is the
  14. ability to lock out certain machines from using resources.  For items like
  15. Clarinet news, this serves the needs well (there are exceptions).
  16.    However, many times distribution of information needs to be limited to a
  17. finer granularity than machine names (such as particular people who are all
  18. using the same machine) or the machine name doesn't identify the users very
  19. well (such as a public-access system).
  20.    We have been experimenting with various means of adding authentication and
  21. security onto the Gopher+ protocol.  Our work has been primarily with the
  22. Bamboo authentication system, but can easily be extended to include other
  23. systems, such as Kerberos.  We've just been fiddling around, trying to find
  24. a good solution.  What follows is just what we've hit so far; it's not formal
  25. enough for an official proposal or anything like that.  Comments are what we
  26. need at this point.
  27.  
  28.  
  29. * Enhancement Needed *
  30.    An enhancement to the Gopher+ protocol allows the server to verify the
  31. identity of the recipient.  The server can then choose to send the actual
  32. data encrypted (if it is feared that the network will be tapped) or sent
  33. in plaintext (if all that was needed was verification of the user's identity).
  34.    There were two main areas that we felt the authentication loop could
  35. be inserted:
  36.    o At menu-retrieve time.  The fact that a particular form of authentication
  37. is needed would be transmitted to the client in the data following the port
  38. number (the "plus" part of Gopher+).  We didn't explore this area too well 
  39. because of problems associated with trying to establish a session key.  If you
  40. are interested, we can share our experiences with you.
  41.    o When the document would normally be transmitted.  In order to make the
  42. server work with generic Gopher+ clients, the following describes a retrieval
  43. of a "secure" file from the gopher server:
  44.   Client:  bar selector#+
  45.   Server:  --1<CRLF>??? D32J1KC9QHND Bamboo|Kerberos Authentication
  46.                              required for server <servername><CRLF>.<CRLF>
  47.  
  48.    At this point, a non-modified Gopher+ client would see the error and report
  49. it, closing the connection. However, an authentication-aware client would
  50. read the response as "You cannot have the file yet; however, if you 
  51. authenticate yourself with me using either the Bamboo or Kerberos protocols,
  52. you may retrieve this file."  The authentication-aware client then goes into
  53. "normal" authentication negotiation with the Gopher+ server in order to verify
  54. identity.  After the negotiation, the client and server start over again with
  55. the appropriate Gopher responses.
  56.  
  57.    The "???" after the error is a magic cookie that authentication-aware
  58. clients look for in order to indicate that the server is trying to
  59. authenticate the connection.
  60.    The next word following the "???" is information needed by the 
  61. authentication protocol in order to establish a connection.  For example, 
  62. with Bamboo it is a 12-character uuencoded representation of an 8-character
  63. 8-bit string.  
  64.    The next part of the response is a "|"-delimited list of authentication
  65. protocols that the server supports, listed in the preferred order of the 
  66. server (there are at least four I know of).
  67.    The remainder of the message is human-readable, for non-aware clients, 
  68. with the exception of the data between the angle brackets.  The information
  69. within those brackets is the server's name, which is needed for some protocols
  70. (and does not have to be the same as the machine name, for obvious reasons).
  71.  
  72.    During testing, we also send (on additional lines) what stream cipher
  73. schemes the server supports for sending back private data.  The client selects
  74. one of those schemes (depending on how fast the client is and what was
  75. programmed into the client when it was written).  However, this is confusing
  76. enough so I'll leave that out for now.
  77.  
  78.    I know that sticking in a "special" response code into the failure 
  79. condition is a hairball, but it's the only way I could see to make existing
  80. Gopher+ clients handle this correctly with an error.  
  81.  
  82.    Yes, I know this means that there is a small amount of state involved with
  83. the Gopher server as authentication is negotiated; however, it's required if
  84. you wish to use really secure authentication measures, and it adds very little
  85. real complexity to the server (the state manager, that is; the authentication
  86. part of course adds a lot).
  87.  
  88.    I would appreciate any comments on how this modification looks to you.  
  89. I know that people have been struggling with adding Kerberos to Gopher for
  90. quite some time, and so far we've had pretty good results (of course, we're
  91. not using it in production yet, so take that with a grain of salt).
  92.  
  93.  
  94.  
  95. Lee Brintle                       | ``And so, I leave you with this final word:
  96. Director, Project Panda           |                  twang.''
  97.