I am not a crypto expert, but I thought that the idea was to produce a new more or less random salt for EACH password, store the salt with the hashed password, hashing using an expensive algorithm. Yes the hacker steals the salt with the hash, but now has to go to the trouble of brute forcing that ONE password with its UNIQUE (or almost unique) salt. In other words, the hacker can crack it, but the process is so expe…
The False Allure of Hashing for Anonymization
81–90 of 106 posts
Re: The False Allure of Hashing for Anonymization
#82Differential privacy seems like a pretty good approach to this problem. https://machinelearning.apple.com/2017/12/06/learning-with-p...
Re: The False Allure of Hashing for Anonymization
#83Earlier quoted context omitted.
This is addressed in the article under "What if we make the hash slow?" You might be tempted to use salted hashes, but apparently this only works for protecting data that is supposed to be unpredictable, like passwords, and it's not too much of a setback if the data is easily predictable, like if it's a username or email (or presumably, an IP address or a timestamp.) > Even with something like bcrypt at reasonable wo…
Would someone explain to me why this is true (or not).
With my understanding of bcrypt, it's an algorithm that's designed to be slow (and the implementation providing guarantee's to resist attempts to significantly speed it up), and the slowness is tuneable through a work factor. So usually you would target something like 200-500ms. Long enough to be slow if you have to make billions of guesses, but still fast enough that when someone enters their correct password they're not sitting around waiting for you're login to complete.
If my database is something like:
salt1 + alex = aaaaaaa
salt2 + ben = bbbbbbbb
salt3 + kevin = ccccccc
* with 100,000 entriesThis means if I want to find user = kevin in this database, I take the salt + username, and test if it produces a match in the database. Once I get to salt3 + kevin, and produce cccccc, and see that cccccc is in the database, I've now unmasked that user.
At 500ms, a single CPU can test 172,800 entries per day, which could easily scan the database. If it's millions, or tens of millions of users, you do need more resources, and if you want to unmask every user it will take some time, but it becomes plausible for a moderately sophisticated adversary with moderate resources.
The algorithms like bcrypt, scrypt etc are great for passwords, where depending on the password used, you need to make billions of guesses. However, if you reduce the problem space down to millions or thousands of guesses, because you already know the username, the email address, or the date of birth because this is not secret information but public information, these algorithms being slow helps significantly, but not enough to work alone.
Re: The False Allure of Hashing for Anonymization
#84Earlier quoted context omitted.
Please elaborate on whether hashing is a good pseudonimization strategy in context of GDPR guidelines.
I thought the blog post made it pretty clear that it isn't.
> pseudonimization strategy in context of GDPR guidelines.
i.e. Doing the minimal work to meet the guidelines. Effectiveness is incidental to that goal. Maybe I misunderstood the GP tho.
Re: The False Allure of Hashing for Anonymization
#85SHA256 pretty much ensures that you have a unique hash for every value - and that's a feature you don't want for anonymization. So why not simply take the first few bytes of a SHA256, a small enough set to ensure that collisions not only might happen but will happen? I mean, that's a required feature to ensure anonymization, not just pseudonymization - if you can select a whole trail of events for ID #123 and be sure…
Re: The False Allure of Hashing for Anonymization
#86Earlier quoted context omitted.
It doesn't say that information cannot be _reasonably_ reconnected, but that you shouldn't be able to reconnect it at all. I don't know how you have drawn that it shouldn't be NSA-proof from this text if it literally says "in such a manner that the data subject is not or no longer identifiable."
Its in the original link, I may have limited the quote too much: ... To determine whether a natural person is identifiable, account should be taken of all the means reasonably likely to be used ...
The parallel history of cryptography is little more than a history of overconfidence re what counters were thought to be likely, and not. Do we really need to recapitulate that?
Re: The False Allure of Hashing for Anonymization
#87Earlier quoted context omitted.
> If you can't connect it to the user in any way, it's no longer personal information Just because you can't connect it doesn't mean nobody else can.
For all practical purposes, a secure, one-way cryptographic hash is irreversible.
Re: The False Allure of Hashing for Anonymization
#88I saw a case a few years ago where the management of a company I knew were worried that the sales team were covering their mistakes and lying about it to blame the (external) dev team's code. They asked me to take a look into it one morning. At first glance there didn't seem to be a lot to go on. There was no auditing in the application itself so I focused on the nginx logs. It's amazing how clear of a picture you ca…
Re: The False Allure of Hashing for Anonymization
#89Differential privacy seems like a pretty good approach to this problem. https://machinelearning.apple.com/2017/12/06/learning-with-p...
Differential privacy is basically a buzzword. Don't believe the hype.