Documento técnico sobre encriptado

Última actualización: 21 de octubre del 2019

Introducción

¿Por qué las empresas se cambian a la nube? En general, se debe a que los entornos en la nube son escalables, confiables y tienen una alta disponibilidad. Sin embargo, esas no son las únicas consideraciones, la seguridad puede prevalecer sobre las otras ventajas de la nube.

Por esta razón, los proveedores de nube deben tener una estrategia de seguridad integral. La estrategia de seguridad de Zoho abarca varias dimensiones y el encriptado es una parte fundamental de ella.

En esta página, se le indicará todo lo que podría querer saber acerca de la estrategia de encriptado de Zoho y cómo la utilizamos para mantener sus datos seguros.

¿Qué es el encriptado?

El encriptado se utiliza principalmente para proteger el contenido de un mensaje de modo que solo el destinatario previsto pueda leerlo. Para ello, se reemplazó el contenido por datos irreconocibles que solo el destinatario previsto podría comprender. Así es cómo el encriptado se convirtió en un método para proteger los datos de aquellos que podrían querer robarlos.

El encriptado se produce cuando cambia los datos mediante un proceso de codificación especial para que los datos se vuelvan irreconocibles (encriptados). Luego puede aplicar un proceso de decodificación especial y recuperará los datos originales (desencriptado). Si mantiene el proceso de decodificación en secreto, nadie más puede recuperar los datos originales de los datos encriptados.

El proceso de codificación aplica un algoritmo de encriptado como AES 256 que es público. Sin embargo, el proceso en sí depende de la clave que se utiliza para encriptar y desencriptar los datos con el fin de extraer los datos originales.

La clave se mantiene en secreto. Sin la clave, cualquiera que logre acceder a los datos, solo verá un “texto cifrado”, que no tendrá ningún significado real. Por lo tanto, los datos están protegidos.

¿Por qué encriptamos sus datos?

La última capa de protección: aunque una estrategia de seguridad integral ayuda a una empresa a proteger los datos contra los hackers, el encriptado adopta la medida definitiva contra los intentos de robo de datos. Esta capa es la que completa el proceso de protección de datos, ya que garantiza que sus datos no se puedan dañar ni robar en el caso desafortunado de una vulneración de seguridad.

Privacidad: el encriptado ofrece tranquilidad respecto a las preocupaciones de privacidad en torno a Internet. El encriptado ayuda a proteger la privacidad mediante la transformación de la información personal en datos que “solo usted puede ver” destinados únicamente a las partes que los necesiten. Cuando interactúa con nosotros y almacena sus datos en los servidores, el encriptado nos ayuda a garantizar una privacidad absoluta.

¿A qué nos referimos con “datos”?

Tratamos dos tipos de datos:

  1. Datos de clientes: los datos que almacena en nuestros servidores a través de los servicios de Zoho. Por lo general, un servicio de Zoho maneja estos datos a través de la cuenta de un cliente que se puede identificar en nuestra base de datos de IAM (gestión de identidad y acceso).

    Según la confidencialidad de los datos y los requisitos del usuario, algunos datos del cliente se encriptan mientras que otros no. Los datos confidenciales son aquellos que pueden provocar daños a las personas o las organizaciones relacionadas cuando se exponen.

  2. Datos derivados: los datos que usted no proporciona directamente, pero que derivan de sus datos. Por ejemplo, tokens de autorización, ID únicos, direcciones URL e informes, etc. que se almacenan en nuestros servidores.

    Según la confidencialidad de los datos, algunos datos derivados se encriptan mientras que otros no.

En las secciones posteriores, los “datos” se refieren a los datos encriptados.

Encriptado en tránsito

Cuando utiliza los servicios de Zoho, los datos se trasladan a través de Internet desde su navegador hasta nuestro centro de datos o el de otros terceros (si emplea integraciones de terceros). El encriptado de datos en tránsito protege sus datos de ataques de intermediarios.

Existen dos situaciones en las que los datos en tránsito se encriptan:

  • Cuando los datos se trasladan desde su navegador hasta nuestros servidores.
  • Cuando los datos se trasladan desde nuestro servidor hasta servidores que no son de Zoho (terceros).

Entre usted y Zoho

Zoho ha establecido políticas estrictas para adaptar la seguridad de la capa de transporte (TLS) a todas sus conexiones. La TLS garantiza que la conexión entre usted y los servidores de Zoho sea segura, ya que permite la autenticación de ambas partes involucradas en la conexión y encripta los datos que se transferirán. El protocolo TLS se asegura de que ningún tercero pueda interceptar o manipular la comunicación entre usted y Zoho.

