5.1. User Code Brute Forcing (Forçage brutal du code utilisateur)
Étant donné que le code utilisateur est saisi par l'utilisateur, des codes plus courts sont plus souhaitables pour des raisons d'utilisabilité. Cela signifie que l'entropie est généralement inférieure à celle utilisée pour le code d'appareil ou d'autres types de jetons bearer OAuth où la longueur du code n'affecte pas l'utilisabilité. Par conséquent, il est recommandé que le serveur limite le taux de tentatives de code utilisateur.
Le code utilisateur DEVRAIT avoir suffisamment d'entropie pour que, lorsqu'il est combiné avec la limitation de taux et d'autres atténuations, une attaque par force brute devienne infaisable. Par exemple, on considère généralement que les clés symétriques de 128 bits pour le chiffrement sont considérées comme suffisantes aujourd'hui car un attaquant doit effectuer 2^96 travaux pour avoir une chance de 2^-32 de deviner correctement par force brute. La limitation de taux et la durée de vie finie sur le code utilisateur placent une limite artificielle sur la quantité de travail qu'un attaquant peut "faire". Si, par exemple, on utilise un code utilisateur base 20 de 8 caractères (avec environ 34,5 bits d'entropie), l'intervalle de limitation de taux et la période de validité devraient seulement permettre 5 tentatives pour obtenir la même probabilité de 2^-32 de succès par devinette aléatoire.
Un forçage brutal réussi du code utilisateur permettrait à l'attaquant d'approuver l'autorisation avec ses propres informations d'identification, après quoi l'appareil recevrait une autorisation d'appareil liée au compte de l'attaquant. C'est le scénario opposé à un jeton bearer OAuth étant forcé brutalement, où l'attaquant prend le contrôle de l'autorisation de la victime. De telles attaques peuvent ne pas toujours avoir de sens économique. Par exemple, pour une application vidéo, le propriétaire de l'appareil pourrait alors être en mesure d'acheter des films en utilisant le compte de l'attaquant (bien que même dans ce cas, un risque de confidentialité subsisterait et il est donc important de s'en protéger). De plus, certaines utilisations du flux d'appareil donnent au compte accordant la capacité d'effectuer des actions qui doivent être protégées, telles que le contrôle de l'appareil.
La longueur précise du code utilisateur et l'entropie qu'il contient sont à la discrétion du serveur d'autorisation, qui doit considérer la sensibilité de leurs ressources protégées spécifiques, la praticité de la longueur du code d'un point de vue utilisabilité, et toutes les atténuations en place, telles que la limitation de taux, lors de la détermination du format du code utilisateur.