From d744dfda03c7098d63e58dfe44f4261653420b59 Mon Sep 17 00:00:00 2001 From: acetone Date: Thu, 30 Jun 2022 13:24:18 -0400 Subject: [PATCH 1/7] fastest hand on wild west --- zerostoragecaptcha.cpp | 88 ++++++++++++++++-------------------- zerostoragecaptchacrypto.cpp | 32 +++---------- zerostoragecaptchacrypto.h | 1 - 3 files changed, 46 insertions(+), 75 deletions(-) diff --git a/zerostoragecaptcha.cpp b/zerostoragecaptcha.cpp index 6b34067..1dc5896 100644 --- a/zerostoragecaptcha.cpp +++ b/zerostoragecaptcha.cpp @@ -60,7 +60,7 @@ ZeroStorageCaptcha::ZeroStorageCaptcha() m_padding = 5; - setDifficulty(3); + setDifficulty(2); m_captchaText = "NOTSET"; qsrand(static_cast(QTime::currentTime().msec())); // randomize @@ -183,66 +183,58 @@ void ZeroStorageCaptcha::setSinDeform(qreal hAmplitude, qreal hFrequency, qreal void ZeroStorageCaptcha::setDifficulty(int val) { - if (val < 0 or val > 5) + std::random_device rd; + std::uniform_int_distribution dist (1,3); + short variant = dist(rd); + + if (val < 0 or val > 2) { - qInfo().noquote() << QString(__PRETTY_FUNCTION__) << "Min difficulty is 0, maximal is 5"; + qInfo().noquote() << QString(__PRETTY_FUNCTION__) << "Min difficulty is 0, maximal is 2"; } if (val < 1) { m_drawLines = false; - m_drawEllipses = false; m_drawNoise = false; - setSinDeform(10, 10, 5, 20); + m_drawEllipses = true; + m_ellipseCount = 1; + m_ellipseMinRadius = 10; + m_ellipseMaxRadius = 40; + switch (variant) { + case 0: + setSinDeform(2, 5, 5, 15); + break; + case 1: + setSinDeform(5, 7, 7, 15); + break; + default: + setSinDeform(2, 1, 1, 10); + break; + } } else if (val == 1) - { - m_drawLines = true; - m_lineWidth = 3; - m_lineCount = 5; - m_drawEllipses = false; - m_drawNoise = false; - setSinDeform(10, 15, 5, 20); - } - else if (val == 2) { m_drawLines = true; m_lineWidth = 2; - m_lineCount = 5; - m_drawEllipses = true; - m_ellipseCount = 1; - m_ellipseMinRadius = 20; - m_ellipseMaxRadius = 40; - m_drawNoise = false; - setSinDeform(10, 15, 5, 15); - } - else if (val == 3) - { - m_drawLines = true; - m_lineWidth = 2; - m_lineCount = 3; - m_drawEllipses = true; - m_ellipseCount = 1; - m_ellipseMinRadius = 20; - m_ellipseMaxRadius = 50; - m_drawNoise = true; - m_noiseCount = 100; - m_noisePointSize = 3; - setSinDeform(8, 13, 5, 15); - } - else if (val == 4) - { - m_drawLines = true; - m_lineWidth = 3; - m_lineCount = 5; + m_lineCount = 10; m_drawEllipses = true; m_ellipseCount = 2; m_ellipseMinRadius = 20; - m_ellipseMaxRadius = 40; + m_ellipseMaxRadius = 30; m_drawNoise = true; - m_noiseCount = 100; + m_noiseCount = 300; m_noisePointSize = 3; - setSinDeform(8, 13, 5, 15); + switch (variant) { + case 0: + setSinDeform(2, 5, 5, 25); + break; + case 1: + setSinDeform(6, 8, 8, 25); + break; + default: + setSinDeform(3, 6, 6, 15); + break; + } } else { @@ -251,12 +243,12 @@ void ZeroStorageCaptcha::setDifficulty(int val) m_lineCount = 7; m_drawEllipses = true; m_ellipseCount = 1; - m_ellipseMinRadius = 20; - m_ellipseMaxRadius = 40; + m_ellipseMinRadius = 50; + m_ellipseMaxRadius = 70; m_drawNoise = true; - m_noiseCount = 200; + m_noiseCount = 100; m_noisePointSize = 3; - setSinDeform(8, 10, 5, 10); + setSinDeform(2, 5, 5, 15); } } diff --git a/zerostoragecaptchacrypto.cpp b/zerostoragecaptchacrypto.cpp index 8e73ec0..62a1cbf 100644 --- a/zerostoragecaptchacrypto.cpp +++ b/zerostoragecaptchacrypto.cpp @@ -9,7 +9,7 @@ #include #include -constexpr int TIME_TOKEN_SIZE = 10; +constexpr int TIME_TOKEN_SIZE = 5; // + secs since epoch constexpr int DEFAULT_SIZE_OF_USED_TOKENS_CACHE = 100000; constexpr int TIMER_TO_CHANGE_TOKEN_MSECS = 90000; // 1,5 min @@ -29,12 +29,12 @@ void TimeToken::init() if (m_updater) return; m_updater = new QTimer; - m_current = ZeroStorageCaptchaCrypto::random(TIME_TOKEN_SIZE); + m_current = ZeroStorageCaptchaCrypto::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); m_updater->setInterval(TIMER_TO_CHANGE_TOKEN_MSECS); QObject::connect(m_updater, &QTimer::timeout, [&]() { KeyHolder::removeOldToken(m_prev); m_prev = m_current; - m_current = ZeroStorageCaptchaCrypto::random(TIME_TOKEN_SIZE); + m_current = ZeroStorageCaptchaCrypto::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); }); m_updater->start(); } @@ -56,11 +56,11 @@ QString KeyHolder::captchaSecretLine(const QString &captchaAnswer, bool prevTime } } - QString hashedAnswer = ZeroStorageCaptchaCrypto::hash((m_caseSensitive ? captchaAnswer : captchaAnswer.toUpper()) + - (prevTimeToken ? TimeToken::prevToken() : TimeToken::currentToken()) ); + QString stringToSign = (m_caseSensitive ? captchaAnswer : captchaAnswer.toUpper()) + + (prevTimeToken ? TimeToken::prevToken() : TimeToken::currentToken()); uint8_t signature[SIGSIZE]; - sign(reinterpret_cast(hashedAnswer.toStdString().c_str()), static_cast(hashedAnswer.size()), signature, m_key); + sign(reinterpret_cast(stringToSign.toStdString().c_str()), static_cast(stringToSign.size()), signature, m_key); QByteArray rawResultArray; for(int i = 0; i < SIGSIZE; ++i) @@ -146,26 +146,6 @@ void KeyHolder::warningLog() ""; } -QString hash(const QString &str) -{ - QVector in; - for(auto c: str) - { - in.push_back(static_cast(c.toLatin1())); - } - - QVector out(SHA256_DIGEST_LENGTH); - SHA256(in.data(), static_cast(in.size()), out.data()); - - QByteArray rawResult; - for (auto b: out) - { - rawResult.push_back(static_cast(b)); - } - - return rawResult.toBase64(QByteArray::Base64Option::Base64UrlEncoding); -} - QByteArray random(int length, bool onlyNumbers) { constexpr char randomtable[60] = diff --git a/zerostoragecaptchacrypto.h b/zerostoragecaptchacrypto.h index ea29777..f76ad69 100644 --- a/zerostoragecaptchacrypto.h +++ b/zerostoragecaptchacrypto.h @@ -15,7 +15,6 @@ constexpr int SIGSIZE = 64; namespace ZeroStorageCaptchaCrypto { -QString hash(const QString& str); QByteArray random(int length, bool onlyNumbers = false); ///////// From 0991238f4fc293b3ab5eb6953ab1f749fa73e2a7 Mon Sep 17 00:00:00 2001 From: acetone Date: Thu, 11 Aug 2022 00:51:03 +0300 Subject: [PATCH 2/7] simplest and fastest --- README.md | 8 +- examples/example1.cpp | 10 +- examples/example2.cpp | 10 +- examples/example3.cpp | 31 ----- pics/cover.png | Bin 274786 -> 0 bytes pics/difficult0.png | Bin 0 -> 5666 bytes pics/difficult1.png | Bin 0 -> 9503 bytes pics/difficult2.png | Bin 0 -> 9702 bytes zerostoragecaptcha.cpp | 247 +++++++++++++++++++++++++++++------ zerostoragecaptcha.h | 98 ++++++++++---- zerostoragecaptchacrypto.cpp | 172 ------------------------ zerostoragecaptchacrypto.h | 67 ---------- 12 files changed, 294 insertions(+), 349 deletions(-) delete mode 100644 examples/example3.cpp delete mode 100755 pics/cover.png create mode 100644 pics/difficult0.png create mode 100644 pics/difficult1.png create mode 100644 pics/difficult2.png delete mode 100644 zerostoragecaptchacrypto.cpp delete mode 100644 zerostoragecaptchacrypto.h diff --git a/README.md b/README.md index c96991f..d4e00f0 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ Offline captcha without any file system or database storage. -Dependencies: Qt5 and OpenSSL. - -![Cover](https://raw.githubusercontent.com/ZeroStorageCaptcha/cpp-lib/main/pics/cover.png) +Dependencies: Qt5. ## Inspiration @@ -23,8 +21,8 @@ When generating a captcha, the user receives a picture and a token. The token is a cryptographic key to verify the correctness of the answer. It is created based on: 1) Captcha answer -2) Hash SHA256 -3) Session signing key X25519 +2) Hash MD5 +3) Session unique string 4) Time marker The time marker (time token) changes every one and a half minutes, due to which the same answer after diff --git a/examples/example1.cpp b/examples/example1.cpp index 37c741e..f7e335d 100644 --- a/examples/example1.cpp +++ b/examples/example1.cpp @@ -15,14 +15,18 @@ int main(int argc, char *argv[]) // "Environment=QT_QPA_PLATFORM=offscreen" in systemd service ([Service] section) QApplication a(argc, argv); - ZeroStorageCaptchaCrypto::KeyHolder::setCaseSensitive(true); - auto captcha = ZeroStorageCaptcha::getCaptcha(); + ZeroStorageCaptchaService::TokenManager::setCaseSensitive(true); + ZeroStorageCaptcha captcha; + captcha.setDifficulty(0); + captcha.generateText(); + captcha.updateCaptcha(); qInfo() << captcha.token() << captcha.answer(); QFile f("captcha.png"); if (not f.open(QIODevice::WriteOnly)) return 1; f.write(captcha.picture()); f.close(); - qInfo() << "Validation: " << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); + qInfo() << "Validation 1: " << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); + qInfo() << "Validation 2: " << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); return a.exec(); } diff --git a/examples/example2.cpp b/examples/example2.cpp index 57b7711..307988a 100644 --- a/examples/example2.cpp +++ b/examples/example2.cpp @@ -17,10 +17,12 @@ int main(int argc, char *argv[]) ZeroStorageCaptcha captcha; captcha.generateText(); - qInfo() << captcha.captchaToken(); - qInfo() << captcha.captchaText(); - qInfo() << captcha.captchaPngByteArray().toBase64(); - qInfo() << "Validation:" << ZeroStorageCaptcha::validate(captcha.captchaText(), captcha.captchaToken()); + captcha.updateCaptcha(); + qInfo() << captcha.token(); + qInfo() << captcha.answer(); + qInfo() << captcha.picture().toBase64(); + qInfo() << "Validation 1:" << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); + qInfo() << "Validation 2:" << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); return a.exec(); } diff --git a/examples/example3.cpp b/examples/example3.cpp deleted file mode 100644 index 94e371f..0000000 --- a/examples/example3.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org -// Zero Storage Captcha example - -#include "zerostoragecaptcha.h" - -#include -#include -#include - -int main(int argc, char *argv[]) -{ - // To start QApplication without X-server (non-GUI system) should use: - // "export QT_QPA_PLATFORM=offscreen" in plain shell - // or - // "Environment=QT_QPA_PLATFORM=offscreen" in systemd service ([Service] section) - QApplication a(argc, argv); - - ZeroStorageCaptcha::setOnlyNumbersMode(true); - auto captcha = ZeroStorageCaptcha::getCaptcha(); - qInfo() << captcha.token() << captcha.answer(); - QFile f("captcha.png"); - if (not f.open(QIODevice::WriteOnly)) - { - return 1; - } - f.write(captcha.picture()); - f.close(); - qInfo() << "Validation: " << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); - - return a.exec(); -} diff --git a/pics/cover.png b/pics/cover.png deleted file mode 100755 index cf16513c189c959a2fe245a8ef9f3f13429b15bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274786 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[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 diff --git a/pics/difficult0.png b/pics/difficult0.png new file mode 100644 index 0000000000000000000000000000000000000000..186a1d84dd5f0da252571bb390e9f824b01303c1 GIT binary patch literal 5666 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 literal 0 HcmV?d00001 diff --git a/pics/difficult1.png b/pics/difficult1.png new file mode 100644 index 0000000000000000000000000000000000000000..463823c465093b29976b16d1a391ccf4a9792545 GIT binary patch literal 9503 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 literal 0 HcmV?d00001 diff --git a/pics/difficult2.png b/pics/difficult2.png new file mode 100644 index 0000000000000000000000000000000000000000..375a1993f9d3b46045f77b2e5eec23e140ebd6f1 GIT binary patch literal 9702 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 literal 0 HcmV?d00001 diff --git a/zerostoragecaptcha.cpp b/zerostoragecaptcha.cpp index 1dc5896..1dab712 100644 --- a/zerostoragecaptcha.cpp +++ b/zerostoragecaptcha.cpp @@ -1,6 +1,8 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org +// GPLv3 (c) 2022, acetone // Zero Storage Captcha +// PNG generation based on: + /* * Copyright (c) 2014 Omkar Kanase * QtCaptcha: https://github.com/omkar-developer/QtCaptcha @@ -26,13 +28,16 @@ #include #include #include -#include +#include +#include +#include +#include bool ZeroStorageCaptcha::m_onlyNumbers = false; ZeroStorageCaptcha::ZeroStorageCaptcha() { - if (not ZeroStorageCaptchaCrypto::TimeToken::inited()) ZeroStorageCaptchaCrypto::TimeToken::init(); + ZeroStorageCaptchaService::TimeToken::init(); m_hmod1 = 0.0; m_hmod2 = 0.0; @@ -62,29 +67,23 @@ ZeroStorageCaptcha::ZeroStorageCaptcha() setDifficulty(2); m_captchaText = "NOTSET"; - - qsrand(static_cast(QTime::currentTime().msec())); // randomize } bool ZeroStorageCaptcha::validate(const QString &answer, const QString &token) { - return ZeroStorageCaptchaCrypto::KeyHolder::validateCaptchaAnswer(answer, token); + return ZeroStorageCaptchaService::TokenManager::validateAnswer(answer, token); } -ZeroStorageCaptchaContainer ZeroStorageCaptcha::getCaptcha(int length, int difficulty) +QString ZeroStorageCaptcha::token() const { - ZeroStorageCaptcha c; - c.setDifficulty(difficulty); - c.generateText(length); - return ZeroStorageCaptchaContainer (c.captchaPngByteArray(), c.captchaToken(), c.captchaText()); + if (m_token.isEmpty()) + { + m_token = ZeroStorageCaptchaService::TokenManager::get(m_captchaText); + } + return m_token; } -QString ZeroStorageCaptcha::captchaToken() const -{ - return ZeroStorageCaptchaCrypto::KeyHolder::captchaSecretLine(m_captchaText); -} - -QByteArray ZeroStorageCaptcha::captchaPngByteArray() const +QByteArray ZeroStorageCaptcha::picture() const { QByteArray data; QBuffer buff(&data); @@ -97,9 +96,9 @@ void ZeroStorageCaptcha::updateCaptcha() QPainterPath path; QFontMetrics fm(m_font); - path.addText(m_vmod2 + m_padding, m_hmod2 - m_padding + fm.height(), font(), captchaText()); + path.addText(m_vmod2 + m_padding, m_hmod2 - m_padding + fm.height(), font(), answer()); - qreal sinrandomness = (static_cast(qrand()) / RAND_MAX) * 5.0; + qreal sinrandomness = QRandomGenerator::system()->generateDouble() * 5.0; for (int i = 0; i < path.elementCount(); ++i) { @@ -126,10 +125,10 @@ void ZeroStorageCaptcha::updateCaptcha() painter.setPen(QPen(Qt::black, m_lineWidth)); for (int i = 0; i < m_lineCount; i++) { - int x1 = static_cast((static_cast(qrand()) / RAND_MAX) * m_captchaImage.width()); - int y1 = static_cast((static_cast(qrand()) / RAND_MAX) * m_captchaImage.height()); - int x2 = static_cast((static_cast(qrand()) / RAND_MAX) * m_captchaImage.width()); - int y2 = static_cast((static_cast(qrand()) / RAND_MAX) * m_captchaImage.height()); + int x1 = static_cast(QRandomGenerator::system()->generateDouble() * m_captchaImage.width()); + int y1 = static_cast(QRandomGenerator::system()->generateDouble() * m_captchaImage.height()); + int x2 = static_cast(QRandomGenerator::system()->generateDouble() * m_captchaImage.width()); + int y2 = static_cast(QRandomGenerator::system()->generateDouble() * m_captchaImage.height()); painter.drawLine(x1, y1, x2, y2); } painter.setPen(Qt::NoPen); @@ -139,10 +138,10 @@ void ZeroStorageCaptcha::updateCaptcha() { for (int i = 0; i < m_ellipseCount; i++) { - int x1 = static_cast(m_ellipseMaxRadius / 2.0 + (static_cast(qrand()) / RAND_MAX) * (m_captchaImage.width() - m_ellipseMaxRadius)); - int y1 = static_cast(m_ellipseMaxRadius / 2.0 + (static_cast(qrand()) / RAND_MAX) * (m_captchaImage.height() - m_ellipseMaxRadius)); - int rad1 = static_cast(m_ellipseMinRadius + (static_cast(qrand()) / RAND_MAX) * (m_ellipseMaxRadius - m_ellipseMinRadius)); - int rad2 = static_cast(m_ellipseMinRadius + (static_cast(qrand()) / RAND_MAX) * (m_ellipseMaxRadius - m_ellipseMinRadius)); + int x1 = static_cast(m_ellipseMaxRadius / 2.0 + QRandomGenerator::system()->generateDouble() * (m_captchaImage.width() - m_ellipseMaxRadius)); + int y1 = static_cast(m_ellipseMaxRadius / 2.0 + QRandomGenerator::system()->generateDouble() * (m_captchaImage.height() - m_ellipseMaxRadius)); + int rad1 = static_cast(m_ellipseMinRadius + QRandomGenerator::system()->generateDouble() * (m_ellipseMaxRadius - m_ellipseMinRadius)); + int rad2 = static_cast(m_ellipseMinRadius + QRandomGenerator::system()->generateDouble() * (m_ellipseMaxRadius - m_ellipseMinRadius)); if (backColor() == Qt::GlobalColor::black) { painter.setBrush(fontColor()); @@ -159,8 +158,8 @@ void ZeroStorageCaptcha::updateCaptcha() { for (int i = 0; i < m_noiseCount; i++) { - int x1 = static_cast(static_cast(qrand()) / RAND_MAX * m_captchaImage.width()); - int y1 = static_cast(static_cast(qrand()) / RAND_MAX * m_captchaImage.height()); + int x1 = static_cast(QRandomGenerator::system()->generateDouble() * m_captchaImage.width()); + int y1 = static_cast(QRandomGenerator::system()->generateDouble() * m_captchaImage.height()); QColor col = backColor() == Qt::GlobalColor::black ? Qt::GlobalColor::white : Qt::GlobalColor::black; @@ -183,9 +182,7 @@ void ZeroStorageCaptcha::setSinDeform(qreal hAmplitude, qreal hFrequency, qreal void ZeroStorageCaptcha::setDifficulty(int val) { - std::random_device rd; - std::uniform_int_distribution dist (1,3); - short variant = dist(rd); + short variant = QRandomGenerator::system()->bounded(1, 3); if (val < 0 or val > 2) { @@ -222,8 +219,8 @@ void ZeroStorageCaptcha::setDifficulty(int val) m_ellipseMinRadius = 20; m_ellipseMaxRadius = 30; m_drawNoise = true; - m_noiseCount = 300; - m_noisePointSize = 3; + m_noiseCount = 30; + m_noisePointSize = 5; switch (variant) { case 0: setSinDeform(2, 5, 5, 25); @@ -240,14 +237,14 @@ void ZeroStorageCaptcha::setDifficulty(int val) { m_drawLines = true; m_lineWidth = 4; - m_lineCount = 7; + m_lineCount = 9; m_drawEllipses = true; m_ellipseCount = 1; m_ellipseMinRadius = 50; m_ellipseMaxRadius = 70; m_drawNoise = true; - m_noiseCount = 100; - m_noisePointSize = 3; + m_noiseCount = 150; + m_noisePointSize = 4; setSinDeform(2, 5, 5, 15); } } @@ -260,7 +257,177 @@ void ZeroStorageCaptcha::generateText(int length) length = 5; } - m_captchaText = ZeroStorageCaptchaCrypto::random(length, m_onlyNumbers); - - updateCaptcha(); + m_captchaText = ZeroStorageCaptchaService::random(length, m_onlyNumbers); } + +////////////////////////// + +constexpr const int TIME_TOKEN_SIZE = 5; // (symbols count) + secs since epoch +constexpr const size_t DEFAULT_SIZE_OF_USED_TOKENS_CACHE = 10000000; // 10M +constexpr const int TIMER_TO_CHANGE_TOKEN_MSECS = 90000; // 1,5 min +constexpr const int KEY_STRING_SIZE = 32; + +namespace ZeroStorageCaptchaService { + +QTimer* TimeToken::m_updater = nullptr; +QString TimeToken::m_current; +QString TimeToken::m_prev; + +size_t TokenManager::m_maximalSizeOfUsedMap = DEFAULT_SIZE_OF_USED_TOKENS_CACHE; +QMutex TokenManager::m_usedTokensMtx; +std::map> TokenManager::m_usedTokens; +bool TokenManager::m_caseSensitive = false; +QString TokenManager::m_key = nullptr; + +void TimeToken::init() +{ + if (m_updater) return; + + m_updater = new QTimer; + m_current = ZeroStorageCaptchaService::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); + m_updater->setInterval(TIMER_TO_CHANGE_TOKEN_MSECS); + QObject::connect ( + m_updater, &QTimer::timeout, + [&]() { + TokenManager::removeToken( prevToken() ); + m_prev = m_current; + m_current = ZeroStorageCaptchaService::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); + } + ); + m_updater->start(); +} + +std::atomic IdCounter::counter = 0; + +size_t IdCounter::get() +{ + size_t value = ++counter; + if (value == 0) + { + value++; + } + return value; +} + +QString TokenManager::get(const QString &captchaAnswer, size_t id, bool prevTimeToken) +{ + if (m_key.isEmpty()) + { + m_key = random(KEY_STRING_SIZE); // init at first call + } + + if (id == 0) + { + id = IdCounter::get(); + } + + // ANSWER + TIME_TOKEN + ID + SESSION_KEY + // TIME_TOKEN - temporary marker for limiting captcha life circle + // ID - size_t validation key for concrete captcha + // SESSION_KEY - random run-time session key for unique hash value + const QString base = (m_caseSensitive ? captchaAnswer : captchaAnswer.toUpper()) + + (prevTimeToken ? TimeToken::prevToken() : TimeToken::currentToken()) + + QString::number(id) + m_key; + + const QByteArray hash = QCryptographicHash::hash(base.toUtf8(), QCryptographicHash::Md5); + QString b64Hash = hash.toBase64(QByteArray::Base64Option::Base64UrlEncoding); + static QRegularExpression rgx_OnlyLetters("[^a-zA-Z]"); + b64Hash.remove(rgx_OnlyLetters); + QString token = b64Hash + "_" + QString::number(id); + return token; +} + +bool TokenManager::validateAnswer(const QString &answer, const QString &token) +{ + QString idString {token}; + static QRegularExpression rgx_id("^.*_"); + idString.remove (rgx_id); + bool idConvertingStatus = false; + size_t id = idString.toULongLong(&idConvertingStatus); + if (not idConvertingStatus or id == 0) + { + return false; + } + + QString timeKey; + if (TokenManager::get(answer, id) == token) + { + timeKey = TimeToken::currentToken(); + } + else if (TokenManager::get(answer, id, true) == token) + { + timeKey = TimeToken::prevToken(); + } + + if (timeKey.isEmpty()) + { + return false; + } + + QMutexLocker lock (&m_usedTokensMtx); + if (m_usedTokens.find(timeKey) != m_usedTokens.end()) + { + if (m_usedTokens[timeKey].contains(id)) // already used + { + return false; + } + } + + size_t currentUsedSize = 0; + for (const auto& timePoint: m_usedTokens) + { + currentUsedSize += timePoint.second.size(); + } + if (currentUsedSize >= m_maximalSizeOfUsedMap) + { + limitWarningLog(); + return false; + } + + m_usedTokens[timeKey].insert( id ); + return true; +} + +void TokenManager::removeToken(const QString &oldPrevToken) +{ + QMutexLocker lock (&m_usedTokensMtx); + auto iter = m_usedTokens.find(oldPrevToken); + if (iter != m_usedTokens.end()) + { + m_usedTokens.erase(iter); + } +} + +void TokenManager::limitWarningLog() +{ + qInfo().noquote() << + "\n" + " Token cache is full (" + QString::number(m_maximalSizeOfUsedMap) + "). Service temporary unavailable.\n" + " You can increase maximal cache size via ZeroStorageCaptchaService::TokenManager::setMaxSizeOfUsedTokensCache(size_t)\n" + ""; +} + +QByteArray random(int length, bool onlyNumbers) +{ + constexpr char randomtable[60] = + {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'k', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', + 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', + 'h', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X'}; + + QByteArray random_value; + + while(random_value.size() < length) + { + random_value += randomtable[ QRandomGenerator::system()->bounded ( + onlyNumbers ? 0 : 1, + onlyNumbers ? 9 : 59 + ) ]; + } + + return random_value; +} + +} // namespace ZeroStorageCaptchaService diff --git a/zerostoragecaptcha.h b/zerostoragecaptcha.h index e13bc57..9be714b 100644 --- a/zerostoragecaptcha.h +++ b/zerostoragecaptcha.h @@ -1,6 +1,8 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org +// GPLv3 (c) 2022, acetone // Zero Storage Captcha +// PNG generation based on: + /* * Copyright (c) 2014 Omkar Kanase * QtCaptcha: https://github.com/omkar-developer/QtCaptcha @@ -23,43 +25,27 @@ #ifndef ZEROSTORAGECAPTCHA_H #define ZEROSTORAGECAPTCHA_H -#include "zerostoragecaptchacrypto.h" - #include #include - -class ZeroStorageCaptchaContainer -{ -public: - ZeroStorageCaptchaContainer(const QByteArray& pic, const QString& token, const QString& answer) : - m_picture(pic), - m_token(token), - m_answer(answer) - {} - - const QByteArray& picture() const { return m_picture; } - const QString& token() const { return m_token; } - const QString& answer() const { return m_answer; } - -private: - QByteArray m_picture; - QString m_token; - QString m_answer; -}; +#include +#include +#include +#include +#include +#include // becouse QMap.size() is int instead size_t class ZeroStorageCaptcha { public: ZeroStorageCaptcha(); static bool validate(const QString& answer, const QString& token); - static ZeroStorageCaptchaContainer getCaptcha(int length = 5, int difficulty = 3); static void setOnlyNumbersMode(bool enabled = false) { m_onlyNumbers = enabled; } - QString captchaText() const { return m_captchaText; } - QString captchaToken() const; - QByteArray captchaPngByteArray() const; + QString answer() const { return m_captchaText; } + QString token() const; + QByteArray picture() const; - QImage captchaImage() const { return m_captchaImage; } + QImage qimage() const { return m_captchaImage; } QFont font() const { return m_font; } QColor fontColor() const { return m_fontColor; } QColor backColor() const { return m_backColor; } @@ -118,6 +104,64 @@ private: int m_ellipseMinRadius; int m_ellipseMaxRadius; int m_noisePointSize; + + mutable QString m_token; }; +/////////////////////////////////// + +namespace ZeroStorageCaptchaService { + +QByteArray random(int length, bool onlyNumbers = false); + +class TimeToken +{ +public: + TimeToken() = delete; + + static void init(); + static const QString currentToken() { return m_current; } + static const QString prevToken() { return m_prev; } + +private: + static QTimer* m_updater; + static QString m_current; + static QString m_prev; +}; + +class IdCounter +{ +public: + IdCounter() = delete; + + static size_t get(); + +private: + static std::atomic counter; +}; + +class TokenManager +{ +public: + TokenManager() = delete; + + static QString get(const QString& captchaAnswer, size_t id = 0, bool prevTimeToken = false); + static bool validateAnswer(const QString& answer, const QString& token); + static void setCaseSensitive(bool enabled = false) { m_caseSensitive = enabled; } + static void setMaxSizeOfUsedTokensCache(uint64_t size) { m_maximalSizeOfUsedMap = size; } + + friend TimeToken; + +private: + static void limitWarningLog(); + static void removeToken(const QString& oldPrevToken); + static QMutex m_usedTokensMtx; + static std::map> m_usedTokens; + static size_t m_maximalSizeOfUsedMap; + static bool m_caseSensitive; + static QString m_key; +}; + +} // namespace + #endif // ZEROSTORAGECAPTCHA_H diff --git a/zerostoragecaptchacrypto.cpp b/zerostoragecaptchacrypto.cpp deleted file mode 100644 index 62a1cbf..0000000 --- a/zerostoragecaptchacrypto.cpp +++ /dev/null @@ -1,172 +0,0 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org -// Zero Storage Captcha - -#include "zerostoragecaptchacrypto.h" - -#include -#include -#include -#include -#include - -constexpr int TIME_TOKEN_SIZE = 5; // + secs since epoch -constexpr int DEFAULT_SIZE_OF_USED_TOKENS_CACHE = 100000; -constexpr int TIMER_TO_CHANGE_TOKEN_MSECS = 90000; // 1,5 min - -namespace ZeroStorageCaptchaCrypto { - -QTimer* TimeToken::m_updater = nullptr; -QString TimeToken::m_current; -QString TimeToken::m_prev; -int KeyHolder::m_maximalSizeOfUsedMap = DEFAULT_SIZE_OF_USED_TOKENS_CACHE; -QMutex KeyHolder::m_usedTokensMtx; -QMultiMap KeyHolder::m_usedTokens; -bool KeyHolder::m_caseSensitive = false; -uint8_t KeyHolder::m_key[KEYSIZE] {0}; - -void TimeToken::init() -{ - if (m_updater) return; - - m_updater = new QTimer; - m_current = ZeroStorageCaptchaCrypto::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); - m_updater->setInterval(TIMER_TO_CHANGE_TOKEN_MSECS); - QObject::connect(m_updater, &QTimer::timeout, [&]() { - KeyHolder::removeOldToken(m_prev); - m_prev = m_current; - m_current = ZeroStorageCaptchaCrypto::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); - }); - m_updater->start(); -} - -QString KeyHolder::captchaSecretLine(const QString &captchaAnswer, bool prevTimeToken) -{ - if (m_usedTokens.size() > m_maximalSizeOfUsedMap) - { - warningLog(); - return QString(); - } - - if (m_key[0] == 0) - { - auto noize = ZeroStorageCaptchaCrypto::random(KEYSIZE); - for (int i = 0; i < KEYSIZE; ++i) - { - m_key[i] = static_cast(noize[i]); - } - } - - QString stringToSign = (m_caseSensitive ? captchaAnswer : captchaAnswer.toUpper()) + - (prevTimeToken ? TimeToken::prevToken() : TimeToken::currentToken()); - - uint8_t signature[SIGSIZE]; - sign(reinterpret_cast(stringToSign.toStdString().c_str()), static_cast(stringToSign.size()), signature, m_key); - - QByteArray rawResultArray; - for(int i = 0; i < SIGSIZE; ++i) - { - rawResultArray += static_cast(signature[i]); - } - - return compact(rawResultArray.toBase64(QByteArray::Base64Option::Base64UrlEncoding)); -} - -bool KeyHolder::validateCaptchaAnswer(const QString &answer, const QString &secretLine) -{ - QString timeKey; - if (captchaSecretLine(answer) == secretLine) - { - timeKey = TimeToken::currentToken(); - } - else if (captchaSecretLine(answer, true) == secretLine) - { - timeKey = TimeToken::prevToken(); - } - - if (not timeKey.isEmpty()) - { - QMutexLocker lock (&m_usedTokensMtx); - if (m_usedTokens.size() > m_maximalSizeOfUsedMap) - { - warningLog(); - return false; - } - if (m_usedTokens.find( timeKey ) == m_usedTokens.end()) - { - m_usedTokens.insert(timeKey, secretLine); - return true; - } - } - - return false; -} - -void KeyHolder::removeOldToken(const QString &oldPrevToken) -{ - QMutexLocker lock (&m_usedTokensMtx); - m_usedTokens.remove(oldPrevToken); -} - -QString KeyHolder::compact(const QString &str) -{ - QString result; - int counter = 0; - for (const auto& c: str) - { - if (++counter % 3 == 0) - { - result += c; - } - } - result.remove('='); - result.remove('_'); - result.remove('-'); - return result; -} - -void KeyHolder::sign(const uint8_t *buf, size_t len, uint8_t *signature, const uint8_t *privateKey) -{ - auto MDCtx = EVP_MD_CTX_create (); - auto PKey = EVP_PKEY_new_raw_private_key (EVP_PKEY_ED25519, NULL, privateKey, KEYSIZE); - EVP_DigestSignInit (MDCtx, NULL, NULL, NULL, PKey); - - size_t l = SIGSIZE; - EVP_DigestSign (MDCtx, signature, &l, buf, len); - - EVP_PKEY_free (PKey); - EVP_MD_CTX_destroy (MDCtx); -} - -void KeyHolder::warningLog() -{ - qInfo().noquote() << - "\n" - " Token cache is full (" + QString::number(m_maximalSizeOfUsedMap) + "). Service temporary unavailable.\n" - " You can increase maximal cache size via ZeroStorageCaptchaCrypto::KeyHolder::setMaxSizeOfUsedTokensCache(size_t)\n" - ""; -} - -QByteArray random(int length, bool onlyNumbers) -{ - constexpr char randomtable[60] = - {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', - 'k', 'l', 'm', 'n', 'k', 'p', 'q', 'r', 's', 't', - 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', - 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', - 'h', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X'}; - - QByteArray random_value; - - std::random_device rd; - std::uniform_int_distribution dist(onlyNumbers ? 0 : 1, onlyNumbers ? 9 : 59); - - while(random_value.size() < length) - { - random_value += randomtable[dist(rd)]; - } - - return random_value; -} - -} // namespace diff --git a/zerostoragecaptchacrypto.h b/zerostoragecaptchacrypto.h deleted file mode 100644 index f76ad69..0000000 --- a/zerostoragecaptchacrypto.h +++ /dev/null @@ -1,67 +0,0 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org -// Zero Storage Captcha - -#ifndef ZEROSTORAGECAPTCHACRYPTO_H -#define ZEROSTORAGECAPTCHACRYPTO_H - -#include -#include -#include -#include -#include - -constexpr int KEYSIZE = 32; -constexpr int SIGSIZE = 64; - -namespace ZeroStorageCaptchaCrypto { - -QByteArray random(int length, bool onlyNumbers = false); - -///////// - -class TimeToken -{ -public: - TimeToken() = delete; - - static void init(); - static bool inited() { return m_updater; } - static const QString currentToken() { return m_current; } - static const QString prevToken() { return m_prev; } - -private: - static QTimer* m_updater; - static QString m_current; - static QString m_prev; -}; - -///////// - -class KeyHolder -{ -public: - KeyHolder() = delete; - - static QString captchaSecretLine(const QString& captchaAnswer, bool prevTimeToken = false); - static bool validateCaptchaAnswer(const QString& answer, const QString& secretLine); - static void setCaseSensitive(bool enabled = false) { m_caseSensitive = enabled; } - static void setMaxSizeOfUsedTokensCache(size_t size) { m_maximalSizeOfUsedMap = size; } - - friend TimeToken; - -private: - static QString compact(const QString& str); - static void sign(const uint8_t * buf, size_t len, uint8_t * signature, const uint8_t * privateKey); - - static void warningLog(); - static void removeOldToken(const QString& oldPrevToken); - static QMutex m_usedTokensMtx; - static QMultiMap m_usedTokens; - static int m_maximalSizeOfUsedMap; - static bool m_caseSensitive; - static uint8_t m_key[KEYSIZE]; -}; - -} // namespace - -#endif // ZEROSTORAGECAPTCHACRYPTO_H From aa47d28b27a16340297c7a6d90c823404dadf68a Mon Sep 17 00:00:00 2001 From: acetone Date: Thu, 11 Aug 2022 00:53:41 +0300 Subject: [PATCH 3/7] a little bit oop --- zerostoragecaptcha.cpp | 4 ++-- zerostoragecaptcha.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/zerostoragecaptcha.cpp b/zerostoragecaptcha.cpp index 1dab712..a7ad086 100644 --- a/zerostoragecaptcha.cpp +++ b/zerostoragecaptcha.cpp @@ -297,11 +297,11 @@ void TimeToken::init() m_updater->start(); } -std::atomic IdCounter::counter = 0; +std::atomic IdCounter::m_counter = 0; size_t IdCounter::get() { - size_t value = ++counter; + size_t value = ++m_counter; if (value == 0) { value++; diff --git a/zerostoragecaptcha.h b/zerostoragecaptcha.h index 9be714b..1e8deb1 100644 --- a/zerostoragecaptcha.h +++ b/zerostoragecaptcha.h @@ -137,7 +137,7 @@ public: static size_t get(); private: - static std::atomic counter; + static std::atomic m_counter; }; class TokenManager From 754aa4ee7fd3dd74d50d4587063a90d31ea5426f Mon Sep 17 00:00:00 2001 From: acetone Date: Sat, 13 Aug 2022 01:35:46 +0300 Subject: [PATCH 4/7] beautify interface --- examples/example1.cpp | 28 +++++++++++++++------------- examples/example2.cpp | 19 ++++++++++--------- zerostoragecaptcha.cpp | 40 +++++++++++++++++++++++++++++++++------- zerostoragecaptcha.h | 19 +++++++++++++------ 4 files changed, 71 insertions(+), 35 deletions(-) diff --git a/examples/example1.cpp b/examples/example1.cpp index f7e335d..1d40740 100644 --- a/examples/example1.cpp +++ b/examples/example1.cpp @@ -1,4 +1,4 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org +// GPLv3 (c) acetone, 2022 // Zero Storage Captcha example #include "zerostoragecaptcha.h" @@ -15,18 +15,20 @@ int main(int argc, char *argv[]) // "Environment=QT_QPA_PLATFORM=offscreen" in systemd service ([Service] section) QApplication a(argc, argv); - ZeroStorageCaptchaService::TokenManager::setCaseSensitive(true); - ZeroStorageCaptcha captcha; - captcha.setDifficulty(0); - captcha.generateText(); - captcha.updateCaptcha(); - qInfo() << captcha.token() << captcha.answer(); - QFile f("captcha.png"); - if (not f.open(QIODevice::WriteOnly)) return 1; - f.write(captcha.picture()); - f.close(); - qInfo() << "Validation 1: " << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); - qInfo() << "Validation 2: " << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); + ZeroStorageCaptcha::setCaseSensitive(true); + ZeroStorageCaptcha::setNumbersOnlyMode(false); // false by default, just example + + ZeroStorageCaptcha c; + c.generateAnswer(); // create captcha text + c.render(); // create picture + QFile pic("c.png"); + if (not pic.open(QIODevice::WriteOnly)) return 1; + pic.write(c.picturePng()); + pic.close(); + + qInfo() << c.token() << c.answer(); + qInfo() << "Validate" << ZeroStorageCaptcha::validate (c.answer(), c.token()); // first - success + qInfo() << "Validate" << ZeroStorageCaptcha::validate (c.answer(), c.token()); // second - failed return a.exec(); } diff --git a/examples/example2.cpp b/examples/example2.cpp index 307988a..539ee1a 100644 --- a/examples/example2.cpp +++ b/examples/example2.cpp @@ -1,4 +1,4 @@ -// 2022 (c) GPLv3, acetone at i2pmail.org +// GPLv3 (c) acetone, 2022 // Zero Storage Captcha example #include "zerostoragecaptcha.h" @@ -15,14 +15,15 @@ int main(int argc, char *argv[]) // "Environment=QT_QPA_PLATFORM=offscreen" in systemd service ([Service] section) QApplication a(argc, argv); - ZeroStorageCaptcha captcha; - captcha.generateText(); - captcha.updateCaptcha(); - qInfo() << captcha.token(); - qInfo() << captcha.answer(); - qInfo() << captcha.picture().toBase64(); - qInfo() << "Validation 1:" << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); - qInfo() << "Validation 2:" << ZeroStorageCaptcha::validate(captcha.answer(), captcha.token()); + ZeroStorageCaptcha c("myText"); + QFile pic("c.png"); + if (not pic.open(QIODevice::WriteOnly)) return 1; + pic.write(c.picturePng()); + pic.close(); + + qInfo() << c.token() << c.answer(); + qInfo() << "Validate" << ZeroStorageCaptcha::validate (c.answer(), c.token()); + qInfo() << "Validate" << ZeroStorageCaptcha::validate (c.answer(), c.token()); return a.exec(); } diff --git a/zerostoragecaptcha.cpp b/zerostoragecaptcha.cpp index a7ad086..4ca9560 100644 --- a/zerostoragecaptcha.cpp +++ b/zerostoragecaptcha.cpp @@ -1,4 +1,4 @@ -// GPLv3 (c) 2022, acetone +// GPLv3 (c) acetone, 2022 // Zero Storage Captcha // PNG generation based on: @@ -35,7 +35,7 @@ bool ZeroStorageCaptcha::m_onlyNumbers = false; -ZeroStorageCaptcha::ZeroStorageCaptcha() +void ZeroStorageCaptcha::init() { ZeroStorageCaptchaService::TimeToken::init(); @@ -64,9 +64,20 @@ ZeroStorageCaptcha::ZeroStorageCaptcha() } m_padding = 5; +} - setDifficulty(2); - m_captchaText = "NOTSET"; +ZeroStorageCaptcha::ZeroStorageCaptcha() +{ + init(); + setDifficulty(1); +} + +ZeroStorageCaptcha::ZeroStorageCaptcha(const QString &answer, int difficulty) +{ + init(); + setAnswer(answer); + setDifficulty(difficulty); + render(); } bool ZeroStorageCaptcha::validate(const QString &answer, const QString &token) @@ -74,6 +85,16 @@ bool ZeroStorageCaptcha::validate(const QString &answer, const QString &token) return ZeroStorageCaptchaService::TokenManager::validateAnswer(answer, token); } +void ZeroStorageCaptcha::setCaseSensitive(bool enabled) +{ + ZeroStorageCaptchaService::TokenManager::setCaseSensitive(enabled); +} + +void ZeroStorageCaptcha::caseSensitive() +{ + ZeroStorageCaptchaService::TokenManager::caseSensitive(); +} + QString ZeroStorageCaptcha::token() const { if (m_token.isEmpty()) @@ -83,7 +104,7 @@ QString ZeroStorageCaptcha::token() const return m_token; } -QByteArray ZeroStorageCaptcha::picture() const +QByteArray ZeroStorageCaptcha::picturePng() const { QByteArray data; QBuffer buff(&data); @@ -91,7 +112,7 @@ QByteArray ZeroStorageCaptcha::picture() const return data; } -void ZeroStorageCaptcha::updateCaptcha() +void ZeroStorageCaptcha::render() { QPainterPath path; QFontMetrics fm(m_font); @@ -249,7 +270,12 @@ void ZeroStorageCaptcha::setDifficulty(int val) } } -void ZeroStorageCaptcha::generateText(int length) +void ZeroStorageCaptcha::setAnswer(const QString &answer) +{ + m_captchaText = answer; +} + +void ZeroStorageCaptcha::generateAnswer(int length) { if (length <= 0) { diff --git a/zerostoragecaptcha.h b/zerostoragecaptcha.h index 1e8deb1..c5c0003 100644 --- a/zerostoragecaptcha.h +++ b/zerostoragecaptcha.h @@ -1,4 +1,4 @@ -// GPLv3 (c) 2022, acetone +// GPLv3 (c) acetone, 2022 // Zero Storage Captcha // PNG generation based on: @@ -38,12 +38,16 @@ class ZeroStorageCaptcha { public: ZeroStorageCaptcha(); + ZeroStorageCaptcha(const QString& answer, int difficulty = 1); static bool validate(const QString& answer, const QString& token); - static void setOnlyNumbersMode(bool enabled = false) { m_onlyNumbers = enabled; } + static void setNumbersOnlyMode(bool enabled = false) { m_onlyNumbers = enabled; } + static bool numbersOnlyMode() { return m_onlyNumbers; } + static void setCaseSensitive(bool enabled = false); + static void caseSensitive(); QString answer() const { return m_captchaText; } QString token() const; - QByteArray picture() const; + QByteArray picturePng() const; QImage qimage() const { return m_captchaImage; } QFont font() const { return m_font; } @@ -76,10 +80,12 @@ public: void setNoisePointSize(int arg) { m_noisePointSize = arg; } void setSinDeform(qreal hAmplitude, qreal hFrequency, qreal vAmplitude, qreal vFrequency); void setDifficulty(int val); - void generateText(int length = 5); - void updateCaptcha(); + void setAnswer(const QString& answer); + void generateAnswer(int length = 5); + void render(); private: + void init(); static bool m_onlyNumbers; qreal m_hmod1; @@ -90,7 +96,7 @@ private: QFont m_font; QImage m_captchaImage; - QString m_captchaText; + QString m_captchaText = "empty"; QColor m_fontColor; QColor m_backColor; qreal m_padding; @@ -148,6 +154,7 @@ public: static QString get(const QString& captchaAnswer, size_t id = 0, bool prevTimeToken = false); static bool validateAnswer(const QString& answer, const QString& token); static void setCaseSensitive(bool enabled = false) { m_caseSensitive = enabled; } + static bool caseSensitive() { return m_caseSensitive; } static void setMaxSizeOfUsedTokensCache(uint64_t size) { m_maximalSizeOfUsedMap = size; } friend TimeToken; From 6fb2718d70af187c3ab5ed293d238b4d2aac1b45 Mon Sep 17 00:00:00 2001 From: acetone Date: Sat, 13 Aug 2022 23:46:31 +0300 Subject: [PATCH 5/7] optimaze --- zerostoragecaptcha.cpp | 52 ++++++++++++++++-------------------------- zerostoragecaptcha.h | 12 ++++------ 2 files changed, 24 insertions(+), 40 deletions(-) diff --git a/zerostoragecaptcha.cpp b/zerostoragecaptcha.cpp index 4ca9560..ec6bb89 100644 --- a/zerostoragecaptcha.cpp +++ b/zerostoragecaptcha.cpp @@ -90,9 +90,9 @@ void ZeroStorageCaptcha::setCaseSensitive(bool enabled) ZeroStorageCaptchaService::TokenManager::setCaseSensitive(enabled); } -void ZeroStorageCaptcha::caseSensitive() +bool ZeroStorageCaptcha::caseSensitive() { - ZeroStorageCaptchaService::TokenManager::caseSensitive(); + return ZeroStorageCaptchaService::TokenManager::caseSensitive(); } QString ZeroStorageCaptcha::token() const @@ -288,8 +288,7 @@ void ZeroStorageCaptcha::generateAnswer(int length) ////////////////////////// -constexpr const int TIME_TOKEN_SIZE = 5; // (symbols count) + secs since epoch -constexpr const size_t DEFAULT_SIZE_OF_USED_TOKENS_CACHE = 10000000; // 10M +constexpr const int TIME_TOKEN_SIZE = 5; constexpr const int TIMER_TO_CHANGE_TOKEN_MSECS = 90000; // 1,5 min constexpr const int KEY_STRING_SIZE = 32; @@ -299,9 +298,8 @@ QTimer* TimeToken::m_updater = nullptr; QString TimeToken::m_current; QString TimeToken::m_prev; -size_t TokenManager::m_maximalSizeOfUsedMap = DEFAULT_SIZE_OF_USED_TOKENS_CACHE; QMutex TokenManager::m_usedTokensMtx; -std::map> TokenManager::m_usedTokens; +QMap> TokenManager::m_usedTokens; bool TokenManager::m_caseSensitive = false; QString TokenManager::m_key = nullptr; @@ -315,9 +313,9 @@ void TimeToken::init() QObject::connect ( m_updater, &QTimer::timeout, [&]() { - TokenManager::removeToken( prevToken() ); m_prev = m_current; - m_current = ZeroStorageCaptchaService::random(TIME_TOKEN_SIZE) + QString::number(QDateTime::currentSecsSinceEpoch()); + m_current = ZeroStorageCaptchaService::random(TIME_TOKEN_SIZE); + TokenManager::removeAllTokensExceptPassed( currentToken(), prevToken() ); } ); m_updater->start(); @@ -391,7 +389,7 @@ bool TokenManager::validateAnswer(const QString &answer, const QString &token) } QMutexLocker lock (&m_usedTokensMtx); - if (m_usedTokens.find(timeKey) != m_usedTokens.end()) + if (m_usedTokens.contains(timeKey)) { if (m_usedTokens[timeKey].contains(id)) // already used { @@ -399,40 +397,30 @@ bool TokenManager::validateAnswer(const QString &answer, const QString &token) } } - size_t currentUsedSize = 0; - for (const auto& timePoint: m_usedTokens) - { - currentUsedSize += timePoint.second.size(); - } - if (currentUsedSize >= m_maximalSizeOfUsedMap) - { - limitWarningLog(); - return false; - } - m_usedTokens[timeKey].insert( id ); return true; } -void TokenManager::removeToken(const QString &oldPrevToken) +void TokenManager::removeAllTokensExceptPassed(const QString& current, const QString& prev) { QMutexLocker lock (&m_usedTokensMtx); - auto iter = m_usedTokens.find(oldPrevToken); - if (iter != m_usedTokens.end()) + + std::list>::iterator> toRemove; + + for (auto iter = m_usedTokens.begin(); iter != m_usedTokens.end(); iter++) + { + if (iter.key() != current and iter.key() != prev) + { + toRemove.push_back(iter); + } + } + + for (const auto& iter: toRemove) { m_usedTokens.erase(iter); } } -void TokenManager::limitWarningLog() -{ - qInfo().noquote() << - "\n" - " Token cache is full (" + QString::number(m_maximalSizeOfUsedMap) + "). Service temporary unavailable.\n" - " You can increase maximal cache size via ZeroStorageCaptchaService::TokenManager::setMaxSizeOfUsedTokensCache(size_t)\n" - ""; -} - QByteArray random(int length, bool onlyNumbers) { constexpr char randomtable[60] = diff --git a/zerostoragecaptcha.h b/zerostoragecaptcha.h index c5c0003..c1cc8d0 100644 --- a/zerostoragecaptcha.h +++ b/zerostoragecaptcha.h @@ -31,8 +31,7 @@ #include #include #include -#include -#include // becouse QMap.size() is int instead size_t +#include class ZeroStorageCaptcha { @@ -43,7 +42,7 @@ public: static void setNumbersOnlyMode(bool enabled = false) { m_onlyNumbers = enabled; } static bool numbersOnlyMode() { return m_onlyNumbers; } static void setCaseSensitive(bool enabled = false); - static void caseSensitive(); + static bool caseSensitive(); QString answer() const { return m_captchaText; } QString token() const; @@ -155,16 +154,13 @@ public: static bool validateAnswer(const QString& answer, const QString& token); static void setCaseSensitive(bool enabled = false) { m_caseSensitive = enabled; } static bool caseSensitive() { return m_caseSensitive; } - static void setMaxSizeOfUsedTokensCache(uint64_t size) { m_maximalSizeOfUsedMap = size; } friend TimeToken; private: - static void limitWarningLog(); - static void removeToken(const QString& oldPrevToken); + static void removeAllTokensExceptPassed(const QString& current, const QString& prev); static QMutex m_usedTokensMtx; - static std::map> m_usedTokens; - static size_t m_maximalSizeOfUsedMap; + static QMap> m_usedTokens; static bool m_caseSensitive; static QString m_key; }; From 4e5bc956daa9d94938a2e27e0e323d805c3041bd Mon Sep 17 00:00:00 2001 From: acetone <63557806+freeacetone@users.noreply.github.com> Date: Sat, 13 Aug 2022 21:11:19 +0300 Subject: [PATCH 6/7] up to date --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d4e00f0..c7f16d0 100644 --- a/README.md +++ b/README.md @@ -6,27 +6,27 @@ Dependencies: Qt5. ## Inspiration -Captcha is required in many public projects to protect against spammers and similar unwanted activity. +Captcha is required in many public projects to protect against spammers and similar automated unwanted activity. As practice shows, developers are accustomed to using external services even to use fonts (!). Obviously, implementing bot protection is more complicated than storing fonts or style sheets locally, which is why most developers turn to suck-to-free corporations. -The goal of Zero storage captcha is to make it easy to use a locally generated captcha picture without having to store the answer. -This technology allows any project to have high-quality and ethical captcha without spending VPS disk space. +The goal of Zero Storage Captcha is to make it easy to use a locally generated captcha picture without having to store the answer. +This technology allows any project to have high-quality and ethical captcha without spending VPS disk space (CPU only yep). ## How it works When generating a captcha, the user receives a picture and a token. -The token is a cryptographic key to verify the correctness of the answer. It is created based on: +The token is a string key to verify the correctness of the answer. It is created based on: -1) Captcha answer -2) Hash MD5 -3) Session unique string -4) Time marker +BASE64( MD5_HASH( CAPTCHA_ANSWER + TIME_TOKEN + CAPTCHA_ID + SESSION_KEY ) ) + "_" + CAPTCHA_ID -The time marker (time token) changes every one and a half minutes, due to which the same answer after -a few minutes has a completely new token to check the truth. +- TIME_TOKEN - temporary marker for limiting captcha life circle; +- CAPTCHA_ID - size_t validation key for concrete captcha; +- SESSION_KEY - random run-time session string for unique hash value. + +Regular captcha token looks like this: `QyhnRNJolLJxnJaSqzQVww_1`. The user, along with the picture, must provide a verification token, which he will report to the server along with the response to the picture. This can be implemented both through javascript and when generating html pages using the templating method. @@ -37,11 +37,11 @@ a few seconds before the time token change. Due to this architecture, the lifetime of each captcha ranges from 1.5 to 3 minutes, after which the verification token will always show failure. -To make it impossible to use one captcha twice, the used verification token gets into a special cache, -where it is stored for several minutes of the life cycle of the token. -The token is considered used after the first validation check. +To make it impossible to use one captcha twice, the used verification captcha id gets into a special cache, +where it is stored for several minutes of the life cycle of the concrete captcha token. +The token is considered used after the first validation check. Storing captcha id is very cheap: the id has a weight of 8 bytes (for a 64-bit system). For example, to store a million solved captchas at one time would need less than 8 MB of RAM. -Session signing key generated at every start of app (at first call to ZeroStorageCaptchaCrypto::KeyHolder class). +To guarantee the uniqueness of captcha tokens, when generating the first captcha, creates a SESSION_KEY (random string), which takes part in creating the control hash that forms the token. For the generation of the hash is chosen MD5, as it is a productive algorithm, which is sufficiently reliable in the context of Zero Storage Captcha. Check `examples` folder to see C++ interface or if your project not in C++, you can use Zero storage captcha as separate cross-platform local [service](https://github.com/ZeroStorageCaptcha/api-daemon). From f2eb8472406f9f99d92c63da450a00e8e303f982 Mon Sep 17 00:00:00 2001 From: acetone <63557806+freeacetone@users.noreply.github.com> Date: Sat, 13 Aug 2022 21:13:52 +0300 Subject: [PATCH 7/7] typo --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c7f16d0..e99a4c3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Offline captcha without any file system or database storage. -Dependencies: Qt5. +Dependency: Qt5. ## Inspiration @@ -43,5 +43,5 @@ The token is considered used after the first validation check. Storing captcha i To guarantee the uniqueness of captcha tokens, when generating the first captcha, creates a SESSION_KEY (random string), which takes part in creating the control hash that forms the token. For the generation of the hash is chosen MD5, as it is a productive algorithm, which is sufficiently reliable in the context of Zero Storage Captcha. -Check `examples` folder to see C++ interface or if your project not in C++, -you can use Zero storage captcha as separate cross-platform local [service](https://github.com/ZeroStorageCaptcha/api-daemon). +Check `examples` folder to see C++ interface or if your project not in C++, also +you can use Zero Storage Captcha as separate cross-platform local [service](https://github.com/ZeroStorageCaptcha/api-daemon).