domingo, 24 de marzo de 2013

Enmascarar vs Truncar


En alguna ocasión, mientras llevaba a cabo una consultoría o una auditoría de PCI DSS, me he encontrado con personas que confundían truncar y enmascarar entendiéndolas como sinónimas. Si le echamos un ojo a las acepciones que da la RAE para ambos términos veremos que tienen significados diferentes:

truncar.
(Del lat. truncāre).
1. tr. Cortar una parte a algo.
2. tr. Dejar incompleto el sentido de lo que se escribe o lee, u omitir frases o pasajes de un texto.
3. tr. Interrumpir una acción o una obra, dejándola incompleta.
4. tr. Quitar a alguien las ilusiones o esperanzas. U. t. c. prnl.
5. tr. p. us. Cortar la cabeza al cuerpo del hombre o de un animal.

enmascarar.
1. tr. Cubrir el rostro con máscara. U. t. c. prnl.
2. tr. Encubrir, disfrazar. U. t. c. prnl.

Por mi parte, preferiría que me enmascararan a que me truncaran... :-)

En el contexto de datos informáticos, y más concretamente, en el de datos de titulares de tarjeta por lo que a PCI DSS se refiere, la diferencia entre truncar y enmascarar es relevante.

Usaremos el término enmascarar datos de tarjeta cuando, pese a almacenarlos en nuestra base de datos luego no lo mostramos entero, si no que encubrimos o disfrazamos una parte, normalmente utilizando un carácter alternativo como los asteríscos:

En nuesta base de datos tenemos almacenado el PAN (cifrado, por supuesto) 1234 5678 9101 1121 pero al visualizarlo o mostrarlo al usuario lo enmascaramos: 123456*****1121.

Por otro lado, hablaremos de truncar el dato cuando directamente descartemos la parte que no nos interesa y en nuestra base de datos guardemos únicamente una parte del mismo:

En nuestra base de datos directamente almacenamos 123456*****1121 no pudiendo recuperar por lo tanto el número de tarjeta completo.

Si analizamos que implicaciones tiene cada una de las dos opciones en PCI DSS, nos encontramos con que los datos enmascarados siguen estando afectados por el estándar PCI DSS en tanto seguimos almacenando el dato completo en nuestra base de datos. Sin embargo, nos permite cumplir el requerimiento 3.3 del estándar: "Oculte el PAN cuando aparezca (los primeros seis y los últimos cuatro dígitos es la cantidad máxima de dígitos que aparecerá)".

Por otro lado, el truncado de datos si se realiza de tal manera que no se mantienen más que los primeros 6 y los últimos 4 dígitos del número de la tarjeta, nos permite dejar fuera del alcance el almacenamiento, procesado o transmisión de estos datos puesto que ya no se consideran datos de titulares de tarjeta.

Por lo tanto, no se trata de términos sinónimos, y desde el punto de vista de la seguridad y del cumplimiento con PCI DSS siempre que sea posible, será preferible utilizar el truncado al enmascarado, en tanto que si no vamos a necesitar almacenar el dato completo por ningún motivo justificado, lo mejor es que directamente no lo guardemos para evitar el riesgo de un compromiso de los datos.

No hay comentarios: