De acuerdo con el estándar PCI DSS, uno de los métodos para la protección de datos de tarjetas de pago durante su transmisión (req. 4) y su almacenamiento (req. 3) es la encriptación (o cifrado) de datos (criptografía).  Esta encriptación puede ser realizada empleando algoritmos simétricos (la misma clave se usa para encriptar y desencriptar) o asimétricos (se usa una clave pública y una clave privada).

Figura 1. Criptografía simétrica (recuadro superior) y criptografía asimétrica (recuadro inferior)

De acuerdo con está lógica, se tienen tres componentes principales:

  1. El texto en claro (clear text)
  2. La clave de cifrado (encryption key)
  3. El texto encriptado (cipher text)

Para el proceso de cifrado se requieren los componentes 1 y 2 y para el proceso de descifrado se requieren los componentes 2 y 3.  En ambos procesos, el elemento indispensable es la clave de encriptación. Es por ello que sobre ese componente recae la seguridad del criptosistema, conforme con lo descrito en el principio de Kerckhoffs. Si la clave de cifrado es comprometida, todo el criptosistema estará comprometido.

Para implementar un método de cifrado indescifrable se requiría de:

  • Una clave de cifrado generada mediante un algoritmo con una aleatoriedad robusta
  • La clave debe tener una longitud igual a la del texto a cifrar
  • La clave debe ser usada una única vez para encriptar un único texto
  • La clave debe ser mantenida en secreto hasta su uso (solamente debe ser conocida por el emisor y el receptor)
  • La clave debe ser destruida de forma segura una vez descifrado el texto

Este método es conocido como «libreta de un solo uso» (One-time Pad), en donde se garantiza que no existirá reutilización de la misma clave en comunicaciones subsiguientes. Algunos ejemplos de este método son el Cifrado de Vernam o el proyecto VENONA.

Figura 2. Ejemplo de una libreta de un solo uso (One Time Pad – OTP). Fuente: http://users.telenet.be/d.rijmenants/nl/onetimepad.htm

Lamentablemente, la implementación práctica de un método de «libreta de un solo uso» requiere que en cada comunicación tanto el emisor como el receptor del texto encriptado tengan acceso a una clave de cifrado única previamente compartida a través de un medio inseguro (distribución de claves), repitiendo el mismo proceso en cada comunicación, lo cual convierte la transmisión de información en un proceso largo, complicado y engorroso.

En ese sentido, un enfoque más práctico (pero menos seguro) es la reutilización de una misma clave para cifrar múltiples mensajes. Con este método, solo basta compartir una misma clave entre emisor y receptor y toda la comunicación subsiguiente será protegida con dicha clave. El riesgo es que, si un atacante tiene acceso al texto cifrado, al texto en claro o al sistema que realiza la encriptación, podría ejecutar un ataque de criptoanálisis para tratar de identificar la clave de cifrado empleada y comprometer el sistema.

Claves criptográficas y criptoperiodos

De acuerdo con el documento NIST Special Publication 800-57 Part 1: Recommendation for Key Management: Part 1 – General, un criptoperiodo es el lapso de tiempo durante el cual una clave específica está autorizada para su uso por parte de entidades legítimas o el tiempo en el cual las claves de un sistema determinado permanecerán en vigor. Generalmente, el concepto de criptoperiodo aplica a aquellas claves que son reutilizadas, con el fin de minimizar el potencial riesgo asociado con esta reutilización.

Figura 3. Ciclo de vida de una clave criptográfica según NIST SP 800-57

Según NIST, cuando ya no se necesiten (por ejemplo, para descifrar datos), las claves privadas simétricas (secretas) y asimétricas en estado «desactivado» deben pasar al estado «destruido». Esta transición ocurre cuando la clave criptográfica ha cumplido su criptoperiodo o ha sido comprometida (o se sospecha).

Un criptoperiodo adecuadamente definido:

  1. Limita la cantidad de información que está disponible para que el criptoanálisis revele la clave (por ejemplo, el número de pares de texto plano y texto cifrado con la clave),
  2. Limita la cantidad de exposición si una sola clave se ve comprometida,
  3. Limita el uso de un algoritmo particular (por ejemplo, a su vida útil estimada),
  4. Limita el tiempo disponible para los intentos de penetrar los mecanismos de acceso físico, de procedimiento y/o lógicos que protegen una clave de la divulgación no autorizada,
  5. Limita el período en el que la información puede verse comprometida por la divulgación inadvertida de una clave criptográfica a entidades no autorizadas,
  6. Limita el tiempo disponible para el criptoanálisis computacionalmente intensivo.

A veces, los criptoperíodos se definen por un período de tiempo arbitrario o por la cantidad máxima de datos protegidos por la clave, ya sea simétrica o asimétrica. Sin embargo, las compensaciones asociadas a la determinación de los criptoperíodos implican el riesgo y las consecuencias de la exposición, que deben considerarse cuidadosamente al seleccionar el criptoperíodo.

