Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Captcha Idea: Use coherent noise for temporal patterns #262

Open
hrj opened this issue Dec 24, 2024 · 3 comments
Open

Captcha Idea: Use coherent noise for temporal patterns #262

hrj opened this issue Dec 24, 2024 · 3 comments

Comments

@hrj
Copy link
Contributor

hrj commented Dec 24, 2024

https://www.youtube.com/watch?v=Bg3RAI8uyVw

@mike-targetr
Copy link

I did experiment with this idea (unrelated to this YouTube video).

It has potential, but not sure if it is worth pursuing.

Examples:

https://rcweb.live/tncaptcha/

@hrj
Copy link
Contributor Author

hrj commented Jan 28, 2025

@mike-targetr Nicely done. Definitely looks worth pursuing to me. In particular, the last example on that page (type 4 + 20% extra noise) but with reduced noise would be very effective.

Some more ideas:

  • Use a color palette to generate the noise, instead of just blacks and whites.
  • Use separate color palettes for background and foreground, with configurable number of overlapping colors
  • The color palettes can have a probability / weight for each color. And the two palettes for foreground and background can have different weights for the overlapping colors. So that the statistical differences in color distribution provide an additional cue to the human eye.

@mike-targetr
Copy link

The first version was colour, however, it introduced a big problem. - The GIF ended up many megabytes in size.

I also realised that movement of the same pattern of random colours actually makes it easier for a bot to detect motion because there are more unique (detectable) patterns. - As you suggest, there are other ways colour could be used.

One of the reasons I have not continued developing this is that if the temporal element is removed, you are back to same problem of making a regular (single image) captcha. In its current form, none of the LLMs supporting GIFs can see even the most simple variant of TN-CAPTCHA. But with a bit of work detecting motion (could use motion detection from video encoding P frames for example) the output is then easily solved by a bot.

Interesting fact, I am the creator of JScreenFix (https://www.jscreenfix.com/) which uses a random colour patterns at 60fps+ to reenergise stuck pixels. - This is where the original code and idea came from.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants