Building a WebAuthn Click Farm
betterappsec.com
betterappsec.com
Attackers are already willing to purchase a bunch of cell phones to emulate human behavior. 'Attestation of Personhood' with the use of a hardware key is completely broken.
Edit: just checked, a hyperfido mini sells for $9.99 CAD, so not quite five bucks but still pretty affordable.
I don't know know about most unless you mean that most iPhones have it, but I wasn't aware it was built into mine, using Android 10. Just didn't put two and two together. My old smartphone on Android 9 didn't have it, I'm pretty sure.
Doing a little trolling, 100k+ banned tokens at a time.
I guess in the edge case where you are a legitimate but very heavy user of u2f keys and you happen to share one with a batch that is being abused for bad activity... you just get shown a regular captcha and continue with your day I guess.
The design of the system will surely reduce the percentage of people that get that experience however.
Ah that makes sense. No evil fun for me then :^(
Is it common to get in trouble with employers if this is not stated? I don't understand how a clearly non-work related blog post like this could land someone in hot waters with their employer. And even if it were I still don't understand how this statement alone can help.
Realistically, if someone wants to release something questionable, it’s preferable to work with the company prior to releasing it to find the verbiage they want used (similar to how many google GitHub repositories state they aren’t official Google products) and to understand if you will end up in hot water.
For non US based individuals encountering these for the first time, they often were their first encounter with how different the US legal system really was/is from the rest of the world.
------------------------------------------------------------ WARNING: This product contains a chemical known to the State of California to cause cancer.
I read about people who put a mobile phone in a fixed cradle, so that when the phone receives a call and vibrates, a band of steel attached to the cradle and with a bulb of conductive rubber on the other end locks into resonance and eventually hits a USB security token.
Algorithms that do proof of idle resources switch the economies of scale so it's cheaper for the average user to participate in a system than it is for an industrial scale botnet or bad actor. IE: Scaling up costs real money while I have a ton of idle capacity sitting in front of me right now that I could use for proofs with an incremental cost of $0 to me.
Reputation and identity are ripe for disruption IMO and systems that prove idle capacity for a period of time are pretty interesting and in their infancy right now.
The wording suggests they can't deauthorize an individual device's key, perhaps because they're not unique. So would they have to brick innocent devices that happen to be from the same batch as the attackers'?
There is absolutely no reason to have passwords anymore. You can't phish WebAuthn. It's built into every modern phone and PC. (There is some concern about it being easier to lose access to your account, but account recovery already exists for the three remaining people that don't use a password manager, and forget their passwords. If you're implementing it, do let users add multiple tokens, though. That way they can have a backup and easily enroll new devices.)
navigator.credentials.create.toString() != "function () { [native code] }"
Another way is to hook the Fetch API and log outgoing urls that are not authenticated by Cloudflare
Welcome to the start of another catch and mouse game.
> navigator.credentials.create.toString() != "function () { [native code] }"
Are you sure? If I can replace navigator.credentials.create then surely I can replace its toString as well.
Are you sure? You can make “native code” functions with .bind(null)
(function(){ var a=function(){};a.prototype.toString=navigator.credentials.create.toString.bind(navigator.credentials.create); return new a();})().toString()toString.name
Which results "bound toString" wheres real one results "toString"
(function(){ var a=function(){};a.prototype.toString=navigator.credentials.create.toString.bind(navigator.credentials.create); return new a();})().toString == Function.prototype.toString
yields false where
navigator.credentials.create.toString == Function.prototype.toString
yields true
It's been nearly 10 years in making, went through multiple complete spec rewrites, and endless erratas.
And for that bicycle reinvention attempt with extra feature of captcha, and DRM, Google killed the keygen tag in Chrome.