side-channels

amattas's avatarfrom amattas

Timing attacks and other side-channel exploitation techniques

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 26, 2025

When & Why to Use This Skill

This Claude skill provides expert guidance on identifying and exploiting side-channel vulnerabilities, specifically focusing on timing attacks. It helps security professionals and developers detect information leaks by analyzing indirect signals like execution time and error responses, offering practical strategies for secret extraction and the implementation of constant-time defensive measures.

Use Cases

  • Security Auditing: Identifying non-constant time string comparisons in authentication modules that could leak passwords or API keys.
  • Vulnerability Research: Developing byte-by-byte oracles to extract sensitive data from remote servers using statistical timing analysis.
  • Cryptographic Analysis: Testing for padding oracle vulnerabilities to decrypt ciphertext by observing specific error signals.
  • Defensive Engineering: Verifying that security-critical code paths are resistant to side-channel attacks through noise reduction and baseline measurement.
nameside-channels
descriptionTiming attacks and other side-channel exploitation techniques

Side-Channel Attacks

Concept: Extract secrets by observing indirect signals (timing, errors, etc.).


Timing Side-Channel

Signals:

  • Comparison that exits early on mismatch
  • Observable response time differences
  • Per-character validation

Why it works:

// Vulnerable: early exit
for (int i = 0; i < len; i++) {
    if (input[i] != secret[i])
        return FAIL;  // Time varies by position
}

Attack Recipe

1. Establish baseline:

Measure response time for known-wrong inputs
Calculate average/median for comparison

2. Byte-by-byte oracle:

For each position:
  For each candidate byte:
    Measure response time (multiple samples)
  Select byte with longest average time

3. Noise reduction:

  • Multiple samples per candidate
  • Use median (more robust than mean)
  • Remove outliers
  • Run from same network as target

Strategies

Local binary:

  • Minimal noise
  • Direct timing measurement
  • Few samples needed

Remote server:

  • Network jitter requires many samples
  • Statistical analysis helps
  • Median over 20-100 samples

Rate limited:

  • Add delays between attempts
  • Prioritize likely characters
  • Parallel connections if allowed

Other Oracles

Error-based:

Different errors reveal different failure modes
- "Invalid length" vs "Bad character" vs "Wrong value"
Each error type leaks information

Padding oracle:

Decrypt ciphertext by observing padding errors
Valid vs invalid padding reveals information

Pitfalls

Issue Solution
High jitter More samples, statistical methods
Flat timing Target uses constant-time comparison
Rate limits Slow down, parallelize
Tiny differences Higher precision timer, more samples

Detection

If all inputs produce same timing regardless of correctness:

  • Target uses constant-time comparison
  • Timing attack won't work
  • Need different approach