Aplicamos la última versión 1.2/1.3 del protocolo TLS y utilizamos certificados emitidos por SHA 256 junto con cifrados (claves AES_CBC/AES_GCM de 256/128 bits para el encriptado, SHA2 para la autenticación de mensajes y ECDHE_RSA como el mecanismo de intercambio de claves). También implementamos la confidencialidad directa total y reforzamos la seguridad de transporte estricta (HSTS) de HTTPS en todos los sitios.

Entre Zoho y terceros

Aplicamos el protocolo https durante la comunicación con terceros. En las transacciones que involucren datos confidenciales y casos de uso, utilizamos el encriptado asimétrico, que utiliza un sistema de claves públicas y privadas para encriptar y desencriptar datos.

En este método generamos un par de claves públicas y privadas en nuestro KMS (servicio de gestión de claves), que crea, almacena y gestiona claves de todos los servicios. Encriptamos estos pares con una clave maestra y los pares de claves encriptadas se almacenan en el propio KMS. La clave maestra se almacena en un servidor independiente.

Permitimos que las claves públicas estén disponibles para los terceros a través de los certificados, mientras que las claves privadas se almacenan en el KMS y, después de la autenticación, los datos encriptados se desencriptan en el KMS.

Encriptado en reposo

Existen dos niveles principales de encriptado:

  1. Encriptado de la capa de aplicación
  2. Encriptado de disco completo basado en hardware

La estrategia para encriptar datos a nivel de la aplicación depende de dónde y cómo se almacenan los datos, como se muestra a continuación:

  • Base de datos (DB): almacenados como tablas
  • Sistema de archivos distribuido (DFS): almacenados como archivos
  • Encriptado de dirección URL
  • Respaldo
  • Registros
  • Caché

La siguiente imagen presenta el panorama general de nuestra estrategia de encriptado:

estrategia de encriptado

A nivel de aplicación

Cualquier servicio (o aplicación) de Zoho que utilice involucra datos: los datos que proporciona y los datos que almacenamos en su nombre como parte del servicio. Los datos se pueden recibir como un archivo o campos de datos. Cada una de estas categorías se trata de manera diferente con respecto a cómo están encriptadas.

En esta sección, se aborda el encriptado en reposo a nivel de la aplicación.

Encriptado de DB

Cuando utiliza servicios como Zoho Creator o Zoho Forms, los datos ingresados en la aplicación o los datos de servicio se almacenan en nuestra base de datos como tablas.

Los datos de estas tablas se encriptan de acuerdo con el estándar AES 256 con el modo de relleno AES/CBC/PKCS5. Sin embargo, en función de la confidencialidad del campo de datos, así como de la elección y los requisitos del usuario, el nivel de encriptado varía.

Existen dos niveles de encriptado de base de datos:

  1. Según la confidencialidad de los datos
  2. Según la funcionalidad de búsqueda

Nota: En adelante, nos referiremos a un cliente o una organización que utilice un servicio de Zoho y que tenga un número limitado de usuarios como una “organización”.

Según la confidencialidad de los datos

Nivel 1: este es el nivel predeterminado de encriptado que se aplica a los datos de todas las organizaciones. En este nivel, nuestro KMS asigna una clave a cada organización. Los datos correspondientes a esa organización se encriptarán con esta clave. La clave se encripta utilizando una clave maestra y la clave encriptada se almacena en un servidor independiente.

Nivel 2: aplicamos este nivel de encriptado a la información de identificación personal (PII) y confidencial. Esta categoría incluye campos como números de cuenta bancaria, números de identificación y datos biométricos.

En este nivel, el KMS genera una clave única para cada columna de la tabla. Todos los datos de una columna específica se encriptarán utilizando la clave generada para esa columna. Estas claves se encriptan nuevamente mediante una clave maestra y se almacenan en un servidor independiente.

Según la funcionalidad de búsqueda

Un vector de inicialización (IV) es un valor aleatorio que inicia el proceso de encriptado. Este valor aleatorio garantiza que cada bloque/unidad de datos se encripte de manera diferente. También significa que encriptar los mismos datos dos veces genera diferentes textos cifrados.

¿Cuál es la importancia del IV?

Si no tuvo IV y utilizó el modo Encadenamiento de bloques de cifrado (CBC) solo con su clave, dos conjuntos de datos que comiencen con datos idénticos producirán los primeros bloques idénticos. Los IV disminuyen la probabilidad de que el encriptado de dos datos distintos cree siempre los mismos pares de entrada/salida (a nivel de cifrado de bloques y utilizando la misma clave), incluso cuando uno mantiene alguna relación con el otro (incluidos, entre otros, cuando se comienza con el mismo primer bloque).

