[3106] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

pending/747: pa_sam() KRB5_SAM_SEND_ENCRYPTED_SAD doesnt work in 1.1 beta

daemon@ATHENA.MIT.EDU (Chas Williams)
Thu Sep 2 19:10:12 1999

Resent-From: gnats@rt-11.MIT.EDU (GNATS Management)
Resent-To: gnats-admin@rt-11.MIT.EDU
Resent-Reply-To: krb5-bugs@MIT.EDU, chas@cmf.nrl.navy.mil
Message-Id: <199909022309.QAA06190@borg.cmf.nrl.navy.mil>
Date: Thu, 2 Sep 1999 16:09:37 -0700 (PDT)
From: Chas Williams <chas@cmf.nrl.navy.mil>
Reply-To: chas@cmf.nrl.navy.mil
To: krb5-bugs@MIT.EDU
Cc: kenh@cmf.nrl.navy.mil


>Number:         747
>Category:       pending
>Synopsis:       pa_sam()'s KRB5_SAM_SEND_ENCRYPTED_SAD doesnt ask for password
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    gnats-admin
>State:          open
>Class:          sw-bug
>Submitter-Id:   unknown
>Arrival-Date:   Thu Sep 02 19:10:00 EDT 1999
>Last-Modified:
>Originator:     Chas Williams
>Organization:
hardly any, ask ken
>Release:        1.1beta
>Environment:
	System: IRIX borg 6.5 04151556 IP22


>Description:
	when using securid as a h/w preauth method i see the
	following behavior:

% ./kinit chas@WES.HPC.MIL
SAM Authentication
Challenge for Security Dynamics mechanism
SecurID Passcode:
kinit: Bad encryption type while getting initial credentials
%
	note that it never actually asked for my password.
	the problem seems to be in the following from krb5/krb5/preauth2.c

    enc_sam_response_enc.sam_nonce = sam_challenge->sam_nonce;
    if (sam_challenge->sam_flags & KRB5_SAM_SEND_ENCRYPTED_SAD) {
        enc_sam_response_enc.sam_passcode = response_data;
    } else if (sam_challenge->sam_flags & KRB5_SAM_USE_SAD_AS_KEY) {

	note that it never asks for my password to use as a key
	or even encrypts the preauth response.

>How-To-Repeat:
	(see above, but you need a h/w preauth method that uses
	KRB5_SAM_SEND_ENCRYPTED_SAD)
>Fix:
	a previous fix from another site, was to do the following:

   if (sam_challenge->sam_flags & KRB5_SAM_SEND_ENCRYPTED_SAD) {
        /*
         * We need to use the password as part or all of the key.
         * If as_key contains info, it should be the users pass phrase.
         * If not, get the password before issuing the challenge.
         */
        if (as_key->length == 0) {
           if (ret = ((*gak_fct)(context, request->client,
                             request->ktype[0], prompter, prompter_data,
                             salt, as_key, gak_data)))
               return(ret);
        }
        enc_sam_response_enc.sam_passcode = response_data;
    } else if (sam_challenge->sam_flags & KRB5_SAM_USE_SAD_AS_KEY) {
        if (sam_challenge->sam_nonce == 0) {

	however, this doesnt work anymore since the latest changes
	to the crypto library.
>Audit-Trail:
>Unformatted:

home help back first fref pref prev next nref lref last post