Repository navigation
Mitigate submission flooding with ALTCHA proof-of-work - #198
Open
victormeloasm wants to merge 1 commit into
Open
victormeloasm wants to merge 1 commit into
victormeloasm wants to merge 1 commit into
Conversation
Contributor
|
Thanks for the PR! Unfortunately, I do not think this is doing things in the right way. Right now, we already have rate limits, e.g., https://github.com/crackmesone/crackmesone_python/blob/main/app/services/limiter.py#L9-L19. Which is enforced at https://github.com/crackmesone/crackmesone_python/blob/main/app/controllers/solution.py#L157. I think the correct way to deal with the load is to just set a lower limit, e.g., 5 per day for crackme and submission upload |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces ALTCHA, an open-source Proof-of-Work (PoW)
CAPTCHA system, to mitigate automated submission flooding on
Crackmes.one.
The implementation replaces Google reCAPTCHA with a self-hosted
verification mechanism that does not require external CAPTCHA
API keys or third-party verification services.
The primary goal is to protect crackme and writeup submissions
against automated abuse while preserving the existing user
experience and application functionality.
Key Features
Security
Integration
Infrastructure
Testing
The implementation has undergone automated and integration testing.
Automated Tests
Browser Integration
Successfully tested using Chromium and Playwright:
Concurrency and Replay Protection
Tested against a real MongoDB instance with Gunicorn
configured for five workers.
20 concurrent HTTP requests attempted to reuse the
same valid ALTCHA proof.
Results:
Deployment Notes
Production deployment requires:
loading it from the pinned CDN version.
No external CAPTCHA verification service is required.
Motivation
Crackmes.one has experienced automated submission flooding,
which increases moderation workload and negatively affects
the quality of submissions.
This implementation introduces a lightweight cryptographic
barrier against automated submissions without requiring
users to solve traditional image-based CAPTCHA challenges.
Proof-of-Work alone cannot eliminate all automated abuse.
It is intended to complement existing authentication,
rate limiting, and submission validation mechanisms.
Conclusion
This PR provides an independently verifiable,
open-source CAPTCHA solution designed to reduce
automated submission flooding while preserving the
existing Crackmes.one submission workflow.