[963] in Kerberos-V5-bugs

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

v4 rlogin clients won't work with V5 rlogin servers,

daemon@ATHENA.MIT.EDU (Jonathan Stone)
Tue Nov 15 23:33:49 1994

To: krb5-bugs@MIT.EDU
Cc: kjd@DSG.Stanford.EDU (Ken Duda)
Date: Tue, 15 Nov 1994 20:33:27 -0800
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>

--------

The research group I'm has obtained CNS and built it on Ultrix
4.2A/mips and AIX 3.2.5.  WE've got KRb5-b4-pl3.  We've configured
krb5 to use the CNS KerberosIV libraries and include files.  We've
populated a kdc and got krb5 rlogin/rlogind working (modulo a bug in
Ultrix tty handling that requires a Ctrl-d to start a session).

We really want to be able to use unmodified KerberosIV clients (e.g.,
from macs) to connect to eithe rlogind or telnetd. We've been
trying to use the CNS rlogin client as a demonstrator for
doing this.

We've banged hard on getting the CNS rlogin to work with the V5
rlogind, and it just _doesn't_.  We've double-checked that the v4
clients is getting a plausible ticket for rcmd.<host>, and tried with
and without setting a v4 key for that instance. A packet trace of a v4
client talking to a v5 rlogind shows the v4 client is sending a v4
auth request ("AUTHV1.0" and "KCMDV1.0") over the wire.  Further
investigation shows that src/lib/krb5/lib/compat_recv.c is being
compiled *WITHOUT* KRB5_KRB4_COMPAT being defined.  (I double-checked
this; adding a call syslog inside the #ifdef COMPAT_KRB5_KRB4_COMPAT
doesn't produce the syslog string in the recv_compat.o file). So the
code to demarshal that request is being simply #ifdef'ed out.
The sendauth request gets treated as a v5 sendauth request,
and naturally it's not a valid v5 sendauth request.

I don't see a lot of point defining KRB5_KRB4_COMPAT in the Makefile
for the appl/bsd directory if the underlying libraries don't have the
required functionality built in.  Surely the v4 client is sending a V4
sendauth request and a KRB5 library needs to have KRB5_KRB4_COMPAT
#define'd at compile time, if it's to be able to demarshal that? Am I
missing something here?

I've tried re-compiling compat_recv.c with KRB5_KRB4_COMPAT manually
defined, and relinking krlogind. I'm not sure which version of
krb_rd_req() should be supplied for compat_recv.c:krb_v4_recvauth().
The KerberosIV library seems to be in the wrong place on the link
phase of the Makefile -- or at least it defines functions that are
referenced by the recv_sendauth compatibility glue. . Even if I move
it, there's still undefined references, (i.e.,, des_string_to_key and
des_key_sched.) I've tried supplying those from the CNS v4 libraries;
and the resulting krlogind logs a ``decrypt integrity check failed''.
(This is with the jtkohl port of 4.3BSD syslogd.)


I've also looked at the Configure.in and I don't see how either
KRB5_KRB4_COMPAT is being set, or how Krb4Compat would be getting set
in include/krb/config.h.  Is this some oversight? Or, perhaps, does
the library v4-glue code as shipped simply not work, so it's not
compiled?  If this is the intent then I guess there's no ``bug'',
just missing functionality.


If there's something really dumb I'm missing in all this, I'd be glad
to hear it.


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