J'utilise Ruby on Rails 3 et je voudrais envoyer les valeurs "email" et "password" (je sais, je ne devrais pas, mais j'en ai besoin) via le protocole HTTP. J'ai besoin d'envoyer les informations d'identification de l'utilisateur à partir de mon client application à un mon service demande*.
Je peux utiliser un public et un privé RSA pour y parvenir mais, si c'est le cas, je ne dois pas envoyer la clé publique au destinataire par HTTP, sinon un pirate peut voler la clé et décrypter le contenu. D'un autre côté, le cryptage HMAC (si j'ai bien compris) n'est bon que pour vérifier l'intégrité des données et l'authenticité d'un message.
J'ai entendu parler de AES ... est-il adapté à mes besoins ? Si oui, où puis-je trouver un tutoriel sur la façon de l'utiliser avec Ruby ? \Ruby sur Rails ? Je dois "simplement" crypter les informations d'identification de l'utilisateur du côté client et les décrypter du côté serveur.
P.S. I : Si je me trompe sur quelque chose que j'ai écrit, faites-le moi savoir.
P.S. II : Si vous suggérez d'autres méthodes, faites-le moi savoir !
UPDATE I
*Le client est une application web (un site web, par exemple 'www.site1.com), le serveur est une autre application web (un autre site web, par exemple 'www.site2.com).
UPDATE II
En utilisant le cryptage RSA...
Les étapes de la relation client-service :
-
Le client génère du public \private clé paris
-
Je (une personne réelle) copie-colle manuellement la clé publique du client vers le service.
-
Le client envoie au service le message comprenant l'identifiant chiffré de l'utilisateur (le client n'envoie pas d'identifiant chiffré). \append la clé publique à la requête HTTP)
-
Le service, en utilisant la clé publique (que seul le service connaît), décrypte les informations d'identification de l'utilisateur et procède à la connexion de l'utilisateur.
Maintenant, si j'envoie la clé publique au lieu de faire l'étape 2, et que le client doit donc envoyer la clé publique à l'étape 3 via le protocole HTTP, un pirate peut
-
intercepter le message
-
prendre la clé publique
-
décrypter les informations d'identification de l'utilisateur et les voler.
Donc, Dois-je crypter les informations d'identification de l'utilisateur ? (ce sont des informations importantes et privées) en utilisant un cryptage RSA si j'envoie la clé publique au service ?