On Mon, Sep 09, 2002 at 08:36:58PM -0400, iudicium ferat wrote:
[reformatted a bit for clarity]
> 1) IP-based matching is done: only a certain internal sub-net is 
>    able to connect.

Better hope that your attacker isn't an insider, then.

> 2) Next, mainframe authentication (userid/passwd) is done between 
>    two machines that are 15 feet apart - and that are not on the 
>    public Internet.

``Mainframe Authentication'' ?

Are the passwords stored in plaintext on the server, do they travel in
plaintext or repeatable form over the wire? How can the machine requesting
the auth from the mainframe be *sure* it's talking to the mainframe? 99%
of hackers are insiders.

> 3) After the hand-shake, then a userid lookup table located on the 
>    server (which is only readable by www server ID and only writable 
>    by root via cron - and then must be eye-balled by a human) is read 
>    to determine the appropriate access level.

Seems reasonable, of course, it does mean that if you have a remote root
then all bets are off.

> 4) The system menu is created based up this ID.

Are you sure that there's no way to trick it?

> 5) The security bit contains these items:  cookie, time-based, and 
>    one-way crypt'ed access key -- this is

Can both ends believe that this access key was fresh? (ie. can both recreate
it, and know that there was something in there that must have been new
(eg, a random nonce that they supplied or a timestamp). What algorithm are
you using for the ``one-way crypt''? If you're using crypt(3), be warned
that it's breakable in about a day on a reasonable machine, and easily
parallelisable.

> 6) then Matched to a IP/UserID timed cookie on the server (one 
>    which is expires if the user waits too long.)

Do you make sure that the hash verifies?

> 7) The security bit sent to the user MUST match the security bit 
>    stored securely on the server.

If I see a message (U,t,k) go past me on the wire, as a cookie, then I'm
going to simulate a network fault, disconnecting the user, but not the
server. I'm then going to send the cookie (U,t,k) and (having faked the
IP address, too (this is doable with access to just one of the routers
in between the networks in question), then I can get into your system.

> That's it.  I wrote the whole 1,750 line program about 3 months 

Why not use something peer-reviewed like SSL with certificate/key
client authentication. You still need to authenticate against the
mainframe, and there are perhaps better ways of doing that, but it
strikes me you're trying too hard to justify what you've done.

MBM

-- 
Matthew Byng-Maddick         <[EMAIL PROTECTED]>           http://colondot.net/

Reply via email to