2010-04-15 5 views
5

Je souhaite utiliser le chiffrement asymétrique des en-têtes dans les demandes RESTful pour vérifier l'identité du système envoyant la requête: le système A crypte son nom, son horodatage et le nom du service en utilisant sa clé publique dans une demande au système B. utilise ensuite la clé publique du système A pour décrypter, prouvant ainsi l'authenticité de la requête.Est-ce que mcrypt supporte le cryptage asymétrique?

1) Est-ce que php-mcrypt supporte cela?

2) Quelqu'un a-t-il évalué ce type d'opération?

Répondre

11

Non, mcrypt est juste un chiffrement de bloc symétrique. Toutefois, l'extension PHP OpenSSL prend en charge les opérations asymétriques. Ceux que vous voulez sont openssl_sign et openssl_verify.

(Vous avez une question légère terminologie - dans les systèmes asymétriques, chiffrement se fait avec les clés publiques et déchiffrement avec les clés privées; signature est fait avec des clés privées et vérification avec les clés publiques Ne pas. confondre la signature avec le cryptage ou le décryptage - bien que les opérations sous-jacentes soient souvent similaires, ce n'est pas la même chose, et la confusion peut conduire à des implémentations non sécurisées).

Bien sûr, vous pouvez simplement faire votre REST sur SSL, en utilisant des certificats clients pour l'authentification.