Tilbage til Forsiden
Sikkerhed· 10. september 2026 ·5 min læse

Proof-of-work udfordringer: stoppe bots uden irriterende mennesker

Ingen kan lide at klikke på trafiklys for at bevise, at de er menneskelige. Udfordringer i forbindelse med bevis for arbejde tager en anden tilgang: gør arbejdet usynligt for dig og dyrt for den, der sender en million anmodninger.

Mads Edelskjold
Mads Edelskjold
Grundlægger, NordicCDN ex-datacenter CTO
Proof-of-work udfordringer: stoppe bots uden irriterende mennesker

CAPTCHA er et mærkeligt stykke teknologi, når man tænker over det. For at bevise, at du ikke er en robot, udfører du en opgave, som robotter nu målbart er bedre til, end du er, mens en virksomhed høster arbejdskraften til at træne billedgenkendelsesmodeller. I mellemtiden betaler de faktiske botoperatører en løsningstjeneste en brøkdel af en cent pr. Puslespil og fortsætter.

Proof-of-work udfordringer kommer på problemet fra en helt anden retning, og skiftet er værd at forstå, fordi det ændrer, hvad du rent faktisk forsvarer.

Stop med at identificere, start opladning

En CAPTCHA forsøger at svare "er dette et menneske?" - et spørgsmål, der bliver sværere for hvert år og var aldrig rigtig ansvarlig i første omgang.

Proof-of-work spørger ikke. Det antager, at det ikke kan fortælle, og i stedet gør hver anmodning koster en lille mængde beregning. Din browser får et puslespil, der tager lidt CPU til at løse og næsten intet at kontrollere: finde en værdi, der, når hashed sammen med udfordringen, producerer en hash startende med et bestemt antal nuller. Der er ingen genvej; du prøver værdier, indtil man virker.

For en besøgende, der er et par hundrede millisekunder af en baggrund tråd, helt ubemærket. For nogen, der sender en million anmodninger, er det en million gåder, og den aritmetiske, der gjorde operationen værd, stopper med at fungere.

1 human visitorone tiny puzzle — unnoticed 1,000,000 bot requestsa million puzzles — too expensive
Det samme puslespil, vildt forskellige samlede omkostninger afhængigt af hvor mange anmodninger du laver.

Det er et økonomisk forsvar snarere end en afsløring, og det er dets virkelige styrke. Det behøver ikke at være smart om fingeraftryk, ikke nedbrydes som bots forbedre, og kan ikke outsources til en menneskelig løsning gård fordi omkostningerne er CPU tid, og en menneskelig klikke knapper hjælper ikke.

Hvordan det rent faktisk kører

Sekvensen er kort. En besøgende anmoder om en beskyttet side. Kanten returnerer en letvægts udfordringsside i stedet med et puslespil og en sværhedsparameter. JavaScript i browseren løser det, normalt i en Web Worker, så siden forbliver lydhør. Løsningen indsendes, verificeres på mikrosekunder, og den besøgende modtager en signeret cookie, der tillader dem i en konfigureret periode - normalt en dag - så de ikke udfordres igen ved hvert klik.

Sværhedsgrad er en dial snarere end en switch. En lav indstilling er umærkelig; en høj tager et par sekunder og gør automatisering dramatisk dyrere. Hæv det til en login-side under aktivt angreb, hold det lavt for generel browsing, og de fleste besøgende lærer aldrig, at funktionen eksisterer.

Usynlig tilstand

  • Løser lydløst i baggrunden
  • Besøgende ser et kort tomt øjeblik på det meste
  • Højre standard for generel beskyttelse

Interaktiv tilstand

  • Viser en kort statusindikator
  • Bedre for høj sværhedsgrad, hvor forsinkelsen er mærkbar
  • Stadig intet for mennesket at løse

Mod en CAPTCHA

CAPTCHAProof-of-work
Indsatsen for det menneskeligeLøs gåderIngen
TilgængelighedOfte en barriereIngen interaktion nødvendig
Besejret ved at løse gårdeJa, billigtNej omkostningerne er CPU, ikke klik
Tredjeparts datadelingNormaltIngen påkrævet
Omkostninger for en legitim besøgendeSekunders opmærksomhedMillisekunder af CPU
Stopper en målrettet, lav-volumen angriberLidtIkke rigtig