Cuando cada solicitud de encriptado activa el uso de un IV aleatorio, el primer bloque será diferente. El atacante no puede deducir nada que pueda ayudarlo a decodificar los datos encriptados.

Encriptado de preservación de igualdad: este es el nivel predeterminado de encriptado para todas las tablas. En este nivel, toda la tabla de datos obtiene un IV. Esto significa que todo el bloque de texto cifrado se puede utilizar en una consulta de búsqueda dentro de una tabla. Dado que el IV es el mismo para todos los datos dentro de la tabla, podrá obtener los datos con una búsqueda.

Encriptado estándar: en este nivel, cada entrada de datos tiene un IV único. Incluso si encripta toda la tabla con una clave, cada entrada de datos encriptada producirá un texto cifrado único. Además, puesto que el IV es aleatorio y exclusivo para cada dato, no podrá obtener los datos con una consulta de búsqueda. Esta es una opción más segura que la variación “Preservación de igualdad”.

¿En qué situaciones se utilizarán estas variaciones?

La decisión de elegir una determinada variación normalmente depende del requisito. Si los datos deben recibir el nivel más alto de protección, aplicamos el nivel 2 con el encriptado estándar. Sin embargo, si no todos los campos necesitan la máxima protección, pero sí la necesitan los campos selectos, la protección de nivel 2 con la versión estándar sería suficiente.

Sin embargo, no siempre se trata solo de la protección. En ocasiones, es posible que los usuarios deseen buscar y capturar un campo como “ID de correo electrónico” para satisfacer sus necesidades. En ese caso, una opción estándar no tendría sentido y optamos por la variación “Preservación de igualdad”.

Encriptado de DFS o archivos

Cuando utiliza servicios como Zoho Docs, crea archivos que se guardan en nuestro sistema de archivos distribuido (DFS).

El encriptado se basa en el algoritmo AES 256 estándar, pero el modo de encriptado corresponde a CTR o al modo de contador. En AES 256, el texto sin formato que se debe encriptar se divide en paquetes de datos o bloques. Dado que encriptamos el contenido de los archivos aquí, el algoritmo debe garantizar que el encriptado de cada bloque sea independiente de otro, de modo que el atacante no obtenga ningún tipo de información sobre el archivo, incluso si los cifrados del bloque se ven afectados. Para cumplir con este requisito, el modo de CTR es idóneo.

Al igual que en el encriptado de DB, el encriptado de archivos también tiene dos niveles:

Nivel 1: en este nivel, cada organización dispone de una clave. Cada archivo de esa organización se encripta utilizando esta clave, pero con un IV aleatorio único que se almacena junto con el archivo en sí. Esta clave se encripta nuevamente con una clave maestra y se almacena en el KMS.

Nivel 2: en este nivel, cada archivo cuenta con una clave única y se encripta con esa clave. Cada clave utilizada para encriptar un archivo se encriptará nuevamente con una clave maestra, mientras que la clave encriptada se almacena junto con el archivo en el DFS. Esta clave maestra es específica del servicio o la aplicación y se almacena y gestiona en el KMS.

Encriptado de dirección URL

Los enlaces de invitación o cualquier otro tipo de comunicación que mantengamos, puede implicar el traspaso de datos confidenciales en las direcciones URL. Para proteger esta comunicación, algunas partes de una dirección URL están encriptadas. Si hay algún dato que se pueda identificar en la dirección URL, por ejemplo, el ID de un documento, se encripta la parte que lo contiene.

Este encriptado tiene dos niveles: una clave por organización o una clave por dirección URL. Esto también se decide en función de la confidencialidad de los datos de la dirección URL.

Encriptado de respaldo

Creamos respaldos basados en dos programaciones: diaria y semanal. Los servidores de respaldo están equipados con el mismo nivel de protección que los servidores principales. Todos los datos que consideremos como respaldo se encriptarán en reposo. Utilizamos el algoritmo AES 256 para el encriptado y almacenamos las claves en un servidor independiente. También tenemos centros de datos (DC) redundantes que garantizan una alta disponibilidad. Estos DC también tienen una copia de sus datos encriptados y, además, están respaldados como el DC principal.

Encriptado de registros

Zoho Logs utiliza el sistema de archivos distribuido Hadoop (HDFS) para almacenar y gestionar registros. Aplicamos la tecnología de encriptado de Hadoop Inc para encriptar los datos al mismo tiempo que el KMS se encarga de la gestión de claves.

Encriptado de caché

