2 votes

Quelle procédure de cryptage dois-je utiliser pour envoyer des valeurs cryptées " email " et " mot de passe " via le protocole HTTP ?

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 :

  1. Le client génère du public \private clé paris

  2. Je (une personne réelle) copie-colle manuellement la clé publique du client vers le service.

  3. 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)

  4. 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

  1. intercepter le message

  2. prendre la clé publique

  3. 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 ?

7voto

Winfield Points 10838

HTTPS avec TLS/SSL.

http://en.wikipedia.org/wiki/Https

C'est un problème résolu.

1voto

tiago2014 Points 1502

Je peux utiliser une clé RSA publique et privée pour y parvenir mais, dans ce cas, je dois ne pas envoyer la clé publique au destinataire par HTTP, sinon un pirate peut voler la clé et décrypter le contenu. le contenu.

1) Envoyer la clé publique au destinataire par HTTP.
2) Le client l'utilise pour chiffrer les données.
3) Aucun pirate ne peut décrypter le contenu avec la clé publique.
4) Dans votre serveur, utilisez la clé privée pour décrypter le contenu.

Ejemplo: Crypter des données sensibles avec Ruby (on Rails)

"Dans un schéma de chiffrement à clé asymétrique, n'importe qui peut chiffrer des messages en utilisant la clé publique, mais seul le détenteur de la clé privée appariée peut déchiffrer."

EDITAR

Contexte :

  • La clé publique est utilisée pour et seulement pour chiffrer les données.
  • La clé privée est utilisée pour et seulement pour décrypter les données.

Si un hacker intercepte la clé publique, la seule chose qu'il puisse faire est de crypter les données.
Même HTTPS fonctionne de cette façon.

Obs : Seul le serveur doit connaître la clé privée.

Obs2 : Par tous les moyens, essayez d'activer HTTPS. Cela vous facilitera grandement la vie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X