2010-04-15 12 views
5

Quiero utilizar cifrado asimétrico de encabezados en solicitudes RESTful para verificar la identidad del sistema que envía la solicitud: es decir, el sistema A cifra su nombre, marca de tiempo y nombre de servicio utilizando su clave pública en una solicitud al Sistema B. Sistema B luego usa la clave pública del Sistema A para descifrar, lo que demuestra la autenticidad de la solicitud.¿Admite mcrypt el cifrado asimétrico?

1) ¿Es compatible con php-mcrypt esto?

2) ¿Alguien ha evaluado este tipo de operación?

Respuesta

11

No, mcrypt es simplemente cifras de bloques simétricas.

Sin embargo, la extensión PHP OpenSSL admite operaciones asimétricas. Los que desea son openssl_sign y openssl_verify.

(Usted tiene un problema de terminología ligero - en los sistemas asimétricos, cifrado se realiza con las claves públicas y descifrado con claves privadas; firma se hace con claves privadas y verificación con claves públicas no hacer. confunde la firma con cifrado o descifrado, aunque las operaciones subyacentes a menudo son similares, no es lo mismo y la confusión puede llevar a implementaciones inseguras.

Por supuesto, puede hacer su REST sobre SSL, utilizando certificados de cliente para la autenticación.