2017-10-10 1 views
0

Est-ce un problème de sécurité de générer un nonce sur le client, puis de le signer avec un secret partagé?Un client généré par un client est-il moins sécurisé?

à-dire

serveur A et B communiquent. Les deux connaissent un secret partagé "$ ECRET"

Le serveur A génère un UUID comme un nonce et le signe avec le reste de la charge utile en utilisant le secret.

Il envoie ensuite la requête au serveur B qui confirme la validité de la requête à l'aide de la clé partagée. B stocke également le nonce dans sa base de données et le compare aux nonces existants pour empêcher les attaques de relecture.

On m'a dit que ce serait dangereux par rapport à un non qui est fourni par le serveur B au préalable en le demandant séparément.

Cependant je ne vois pas comment c'est beaucoup plus sûr en supposant que le secret est fort.

Répondre

0

Il y a quelque chose qui s'appelle Client nonce et il y a aussi quelque chose qui s'appelle Server Nonce. Selon la façon dont vous voulez utiliser. Le client nonce consiste à protéger le client d'une attaque de rejeu (le "serveur" étant en fait un attaquant, qui enverra le même défi à chaque client qu'il souhaite attaquer).

Il n'est cependant pas nécessaire de demander le nonce séparément, cela peut être la partie de la prise de contact.

Veuillez lire ce Security.StackExchange Answer pour une explication détaillée sur l'utilisation de nonce (client et serveur)