Hoppa till innehåll

Beteendelager

Ett program avslöjar sig av hur det agerar, inte av vad det gör

Varje besök skapar rörelse: en markör på väg mot en knapp, tangenter som hålls ned och släpps, en sida som scrollas, en skärm som berörs. TRACIO poängsätter den rörelsen löpande och talar om för dig om den kom från en hand eller från programvara.

Det vi tittar på

Fyra inmatningskanaler, viktade efter enheten i besökarens händer

Varje kanal poängsätts för sig och vägs sedan samman. Vikterna är inte fasta — de följer den enhet besökaren faktiskt använder. På en telefon bär touch verdiktet och en saknad markör betyder ingenting. På en dator är markören den starkaste kanalen, och en frånvarande touchström är helt enkelt väntad.

Mus och markör

Främst på dator

Hastighet och hur mycket den varierar, riktningsändringar per färdsträcka, hur banan kröker in mot ett mål, acceleration och inbromsning före ett klick, och den fina darrningen hos en mänsklig hand som en skriptad rörelse inte återskapar.

Tangentrytm

Endast tajming

Hur länge varje tangent hålls nere, gapet mellan ett släpp och nästa nedslag, överlappet när nästa tangent går ned innan den föregående kommit upp, skurar och pauser, rättelser och backsteg. Tajming — aldrig tecknen. Se integritetsavsnittet nedan.

Scroll

Båda formfaktorerna

Spridningen i hastighet, hur ofta riktningen vänder, rörelsemängd som klingar av så som en fysisk svepning klingar av, och pauser som stämmer med hur mycket text som faktiskt finns på skärmen.

Touch

Främst på mobil

Kontaktytan och hur den förändras genom en tryckning, det rapporterade trycket där enheten röjer det, den lilla avdriften hos ett finger som aldrig landar två gånger på samma pixel, och tajmingen mellan flera kontakter.

Samma session, viktad på två olika sätt

DatorsessionMarkören leder

Mus och tangentbord bär vikten. Någon touchström väntas inte här, så att den saknas kostar besökaren ingenting.

TelefonsessionTouch leder

Touch och enhetsrörelse bär vikten. Ett besök helt utan markörrörelse är normalt på en telefon, inte misstänkt.

Frånvaro är inget underlag

En kanal som enheten aldrig erbjöd utesluts ur poängen i stället för att räknas emot besökaren. Det låter självklart och är samtidigt det allra vanligaste sättet som naiv beteendepoängsättning gör riktiga kunder till misstänkta: en telefon har ingen mus, den som använder en skärmläsare har ingen jämn markörbana, och inget av det säger något om att vara en bot.

Underlaget

Tre saker programvara gör som händer inte kan

Det här är exempel snarare än hela regeluppsättningen, men de visar formen på det underlag vi agerar på. Vart och ett är fysiskt omöjligt för en hand, och vart och ett är grindat så att ett enda underligt ögonblick aldrig blir ett verdikt.

Tangentnedslag i metronomtakt

Det vi mäter

Varje tangent hålls nere nästan exakt lika många millisekunder genom hela inmatningen.

Varför en hand inte kan göra det

Hur länge ett finger stannar på en tangent beror på vilken tangent det är, vilken hand fingret hör till och hur trött den handen är. Mänskliga hålltider sprider sig. Injicerade tangentnedslag genereras ur en konstant, och spridningen faller till nästan noll.

Det som håller det ärligt

Regeln behöver tillräckligt många nedslag i fönstret innan den räknas över huvud taget. En inmatning på fyra tecken är inget stickprov och poängsätts inte som ett.

Klick som teleporterar

Det vi mäter

Ett klick landar på en kontroll som markören aldrig färdades till — pekaren dyker helt enkelt upp vid koordinaterna och avfyras.

Varför en hand inte kan göra det

En människa närmar sig ett mål: banan kröker in, hastigheten sjunker mot slutet, och det finns oftast ett ögonblick av hovring före trycket. Automatisering sätter koordinater och skickar en händelse; det finns ingen inflygning eftersom ingenting fysiskt rörde sig.

Det som håller det ärligt

Ett enstaka teleporterande klick är ett rimligt artefakt av tangentbordsnavigering eller styrplatta. Det räknas först när det utgör merparten av klicken i en session som hade tillräckligt många klick för att bedöma.

Skrivning i en dold flik

Det vi mäter

Tangentnedslag fortsätter komma in medan sidan ligger i bakgrunden och aldrig har hämtats fram.

Varför en hand inte kan göra det

En människa kan inte skriva i en sida hon inte tittar på. Farmprogramvara driver dussintals flikar parallellt och bryr sig inte om att fokusera var och en innan den börjar fylla i formulär.

Det som håller det ärligt

En enda händelse i samma ögonblick som ett flikbyte är en kapplöpning mellan webbläsarhändelser, inte underlag. Det räknas vid upprepad inmatning medan sidan fortfarande aldrig varit synlig.

Integritet

Vi mäter rytmen. Texten kan vi inte återskapa.

Beteendeinsamlingen körs överallt på sidan, även i fält för lösenord, e-post och kortnummer. Det är ett medvetet beslut, och det förtjänar att förklaras i sin helhet i stället för att begravas i ett policydokument.

Varför det är de känsliga fälten som spelar roll

Credential stuffing, korttestning och kontokapning sker alla inuti precis de inmatningsfälten. En detektor som stänger av sig själv där är blind på den enda plats där angreppet faktiskt bor. Så var det tidigare: insamlingen var avstängd rakt över i känsliga fält, så de sekunder av ett besök som bär störst risk gav inga mätvärden alls.

