rfc2378.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,236 行 · 第 1/3 页

TXT
1,236
字号
   mail.

   The specific (username, host) pair to where a user's mail should be
   sent for final delivery is stored in the field named by {mailbox}.
   Phquery and like utilities will use this field.

   To construct a useable email address from Nameserver information, the
   algorithm below is followed:

        if ({maildomain} is not null) then
             address = (contents of {mailfield})@{maildomain}
        else
             address = (contents of {mailfield})

   Some existing client software will not format email addresses
   correctly if the value of {mailbox} is set to anything other than
   "email" when {maildomain} is non-empty.

   If {mailbox} is set to anything other than {email}, {maildomain} must
   be reported empty by the siteinfo command.  Also reformatting of each
   record's {mailfield} must be done by the server before reporting it
   to the client.

3.3.  fields

   fields [field ...]

   Without an argument, a list of all available field descriptors should
   be delivered.  Any space-separated argument(s) restricts the list to
   the named fields.  Fields marked with the "LocalPub" keyword (section
   1.1.1) should not be delivered outside of the local domain.






Hedberg & Pomes              Informational                      [Page 8]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


   The output of the command consists of two lines describing each
   field.  The first line defines the field in technical terms (max
   length and field attributes), while the second line is a brief
   description of what the field is intended to    hold.  The second
   number of each response is the field id number.

      C: fields
      S: -200:6:alias:max 32 Indexed Lookup Public Default
      S: -200:6:alias:Unique name for user.
      S: -200:3:name:max 64 Indexed Lookup Public Default
      S: -200:3:name:Fullname
      S: -200:2:email:max 128 Lookup Public Default
      S: -200:2:email:Account to receive electronic mail.
      S: -200:16:other:max 256 Lookup Public Default Change
      S: -200:16:other:Other info the user finds important.
      S: -200:33:home_phone:max 60 Lookup Public Change Turn
      S: -200:33:home_phone:Home telephone number.
      S: 200:Ok.

3.4.  id

   id information

   Enters the given information in the Nameserver's log.  This command
   is used by the Ph client to enter the user id of the person running
   it.

3.5.  set

   set [option[=value] ...]

   Sets the named option for this nameserver session to a value.  The
   default string "on" is used if no value is supplied.  Used without
   arguments it return the settable options and their current value.
   Some common options are

   echo      If on, echo the client's commands back to the client.
   limit     Changes that affect more than the specified number of
                entries results in an error.
   charset   Return responses to the client in the character set
                specified.
   verbose   If on, report interim progress messages to the client.
   addonly   If on, change commands can only create fields in entries,
                not modify them.
   nolog     If on, disable logging.
   external  If on, make Fields marked as "LocalPub" invisible.





Hedberg & Pomes              Informational                      [Page 9]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


   Example

      C: set verbose=off
      S: 200:Done.

      C: set
      S: -200:echo:off
      S: -200:limit:2
      S: -200:charset:iso-8859-1
      S: -200:verbose:off
      S: -200:addonly:off
      S: -200:nolog:off
      S: -200:external:on
      S: 200:Done.

3.6.  login, logout, answer, clear, email, and xlogin

3.6.1.  login

   login [alias]

   The "login" command allows client users to identify themselves to the
   Nameserver. More specifically it identifies a client user with a
   particular entry in the Nameserver and allows them to change fields
   in that entry and possibly other entries.  It is also necessary to be
   logged in to the Nameserver to view certain sensitive fields in the
   user's own entry.

   In order to use the "login" command the client must prompt the user
   for their ph alias and password.  The client is then responsible for
   (optionally) encrypting the password and sending it to the server.
   This will be covered in sections 3.6.3 (answer) and 3.6.4 (clear).

      C: login foo
      S: 301:,:P"_Y$ONU%"SDUQ6&^`ZZ'?*#Y`A_.Z/A>?@SH>*-

3.6.2.  logout

   logout

   The "logout" command allows a user who is logged in to the Nameserver
   to logout.

      C: logout S: 200:Ok.







