Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241108004623.GA16586@openwall.com>
Date: Fri, 8 Nov 2024 01:46:23 +0100
From: Solar Designer <solar@...nwall.com>
To: john-users@...ts.openwall.com
Subject: Re: "No hashes found" when argon2id is present?

On Tue, Jan 23, 2024 at 10:50:15PM +0100, Solar Designer wrote:
> On Thu, Jun 01, 2023 at 08:56:00PM +0200, Solar Designer wrote:
> > On Thu, Jun 01, 2023 at 12:51:36PM -0400, Thomas Ward wrote:
> > > I have a file with an `argon2id` hash in it, specifically this one (this 
> > > is a test hash with 'Passw0rd' as the password, not an actual password) 
> > > generated from the PyPI `argon2-cffi` library:
> > > 
> > > $argon2id$v=19$m=65536,t=4,p=2$w6DmOoIk0tVKDoXEeaYE0ZB9KqZ6Uw$zO3D4nlA9JAS6j/tZGXT0NY0ZzRIPPYLBogo2ObLiLY
> > > 
> > > When I try and pass this file to john, it says "no hashes found".  Is 
> > > john incapable of processing argon2id hashes?
> > 
> > That's correct.  We need to update the Argon2 implementation as part of
> > this issue:
> > 
> > https://github.com/openwall/john/issues/2738
> 
> We still haven't updated the CPU implementation to latest upstream, but

We have now, and this adds Argon2id support.  Here's the above hash
getting cracked on CPU in a VM on a laptop:

$ ./john pw-argon2id
Using default input encoding: UTF-8
Loaded 1 password hash (argon2 [Blake2 512/512 AVX512F])
Cost 1 (t) is 4 for all loaded hashes
Cost 2 (m) is 65536 for all loaded hashes
Cost 3 (p) is 2 for all loaded hashes
Cost 4 (type [0:Argon2d 1:Argon2i 2:Argon2id]) is 2 for all loaded hashes
Will run 4 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:./password.lst
Enabling duplicate candidate password suppressor
Passw0rd         (?)     
1g 0:00:04:01 DONE 2/3 (2024-11-08 01:35) 0.004136g/s 16.53p/s 16.53c/s 16.53C/s siemens..19871987

That's 18 times slower than the GPU run below, but it's by far not the
fastest CPU available and there was other load on the system (not an
optimal way to run OpenMP, should avoid other load or reduce threads or
use --fork instead).  OTOH, that GPU is also by far not the fastest.

> we now have Argon2 implemented in OpenCL for GPUs, including the 2id
> flavor.  Here's how your sample hash above gets cracked:
> 
> $ ./john -dev=4 pw-argon2id
> Device 4: GeForce GTX 1080
> Using default input encoding: UTF-8
> Loaded 1 password hash (argon2-opencl [Blake2 OpenCL])
> Cost 1 (t) is 4 for all loaded hashes
> Cost 2 (m) is 65536 for all loaded hashes
> Cost 3 (p) is 2 for all loaded hashes
> Cost 4 (type [0:Argon2d 1:Argon2i 2:Argon2id]) is 2 for all loaded hashes
> Trying to compute 120 hashes at a time using 7680 of 8119 MiB device memory
> LWS=[32-64] GWS=[7680-7680] ([120-240] blocks) => Mode: WARP_SHUFFLE
> Proceeding with single, rules:Single
> Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
> Almost done: Processing the remaining buffered candidate passwords, if any.
> Proceeding with wordlist:./password.lst
> Enabling duplicate candidate password suppressor
> Passw0rd         (?)     
> 1g 0:00:00:13 DONE 2/3 (2024-01-23 22:42) 0.07424g/s 302.9p/s 302.9c/s 302.9C/s Dev#4:49C greenday1..courtney1
> 
> This works on NVIDIA and AMD GPUs (NVIDIA preferred, as on AMD we're
> limited to 4 GiB max allocation).  It does not fully work on Intel GPUs,
> and not at all on CPUs.  We do still need to also update the CPU format,
> but meanwhile I thought I'd post this interim update to this thread.

Alexander

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.