Mecanismo de Proof of Work
La documentación describe SCaptcha 2.3.0. Las funciones dependientes de la configuración están indicadas por separado.
Verificación principal
Cada desafío usa una sal criptográficamente aleatoria e independiente de 32 bytes. La instalación de WoltLab valida la sal, el hash, el algoritmo, la solución y el HMAC en la sesión que lo emitió. Caduca a los 60 segundos y no requiere un proveedor CAPTCHA externo.
Generación del desafío
El servidor genera una sal independiente y criptográficamente aleatoria de 32 bytes para cada desafío nuevo. No reutiliza una sal fija de la aplicación al emitirlos.
Firma del servidor
Se crea una firma HMAC con el secreto de sesión para que el cliente no pueda manipular el desafío.
Tarea del cliente
El cliente calcula iterativamente soluciones combinando números con la sal proporcionada hasta que coincida con el desafío, y luego envía un payload JSON base64 con algorithm, challenge, number, salt, signature y took.
Verificación de la solución
Con la sal y el número recibidos, el servidor recalcula el desafío, valida la firma HMAC y aplica una caducidad de 60 segundos.
Ajuste de la complejidad
La complejidad se ajusta modificando los valores mínimo y máximo del número secreto generado aleatoriamente. Valores más bajos se resuelven más rápido; valores más altos aumentan el coste de la automatización.