Hedberg & Pomes              Informational                     [Page 10]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


3.6.3.  answer

   answer encrypted-response

   In response to the login command, the Nameserver responds with a
   random challenge string.  The Nameserver client encrypts the
   challenge with the password supplied by the user, uuencodes the
   result into US-ASCII, and returns the printable result in the
   "answer" command:

   C: login ppomes
   S: 301:.%$&.D^67$*1?<.2S@DR:Z@M*)AV-<:4QM>#R>M*HT
   C: answer M5K'F:NI(a?M?O2+-a9`48RA#ZF=L9)G)/XRS7Q^0>0@-R7X$WGb`50B]
   S: 200:ppomes:Hi how are you?

   The encryption algorithm is based on a three rotor Enigma engine.
   There are known attacks on the security of this approach.

   The answer command is also used to return method-specific responses
   to the xlogin command (section 3.6.6).

3.6.4.  clear

   clear cleartext-password

   The "clear" command can be used instead of the "answer" command to
   complete a login sequence.  It's argument is the user's cleartext
   password.  This command is supplied only to support those clients
   that have not implemented one of the encryption engines used by the
   "answer" command.  It's use is strongly discouraged.

      C: login ppomes
      S: 301:E=@Y&VW^_9YVI;D5.[EB0:B)9Z#_&X$:2)/eL$VJC87
      C: clear MySecret
      S: 200:ppomes:Hi how are you?

3.6.5.  email

   email local-userid

   The "email" command can also be used instead of the "answer" command
   to complete a login sequence.  The value of local-userid is the
   user's login name on the local machine.  If all of the following
   conditions are true, then the email command will be accepted by the
   server:






Hedberg & Pomes              Informational                     [Page 11]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


   1) The connection to the server originates on port 1023 or less on
      the client.  Note: This is a system port.  Port 1023 is not
      allocated to this use.

   2) The canonical name of the client's host matches the right-hand
      side of the email address of the requested alias specified in the
      "login" command.

   3) The "local-userid" matches the left-hand side of the email
      address belonging to the requested alias.

   This is a weak but convenient form of authentication.  Depending on
   the information users are allowed to change about themselves and the
   threat environment the server operates in, this method may be
   appropriate.  Servers should take care to avoid DNS spoofing.

3.6.6.  xlogin

   xlogin option alias

   Extended login command for GSS, Kerberos v4 and v5, ANSI X9.9 token
   devices (e.g., SNK/4), etc. The option is one of the values returned
   in the Authenticate field of the "siteinfo" command (section 3.2).
   Alias is the user's alias.

      C: xlogin 16 ppomes
      S: 301:DoKrbLogin started; send Kerberos mutual authenticator.
      C: answer MJa8QO1cJHYz2IdWyg7uhAnixVqgCZQBWr64ciXYku1ktdu....
      S: 200:ppomes:Hi how are you?

      C: xlogin 4 ppomes
      S: 302:SNK Challenge "024142":
      C: answer 82344338
      S: 200:ppomes:Hi how are you?

   The answer command returns the requested quantity, Kerberos
   authenticator, X9.9 device response, etc.  Binary quantities are
   first uuencoded into US-ASCII.

3.7.  add

   add field=value...

   This command is used to add new entries to the database.  You must be
   logged in and have full Hero privileges (section 1.4) to use "add".

      C: add name="doe john" id="123456789" alias="j-doe"
      S: 200:Ok.



Hedberg & Pomes              Informational                     [Page 12]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


3.8.  query

   query [field=]value [field=value] . . . [return field1 [field2]]

   If no field is specified together with a value then the field is
   assumed to be "name" and/or "nickname".  When more than one field-
   value specification are given in a query, entries matching all
   specifications are returned (implicit AND).

   It is possible to define which fields should be returned by adding a
   "return" clause.  If no return clause is defined the Ph server will
   return a default list of fields.  Typical default fields are "alias",
   "name", "title", "email", "phone", "address", "department", "www",
   and "other".  A return clause consists of the word "return" followed
   by a list of fields or the word "all".  If the word "all" is used
   then all viewable fields will be returned.

      C: query name=doe name=john
      S: 102:There was 1 match to your request.
      S: -200:1:            alias: j-doe
      S: -200:1:             name: doe john
      S: 200:Ok.