Criterios a tener en cuenta en la selección de un criptoperiodo

La selección de un criptoperiodo efectivo para un entorno en particular depende de diversos factores, entre los que se encuentran:

  1. La fortaleza de los mecanismos criptográficos (el algoritmo empleado, la longitud de la clave, el tamaño de los bloques usados y el modo de operación),
  2. La implementación de los mecanismos criptográficos (FIPS 140-2/140-3 o una implementación de software instalada en un ordenador personal),
  3. El entorno operativo (una oficina abierta, una sala segura, una terminal pública, etc.)
  4. La rotación del personal involucrado en el proceso (administradores del sistema, custodios, etc.)
  5. El volumen del flujo de datos o el número de transacciones procesadas,
  6. La vida útil de los datos,
  7. Las limitaciones requeridas para el uso del algoritmo,
  8. La función de la clave (cifrado de datos, firma digital, derivación de claves, protección de otras claves, etc.),
  9. El método de entrada de la clave (por teclado, mediante el uso de un dispositivo de carga de claves automatizado, etc.),
  10. El método de regeneración o derivación de claves empleado,
  11. El número de nodos en una red que comparten la misma clave,
  12. El número de copias de la clave y la distribución de esas copias,
  13. La amenaza de la información desde el punto de vista del adversario (capacidades técnicas y/o recursos financieros),
  14. La amenaza de la información frente a tecnologías nuevas y disruptivas (ordenadores cuánticos).

En términos generales, se puede decir que criptoperiodos cortos mejoran la seguridad del criptosistema. Adicionalmente, cuando se emplea criptografía robusta (algoritmos aprobados y reconocidos por la industria), las consideraciones respecto a seguridad física, procedimental y de acceso lógico tienen más impacto en la selección de criptoperiodos que la que puede tener un algoritmo y la longitud de su clave.

De acuerdo con NIST SP 800-57 Part 1, el criptoperiodo (total) de una clave es el periodo de tiempo que va desde el inicio del periodo de uso del emisor (Originator-usage period) hasta el final del periodo de uso del receptor (Recipient-usage period). Sin embargo, en muchos casos, los periodos de uso del emisor y del receptor son los mismos. Dependiendo del tipo de criptografía usada, cada periodo tiene un significado diferente:

Para criptografía asimétrica:

En criptografía asimétrica, cada clave del par (pública y privada) tiene su propio criptoperiodo. El criptoperiodo de la clave que se utiliza para aplicar la protección criptográfica (por ejemplo, crear una firma digital) se denomina «periodo de uso del emisor». El criptoperiodo de la otra clave que se utiliza para procesar la información protegida (por ejemplo, verificar una firma digital) se denomina «periodo de uso del receptor».

Para criptografía simétrica:

En el caso de las claves simétricas, se utiliza una única clave tanto para aplicar la protección (por ejemplo, cifrar o calcular una MAC sobre los datos) como para procesar la información protegida (por ejemplo, descifrar los datos cifrados o verificar una MAC). El período de tiempo durante el cual se puede aplicar la protección criptográfica a los datos se denomina «período de uso del emisor», y el período de tiempo durante el cual se procesa la información protegida se denomina «período de uso del receptor».

Figura 4. Definición de criptoperiodo según NIST 800-54 Part 1

La siguiente tabla es un resumen de los criptoperiodos sugeridos por NIST SP800-53 para cada tipo de clave, asumiendo que se emplean algoritmos aprobados. Sin embargo, cuando se asigna un criptoperiodo más largo que el descrito en esta tabla, se deben tener en cuenta los riesgos asociados tanto para la información protegida como para la clave en sí.

Figura 5. Tabla de criptoperiodos en función del tipo de clave de cifrado

El estándar PCI DSS y los criptoperiodos de las claves de cifrado

Históricamente, el estándar PCI DSS ha incluido dentro de sus requisitos la gestión de claves criptográficas para el almacenamiento de datos de tarjetas (req. 3) y para la transmisión de datos de tarjetas en redes públicas abiertas (req. 4).

En versiones anteriores a la versión 2.0 de PCI DSS se requería explícitamente que se efectuaran cambios periódicos de clave (rotación), por lo menos, anualmente. Sin embargo, en la versión 2.0 se introdujo explícitamente el concepto de «criptoperiodo»:

Figura 6. Requisito 3.6.4 de PCI DSS v3.2.1 en donde se indica la necesidad de definición de un criptoperiodo

En este caso, cuando se emplee criptografía para la protección de datos de tarjetas de pago almacenados, se tendrá que remplazar la clave criptográfica con base en su criptoperiodo, que podrá venir definido por el fabricante de la solución, por el responsable de la clave o de acuerdo con las recomendaciones de NIST SP 800-51, descritos anteriormente.

