La seguridad de los datos en línea siempre ha sido importante, pero ahora más que nunca. Con cada vez más datos almacenados en la nube, los usuarios necesitan buscar las mejores soluciones de seguridad para garantizar la protección de su información confidencial. Si bien todos los aspectos de la seguridad de los datos en línea son necesarios para protegerlos, sin duda el cifrado de datos es el más importante.
Por eso, cada vez más servicios en la nube utilizan un tipo de cifrado llamado cifrado que preserva el formato.
¿Qué es el cifrado con preservación de formato?
Si su empresa tiene varios números de tarjeta de crédito de 16 dígitos almacenados en una base de datos, pero el texto cifrado también debe tener 16 dígitos después del cifrado, aquí es donde entra en juego el cifrado que preserva el formato (FPE). El FPE cifra un texto plano de una longitud determinada y produce un texto cifrado de la misma longitud que el texto plano y que utiliza el mismo conjunto de valores que el texto plano. Siguiendo el ejemplo anterior de un número de tarjeta de crédito de 16 dígitos con un texto plano de 1483920193402918, el texto cifrado creado con FPE podría producir una salida de 1483666666662918.
Al usar FPE, se puede comprobar que el texto cifrado y el texto sin formato tienen la misma longitud y solo utilizan valores numéricos para el cifrado. Un proveedor de nube que permite a los usuarios implementar FPE en su cifrado es Google Cloud.
Cifrado con preservación de formato en Google Cloud
Google Cloud ofrece a los usuarios acceso a una técnica de anonimización llamada pseudonimización. La pseudonimización es una técnica que reemplaza los datos confidenciales con tokens generados criptográficamente. Google Cloud admite tres técnicas de pseudonimización diferentes:
- Cifrado determinista mediante AES-SIV
- Cifrado que preserva el formato
- Hashing criptográfico
Las tres técnicas utilizan claves criptográficas para la transformación de datos, pero nos centraremos en la Cifrado que preserva el formato.
Google Cloud utiliza un tipo de FPE llamado FPE-FFX. FFX se centra en dos métodos de FPE diferentes, FF1 y FF3, para cifrar datos. Al momento de escribir esto, FF1 es el único método compatible actualmente para el cifrado. FF2 no se publicó en el momento de la creación de FFX. Se están reenviando derivaciones de FF2 y FF3, pero tras un ataque criptoanalítico en 2017, FF3 se consideró demasiado inseguro.
FFX utiliza múltiples rondas de una función Feistel sobre el texto plano, junto con el uso de una clave, para crear el texto cifrado. Una función Feistel divide el texto plano en dos partes y realiza una permutación en cada ronda en cada mitad del texto plano, intercambiando la mitad izquierda del texto con la derecha y viceversa. El método FF1 utiliza 10 rondas de la función Feistel, y FF3 utiliza 8 rondas. FPE-FFX requiere varios pasos para cifrar datos. Para comenzar el cifrado, se debe especificar el alfabeto utilizado para desidentificar los datos de una de estas tres maneras:
- Utilizando uno de los cuatro valores que representan los conjuntos de caracteres/alfabetos más comunes
- Usando un valor de base que especifica el tamaño del alfabeto. Al especificar 2, se obtiene un alfabeto compuesto por los números 0 y 1, mientras que al especificar 95, se obtiene un alfabeto con todos los caracteres numéricos, alfabéticos en mayúsculas y minúsculas, y símbolos.
- Mediante la construcción de un alfabeto que contenga los caracteres exactos que se utilizarán
Al usar FPE-FFX en Google Cloud, los datos se cifran como se describió anteriormente, pero también se les puede anteponer una anotación sustituta, lo que da como resultado un token final. El token adopta el siguiente formato cuando se incluye una anotación sustituta: surrogate_infotype(surrogate_length): surrogate_value. La anotación sustituta es surrogate_infotype(surrogate_length). El usuario define el infotype y el valor sustituta es el texto cifrado resultante. Si no se especifica ninguna anotación sustituta, el token final es simplemente el valor sustituta. Para reidentificar datos no estructurados, es necesario el token completo, incluida la anotación sustituta, mientras que los datos estructurados solo requieren el valor sustituta.
Conclusión
El cifrado que preserva el formato es de suma importancia para los usuarios que desean que el texto cifrado, una vez cifrado, tenga la misma longitud que el texto original. De los diversos métodos FPE-FFX utilizados en Google Cloud, FF1 es el método más recomendable, debido a las rondas adicionales de la función Feistel que aplica.
Los datos estructurados requieren que se anteponga una anotación sustituta al texto cifrado para permitir la reidentificación de los datos. Google Cloud cuenta con una sólida implementación de FPE para uso de sus clientes. Para quienes necesitan texto plano y texto cifrado de la misma longitud, FPE-FFX de Google Cloud es la mejor opción.