3.9.  delete

   delete [field=]value...

   This command is used to delete entire entries from the database.  You
   must be logged in and have full Hero (section 1.4) privileges to use
   "delete".

   The arguments to the "delete" command are the same as the selection
   part of a "query" command.  "Delete" finds all the entries that match
   the argument(s) and deletes them.

   The "delete" command obeys the Nameserver "limit" option, which can
   be used to prevent deletion of more entries than intended.

      C: delete name="doe john" id="123456789" alias="j-doe"
      S: 200:1 entries deleted.

3.10.  change

   change [field=]value    [make|force] field="value"...

   This command is used to change one or more fields in one or more
   entries to the values specified.  The "change" command consists of
   two clauses, the "change" clause and the "make" or "force" clause.



Hedberg & Pomes              Informational                     [Page 13]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


   The "change" clause determines which entries will be affected by the
   command.  It uses the same arguments as the selection clause of a
   "query" command.  The "make" or "force" clause specifies which
   field(s) will be changed and the new value(s) of the specified
   field(s).  The "force" clause is only used to make non-encrypted
   changes to fields marked "Encrypt".

   You must be logged in to use "change".

   The "change" command obeys the Nameserver "limit" option, which can
   be used to prevent changing the field contents of more entries than
   intended.

      C: change alias=j-doe force password=NewSecret
      S: 200:1 entry changed.

      C: set limit=500
      S: 200:Done.
      C: change fax="(619) 555-1212" make fax="(760) 555-1212"
      S: 200: 113 entries changed.

3.11.  help

   help    [{native|client} [topic ...]]

   Prints help on the Nameserver or on specific clients.  If client is
   specified, it should be a valid Nameserver client identifier, such as
   "ph".  The client-specific help will first be searched for topic, and
   then the native help will be searched.  If topic is omitted, a list
   of all available help texts will be returned.  If "native" or client
   are also omitted, a list of clients will be returned.

C: help native 101
-200:1:101:
-200:1: The Nameserver echo option is set.  The text of this response is
-200:1: the command you just gave, which has not (yet) been executed.
200:Ok.

3.12.  quit/exit/stop

   quit

   Terminates the session with the Nameserver and causes the client to
   exit.

      C: quit
      S: 200:Bye!




Hedberg & Pomes              Informational                     [Page 14]

RFC 2378         The CCSO Nameserver (Ph) Architecture    September 1998


4.  Security

4.1.  Transport Layer

   In the absence of encryption between client and server, all
   Nameserver traffic is unsecure.  Kerberos v4, v5, and the GSS-API all
   provide encryption mechanisms, however the Nameserver protocol does
   not support the means to negotiate encryption between client and
   server.  This implies that all traffic can be seen by other machines
   having access to the network linking the client and server.
   Furthermore clear-text traffic is subject to modification in transit
   between client and server.  Possible ways of augmenting this would be
   to use something like TLS [TLS] or IPSec [IPSEC].

4.2.  Server Authentication

   Unless one of the mutual authentication mechanisms is used, e.g.,
   Kerberos 4/5 or GSS-API, there is no way to prove the identity of a
   server.  Further, there is no mechanism to prove a given server is
   authoritative for a set of information.

4.3.  Secure User Authentication

   The Ph protocol allows the negotiation of several authentication
   protocols between client and server, some weak and some strong.  It
   does not prohibit the use of cleartext passwords, something which
   should be depreciated, but is useful when dealing with some clients.

4.4.  Privacy and Access Lists

   Directory services like the CCSO white pages server that contain
   information on persons have to consider privacy issues.  This paper
   describes one way of partitioning specific attributes from unwanted
   access by designating them visible only to the "local" community,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?