25 lines
No EOL
12 KiB
HTML
25 lines
No EOL
12 KiB
HTML
<!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.f6ad6756d667c5278dc90f5a573104237f609be2cad37a45c6ca319e6258bba21a4ee9d2aa26c382e8321edda94cbe30d9a291b7f1364c490ea01ff50eec00f9.css integrity="sha512-9q1nVtZnxSeNyQ9aVzEEI39gm+LK03pFxsoxnmJYu6IaTunSqibDgugyHt2pTL4w2aKRt/E2TEkOoB/1DuwA+Q==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Say hello to mCaptcha - mCaptcha</title><meta name=description content="Introducing mCaptcha, a kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. Oh and UX is great too!"><link rel=canonical href=/blog/say-hello-to-mcaptcha/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/blog/say-hello-to-mcaptcha/icon.png"><meta name=twitter:title content="Say hello to mCaptcha"><meta name=twitter:description content="Introducing mCaptcha, a kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. Oh and UX is great too!"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Say hello to mCaptcha"><meta property="og:description" content="Introducing mCaptcha, a kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. Oh and UX is great too!"><meta property="og:type" content="article"><meta property="og:url" content="/blog/say-hello-to-mcaptcha/"><meta property="og:image" content="/blog/say-hello-to-mcaptcha/icon.png"><meta property="article:published_time" content="2021-05-26T00:00:00+00:00"><meta property="article:modified_time" content="2021-05-26T00:00:00+00:00"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Blogsay Hello to Mcaptcha","item":"\/blogsay-hello-to-mcaptcha\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="blog single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
|
|
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
|
|
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
|
|
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/docs/prologue/introduction/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#how-does-it-work>How does it work?</a></li><li><a href=#okay-but-what-about-bad-actors>Okay, but what about bad actors?</a></li><li><a href=#why-use-mcaptcha>Why use mCaptcha?</a></li><li><a href=#how-to-migrate>How to migrate?</a></li><li><a href=#our-philosophy>Our Philosophy</a></li><li><a href=#resources>Resources</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9 mx-xl-auto"><article><div class=blog-header><h1>Say hello to mCaptcha</h1><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a> ‐ <strong>2 min read</strong></small><p></div><p class=lead>We are mCaptcha. We build kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p>At mCaptcha, we believe in digital freedom and privacy and so we built an
|
|
<a href=https://en.wikipedia.org/wiki/Proof_of_work>proof-of-work</a> based
|
|
CAPTCHA system that doesn’t track. Seriously, no tracking. But that
|
|
isn’t the killer feature, our system doesn’t require the user to
|
|
pick cars or ID sidewalks — our system does it’s thing(usually
|
|
at the click of a button) and gets out of the way.</p><h2 id=how-does-it-work>How does it work?</h2><p>mCaptcha uses SHA256 based proof-of-work(PoW) to rate limit users.</p><p>When a user wants to do something on an mCaptcha-protected website,</p><ol><li><p>they will have to generate proof-of-work(a bunch of math that will
|
|
takes time to compute) and submit it to mCaptcha.</p></li><li><p>We’ll validate the proof:</p></li></ol><ul><li>if validation is unsuccessful, they will be prevented from accessing
|
|
the destination website</li><li>if validation is successful, read on,</li></ul><ol start=3><li><p>They will be issued a token that should be submit along with the
|
|
request/form to the destination website.</p></li><li><p>The destination website validates the submitted token with
|
|
mCaptcha before processing the request.</p></li></ol><p>The whole process is automated from the user’s point of view. All they
|
|
have to do is click on a button to initiate the process.</p><h2 id=okay-but-what-about-bad-actors>Okay, but what about bad actors?</h2><p>mCaptcha makes interacting with websites (computationally)expensive for
|
|
the user. A well-behaving user will experience a slight delay(no delay
|
|
when under moderate load to 2-3 seconds when under attack; PoW difficulty is
|
|
variable) but if someone wants to hammer your site, they will have to do
|
|
more work to send requests than your server you will have to do to respond
|
|
to their request.</p><h2 id=why-use-mcaptcha>Why use mCaptcha?</h2><ul><li><strong>Free software, privacy focused</strong></li><li><strong>Seamless</strong> UX — No more annoying CAPTCHAs!</li><li><strong>IP address independent:</strong> your users are behind a NAT? We got you covered!</li><li><strong>Automatic bot throttling</strong></li><li><strong>Resistant to replay attacks:</strong> proof-of-work configurations have short lifetimes(30s) and can be used only once. If a user submits a PoW to an already used configuration or an expired one, their proof will be rejected.</li></ul><h2 id=how-to-migrate>How to migrate?</h2><p>Our client libraries are mostly compatible with reCAPTCHA and hCaptcha.
|
|
A detailed guide will be published soon.</p><h2 id=our-philosophy>Our Philosophy</h2><p>Man has has come so far only because our ancestors chose to
|
|
share their knowledge with others. If everything was labeled
|
|
intellectual property, we might still be stuck in Stone Age. The idea of
|
|
intellectual property is alien to us. For this reason, all of our source
|
|
code is freely available(both as in freedom and beers) at <a href=https://github.com/mCaptcha/>our
|
|
GitHub</a>.</p><h2 id=resources>Resources</h2><ul><li><a href=https://github.com/mCaptcha/guard>guard</a> - mCaptcha backend <code>AGPL</code></li><li><a href=https://github.com/mCaptcha/browser>frontend library</a> - mCaptcha frontend library. <code>MIT/APACHE</code></li></ul></article><div class="docs-navigation d-flex justify-content-between"></div><p class=edit-page><a href=https://github.com/mCaptcha/website/blob/master/content/blog/say-hello-to-mcaptcha/index.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on GitHub</a></p></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.db67f0caa6a5788b691b9509981d6e5943f4b8d829170a674f468d4b23671ce4017c47a0a22116a8fc2f2de556c8b48f1afecd86707066f2f022c5dd83e8ea3c.js integrity="sha512-22fwyqaleItpG5UJmB1uWUP0uNgpFwpnT0aNSyNnHOQBfEegoiEWqPwvLeVWyLSPGv7NhnBwZvLwIsXdg+jqPA==" crossorigin=anonymous defer></script><script src=/index.min.6c5c4982ce0ae1f88212e0cba5a6111cc7d16119ec59cb56f8554ea720aa7e5937f6bfb0d7ce366cd2bdebf6e2014c80a27adfb44e9e7175b253e2010156b73e.js integrity="sha512-bFxJgs4K4fiCEuDLpaYRHMfRYRnsWctW+FVOpyCqflk39r+w1842bNK96/biAUyAonrftE6ecXWyU+IBAVa3Pg==" crossorigin=anonymous defer></script></body></html> |