Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sat, 05 Mar 2011 19:48:21 +0100
From: magnum <rawsmooth@...dband.net>
To: JimF <jfoug@....net>
CC: john-dev@...ts.openwall.com
Subject: Re: md5_gen, proposed functionality

This is also from the previously "private" email discussion. I take it I 
can cc this too to the list.

On 03/05/2011 03:36 AM, JimF wrote:
> NOTE, I am still very deep in md5-gen. I have made modifications to
> john, so that md5-gen is not a single 'fat' format, but the format
> itself is now a bunch of 'normal' formats. When john starts, it calls a
> function that allows the format to build and initialize all the other
> little formats. Then johns startup code will insert whatever format
> structures are returned. In this way, I have removed all of the
> strangness added in the format test, and bench code, since md5-gen had
> to 'get stuck in a loop' to operate properly. Now, both of those codes,
> simply walk the list of loaded formats.
>
> I have also ripped out the loading of user/domain/etc code from within
> loader. I have made a new function in the format. This function will
> 'build' a proper ciphertext string. So now, each format can deal with
> all of this. Now, the loader code is very trivial. It loads all fields
> within the input line, and then calls a function in the format (if that
> function is not null). This function is called before valid. This
> function will return a 'modified' string, or return split_element[1]
> (where the 'normal' ciphertext of today is). Doing this, will allow
> md5-gen to get user name, or ANYTHING else it wants. It also greatly
> simplifies the loader code.

Sounds very good. Just curious, how simple/hard/sensible would it be to 
rip all the "generic" part out of that for a true sha1-gen format?

Even wilder, how about a generic_generic format that does the same with 
more or less any raw hashing? Just thinking out of the box here :-)

I am impressed that the user md5_gen(1xxx) formats seem to perform the 
same as the hard coded ones. Maybe it is not that magic but it's well 
done. It would be very powerful if it could be taken further so one 
could produce more or less any function, like having it do md4($p.$s) or 
sha1(unicode($p.$u)) too. A majority of John's supported formats could 
be thin, or even just sections in john.conf.

Just random thoughts for the future.

magnum

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