[sasl] SCRAM as GSS-API mechanism

Simon Josefsson <simon@josefsson.org> Tue, 13 July 2010 20:35 UTC

Return-Path: <simon@josefsson.org>
X-Original-To: sasl@core3.amsl.com
Delivered-To: sasl@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DB8843A6888 for <sasl@core3.amsl.com>; Tue, 13 Jul 2010 13:35:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.716
X-Spam-Level:
X-Spam-Status: No, score=-2.716 tagged_above=-999 required=5 tests=[AWL=-0.117, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Yoi+958oWrfL for <sasl@core3.amsl.com>; Tue, 13 Jul 2010 13:35:07 -0700 (PDT)
Received: from yxa-v.extundo.com (yxa-v.extundo.com [83.241.177.39]) by core3.amsl.com (Postfix) with ESMTP id 3AF363A67D7 for <sasl@ietf.org>; Tue, 13 Jul 2010 13:35:07 -0700 (PDT)
Received: from mocca (c80-216-27-64.bredband.comhem.se [80.216.27.64]) (authenticated bits=0) by yxa-v.extundo.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id o6DKZ91C017225 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for <sasl@ietf.org>; Tue, 13 Jul 2010 22:35:11 +0200
X-Hashcash: 1:22:100713:sasl@ietf.org::J2E8ZkJ5MfTxT7LM:Lrbr
From: Simon Josefsson <simon@josefsson.org>
To: sasl@ietf.org
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
Date: Tue, 13 Jul 2010 22:35:09 +0200
Message-ID: <87pqyr2k8y.fsf@mocca.josefsson.org>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Virus-Scanned: clamav-milter 0.96.1 at yxa-v
X-Virus-Status: Clean
Subject: [sasl] SCRAM as GSS-API mechanism
X-BeenThere: sasl@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SASL Working Group <sasl.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sasl>, <mailto:sasl-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sasl>
List-Post: <mailto:sasl@ietf.org>
List-Help: <mailto:sasl-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sasl>, <mailto:sasl-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Jul 2010 20:35:10 -0000

I cannot find anything in section 8 of SCRAM that discuss how SCRAM, as
a GSS-API mechanism, handles a non-NULL GSS-API channel binding.  Is the
intention that this should be supported?

If it is not supported, we would be in the ironic situation that SCRAM,
as a GSS-API mechanism, does not support channel bindings, but GS2
requires that in order for the GSS-API mechanism to be used under GS2.
In other words, SCRAM cannot be used as a GSS-API mechanism for GS2.

I believe it could be made to work.  What is missing from SCRAM is some
wording that says that the only supported use of channel bindings is to
provide a GS2-compliant channel binding, e.g., on this form:

   The initiator-address-type and acceptor-address-type fields of the
   GSS-CHANNEL-BINDINGS structure MUST be set to 0.  The initiator-
   address and acceptor-address fields MUST be the empty string.

   The application-data field MUST be set to the gs2-header, excluding
   the initial [gs2-nonstd-flag ","] part, concatenated with, when a
   gs2-cb-flag of "p" is used, the application's channel binding data.

This is less generic than the Kerberos V5 GSS-API mechanism which allows
arbitrary channel binding data, but at least it would be consistent with
GS2 and would work when the application co-operates.

Thoughts?

/Simon