// COMPLETE THREAD

XDM has the same problem as netscape ?!

2 expanded posts ยท every known parent and child

NODE 2ce10ca9XDM has the same problem as netscape ?!
In article <9509210631.AA18308@sfi.santafe.edu>,
Nelson Minar <nelson@santafe.edu> wrote:
>Last time I looked, the MIT-MAGIC-COOKIE-1 scheme used in X11R4 had
>the same problem: the random seed was based on the current time to the
>microsecond, modulo the granularity of the system clock. I think I
>figured that on my hardware, if I could figure out which minute the X
>server started (easy with finger), I'd only have to try a few
>thousand keys or so. Caveat: I never actually proved the idea.

Wow.  I just checked, and Nelson's right.

The seed is this:
#ifdef ITIMER_REAL
    {
        struct timeval  now;

        X_GETTIMEOFDAY (&now);
        ldata[0] = now.tv_sec;
        ldata[1] = now.tv_usec;
    }
#else
    {
        long    time ();

        ldata[0] = time ((long *) 0);
        ldata[1] = getpid ();
    }
#endif

and if you don't have XDMAUTH defined, the auth value is this:

        seed = (ldata[0]) + (ldata[1] << 16);
        srand (seed);
        for (i = 0; i < len; i++)
        {
            value = rand ();
            auth[i] = value & 0xff;
        }


Oh, well.  We knew X didn't have much in the way of security, anyway...

   - Ian
NODE 73f21a32Re: XDM has the same problem as netscape ?!
In message <43s1j7$nd3@calum.csclub.uwaterloo.ca>, Ian Goldberg writes:
>In article <9509210631.AA18308@sfi.santafe.edu>,
>Nelson Minar <nelson@santafe.edu> wrote:
>>Last time I looked, the MIT-MAGIC-COOKIE-1 scheme used in X11R4 had
>>the same problem: the random seed was based on the current time to the
>>microsecond, modulo the granularity of the system clock. I think I
>>figured that on my hardware, if I could figure out which minute the X
>>server started (easy with finger), I'd only have to try a few
>>thousand keys or so. Caveat: I never actually proved the idea.
>
>Wow.  I just checked, and Nelson's right.
[...]

Of corse you can do what I have been doing for years:

$cookie=`good-source-or-random-hex-strings`
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 $cookie
xinit ~/.xinitrc $DISPLAY -- $server :$port -auth $XAUTHORITY

(assuming you set the various variables correctly)

This will allow you to gennerate your own cookies rather then
relying on MIT.  (I actually have C code to set the cookie dirrectly,
since I don't really care to have it visable to ps, even breifly).

Unfortunitly X will blat the "secret" out in the clear every time you
make an X connection, so it still isn't very good.