Skip to main content

Utilizar cifrado en aplicaciones personalizadas

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Describir la clase Crypto de Apex
  • Explicar diferentes casos de uso para la clase Crypto de Apex y el cifrado personalizado
  • Implementar el cifrado en su propia aplicación

¿Qué es la clase Crypto de Apex?

Cuando llega el momento de implementar el cifrado en su aplicación de Salesforce, Apex le ofrece la flexibilidad de escribir sus propias funciones criptográficas personalizadas y, al mismo tiempo, le proporciona la capacidad de utilizar una amplia gama de funciones previamente integradas. En esta unidad, trataremos algunas funciones eficaces que Salesforce pone a su disposición para crear resúmenes, códigos de autenticación de mensajes (MAC), firmas y funciones de cifrado y descifrado a través de la clase Crypto de Apex. 

La clase Crypto proporciona conjuntos de funciones que son particularmente valiosas para salvaguardar sus comunicaciones. Puede blindar de forma eficiente sus datos confidenciales ante interceptores, verificar que los datos de los mensajes están completos y sin modificar, así como verificar la autenticidad de los remitentes y receptores empleando estas funciones. Cada una de estas funciones admite un rango de algoritmos diferentes. Esto le permite tener un buen grado de control sobre la composición de su solución y, al mismo tiempo, reducir al mínimo la carga de trabajo adicional necesaria para proteger su aplicación. 

Cifrado y descifrado para proteger la confidencialidad 

Puede manejar el cifrado y el descifrado con facilidad y flexibilidad con las funciones Crypto.Encrypt() y Crypto.Decrypt() de Apex, que admiten los algoritmos AES128, AES192 y AES256. Las funciones de cifrado y descifrado son esenciales para garantizar la confidencialidad de los datos de su aplicación. Luego, tiene la opción de generar su propia clave de cifrado o de utilizar el método Crypto.generateAESKey(Integer keylength). Puede utilizar las técnicas que practicó en la unidad anterior para almacenar secretos en tipos de metadatos personalizados protegidos o configuraciones personalizadas protegidas para asegurar las claves de cifrado. 

Resúmenes de hash para proteger la integridad

Otra función útil para verificar la integridad de los datos es la función Crypto.generateDigest() de Apex. Este método genera un resumen de hash unidireccional, y admite algoritmos como MD5, SHA1, SHA256 y SHA512. Estos resúmenes de hash pueden servir como un propósito valioso para identificar datos dañados de forma accidental (u otras modificaciones no deseadas). Al realizar comprobaciones de comparación en los resúmenes de hash, puede detectar rápidamente si hay cambios en los datos. Como el resumen recomputado de los datos no coincidirá con el resumen original, puede confirmar que los datos se modificaron. Esto puede alertarle sobre incidentes como datos dañados, cambios accidentales o alteraciones malintencionadas.

Tenga en cuenta que los algoritmos de hash tienen varios grados de solidez en lo referente a la seguridad. Aunque se admite MD5 en la clase Crypto, se considera un algoritmo de hash débil, por ello Salesforce sugiere utilizar SHA1 o versiones posteriores para computar los resúmenes de hash. 

Códigos de autenticación de mensajes basados en hash (MAC) para probar la autenticidad y la integridad

Otra función útil es el método Crypto.generateMac() de Apex, que puede utilizarse para crear MAC. Los MAC pueden utilizarse junto con funciones de resumen de mensajes para establecer MAC con hash (HMAC). Los HMAC se utilizan en los protocolos TLS e IPSec para autenticar remitentes de mensajes y garantizar que los mensajes no se modifican (o son interceptables) en el tránsito. 

El método Crypto.generateMac() admite los algoritmos HMACMD5, HMACSHA1, HMACSHA256 y HMAC512. Las funciones HMAC llevan aparejado el uso de resúmenes de mensajes y una clave compartida que el remitente utiliza para cifrar un MAC y que el receptor emplea para descifrar el MAC. Ya que el receptor tiene que descifrar el MAC utilizando una clave privada secreta, puede verificar la autenticidad del remitente del mensaje. Los resúmenes de mensajes pueden compararse luego para permitir al receptor la confirmación de que el mensaje no se modificó en tránsito, es decir, a través de un ataque man-in-the-middle. 

Creación de una firma digital

Las firmas digitales garantizan tanto la integridad como la autenticidad de los mensajes. Para generar una firma digital, puede utilizar la función Crypto.sign(), que utiliza el algoritmo SHA1 para crear un resumen, el cual luego se cifra con una clave privada mediante RSA. Con esta configuración, el receptor de un mensaje puede utilizar una clave pública para descifrar un mensaje (que se cifró con la clave privada del remitente) y luego comparar el resumen del mensaje enviado con un resumen generado desde el mensaje recibido, lo que permite al receptor verificar su integridad. 

Ahora que sabe cómo implementar el cifrado en su aplicación de Salesforce, puede usar la flexibilidad de Apex para aprovechar las funciones previamente integradas o para escribir sus propias funciones criptográficas personalizadas. 

El cifrado y las funciones de la plataforma como las que ofrece la clase Crypto de Apex permiten garantizar la seguridad de las aplicaciones que desarrolla para Salesforce Platform. Y las aplicaciones seguras son la clave para conseguir la confianza y el éxito de los clientes. 

Recursos

¡Siga aprendiendo gratis!
Regístrese para obtener una cuenta y continuar.
¿Qué hay para usted?
  • Consiga recomendaciones personalizadas para sus objetivos profesionales
  • Practique sus aptitudes con retos prácticos y pruebas
  • Siga y comparta su progreso con empleadores
  • Póngase en contacto para recibir asesoramiento y oportunidades laborales