Ověřování signatářů: ochrana petic před boty a duplicitními podpisy

Proč je ověřování signatářů klíčové pro charitativní a petiční platformy

Hodnota petic a lead-gen formulářů spočívá v důvěře, že podpisy a kontakty reprezentují skutečné osoby, které porozuměly výzvě a souhlasí s komunikací. Bez spolehlivého ověřování signatářů hrozí nafukování počtů, poškození pověsti, plýtvání rozpočtem (remarketing, e-maily) a právní rizika. Cílem je nalézt rovnováhu mezi frikcí a integritou – zachovat konverzi, ale minimalizovat boty, duplicity a zneužití.

Model hrozeb: čeho přesně chceme zabránit

  • Automatizovaní boti: skripty vyplňující formuláře s náhodnými e-maily nebo telefony.
  • Organizované kampaně falešných podpisů: koordinované skupiny s jednorázovými e-maily a VPN.
  • Duplicity a „ballot stuffing“: jedna a tatáž osoba se podepíše opakovaně (vědomě nebo omylem).
  • Falešné identity: vymyšlená jména, ukradené kontakty, dočasná čísla.
  • Zneužití při importech: hromadné importy CSV bez ověření a auditní stopy.

Zásady návrhu verifikačního systému

  • Progresivní verifikace: snadná vstupní kontrola pro každého; přísnější kroky spouštějte pouze při identifikovaném riziku.
  • Minimální frikce: nezahlcujte všechny SMS kódy; zvyšte ověření při podezření.
  • Transparentnost a soukromí: vysvětlete, proč ověřujete a jaké údaje zpracováváte.
  • Auditovatelnost: uchovávejte důkazy o ověření (hashované, pseudonymizované), nikoli surové identifikátory.
  • Dostupnost: verifikace musí fungovat bez bariér pro osoby se znevýhodněním a na pomalých mobilních zařízeních.

Vrstvy ochrany proti botům (obrana do hloubky)

  • Honeypot pole: skrytá pole, která uživatelé nevyplní, ale boti ano. Nízká frikce, dobrý první filtr.
  • Behaviorální signály: rychlost psaní, myš/scroll vzory, intervaly mezi poli. Používejte jako indikátor, ne jako úplný blok pro všechny.
  • JavaScript/ výzvy: proof-of-work nebo „lehká“ CAPTCHA po rizikovém skóre; vyhýbejte se obtěžujícím obrazkovým testům.
  • Omezení rychlosti a reputace IP: limity na IP/subnet/ASN, detekce datových center, tvorba whitelistu pro legitimní zdroje.
  • Fingerprinting zařízení (privacy-by-design): šetrné otisky (např. kombinace verze prohlížeče a okna) s krátkou dobou uchování bez invazivních identifikátorů.

Ověření identity a kontaktu: metody a jejich kompromisy

Metoda Silné stránky Rizika/Frikce Doporučené použití
Dvojí potvrzení e-mailem (double opt-in) Nízké náklady, účinné proti botům Zpožděné potvrzení podpisu Výchozí metoda pro všechny petice
SMS kód (OTP) Silná jedinečnost osoby Náklady na SMS, dostupnost, dočasná čísla (burner) Pouze při riziku nebo pro klíčové akce
BankID/eID (kde dostupné) Nejsilnější ověření Nejnižší míra použitelnosti, právní nároky Oficiální podání, nízký objem, vysoká hodnota
Sociální přihlášení (Sign in with…) Rychlost, méně botů Není důkaz identity, závislost na platformě Doplňkové, ne povinné
CAPTCHA (moderní) Filtrování skriptů Zátěž pro UX, přístupnost Pouze adaptivně po riziku

Deduplikační engine: jak rozpoznat stejný podpis

  • Primární klíče: e-mail (normalizovaný), telefon (formát E.164), volitelně hashovaný identifikátor zařízení.
  • Fuzzy matching jmen: Levenshtein/Damerau-Levenshtein na jméno/příjmení s diakritikou; transliterace (Š→S, Ľ→L).
  • Pravidla kolizí: stejný e-mail → aktualizujte čas a zdroj, nevytvářejte nový záznam.
  • Řízené aliasy: plus-aliasy v e-mailu (např. jmeno+news@) normalizujte; naopak catch-all domény scoreujte jako rizikové.
  • Bloom filter pro rychlé testy duplicity: šetří dotazy do DB u velkých kampaní.

Skórování rizika a adaptivní kroky

Každému podpisu přiřaďte rizikové skóre (0–100) z různých signálů. Po překročení prahů aktivujte doplňková ověření.

  • Signály: nová/domenová reputace e-mailu, IP z datového centra, krátká doba vyplnění, neobvyklý user-agent, opakované pokusy, vysoká podobnost jména během krátké doby.
  • Činnosti podle prahu: 0–30: pouze double opt-in; 31–70: CAPTCHA nebo SMS; 71+: manuální kontrola nebo odložení zveřejnění podpisu.

GDPR a právo: jak chránit jak údaje, tak legitimitu

  • Právní základ: podpis petice a zasílání newsletterů jsou odlišné účely; pro newslettery používejte souhlas (double opt-in), pro validaci podpisu oprávněný zájem (prevence podvodů) s testem proporcionality.
  • Minimalizace: nesbírejte rodná čísla nebo adresy, pokud to zákon či účel nevyžadují.
  • Pseudonymizace: ukládejte hash telefonu/e-mailu (se solí) pro deduplikaci; surové hodnoty uchovávejte pouze do potvrzení.
  • Retence: nastavte lhůty (např. nepotvrzené záznamy vymazat po 14 dnech), logy rizikových skóre agregujte po 90 dnech.
  • Transparentnost: vysvětlete v zásadách, že používáte automatizované rozhodování pro prevenci zneužití, a nabídněte kontakt pro uplatnění námitky.

