Re: [kitten] SPAKE Preauth

Nico Williams <> Sat, 02 May 2015 23:16 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 9387A1A9125 for <>; Sat, 2 May 2015 16:16:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 1.634
X-Spam-Level: *
X-Spam-Status: No, score=1.634 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_31=0.6, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id xKcfHGaIO7mq for <>; Sat, 2 May 2015 16:16:07 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id E0E511A8FD5 for <>; Sat, 2 May 2015 16:16:07 -0700 (PDT)
Received: from (localhost []) by (Postfix) with ESMTP id 90CA5B805B; Sat, 2 May 2015 16:16:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed;; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to;; bh=ee/yCi6s4+KN8r vL2lC2Efwnx+o=; b=KNyVv4tk+D0ziGr6vZkco4FbbKDYyYhmcL1G9A2YoWdrVM E6e9psVvrD1RuRBMuXc8PftbFVz+NX38bWCAntF4EBs93ZgxunEsHaW92D8B9PCn 5el1Vyy88RW9a4FuSl59fYOdHY7IfkxX/5vTJfdQKS9/qV91iysn9ySeQyhC8=
Received: from localhost ( []) (Authenticated sender: by (Postfix) with ESMTPA id 5DA04B8058; Sat, 2 May 2015 16:16:07 -0700 (PDT)
Date: Sat, 2 May 2015 18:16:04 -0500
From: Nico Williams <>
To: Nathaniel McCallum <>
Message-ID: <20150502231603.GG10065@localhost>
References: <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <>
Cc: "" <>
Subject: Re: [kitten] SPAKE Preauth
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 02 May 2015 23:16:08 -0000

In addition to adding some standard OTP-ish second factors, I'd like to
have a way to "augment" the PAKE with the same user password so as to
improve resistance to KDC database compromise.

For example, if we had a password->signature key algorithm then we could
have a second factor that consists of a signature of the AS' and user's
PAKE public keys (say; handwaving a bit)m and then the AS ends up
storing w (from the PAKE) and the public key for the signature.

If we salt the password differently to derive w and the siging key, then
the AS ends up storing not a password equivalent, but a password
verifier.  That makes KDB compromise somewhat less bad than today, since
attackers would have to mount off-line dictionary attacks, giving realm
operators more time to have users change their passwords.  (Service keys
remain a problem, but that can be addressed too, separately.)

But augmenting the PAKE this way means we may need to use two second
factors: one to augment the PAKE, and one that's the actual OTP-ish
second factor.  That will require some tweaking of the proposed