Det som sparas

Tajming. När en tangent gick ned, hur länge den var nere, hur lång tid till nästa, om två nedslag överlappade. Det räcker för att skilja en hand från en generator, och mer har detektorn aldrig bett om.

Det som inte sparas

Vilken tangent det var. Inuti känsliga fält ersätts varje nedslags identitet med ett grovt surrogat redan i webbläsaren, innan något lämnar sidan — en av en liten handfull klasser, inte ett tecken. Det finns ingen väg tillbaka. Strömmen som når våra servrar innehåller ingen text, ingen deltext och ingenting som går att sätta ihop till text.

Följden vi fick hantera

Eftersom tangentidentiteten verkligen är borta i de fälten måste varje regel som bygger på att skilja tangenter åt utesluta de nedslagen ur sin egen räkning — annars skulle ett vanligt lösenord se ut som en enda tangent slagen om och om igen, och vi skulle flagga människor för att de skriver rätt. Regler som bygger på tajming påverkas inte och fortsätter arbeta på hela strömmen.

Att stänga av insamlingen skyddade aldrig innehållet

Tecknen samlades aldrig in i någon av lösningarna. Allt den gamla generella uteslutningen tog bort var underlaget — den gjorde detektorn blind utan att göra någon mer privat. Surrogatlösningen håller exakt samma löfte om din text och ger detektorn tillbaka sina mätvärden. Starkare detektering och bättre integritet kom ur ett och samma beslut, vilket är ovanligt nog att säga rakt ut.

Så levereras regler

En ny regel körs blind innan den får röra ett verdikt

Detektering blir sämre i samma stund som den blir smart utan underlag. Varje beteenderegel läggs först till i skuggläge: den utvärderas mot skarp produktionstrafik och resultatet loggas, men den bidrar med ingenting till den poäng någon får se.

01

Levererad i skuggläge

Regeln utvärderar skarp trafik från första dagen. Utfallet går bara till analysen — ingen kunds verdikt rör sig för att en regel lagts till.

02

Mätt mot båda populationerna

Vi följer hur ofta den slår på sessioner som oberoende bedömts som mänskliga och på sessioner som oberoende bedömts som automatiserade, över tillräckligt mycket skarp trafik för att betyda något.

03

Två trösklar avgör

Den måste separera minst tio mot ett — alltså slå minst tio gånger oftare på automatisering än på människor — och den måste hålla sig under en utlösningsgrad på 0,5 % på skarpa mänskliga sessioner.

04

Befordrad, eller kvar i mörkret

En regel som klarar båda grindarna får vikt i poängen. En regel som inte gör det stannar i skuggläge eller tas bort helt. Befordran är en medveten, granskad ändring — ingenting slås på automatiskt.

Det är detta som skyddar dig från en detektor som blev smart över en natt och började avvisa dina egna kunder. Din andel falska positiva rör sig inte för att någon fick en idé en fredagseftermiddag.

Det du får

Tre fält, levererade med identifieringshändelsen

Beteendeverdiktet kommer tillsammans med resten av händelsen — inget andra anrop, ingen polling, inget separat endpoint att integrera.

FältIntervallBetydelse
score0–100Högre är mer mänskligt. Ett kontinuerligt värde i stället för en hink, så att du kan sätta trösklar som passar din egen riskaptit i stället för vår.
verdicthuman · uncertain · botPoängen sammanfattad till tre tillstånd. ”uncertain” är ett riktigt svar, inte ett misslyckande: sessionen bar för lite inmatning för att bedöma, och det rapporterar vi i stället för att gissa.
confidence0,0–1,0Hur mycket observerad inmatning verdiktet vilar på. En lång session med formulärifyllnad poängsätts med hög konfidens; en studs på två sekunder gör det inte, och det ser du innan du agerar på det.

Utdrag ur händelsen

{
  "visitorId": "X7fh2Hg9LkMn3pQr",
  "behavior": {
    "score": 87.4,
    "verdict": "human",
    "confidence": 0.82
  }
}

Tillgängligt från Business-planen och uppåt. Levereras i webhooks och går att hämta via Data API:t.

Beteendeblocket är en signal, inte en åtgärd. Det blockerar ingenting av sig självt — du kombinerar det med resten av händelsen och med din egen policy, och det är där beslutet hör hemma.

Gränser

Det beteende inte berättar för dig

Beteende besvarar en fråga väl: människa eller program. Det besvarar inte ”vilken människa”, och vi säljer det inte som om det gjorde det.

Det är ingen identitetssignal

Vi påstår inte att vi känner igen en återvändande individ på skrivandet eller musen. Vi mätte det på skarp trafik: att matcha en bestämd person över två webbläsare som personen använder gav inte bättre resultat än slumpen. Varje leverantör som säljer ”beteendebiometri som identifierar användaren” bör ombes publicera samma siffra.

Det ersätter inte identifieringen

Vem enheten är kommer från enhets- och webbläsarlagret. Beteende talar om vilken sorts aktör som styr den enheten. De två besvarar olika frågor och ingen av dem ersätter den andra.

Det behöver inmatning för att fungera

En besökare som landar och lämnar inom två sekunder producerar nästan ingenting att poängsätta. Det ärliga utfallet där är ”uncertain” med låg konfidens — inte en gissning utklädd till verdikt.

FAQ

Vanliga frågor

Se beteendeverdiktet på din egen trafik

Installera agenten, se poängen komma in med varje identifieringshändelse och avgör själv vad den är värd.