Utilizamos el software de código abierto Redis para almacenar y gestionar los datos de caché. El caché contiene datos que se usan repetidamente en la operación del servicio y se deben almacenar durante cierto tiempo. A veces, los datos se pueden almacenar en caché para mejorar el servicio o solucionar problemas. Si algún dato contiene información personal confidencial, optamos por encriptarlo.

Gestión de claves

Nuestro servicio de gestión de claves (KMS) interno crea, almacena y gestiona las claves de todos los servicios. Poseemos y mantenemos las claves utilizando KMS. Actualmente, no tenemos la capacidad de encriptar datos con claves que sean propiedad del cliente.

Existen diferentes tipos de claves utilizados en diferentes etapas del encriptado:

Clave de encriptado de datos (DEK): la clave que se usa para convertir los datos de texto sin formato en texto cifrado o la clave para encriptar los datos.

Clave de encriptado de claves (KEK): la clave utilizada para cifrar la DEK específica del servicio. Proporciona una capa adicional de seguridad.

Clave maestra: la clave utilizada para encriptar la KEK. Esta clave se almacena en un servidor aislado por motivos de seguridad.

¿Cómo funciona el KMS?

Todos los tipos de encriptado aplican el algoritmo AES 256. De acuerdo con este algoritmo, los datos que se encriptarán se tratan como “bloques”. Independientemente de si es un campo en la base de datos o un archivo en el DFS, el encriptado comienza cuando un bloque de datos se encripta con una DEK.

Esta DEK se encripta de manera adicional con una KEK. La KEK se encripta nuevamente utilizando una clave maestra que se almacena en un servidor independiente. Por lo tanto, a continuación presentamos los elementos que se deben gestionar:

  • Datos encriptados
  • DEK
  • DEK encriptadas
  • KEK
  • KEK encriptadas
  • Clave maestra

El KMS gestiona estos elementos de la siguiente manera:

kms1

1
Inicio de solicitudes

El usuario se autentica en el servicio de Zoho y solicita datos.

2
Encriptado en tránsito

Encriptado basado en TLS

3
Interfaz de aplicación

Dirige el tráfico a los servidores de la aplicación.

4
Servidor de aplicación

Inicia el proceso de encriptado.

5
Servicio de gestión de claves

Genera/recupera la clave de encriptado de datos (DEK).

6
Servidor maestro

Genera/recupera el encriptado de claves (KEK).

7
Base de datos del KMS

Almacena la DEK encriptada.

8
Servicio de gestión de claves

Proporciona la DEK para el encriptado.

9
Agente de encriptado

Encripta los datos utilizando la DEK.

10
Almacenamiento

Almacena los datos encriptados.

¿Cómo se generan las claves?

El KMS genera claves de 256 bits que se ajustan al protocolo AES 256 junto con un vector de inicialización (IV). El IV, como ya lo mencionamos, garantiza que el primer bloque de datos encriptados sea aleatorio. Esta es la razón por la que el mismo texto sin formato se encripta en diferentes textos cifrados con la ayuda de los IV.

El KMS genera estas claves y el IV utilizando una biblioteca segura de Java y un generador de números aleatorios seguro. 

¿Dónde se almacenan las claves?

Las DEK generadas en el KMS se encriptan mediante una KEK. Esto proporciona una capa adicional de seguridad. Las DEK encriptadas se almacenan en la base de datos del KMS.

layers-security

Separamos las claves físicamente (las almacenamos en diferentes ubicaciones) para que un atacante que posea una clave no pueda obtener otras claves relacionadas. Encriptamos la KEK con una clave maestra y la almacenamos en un servidor independiente.

En el caso de Zoho Docs, le proporcionamos una capa adicional de seguridad para los documentos almacenados en reposo.

layers-security1

Un atacante no podrá afectar los datos con solo enfocarse en el KMS.

¿Qué tan seguras son las claves?

Separación física: como se mencionó anteriormente, la clave maestra permanece en un servidor físicamente independiente y seguro. Esto dificulta que un atacante afecte tanto las DEK como las KEK.

Control de acceso: el control de acceso nos ayuda a evitar el mal uso de las claves junto con el acceso sin precedentes a estas. Una lista de control de acceso (ACL) permite que solo los servicios seleccionados accedan a las claves determinadas. Cada vez que se accede a una clave, se realiza a través de la autenticación y se registra el proceso. Las auditorías periódicas de estos registros ayudan a monitorear el proceso.

El acceso a los servidores de gestión de claves está restringido de manera predeterminada y solo personal específico de Zoho Corp tiene la autorización. Cualquier otro acceso se convierte en un ticket y solo se autoriza después de obtener la aprobación de la administración. 