Siendo así, es obligatorio que todas las claves criptográficas del entorno tengan asociado un criptoperiodo justificado, siendo un incumplimiento el uso de una clave sin una fecha de expiración explícita.

Por otro lado, en el caso de claves asimétricas (claves públicas y privadas) empleadas en la transmisión de datos por redes públicas abiertas, el estándar PCI DSS v3.2.1 requiere que se revise su expiración como parte del requisito 4.1 (req. 4.1.d).

Para proveedores de servicio, es obligatorio mantener una descripción documentada de la arquitectura criptográfica del entorno  (req. 3.5.1), incluyendo:

  • Detalles de todos los algoritmos, protocolos y claves usadas para la protección de datos de tarjetas, incluyendo la fortaleza de la clave y la fecha de expiración (criptoperiodo).
  • Descripción del uso de cada clave
  • Inventario de cualquier dispositivo criptográfico de seguridad empleado para la gestión criptográfica.

En el caso de comercios, a pesar de que este requisito no aplica en sus entornos, es altamente recomendable tener un inventario de claves y sus criptoperiodos con el fin de facilitar la operación y la evaluación de cumplimiento.

Algunos elementos a tener en cuenta en la definición de los criptoperiodos en entornos PCI DSS

  • Por consideraciones del estándar PCI DSS, se requiere el uso exclusivo de criptografía fuerte (strong cryptography). La intención de la criptografía fuerte (como se define en el Glosario de Términos, Abreviaturas y Acrónimos de PCI DSS y PA-DSS) es que el cifrado se base en un algoritmo probado y aceptado por la industria (no un algoritmo propietario o «casero») con claves criptográficas fuertes:

Figura 7. Definición de criptografía fuerte (strong cryptography) de acuerdo con el glosario de PCI SSC

  • Como se ha indicado anteriormente, el criptoperiodo puede venir definido por el fabricante de la solución criptográfica, por las sugerencias del NIST o por el responsable de la clave.
  • La definición del criptoperiodo (en el caso que no esté establecido) debe ser justificado y su elección no puede ser arbitraria.
  • Otro elemento a tener en cuenta en la definición de criptoperiodos en entornos PCI DSS es la cantidad de datos protegidos o transmitidos. En términos generales, se recomienda emplear los criptoperiodos del NIST y, si se considera necesario, minimizarlos (nunca excederlos).
  • Las claves criptográficas deben estar identificadas y analizadas en el análisis de riesgos de la organización (req. 12.2) al ser un activo crítico. En este análisis, las ubicaciones, la seguridad y los criptoperiodos deben ser revisados para garantizar que el riesgo asociado está gestionado.
  • Si hay algún cambio en la infraestructura que afecte la cantidad de datos almacenados o transmitidos por la entidad (como por ejemplo el ingreso de un nuevo canal de procesamiento, la conexión con nuevos comercios o la integración después de una fusión/adquisición), entonces los criptoperiodos deben ser revisados.

Igualmente, es importante tener en cuenta que en el proceso de eliminación y/o remplazo de una clave criptográfica que ha alcanzado su criptoperiodo pueden activarse diferentes acciones que pueden impactar tanto la seguridad como la operación de la empresa:

  • Si existen datos almacenados que están protegidos por la clave que va a ser eliminada/rotada (por ejemplo en unidades o cintas de backup, en dases de datos, en ficheros, etc.), es necesario proceder con su desencriptación con la clave a rotar y su re-encriptación con la clave nueva. Este proceso es bastante crítico, ya que implica que en el momento de descifrado y re-cifrado los datos estarán en texto claro, por lo que hay que garantizar que no quedan remanentes en memoria y/o ficheros intermedios.
  • Igualmente, si existen copias de seguridad de una clave que haya alcanzado su criptoperiodo (por ejemplo, componentes impresos), éstos también deben ser eliminados como parte del proceso de baja de la clave.

Referencias adicionales

The Definitive Guide to Encryption Key Management Fundamentals: https://info.townsendsecurity.com/definitive-guide-to-encryption-key-management-fundamentals

OWASP Cryptography Material: https://github com/OWASP/DevGuide/blob/master/ 03 Build/ 0 x 11 Cryptography md

Practical Cryptography for Developers: https://cryptobook.nakov.com/

Crypt4you – Aula virtual de criptografía y seguridad de la información http://www.criptored.upm.es/crypt4you/portada.html


David Acosta

Asesor de Seguridad Calificado (QSA) para PCI DSS, P2PE, PIN, 3DS, TSP y PIN.
CISSP Instructor, CISA, CISM, CRISC, CHFI Trainer, CEH, OPST, BS25999 LA.