Mécanisme de Proof of Work
La documentation décrit SCaptcha 2.3.0. Les fonctions dépendant de la configuration sont signalées séparément.
Vérification principale
Chaque défi utilise un sel indépendant de 32 octets généré par un mécanisme cryptographiquement sûr. L’installation WoltLab valide le sel, le hachage, l’algorithme, la solution et le HMAC dans la session émettrice. Le défi expire après 60 secondes, sans fournisseur CAPTCHA externe.
Génération du défi
Le serveur génère un sel indépendant de 32 octets, aléatoire de façon cryptographiquement sûre, pour chaque nouveau défi. Aucun sel fixe d’application n’est réutilisé.
Signature du serveur
Une signature HMAC est créée avec le secret de session afin que le client ne puisse pas altérer le défi.
Tâche côté client
Le client calcule itérativement des solutions en combinant des nombres avec le sel fourni jusqu’à correspondre au défi, puis envoie un payload JSON base64 avec algorithm, challenge, number, salt, signature et took.
Vérification de la solution
Avec le sel et le nombre reçus, le serveur recalcule le défi, valide la signature HMAC et applique une fenêtre d’expiration de 60 secondes.
Ajuster la complexité
La complexité est ajustée en modifiant les valeurs minimale et maximale du nombre secret généré aléatoirement. Des valeurs plus basses se résolvent plus vite ; des valeurs plus élevées augmentent le coût de l’automatisation.