Rotación de claves: utilizamos un sistema de rotación de claves en el que cambiamos periódicamente la clave maestra raíz, lo que garantiza un nivel de seguridad adicional. Cuando se generan una nueva clave maestra y un nuevo IV, esto implica que las claves de la base de datos también se deben revisar. Por lo tanto, todas las claves de la base de datos se capturan y desencriptan primero utilizando la clave maestra anterior; luego, se vuelven a encriptar con la nueva clave maestra y se actualizan en la base de datos.

La función para activar manualmente la rotación de claves está disponible con el fin de manejar situaciones críticas que puedan surgir.

Disponibilidad de claves: si el almacenamiento primario de discos en un centro de datos (DC) falla, debe haber un esclavo y un esclavo secundario de respaldo, que contengan los mismos datos que el DC maestro. Tanto el esclavo como el esclavo secundario cuentan con DEK encriptadas, igual que el maestro.

¿Qué datos encriptamos en nuestros servicios?

Los datos encriptados en reposo varían según los servicios que elija. Las opciones y los niveles de encriptado de una entrada de datos en particular es decisión suya o nuestra, o bien en común acuerdo.

En la siguiente columna tabular, se describen los datos encriptados por diversos servicios de Zoho:

ServicioCampos encriptados
CRMCampos personalizados que contienen información personal, todos los archivos
DocsTodos los archivos
CreatorCampos personalizados
CampaignsCampos que contienen información personal, archivos cargados por el usuario
CliqTranscripción de chat e información personal
PeopleCampos personalizados, todos los archivos
ConnectTítulo, dirección URL y contenidos de: fuentes, publicaciones del blog, artículos, ayuntamientos, grupos, anuncios, tareas y sus comentarios, archivos de video y archivos adjuntos
DeskContenido, archivos adjuntos y tokens de la cadena de tickets
FinanceDetalles de cuenta bancaria, campos personalizados que contienen información personal y detalles del empleado que contienen información personal, documentos de viaje, estados de cuenta bancarios, archivos adjuntos
ProjectsArchivos adjuntos, campos que contienen información personal, tokens
NotebookTarjeta de notas y archivos adjuntos
SignDocumentos, imágenes de firma y tokens
ReportsCampos personalizados, archivos cargados por los usuarios, consultas personalizadas
MailTodo el contenido del correo, los archivos adjuntos y los campos que contienen información personal
RecruitCampos personalizados, documentos importados por el usuario
SocialTokens, campos que contienen información personal

Encriptado de disco completo

Empleamos unidades de encriptado automático (SED) para ofrecer compatibilidad con el encriptado de disco completo basado en hardware.

La SED es una unidad de disco duro (HDD) o una unidad de estado sólido (SSD) con un circuito de encriptado integrado en la unidad. El encriptado automático se refiere simplemente a que la unidad de disco encripta todos los datos escritos en el medio de almacenamiento antes de que se escriban y la unidad de disco los desencripta cuando se leen.

Las unidades SED cumplen con los estándares FIPS 140-2 o con TCG. El algoritmo de encriptado configurado para los algoritmos de SED es el algoritmo AES. La clave utilizada para encriptar y desencriptar tiene una longitud de 256.

Existen dos tipos de claves utilizados en las SED, la clave de encriptado de datos (DEK) y la clave de autenticación (AK).

Clave de cifrado de datos: esta clave se utiliza para encriptar o desencriptar los datos de la unidad. Esta clave la genera un proveedor durante el proceso de fabricación. Cuando obtenemos nuevos servidores con unidades SED, regeneramos la clave por motivos de seguridad.

Clave de autenticación: esta clave encriptará la DEK y se utilizará para bloquear y desbloquear la unidad. Las claves de autenticación se generan con una política sólida y se almacenan en nuestro sistema de gestión de claves. La misma clave se transferirá a cada servidor de forma segura cuando habilitemos el encriptado en los servidores. Estamos utilizando la gestión de claves locales (LKM) para gestionar la clave de autenticación.

Nota: Actualmente, el encriptado de disco completo basado en hardware se aplica solo a los centros de datos de India (IN).

Conclusión

Encriptamos datos confidenciales del cliente cuando se almacenan, están en tránsito a través de Internet y se trasladan entre nuestros DC. Sin embargo, el encriptado es solo una parte de nuestra estrategia de seguridad. Innovamos y nos esforzamos constantemente para mejorar la protección de datos mediante la implementación de los protocolos y la tecnología más recientes. Para obtener más información sobre nuestra estrategia de seguridad en su totalidad, visite https://www.zoho.com/security.html.