33.2.3 Temporal Pattern CAPTCHAs

2025.10.06.
AI Security Blog

Traditional CAPTCHAs ask a simple question: what did you do? Did you select the correct images? Did you transcribe the right text? Temporal pattern CAPTCHAs introduce a far more subtle and powerful dimension: how did you do it?

This paradigm shift moves the verification process from a discrete, final-state answer to a continuous analysis of user behavior over time. The fundamental premise is that humans and machines, even when performing the same task, leave behind distinctly different behavioral fingerprints. Your goal as a red teamer is to learn how to forge these fingerprints.

Kapcsolati űrlap - EN

Do you have a question about AI Security? Reach out to us here:

The Core Principle: Analyzing the Interaction Timeline

Instead of just logging a successful click on a checkbox, a temporal system records a rich stream of data points leading up to that click. This can include:

  • Mouse Dynamics: Path, velocity, acceleration, jitter, curvature, and pauses.
  • Keyboard Cadence: Time between key presses (digraphs), key hold duration, and overall typing rhythm.
  • Timing Intervals: The delay between the page loading, the first interaction, and the final submission.
  • Device Events: Screen touch pressure, scroll speed, and device orientation changes.

These systems build a probabilistic model of “humanness” based on these signals. An action is flagged as suspicious not because the outcome is wrong, but because the process of getting there is statistically improbable for a human user.

Bot Interaction Start Click Linear path, constant velocity Human Interaction Start Click Curved path, micro-corrections

Figure 1: Comparison of a typical automated mouse path versus a natural human path. Temporal systems are designed to detect these subtle differences.

Red Teaming Temporal CAPTCHAs: The Art of Imperfection

Bypassing these systems requires a fundamental shift in your automation strategy. Your objective is no longer perfect, efficient execution. Instead, you must inject plausible, human-like noise, error, and inefficiency into your scripts.

Attack Vector 1: Naive Automation (The Easiest to Detect)

This is the baseline approach where automation is direct and programmatic. Clicks are instantaneous, mouse movements are non-existent (teleporting cursors), and delays are static. Any modern temporal CAPTCHA will detect this immediately.

// A naive bot script that temporal systems easily flag
function solve_captcha(element) {
  // Problem 1: No delay between finding the element and interacting
  coordinates = get_element_position(element);

  // Problem 2: Instantaneous "teleport" of the mouse cursor
  mouse.move_to(coordinates.x, coordinates.y);
  
  // Problem 3: No delay or natural hesitation before the click
  mouse.click();

  // Problem 4: A fixed, predictable delay
  sleep(500); // Always waits exactly 0.5 seconds
  
  submit_form();
}

Attack Vector 2: Replay Attacks

A more sophisticated approach involves recording real human interactions (mouse movements, keystrokes, timings) and replaying them. While more effective than naive automation, this method has significant weaknesses:

  • Scalability: You need a large, diverse library of unique human interaction recordings to avoid detection through repetition.
  • Fingerprinting: Advanced systems can fingerprint the hardware and software environment where the recording was made, flagging replays on different systems.
  • Adaptability: A recording is static. If the page layout changes slightly, the replayed coordinates will be incorrect, and the attack will fail.

Attack Vector 3: Generative Human Emulation

This is the state-of-the-art for bypassing temporal CAPTCHAs. It involves using machine learning models to generate synthetic-but-realistic human behavior on the fly. Instead of replaying a fixed path, the model generates a new, unique path for each attempt.

Techniques often involve:

  • Bézier Curves: Generating smooth, curved mouse paths instead of perfectly straight lines.
  • Perlin Noise: Adding a layer of organic, random “jitter” to mouse movements to simulate the slight tremor of a human hand.
  • Probabilistic Timing: Using statistical distributions (e.g., a Gaussian distribution) to model delays and key press intervals, rather than fixed timers.
  • Reinforcement Learning: Training an agent to perform the task (e.g., move a mouse to a button and click) where the reward function is based on both completing the task and passing the CAPTCHA’s “humanness” score.

Defensive Signals and Red Team Countermeasures

To defeat these systems, you must understand what they are looking for. The table below outlines common signals that defenders use and the corresponding red team objective to circumvent them.

Signal / Metric Typical Bot Behavior (Suspicious) Red Team Goal (Plausible Human Behavior)
Mouse Path Linearity Perfectly straight lines from point A to B. Zero deviation. Generate curved, slightly inefficient paths with minor corrections.
Cursor Velocity Profile Constant speed or instant acceleration/deceleration. Simulate a “bell curve” of velocity: slow start, peak speed, slow down to land on target.
Click/Keystroke Interval Uniformly distributed or fixed intervals (e.g., exactly 100ms between each key). Introduce variable, randomized delays based on a human-like statistical distribution.
Interaction Start Time Interaction begins immediately after the DOM is ready (e.g., <100ms). Simulate a “reading” or “orientation” period with a randomized delay of a few seconds.
Screen Hotspots Cursor only ever exists at the start and end points of an action. Generate idle movements, slight drifts, and hovers over non-interactive elements.

Your success in red teaming temporal CAPTCHAs hinges on your ability to move beyond simple task completion. You must model and generate the subtle, subconscious, and often imperfect behaviors that define a genuine human interaction with a digital interface.