Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 1 Jan 2013 23:30:09 +0100
From: Frank Dittrich <>
Subject: Re: A few questions regarding the newly added BLAKE2 format

On 01/01/2013 10:48 PM, magnum wrote:
> On 1 Jan, 2013, at 21:56 , Frank Dittrich <> wrote:
>> On 01/01/2013 09:12 PM, magnum wrote:
>>> My personal opinion is that we should definitely accept untagged hashes, of course provided that the length and charset is correct. We have this very good feature where John tells us what formats could be using the hash. To make an input file automatically pick a certain format, add tags in the file with a trivial sed one-liner. Or just supply the --format option. On a related note, I think we should always add tags to john.pot (and this format do) unless the hash format is odd enough to be easily recognized even with future in mind. I'd really like to hear other's opinions too, including but not limited to Solar. And the john-users crowd too btw.
>> My main concern here is that, especially with plugged-in-formats, you
>> never know how the sequence of formats will be changes, so that hashes
>> which now are treated as raw-sha512, will tomorrow be treated as
>> something different (e.g., BLAKE2).
> I'm not sure this is really a problem and if it is, I do not think rejecting raw hashes is a good solution at all. Note that if you have an old session that auto-picked raw-sha512 it will have the --format=raw-sha512 syntethically added to the .rec file so a resumed session will *not* have any problems. This is an important feature, already implemented.
> What we could do if you insist, is force raw-sha512 to load before blake.
I do not insist. I am just unsure what the best solution is.
Knowing what formats *could* possibly crack a given hash also is an
important feature.
May be you are right, and it is more important to let the user know that
there are possibly more formats which could crack a given hash than
allowing him not to specify --format=, and still expect a raw hash to be
treated as raw-sha512.

>  Either by renaming one of the source files so the plugin globbing will put them in a different order, or by making raw-sha512 a non-plugin.

No, spending/causing effort for such crude workarounds is not what I
wanted, although, in this particular case it might be a bit unfortunate
that BLAKE2 would grab raw-sha512 hastes, even if BLAKE2 probably isn't
really used as a password hash function.
There might be users who will complain on john-users when they are not
longer able to crack raw-sha512 hashes if they forget the --format switch.

May be this really should have been discussed on john-users as well, so
tomorrow I'll try to get this discussed on john-users.

As developers, we could adjust at least some of the test vectors, adding
the "$SHA512$" prefix, plus a comment which indicates that this prefix
should be added to the raw hashes to make sure raw-sha512 format is used
to crack these hashes.

Instead of mentioning each individual raw format in a doc file, and
creating a raw<something>2john binary or script for each individual raw
format, may be a more general tool could be helpful.

This tool (probably a symbolic link to john, to reuse core john
functionality as well as format specific functions) should allow to read
an input file (or stdin), and extract all input lines with hashes that
are treated as valid by a given format, replacing the input hash with
the canonical hash representation before writing the line to stdout.

./extract-hashes --format=raw-sha512 < in-file > out-file

Doing this might not be trivial, because we could run into issues
similar to those we have with --show=LEFT (suppressing multiple lines
with the same hash...)


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.