Ask HN: Do we need Google captcha?
Many of us remember the early batches of captchas. Annoying and sometimes next to impossible to get right. Googles "one click" captcha was a fresh breeze when it came. I'm not so sure anymore though. Now instead we have to use brain power to press 2-4 images in an AI quiz or said differently "help Google improve their ML data-set for free" which I'm not at all comfortable with. Isn't there a better way to fight bots? Could not the community make a FOSS alternative? How hard is this really?
80 comments
[ 2.8 ms ] story [ 143 ms ] threadI'd love to see a solution that's privacy-friendly.
the absolute best you could do is track on the site itself without google, but you still need to track user's data.
anything else you can think of can be beaten pretty easily or is going to really hurt your user experience to the point of severe loss of revenue
any CAPTCHA custom to a site will be broken very easily if your business takes off.
For me, this is an interesting and open question. I've taken the view that as long as it's easier to come up with new types of challenges than it is to create an automated means to solve those challenges, CAPTCHAs offer some protection. If you're ok with requiring JavaScript, mouse input, and images (e.g. you don't require your site to be accessible by sight-impaired users who cannot use a mouse), I think people can come up with varied enough challenges to present a problem to bots. How long will that be the case? I don't know.
Botters aren't just making passive income, they can fix their bot every day as long as it's making them money. Many sites try "random" questions which are really easy to pattern match with a little regex.
The amount of effort that goes into botting generally scales linearly with userbase size (not always). But once you're talking about a botter with a profit motive when your site has hundreds of thousands or millions of MAU, I think trying to come up with challenges to beat botters would be prohibitively time consuming.
> I think trying to come up with challenges to beat botters would be prohibitively time consuming.
I agree that is challenging, and I think this question will need to be settled empirically. Sub-questions include:
a) What is the threshold for bot operators to engineer custom CAPTCHA solutions? (e.g. for a large website, how much can a bot network make?)
b) Even if it were not possible to conclusively beat the bots, what is the threshold at which bot operators decide that they would rather make their money off of other sites instead?
There are three major categories of bots: 1) a combinatoric attack hoping to get lucky with an answer 2) employ some amount of smarts to fool the captcha (fetching lots of images without answering anything until they are sure of the answer, replay attacks to mimic human behavior, perceptual hashing of images etc) 3) Anti-Captcha (using people to solve captchas).
We can mostly recognize the first two kinds of attacks, but it is very difficult to stop the anti-captcha humans -- especially without tracking as many features as possible. One of the chief issues with most captchas is that they do not provide epidemic analysis and a webhook/endpoint to inform sites about a user after the initial sign-up. This also requires some amount of user tracking to recognize malicious behavior and retroactively tag and act upon it. Monetizing human activity can somewhat offset costs associated with dealing with these networks of bad accounts later and using privacypass gives the user a mechanism to bypass tracking their activity while also pricing out malicious account signup using anti-captcha.
A privacy-respecting captcha used for monetization also opens up an entirely different opportunity for publishers, offering a lower friction experience for users who want to support online content without privacy invasive advertisements and paywalls.
In the case of Google tracking you, they have your personal information and they are using your activity to show you ads -- we don't have either of those aspects to our business model; so our tracking is essentially anonymous.
You can try out demos at https://www.nettoolkit.com/shibboleth/demo
While not open-source, the service is very affordable ($10 for 100,000 CAPTCHAs), and clients get to review user submissions to see if the CAPTCHAs are reasonable or not.
Would love to get your feedback on the service.
https://en.wikipedia.org/wiki/Shibboleth_(Shibboleth_Consort...
Clicking on the buttons with a laptop trackpad was tedious and unintuitive.
It would be nice if I could use the arrow keys (or even WASD) on my keyboard.
Other than that it seems preferable to Google's new image captchas.
Please don't, not everyone is american, not everyone uses a qwerty keyboard.
There's dozens of simplistic captcha libraries that serve obscured text. I can would rather transcribe a few letters much than complete a Google Captcha, probably faster, too.
In the end I wrote my own rule based spam filters and that has been significantly more effective without tracking or annoying users.
Don't?
I mean, what are you trying to protect? If it's account registrations, shouldn't an email confirmation be enough?
This won't stop someone with enough sophistication.
OP did not provide a threat model or any description of the service really.
Talking about this "in general" is awful and leads to stupid bullshit like endless CloudFlare captchas on literally STATIC blogs.
I don't necessarily mind contributing to googles car-driving AI, but the services that I've put this captcha infront of have seen a dramatic increase in spam.
I unfortunately don't know what the solution to this problem is but I would gladly contribute to whatever someone smarter than me comes up with!
Wow. I just realized that's exactly what they must be doing with the data!
The user solves the captcha for the site which then uses that solution to fool the actual Google captcha.
(E.g. maybe it's reasonable to have a captcha of some sort for account creation, with fallback to a human-involved process. But if you're trying to prevent credential-stuffing on a login form, the correct approach is using the Pwned Passwords dataset and/or cooloffs.)
I settled on implementing a honeypot technique using invisible_captcha gem [1]. It uses multiple techniques to detect bot activity, such as checking if the form was submitted too fast, hidden form attribute only visible by bots but not humans, etc...
Luckily for me, these bots weren't quite sophisticated so I managed to clamp down on their activity. I still get a couple of bogus signup attempts every day.
Disclosure: I am a contributor to the invisible_captcha gem
[0] https://tryhexadecimal.com
[1] https://github.com/markets/invisible_captcha
EDIT: grammar and wording
You can take it one step further and check how fast the form was submitted. If it is below the predefined threshold, it is probably a bot.
[0] To hide the form field, you can use one of these snippets, interchangeably:
https://news.ycombinator.com/item?id=20158386
No need to select 25 traffic lights. Gives you a score from 0 to 1 so you can decide whether you let them in easily or not.
* https://news.ycombinator.com/item?id=21324523
reCAPTCHA v2 kinda had this problem, but Google could scrape by because it wasn’t obvious that some users were being flat-out blocked, though it does seem to be the case.
In reCAPTCHA v3, Google get around that problem by putting the burden of supporting some alternative for such denied users onto you, rather than on them—so they recommend things like falling back to sending an SMS code to validate such users. (Given how they position the product, this is basically just a disclaimer of liability—“we told you to do something extra! (though not very hard)”. I have no idea how legally effective that approach is, but that’s what they’re going for.)
That’s how we do at Fastmail for signup (which is a substantial fraud target): we use reCAPTCHA v3 if we can (and only on the signup page, I may add), but if it won’t load or if it flunks the user, then we fall back to requiring SMS verification, so that real people should still be able to sign up.
So that’s the major problem with reCAPTCHA v3: you can’t, or at least shouldn’t, use it by itself.
Every single time I have to pass few batches of captchas. I'm not on a private window and I'm logged in to Google. So I started to blacklist websites that use Google captcha. and forced myself to change reading habits.
A free open source alternative for captcha will have a harder time getting traction, mainly since the popular option (Google) is already free; and neither business not customers (who are not privacy sensitive) care about the end result unlike the browser and http case.
If you're experiencing it over a long period of time, it might be good to email hn@ycombinator.com. I don't think that should be happening.
> The difficulty of captchas can be so out of balance, that sometimes they seem friendlier to bots than they are to humans. The goal of this project is to improve our experience with captchas, by giving us easy access to solutions already utilized by automated systems.
https://github.com/dessant/buster/blob/master/README.md
How do you do this in a world with decent spam filters? By using the victim's email to sign up for real services so they get hit with a welcome email. Because these are real services, spam filter won't catch it. This can only be done with services that have sign up forms that are easily automated.
The most evil thing here is your email is crippled even after the attack is over because these real companies will keep sending you newsletter and it's impossible to unsubscribe to them all.
For example, if signing up to drop, I might use myemail+drop@gmail.com
Makes it very easy to see which services are selling the address you provide to advertisers
Also, if someone was targeting you with spam that won't help. They'll just remove the "+..." and you're back to the same problem.
A sophisticated attacker will simply use something like Mechanical Turk to get past Google captcha, and Google captcha is incredibly aggravating to a number of marginal users. But it's simple to implement, so that makes it popular.
I'd even say that most services don't need captcha in the first place. Captcha only affects relatively unsophisticated attacks, and if it's just an entry in your database, who cares? If it's sending you spam in an attempt to DDOS your email or customer service platform, use correlation between purchases and accounts to filter out the spam.
So, as with all security related matters, identify your threat model, and use that to figure out what you actually need, not what you think you need.
Though I suppose if this becomes common, bots might just google that question and try some of the zero-click results as answers.
I get 60 free minutes/month from Google Speech to text API. So, It's pretty much free to use.
[1]: https://addons.mozilla.org/en-US/firefox/addon/buster-captch...