[972] in Kerberos_V5_Development

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

Re: rlogin authenticator attacks

daemon@ATHENA.MIT.EDU (Sam Hartman)
Mon Jan 22 15:38:14 1996

To: "Richard Basch" <basch@lehman.com>
Cc: hartmans@MIT.EDU (Sam Hartman), krbdev@MIT.EDU
From: hartmans@MIT.EDU (Sam Hartman)
Date: 22 Jan 1996 15:37:34 -0500
In-Reply-To: "Richard Basch"'s message of Mon, 22 Jan 1996 13:46:44 -0500

>>>>> "Richard" == Richard Basch <basch@lehman.com> writes:

    Richard> On , 21-January-1996, "Sam Hartman" wrote to "krbdev@MIT.EDU" saying:
    >> I would like to propose a change to rlogin similar to the
    >> change I recently checked into krsh  Basically, I would like to see a
    >> Kerberos distribution where using a relatively secure client like
    >> encrypted rlogin did not create a security problem if the kerberized
    >> unencrypted rlogind was running on the server.  
    >> 
    >> Currently, I can grab the authenticator used to establish an
    >> encrypted connection, prevent it from getting to the server to avoid
    >> the replay cache, and use the same authenticator to establish an
    >> unencrypted connection.
    >> 
    >> I propose to include some data in the rlogin authenticator  to
    >> indicate whether the connection is encrypted; if the connection is
    >> encrypted, then the unencrypted rlogind would not accept the
    >> authenticator.
    >> 
    >> The obvious way of doing this is two checksum two different
    >> constant strings.    (rlogin would say checksum "rlogin" and encrypted
    >> rlogin would checksum "rlogin -x").  I would propose to provide an
    >> option to drop backward compatability and require the checksum, just
    >> as I proposed for krshd.



	This would be cool except for the fact that rlogin uses kcmd
to do its sendauth, and I want to generate the checksum in kcmd for
krsh.  So, what I do  is checksum the port number of the remote side
of the connection into the checksum.  This breaks compatability with
Friday's krshd, but somehow I don't see a major problem breaking
compatability with something I did late last week, so long as I
maintain compatability with released code, which I will do.


>>     >> 
    >> Question (Please excuse my lack of mathematical background in
    >> cryptography.)  Are there any problems associated with using a
    >> constant string (well, two constant strings) as data to be checksumed?

    Richard> My concern with the encryption of constant strings is that the checksums
    Richard> are well known for a given key, and can be replayed differently with a
    Richard> later authenticator.  If you want to truly be secure, make sure the
    Richard> generated checksum gets factored into the authenticator checksum, so
    Richard> that no intercept & replay attack is possible.
    Richard> -- 
    Richard> Richard Basch                   
    Richard> Sr. Developer/Analyst           URL: http://web.mit.edu/basch/www/home.html
    Richard> Lehman Brothers, Inc.           Email: basch@lehman.com, basch@mit.edu
    Richard> 101 Hudson St., 33rd Floor      Fax:   +1-201-524-5828
    Richard> Jersey City, NJ 07302-3988      Voice: +1-201-524-5049


	I thought the entire authenticator was encrypted in the
session key.  I am using the indata argument to krb5_mk_req,
indirectly through krb5_sendauth.

--Sam


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