Hvad proof-of-work ikke gør

Den sidste række fortjener at blive udvidet, fordi et forsvar, du misforstår, er værre end et, du ikke har.

Proof-of-work øger omkostningerne pr. anmodning. Hvis en angriber kun har brug for en håndfuld anmodninger - test af en bestemt stjålet legitimation, udnyttelse af en kendt sårbarhed, skrabning af en side - omkostningerne er ubetydelige, og de vil betale det uden at bemærke det. Det er et volumenforsvar, og mod en målrettet angriber gør det meget lidt.

Det medfører også en reel omkostning for besøgende med langsomme enheder. En ti år gammel Android-telefon tager betydeligt længere tid end en nuværende bærbar computer, så vanskelighedsindstillinger, der føles øjeblikkelig på din maskine, er måske ikke. Og det kræver JavaScript, hvilket betyder alt, hvad du vil nå dit websted uden at udføre scripts - nogle tilgængelighedsværktøjer, nogle legitime integrationer, RSS-læsere - har brug for en undtagelsessti.

Undtag altid verificerede søgerobotter, før du aktiverer udfordringer. Googlebot løser ikke JavaScript-puslespil som en browser gør, og udfordrende det er en effektiv måde at fjerne dig selv fra søgeresultaterne. Verificer ved omvendt DNS i stedet for at stole på brugeragenten, og tillad det derefter gennem uudfordret.

Almindelige spørgsmål

Hvad er en Proof-of-Work Challenge?

En proof-of-work-udfordring kræver, at en besøgendes browser løser et lille beregningspuslespil - typisk at finde en værdi, der producerer en hash med et påkrævet antal førende nuller - før den ønskede side serveres. Løsning tager målbar CPU-tid, mens verificering er næsten øjeblikkelig, så omkostningerne falder på den, der gør et stort antal anmodninger i stedet for på individuelle besøgende.

Er proof-of-work bedre end CAPTCHA?

For at blokere højvolumenautomatisering, generelt ja: det kræver ingen interaktion fra den besøgende, præsenterer ingen tilgængelighedsbarriere, deler ingen data med en tredjepart og kan ikke besejres af menneskelige løsninger, fordi Prisen er CPU i stedet for klik. Det er svagere mod en målrettet angriber gør kun en håndfuld anmodninger, hvor de ekstra omkostninger er ubetydelige.

Gør proof-of-work udfordringer langsommere rigtige besøgende?

Lidt, og som regel umærkeligt. Ved en typisk vanskelighed med at indstille en moderne browser løser puslespillet på et par hundrede millisekunder i en baggrundstråd, og en underskrevet cookie derefter indrømmer den besøgende for en konfigureret periode, så de ikke udfordres igen på hver side. ldre eller lavt drevne enheder tager længere tid, hvilket er værd at tage højde for, når du vælger vanskeligheder.

Vil en proof-of-work-udfordring blokere Googlebot?

Det vil, hvis du ikke fritage det, og det ville fjerne sider fra søgeresultater. Verificerede søgecrawlere bør tillades, før udfordringer er aktiveret, identificeret ved omvendt DNS-verifikation af deres IP-adresser snarere end ved deres brugeragentstreng, som er trivielt forfalsket.

Indramningen værd at holde: en CAPTCHA forsøger at fortælle mennesker og maskiner fra hinanden, og bliver mindre i stand til hvert år. Proof-of-work stopper med at prøve, og opkræver betaling for anmodningen i stedet. Det er en mindre påstand, men det er en, der bliver ved med at være sand.

#bots #Proof af arbejde #sikkerhed #captcha
Sæt det i praksis

Se, hvordan NordicCDN gør dette for dit websted:

Mads Edelskjold
Skrevet af
Mads Edelskjold Grundlægger, NordicCDN ex-datacenter CTO

Mads har arbejdet i IT - for det meste hosting - siden han var 16. Han tog tidligt ejerskab i en SaaS-virksomhed og var med til at udvide den til Visma, har opbygget og drevet datacenternetværk og fungeret som CTO for et dansk datacenter. Han startede NordicCDN for at gøre hurtig, sikker infrastruktur enkel at bruge.

Få dit websted til at indlæses med det samme

Start gratis om to minutter – intet kort er påkrævet.

Start gratis