Je considère la construction d'un système API qui utilise HMAC. Le serveur et le client auront un secret partagé, le client signera les demandes, le serveur validera et procédera si tout va bien. Le problème avec ce type de système est que le secret doit être stocké de manière à pouvoir être récupéré, comme une base de données. Si quelqu'un devait voler le secret, ils ont la clé nécessaire pour faire tout ce que l'utilisateur est autorisé à faire. Je pensais qu'il devait y avoir une alternative plus sûre. Y a-t-il des failles dans l'utilisation de RSA?Secret partagé HMAC sécurisé par cryptage de hachage d'autorisation avec RSA
- Le client a la clé "public" au lieu d'un secret partagé. (La clé publique doit toujours être gardée secrète pour mon cas d'utilisation.)
- Le client va hacher le message avec SHA-1 ou tout ce qui est normal.
- Au lieu d'ajouter directement le hachage au message, le hachage sera crypté via sa clé publique, puis envoyé avec le message.
- Le serveur a la clé "privée" (pour déchiffrer les messages) mais n'a aucune connaissance de la clé "publique". (Ceci est la partie qui en fait plus sûre que l'approche normale. Si la base de données de vol, pas de clés sont volées qui peuvent usurper l'identité d'un utilisateur.)
- Server déchiffrer le hachage et valider le message comme normal.
Y at-il quelque chose de mal avec cette approche? Y a-t-il des implémentations connues de ceci ou quelque chose de similaire?
Cette question est un peu hors-sujet pour Stack Overflow. Avez-vous envisagé de l'afficher sur http://security.stackexchange.com ou http://crypto.stackexchange.com? (Évidemment, vérifiez auprès de leurs centres d'aide pour voir quel est le meilleur ajustement, voire pas du tout). Vous devrez fournir plus d'informations sur vos objectifs/menaces de sécurité afin que les autres puissent analyser si la solution que vous proposez répond à ces objectifs.Il est probable que ce problème a été résolu correctement avant, donc je doute que vous deviez inventer votre propre schéma. –
Je vote pour clore cette question hors-sujet car elle concerne la sécurité/cryptographie et ne contient pas de question de programmation. –
@Duncan Oui, mon but n'est pas d'inventer mon propre schéma, c'est pourquoi quand j'y ai pensé, je devrais voir ce qui ne va pas, ou s'il y a une implémentation existante. J'ai envisagé de l'afficher sur http://security.stackexchange.com, mais j'ai décidé que Stack Overflow était aussi bon car il y a beaucoup d'autres questions similaires ici. Je pense que c'est très sur le sujet pour les deux. – Brad