Architektura: referenční proces podpisu

  1. Odeslání formuláře: proběhne honeypot, základní normalizace (trim, diakritika, formát telefonu), kontrola rychlosti a IP.
  2. Skórování: vypočítejte skóre; nízké → uložte do stavu pending, pošlete ověřovací e-mail (odkaz platný 30–60 min).
  3. Ověření: kliknutím na odkaz → přechod do stavu confirmed; pokud je skóre střední, zobrazte lehkou výzvu (např. krátký textový test).
  4. Publikace: podpis se započítává až po potvrzení; duplicitní záznamy se sloučí do existujícího profilu (audit log).
  5. Monitoring: dashboard anomálií (nárůst z jednoho ASN, nárůst nepodporovaných prohlížečů, neadekvátní konverze v noci).

Praktiky snižující duplicitu bez ztráty konverze

  • Inline validace: okamžité upozornění „Tento e-mail již podepsal, chcete aktualizovat své prohlášení?“
  • „Magic link“ návrat: při opakovaném pokusu pošlete rychlý odkaz pro přihlášení/úpravu podpisu místo blokace.
  • Mírné frikční prvky při riziku: krátká otázka týkající se obsahu petice, kterou boti obtížně překonají (human intent check).
  • Jednoúčelové URL: podpisový odkaz vázaný na kampaň a e-mail snižuje přenositelnost.

Metodika měření: přesnost, false positives, dopad na LTV

  • Přesnost detekce botů: validujte vůči vzorku ručně označených případů.
  • Chybovost v přístupnosti: měřte, kolik uživatelů s čtečkami obrazovky selže u CAPTCHA; pokud je to >1–2 %, upravte strategii.
  • Dopad na fundraising: sledujte post-verify dárcovství, míru otevření a odchodů – cílem je vyšší kvalita při minimální ztrátě objemu.

Provozní činnosti: procesy, logy a incidenty

  • Auditní logy: kdy, kdo a jak potvrdil, změnil nebo sloučil podpis; záznam důvodu blokace.
  • Řízení incidentů: pokud průnik botů přeskočí filtr, dočasně zpřísněte prah, přepočítejte posledních N podpisů a kontaktujte ovlivněné uživatele (transparentní komunikace).
  • Importy: vyžadujte deklaraci zdroje, použitého právního základu a medián konverze; importy procházejí stejnými validacemi jako online podpisy.

UX doporučení: zachovat jednoduchost, jasně vysvětlit důvod

  • Krátké formuláře: jméno + e-mail + volitelný PSČ; další pole zobrazujte kontextově.
  • Jasný text: „Ověřujeme podpisy, abychom chránili vaši výzvu před boty. Zabere to pár sekund.“
  • Fallbacky: pokud selže ověření e-mailem, nabídněte alternativu (jiný kanál, chat podpora).
  • Dostupnost: textové alternativy CAPTCHA, podpora bez JavaScriptu (alespoň ověření e-mailem).

Technické detaily: normalizace a hashování

  • Normalizace e-mailu: převod na malá písmena, odstranění teček pro Gmail, odříznutí +aliasu (konfigurovatelně), převod IDN do ASCII (punycode).
  • Telefon: převod do formátu E.164, odstranění mezer, určení země dle lokalizačního kontextu.
  • Hashování pro deduplikaci: HMAC-SHA256 se solí pro e-mail/telefon; rotace soli, uchovávání v KMS.
  • Expirace tokenů: ověřovací odkazy krátkodobé (30–60 min), jednorázové, vázané na kampaň a IP region.

Antifraud heuristiky, které fungují

  • Okno rychlých pokusů: více než X pokusů z téže IP/ASN za 5 minut → „soft wall“ (dočasné zpřísnění verifikace).
  • Vzor domén: vysoký podíl freemail aliasů s neobvyklým patternem → zvyšte práh.
  • Časové anomálie: nepřiměřeně mnoho podpisů ve 03:00 z jednoho regionu → manuální audit.
  • Textové nesrovnalosti: stejná unikátní formulace v poznámce podpisu napříč mnoha záznamy.

Bezpečnost integrace: WAF, tajemství, zásady nasazení

  • WAF a správa botů: nasadit před aplikační server; pravidla pro známé automatizační knihovny.
  • Správa tajemství: API klíče pro SMS/e-mail v trezoru (KMS/Secrets Manager); rotace klíčů.
  • „Least privilege“ přístupy: oddělené role pro zapisování podpisů, čtení agregátů a exporty dat.
  • Canary release: postupné zapínání nových filtrů s měřením dopadů na konverzi.

Standardní operační postup (SOP) pro manuální ověření

  1. Výběr vzorku 1–5 % nových podpisů s vysokým rizikem.
  2. Kontrola vzoru: formát e-mailu, doména, geografické rozložení, časová okna.
  3. Kontakt s vysvětlením (pokud je kontakt legální): krátká potvrzovací otázka s možností odhlášení.
  4. Označení a trénink modelu: výsledky manuálního auditu použijte jako data pro trénink.

Dashboard a KPI ověřování

  • Míra potvrzení: podíl potvrzených podpisů do 24 hodin.
  • Míra blokace: podíl zamítnutých botů vs. legitimní záchyty (false positive).
  • Míra duplicity: počet sloučených záznamů na 1 000 podpisů.
  • Čas do potvrzení: medián času od odeslání po potvrzení.
  • Dopad na fundraising: konverze na dar v 7/30 dnech u potvrzených vs. nepotvrzených kohort.

Implementační plán na 30 dní

  1. Dny 1–7: honeypot, normalizace, double opt-in, základní limity