返回 Skill 列表
extension
分类: AI Agent 能力无需 API Key

random_challenge_sequencer

生成随机的活体挑战序列以防止录制回放攻击

person作者: jakexiaohubgithub

random_challenge_sequencer

Genera una secuencia aleatoria e imprevisible de challenges activos para cada sesión, haciendo imposible que un atacante grabe y reproduzca la respuesta correcta.

When to use

Usar al inicio de cada sesión de liveness para determinar qué challenges se solicitarán al usuario.

Instructions

  1. Definir el pool de challenges disponibles: ['blink_2x', 'turn_left', 'turn_right', 'smile', 'nod'].
  2. Para cada sesión, seleccionar aleatoriamente 2-3 challenges: selected = random.sample(pool, k=2).
  3. Usar secrets.SystemRandom() (no random.random()) para mayor entropía criptográfica.
  4. Incluir el timestamp y session_id en la semilla para que la secuencia sea irrepetible.
  5. Almacenar la secuencia esperada en Redis con TTL de 120 segundos: SETEX session:{id}:challenges 120 {challenges}.
  6. El frontend recibe los challenges encriptados; no en texto plano.
  7. Validar que cada challenge se completa en el orden correcto.

Notes

  • Rotar el pool de challenges periódicamente para evitar que atacantes conozcan todas las opciones.
  • No reusar la misma secuencia aunque el usuario repita la sesión.