[krbdev.mit.edu #2641] KRB5_KDB_DISALLOW_SVR flag unnecessarily prevents User2User

The RT System itself via RT rt-comment at krbdev.mit.edu
Mon Jul 19 21:22:36 EDT 2004


>From krb5-bugs-incoming-bounces at mit.edu  Mon Jul 19 21:22:31 2004
Received: from pch.mit.edu (PCH.MIT.EDU [18.7.21.90]) by krbdev.mit.edu (8.9.3p2) with ESMTP
	id VAA24577; Mon, 19 Jul 2004 21:22:31 -0400 (EDT)
Received: from pch.mit.edu (localhost [127.0.0.1])
	by pch.mit.edu (8.12.8p2/8.12.8) with ESMTP id i6K1MUl1027239
	for <krb5-send-pr at krbdev.mit.edu>; Mon, 19 Jul 2004 21:22:30 -0400 (EDT)
Received: from fort-point-station.mit.edu (FORT-POINT-STATION.MIT.EDU
	[18.7.7.76])
	by pch.mit.edu (8.12.8p2/8.12.8) with ESMTP id i6FNR8l1007521
	for <krb5-bugs-incoming at PCH.mit.edu>;
	Thu, 15 Jul 2004 19:27:08 -0400 (EDT)
Received: from MM01SNLNTO.son.sandia.gov (mm01snlnto.sandia.gov
	[132.175.109.20])i6FNR7cZ029555
	for <krb5-bugs at mit.edu>; Thu, 15 Jul 2004 19:27:07 -0400 (EDT)
Received: from 132.175.109.1 by mm02snlnto.son.sandia.gov with ESMTP (
 Tumbleweed MMS SMTP Relay 01 (MMS v5.6.1)); Thu, 15 Jul 2004 17:26:58
 -0600
X-Server-Uuid: 8A37177F-35F9-47CF-80CF-3627B2E578DE
Received: from es08snlnt.sandia.gov (smtp-in.sandia.gov [134.253.130.11]
 ) by sass165.sandia.gov (8.12.10/8.12.10) with ESMTP id i6FNQuYH024869
 for <krb5-bugs at mit.edu>; Thu, 15 Jul 2004 17:26:56 -0600 (MDT)
Received: by es08snlnt.sandia.gov with Internet Mail Service (
 5.5.2653.19) id <3C9NAKS8>; Thu, 15 Jul 2004 17:26:55 -0600
Message-ID: <AC89BDA1E3CCBC42B9CA5B50FE7934D3067819FC at es10snlnt.sandia.gov>
From: "Moore, Patrick" <pcmoore at sandia.gov>
To: "'krb5-bugs at mit.edu'" <krb5-bugs at mit.edu>
Date: Thu, 15 Jul 2004 17:26:55 -0600
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
X-PMX-Version: 4.6.0.99824, Antispam-Core: 4.6.1.104326, Antispam-Data:
 2004.7.15.107631
X-WSS-ID: 6CE9CD481D868866-01-01
Content-Type: text/plain;
 charset=iso-8859-1
Content-Transfer-Encoding: 7bit
X-Mailman-Approved-At: Mon, 19 Jul 2004 21:22:28 -0400
Subject: KRB5_KDB_DISALLOW_SVR  flag  prevents User2User authentication
X-BeenThere: krb5-bugs-incoming at mit.edu
X-Mailman-Version: 2.1
Precedence: list
Sender: krb5-bugs-incoming-bounces at mit.edu
Errors-To: krb5-bugs-incoming-bounces at mit.edu


>Submitter-Id:	net
>Originator:	Pat Moore, pcmoore at sandia.gov 
>Organization:	Sandia National Laboratories
>Confidential:	no
>Synopsis:	KRB5_KDB_DISALLOW_SVR flag unnecessarily prevents User2User
authentication
>Severity:	non-critical
>Priority:	low
>Category:	krb5-kdc
>Class:	change-request
>Release:	krb5-1.3.4
>Environment: 
  N/A


>Description:
Reviving an old issue . . .
With MIT KDC, there is no way to allow user2user authentication unless you
also allow conventional service tickets for that user, which some sites
consider an unacceptable security risk.   

A couple years back, Nico Williams suggested (to the kerbdev list) a
potential fix via a simple patch to kdc/kdc_util.c. My fix below is
essentially Nico's suggestion. 

Note:  I know that DCE KDC's allow user2user without allowing conventional
service tickets (they use a special flag.) I understand that Msoft can allow
user2user without allowing conventional service tickets. 


>How-To-Repeat:
       If you set "+allow svr" and "+allow dup skey", then you can get a
user2user ticket for that principal, but unfortunately you can also get a
conventional ticket.  If you set "-allow svr" and "allow dup skey", you
cannot get a user2user ticket for that principal. 


>Fix:
 

Seems sensible that if a principal was set "-allow svr" AND "+allow dup
skey" that user2user tickets should work, and conventional service tickets
should not work. The patch below would provide that functionality. 
       
*** kdc_util.orig.c   Thu Jul 15 13:42:01 2004
--- kdc_util.new.c    Thu Jul 15 13:44:51 2004
***************
*** 1271,1277 ****
      }

      /* Server must be allowed to be a service */
!     if (isflagset(server.attributes, KRB5_KDB_DISALLOW_SVR)) {
        *status = "SERVER NOT ALLOWED";
        return(KDC_ERR_S_PRINCIPAL_UNKNOWN);
      }
--- 1271,1278 ----
      }

      /* Server must be allowed to be a service */
!     if (isflagset(server.attributes, KRB5_KDB_DISALLOW_SVR) &&
!          !isflagset(request->kdc_options, KDC_OPT_ENC_TKT_IN_SKEY)) {
        *status = "SERVER NOT ALLOWED";
        return(KDC_ERR_S_PRINCIPAL_UNKNOWN);
      }





More information about the krb5-bugs mailing list