phc-winner-argon2
security-research-pocs
Our great sponsors
phc-winner-argon2 | security-research-pocs | |
---|---|---|
14 | 5 | |
4,650 | 1,814 | |
1.1% | - | |
0.0 | 1.5 | |
about 2 months ago | about 3 years ago | |
C | C++ | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
phc-winner-argon2
- Argon2 Password Hashing Utility
- User tool to use Argon2 ideally Argon2id
-
PSA: upgrade your LUKS key derivation function
Argon2, and it's derivations, are all memory hard. Beyond that, why change from 2i to 2id?
-
Why Argon2d and not Argon2id?
''Even though https://github.com/p-h-c/phc-winner-argon2 was standardized only somewhat recently, it is the result of the https://password-hashing.net/ and was a late re-design of Argon which also picked up ideas from a few other finalists. Since then there have been attacks on it, which caused the scheme to be tweaked to counter them better, this is why we have Argon2 v1.3 as the most current version, you may want to note that most of these attacks mostly weakened Argon2i and not Argon2d. Now during the competition results came up that your defense against time-memory trade-off attacks will suffer if you make sure that your scheme is immune to the various kinds of side-channel attacks that people have come up with (which also includes more "crazy" stuff like leaked intermediate state). Because of this, it was decided that there should be two versions: Argon2i and Argon2d. One offering the best possible protection while trying its best to be immune against side-channel attacks (by using data- and password-independent memory access patterns) and the other dropping these requirements and all-out optimizing against such attacks (by using data- and possibly password-dependent memory access patterns). Argon2d offers better protection than Argon2i at the expense of being more vulnerable to side-channel attacks. Now you have to ask yourself: Do these apply? No, not really. You said that you are on Android, which is not exactly known for high platform security, so if you have an attacker in such a privileged position to execute something like cache-timing attacks or similar attacks that try to exploit memory access patterns, your user has already much bigger problems anyways. It's a similar logic as with AES: https://en.wikipedia.org/wiki/Advanced\_Encryption\_Standard#Side-channel\_attacks, but these have never been observed in the wild, probably because other options are much easier, more reliable and equally as effective. So the conclusion is: You want to use Argon2d. So for whom is Argon2i? People who need to run applications on shared hardware or where timing attacks are a real thread. For example if you run a webserver in a public cloud on shared hardware. Then you have to be worried about who else is on the same CPU. And with webservers it's also easier to measure the timing of reactions and trying to deduce information from that."
-
The forgotten mistake that killed Japan’s software industry
And if you don't like my code you should take a look at the reference implementation.
-
Can't find documentation for C library, openssl for hashing.
AFAIK, Argon2 is the algorithm that's currently recommended for this. OpenSSL doesn't have support for it, so I'd recommend using the Argon2 reference implementation instead.
-
Which argon2 crate to use?
Which one should I use in terms of performance/standards? How about their performances comparing to the c implementation, https://github.com/P-H-C/phc-winner-argon2?
-
Is anyone aware of an argon2/argon2id javascript implementation that will work in both NodeJS and the beowser and produce the same hashes?
Did you try the Argon2 test vectors on each? They should all come out the same for both implementations, any implementation that doesn't match the test vectors is buggy.
-
Intel and AMD CPUs vulnerable to a new speculative execution attack (RETBLEED)
> Is there anything stronger than blowfish?
I think you mean bcrypt..
Both Argon2 and scrypt win over that:
https://github.com/P-H-C/phc-winner-argon2
-
The entirety of Twitch has reportedly been leaked (Source codes and user payouts among the data) | VGC
Here is the documentation for Argon2 to see why and how it's different, also why it won an award: https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf
security-research-pocs
-
A call to reconsider Linux address-space isolation
> Suppose I'm a typical desktop user, how is important information going to be stolen if I have mitigations turned off and JavaScript enabled?
https://github.com/google/security-research-pocs/tree/master...
I don't imagine I'm going to explain it better than the many others who have already done so.
> What state does my browser have to be in, and what actions do I have to take (or not take) for the attack to succeed?
Your browser would have to be pretty old/ outdated since they've been updated to mitigate these attacks.
> What likelihood is it that someone has deployed an attack that meets those requirements?
That's not a simple question. Threat landscapes change based on a lot of factors. As I said earlier, we won't see these attacks because people have already patched and attackers have other methods.
> So we agree it's OK to leave mitigations off and browse the web?
You can do whatever you want, idk what you're trying to ask here. What is "OK" ? You will be vulnerable but unlikely to be attacked for the reasons mentioned. If you are "OK" with that that's up to you.
-
Intel and AMD CPUs vulnerable to a new speculative execution attack (RETBLEED)
Those attacks relied on performance.now() https://github.com/google/security-research-pocs/blob/d10780...
Chrome has limited "performance.now" to have a relatively low resolution: https://chromium-review.googlesource.com/c/chromium/src/+/85...
Also, "2018 install of win10", you might have already been patched during install.
Microsoft rolled out specture/meltdown mitigations at the OS level in January 2018.
-
New Spectre Vulnerability Version Beats All Mitigations, Performance to Badly Degrade After the Fix
That said, I'm using 'arbitrary' to mean any algorithm can be downloaded and ran without the user doing much; JS is Turing Complete. Additionally, older browsers' JS engines (at least the configuration of them) were feature-rich enough to do the relevant exploits.
- Spectre JavaScript PoCs
- Google released proof-of-concept code to conduct Spectre attacks against its Chrome browser to share knowledge of browser-based side-channel attacks.
What are some alternatives?
orion - Usable, easy and safe pure-Rust crypto
scrypt - The scrypt key derivation function was originally developed for use in the Tarsnap online backup system and is designed to be far more secure against hardware brute-force attacks than alternative functions such as PBKDF2 or bcrypt.
orion - Usable, easy and safe pure-Rust crypto [Moved to: https://github.com/orion-rs/orion]
PyNacl - Python binding to the Networking and Cryptography (NaCl) library