SRP adjustments [was: Re: I-D ACTION:draft-ietf-sacred-protocol-bss-01.txt]

Magnus Nystrom <[email protected]> Tue, 5 Feb 2002 08:52:39 +0100 (W. Europe Standard Time)
Newsgroups gmane.ietf.sacred
Message-ID <Pine.WNT.4.43.0202050847290.1500-100000@mnystrom-lap>
Stephen,

In the posting I made on Dec 6th, there was a suggestion to modify the
protocol document to allow for other security context establishment
mechanisms apart from SRP. While it is necessary to mandate one
authentication mechanism for interoperability reasons, I do not think
that it should be left completely unspecified how to implement support
for other mechanisms, in particular since the current draft is based
on BEEP which supports SASL which in turn supports many mechanisms.

Specifically, the changes that I would like to see are:

-Section 1, second para:

Delete first sentence, since, e.g., cTLS is also allowed. Rephrase the
paragraph to:

	The protocol uses [BEEP] for its exchange model

(or possibly: "The protocol is profiled for BEEP...", see separate
 thread "BEEP adjustments")

        and its	payloads consist of a set of XML messages defined
	herein. The protocol sets out to meet the requirements in
	[REQS]. In particular, security requirements in [REQS] are met
	by mandating support for TLS [TLS] and/or SRP [SRP].

-Section 2.1.2:

Change second para to:

   The purpose of this operation is to setup a new account on the
   server.  The information required for a "new" account
   will depend on the SASL mechanism used.  For [SRP], it will consist
   of the username and SRP password verifier with no associated
   credentials.

-Section 2.1.4:

Remove the current subsection, and replace it with:

   2.1.4 Modify Account

   The purpose of this operation is to allow the client to change the
   information required for authentication.  The information required
   will depend on the authentication method used. For [SRP] it will
   consist of a salt and a password verifier value.  Once the account
   information has been changed, the server will respond an error or
   acknowledgement message."

-Section 2.3:

(The reasons for the changes proposed for this section are as follows:
The security requirements are not really cTLS, sTLS or SASL-SRP, but
rather the security services these protocols provide. It therefore
seems more correct to identify these required services, and then
identify protocols that provides them, and finally mandate a minimum
set -that must be supported in order to guarantee interoperability-
among those protocols)

Delete the last sentence in the first paragraph, and delete the
listing after it. From this follows that the Note also will be
deleted. Replace the remaining text with:

      Operation                 Security REQUIRED
      ---------                 -----------------
      Information request       NONE
      Create account            Server authentication,
				Privacy, Integrity
      Remove account            Mutual authentication,
				Privacy, Integrity
      Modify account            Mutual authentication,
				Privacy, Integrity
      Credential upload         Mutual authentication,
`				Privacy, Integrity
      Credential download       Mutual authentication,
				Privacy, Integrity

   The security requirements can be met by several mechanisms. This
   document REQUIRES credential servers to support TLS and SASL-SRP.
   Clients MUST support SASL-SRP or TLS.

   The mandatory-to-implement TLS cipher suite for SACRED is
   TLS_RSA_WITH_3DES-EDE_CBC_SHA.

   For SASL-SRP, all three security services (privacy,
   replay protection, and integrity) MUST be used.

[The issue of the authorization identity have to be dealt with in a
separate thread]

-Section 3:

Change "PWChangeRequest" to "ModifyAccountRequest" throughout the
section.

-Section 3.5:

Replace current text with:

   Contains one or more element containing the information
   required to create an account for the identified authentication
   mechanism.  The actual information contained in the element will be
   defined by the authentication mechanism but for SRP it will contain
   the account name, salt and password verifier for that account.

-Section 3.7:

Replace current text with:

   Contains one or more element containing new authentication
   information for identified authentication mechanisms.  The actual
   information contained in the elements will depend on the mechanism
   but for SRP it will contains a new salt and password verifier for
   the account.

-Appendix A:

If the above proposal is accepted, it means that the schema must be
updated to allow for other SASL mechanisms and changed PDU names. In
the message I sent to the list on Dec. 6 there was a proposal on how
to achieve this (separate from the http/BEEP issue), although that
proposal was flexible enough to handle also non-SASL mechanisms. It is
probably ok to limit ourselves to SASL (and TLS) mechanisms for now,
but my suggestion is to make use of the parts of that proposal that
are needed for the above. Of course I (and Gareth) are willing to help
out in formulating that schema.

BR,
-- Magnus