Este libro Blanco sobre Seguridad fue anteriormente publicado en wickr.com/security por Chris Howell, Wickr CTO
Wickr de seguridad está integrado en el concepto de un servidor no es de confianza. En otras palabras, nuestro objetivo es proporcionar seguridad incluso en el caso de un» peor caso » de violación del servidor, donde un atacante omnipotente tiene el control total de los recursos del servidor, para incluir la capacidad de leer y modificar el código y los datos de la aplicación de fondo y pasar desapercibido durante algún tiempo.
de Terceros expertos continuamente revisados nuestro final a extremo de cifrado y la seguridad desde el principio. Como parte de nuestras Promesas de seguridad para clientes recientemente publicadas, una firma de seguridad independiente líder validó que el contenido de los mensajes no es legible en nuestros componentes de servidor de back-end. Este documento examina la cuestión de la seguridad y el compromiso de los servidores de manera más amplia. Resume los elementos clave de la arquitectura de seguridad de Wickr que proporcionan resistencia al compromiso del servidor de back-end y analiza el evento en términos de capacidades reales de atacantes o impacto en el mundo real.
Objetivos del atacante
Para entender lo que un atacante puede hacer con un compromiso de servidor Wickr , necesitamos comprender el papel del servidor en la arquitectura Wickr y considerar el valor de los datos contenidos en los componentes de back-end y las bases de datos. El servidor Wickr desempeña un papel clave en la entrega de mensajes en soporte de comunicación síncrona y asíncrona. También proporciona servicios de directorio de usuarios centralizados, conjuntos de permisos y sincronización de perfiles y configuraciones.
Los ataques que intentan explotar el servidor Wickr generalmente se pueden clasificar de la siguiente manera:
- Ataques dirigidos a la seguridad de los mensajes, o al acceso al contenido de mensajes de texto sin formato;
- Ataques dirigidos a la información y los metadatos, o la recopilación y utilización de información confidencial sobre el sistema o sus usuarios;
- Ataques dirigidos a la disponibilidad o la destrucción de datos.
Discutimos cada tipo de ataque en las secciones que siguen.
Seguridad de mensajes
Al comprometer el servidor, el atacante obtiene acceso a mensajes cifrados, así como a grupos de claves efímeras públicas . Sin embargo, los mensajes se cifran de extremo a extremo y tanto los mensajes cifrados como las claves de los grupos de claves se autentican de extremo a extremo. Esto significa que los atacantes no tienen la capacidad de leer o modificar mensajes cifrados a medida que pasan por el servidor y no pueden manipular los grupos de claves para ejecutar ataques man in the middle.
Con estas protecciones en su lugar, los atacantes que esperan obtener acceso al contenido del mensaje deben tratar de tomar el control de una identidad Wickr. Las identidades Wickr están arraigadas en pares de claves asimétricas que se utilizan para firmar y verificar datos digitalmente. La confianza se establece verificando la cadena de firmas desde un objeto o componente criptográfico dado hasta la identidad raíz o el usuario (por ejemplo, mensaje a la aplicación, aplicación al usuario).
Para producir una clave (o mensaje) auténtica, un atacante tendría que hacer una de las siguientes acciones:
1. Obtenga el componente privado de la clave de identidad de un usuario, que podría usarse para autenticar las aplicaciones de Wickr que han iniciado sesión en la cuenta.
2. Obtenga el componente privado de la clave de identidad de una aplicación, que podría usarse para producir claves de mensajería efímeras auténticas y autenticar los mensajes enviados desde la aplicación.
3. Engañar a un usuario para que acepte una clave de identidad falsa para un usuario objetivo, lo que tendría el mismo efecto que obtener la clave de identidad existente del usuario.
Los componentes privados de las claves de identidad de la aplicación están protegidos en un almacén de datos cifrado del lado del cliente y fuera del alcance de un atacante del lado del servidor. Los componentes públicos se almacenan en el servidor, pero están firmados por la clave de identidad (privada) del usuario, protegiéndolos de manipulaciones. Engañar a los usuarios para que acepten claves de identidad falsas es más un ataque de ingeniería social que un ataque técnico y tiene poco que ver con un punto de apoyo del lado del servidor . Por lo tanto, la capacidad del atacante del lado del servidor para comprometer una fuente de autenticidad, y en realidad su única vía técnica de ataque para afectar la seguridad de los mensajes, se reduce a su capacidad para comprometer la clave de identidad de un usuario.
Por varias razones relacionadas principalmente con la usabilidad del sistema, las claves de identidad de usuario se almacenan en el servidor Wickr y se aseguran con un cifrado simétrico sólido. La protección de estos datos es, en última instancia, una clave de 256 bits que es un derivado criptográfico sólido de la contraseña del usuario. Esta clave nunca se almacena ni se envía al servidor, por lo que un atacante que intente comprometer la clave de identidad de un usuario tendría que realizar un ataque de adivinación de contraseñas contra la versión almacenada utilizando un algoritmo de generación de derivados de contraseñas que está diseñado específicamente para que el proceso consuma el máximo de recursos y tiempo posible. Para contraseñas no triviales, podríamos esperar que este proceso tome muchos años e incluso muchos miles o millones de años si el usuario simplemente elige una contraseña de calidad de tan solo 8 caracteres de longitud. Para comprometer varias cuentas, el atacante tendría que gastar el mismo esfuerzo una y otra vez. Este nivel de protección significa que los ataques del lado del servidor contra las claves de identidad de usuario son inviables en todas las cuentas, excepto en las más débiles. Vea el Libro Blanco de Wickr sobre Protección con Contraseña.
Información y metadatos
Con el control del servidor Wickr, el atacante tiene acceso a cualquier información que el servicio tenga sobre sus usuarios. Al diseñar para esta amenaza, Wickr limita la cantidad de información de usuario que almacenamos a la que es mínimamente necesaria para proporcionar un servicio de calidad. La siguiente es una lista de la información de la cuenta de usuario disponible para los servicios de Wickr en el momento de escribir este artículo:
Wickr Me:
- Fecha de creación de una cuenta
- Tipo de dispositivo(s) en el que se utilizó dicha cuenta (por ejemplo, iOS, Android)
- Fecha de último uso
- Número total de mensajes enviados/recibidos
- Número de identificadores externos (números de teléfono) conectados a la cuenta (no identificadores externos de texto plano)
- Registros limitados de cambios recientes en la configuración de la cuenta (por ejemplo, agregar o quitar un dispositivo; no incluye contenido de mensajes ni información de enrutamiento y entrega)
- Número de versión de Wickr
Wickr Pro:
- Wickr Pro ID (dirección de correo electrónico)
- Afiliación a la red
- Número de teléfono, si lo proporciona el administrador de red como segunda forma de autenticación
- Fecha de creación de una cuenta
- Tipo de dispositivo(s) en el que se utilizó una cuenta
- Fecha de último uso
- Número total de mensajes enviados/recibidos
- Número de ID externos (números de teléfono) conectados a la cuenta (no los propios ID externos de texto plano)
- Registros limitados de cambios recientes en la configuración de la cuenta (por ejemplo, agregar o quitar un dispositivo; no incluye contenido de mensajes ni información de enrutamiento y entrega)
- Número de versión de Wickr
- Información relacionada con el pago
- Configuración de red, incluidos registros limitados de cambios recientes en la configuración de red (por ejemplo, habilitar o deshabilitar la federación)
Wickr Enterprise (implementación controlada por el cliente):
- Identificador de empresa de Wickr
- Afiliación a la red
- Fecha de creación de una cuenta
- Tipo de dispositivo en el que se utilizó una cuenta
- Fecha de último uso
- Número total de mensajes enviados/recibidos
- Registros limitados de cambios recientes en la configuración de la cuenta (por ejemplo, agregar o eliminar un dispositivo; no incluye contenido de mensajes ni información de enrutamiento y entrega)
- Número de versión de Wickr
- Configuración de red, incluidos registros limitados de cambios recientes en la configuración de red(p. ej. ej., habilitar o deshabilitar la federación)
Por lo tanto, lo anterior correría el riesgo de divulgarse en caso de que se comprometiera el servidor. Nuestras directrices de proceso legal y política de privacidad contienen discusiones más detalladas sobre cómo limitamos la recopilación y el uso de la información del usuario en nuestra plataforma.
El control del servidor también proporciona al atacante la capacidad de recopilar información y metadatos que el servicio ignora. Los dos mejores ejemplos de esto en Wickr son las direcciones IP del cliente y el seguimiento de mensajes.
Wickr como servicio no tiene ningún interés en la dirección IP de los clientes de Wickr. No los registramos en registros de aplicaciones de configuración estándar ni los almacenamos en registros de usuarios. Sin embargo, están disponibles para ciertos componentes de la infraestructura de back-end, y suponiendo que el atacante controle el componente correcto y realice el análisis de tráfico y correlación correcto, esta información estaría en riesgo.
Wickr tampoco está interesado en quién se comunica con quién en la red. No registramos esta información en registros de aplicaciones de configuración estándar. Sin embargo, suponiendo que el atacante invierta una cantidad suficiente de tiempo y esfuerzo en el proceso, el número, las horas, los tipos de mensajes enviados y recibidos, y los ID de Wickr de origen y destinatario estarían en riesgo. Los ID de Wickr de texto plano no están disponibles en los almacenes de datos de Wickr Me, por lo que este tipo de análisis sería mucho más difícil (aunque no imposible) de hacer en Wickr Me.
Disponibilidad
Aunque quizás no sea la forma de ataque más interesante que se pueda imaginar contra un servicio de mensajería seguro, los ataques dirigidos a la disponibilidad de servicios tienen probabilidades muy reales e impactos bastante obvios. No hay mucho que discutir sobre este tema en este documento, aparte de reconocer el riesgo, pero un atacante con control de los servidores Wickr tendría el poder de deshabilitar los servicios y eliminar datos, ya sea para simplemente causar caos o denegar el servicio a usuarios legítimos.
Resumen
Esperamos que este documento sea informativo para los clientes que deseen comprender el impacto en el mundo real de una violación del servidor Wickr. En resumen, un evento de este tipo, si es explotado por un adversario capaz, podría poner en riesgo lo siguiente:
1. La seguridad de futuros mensajes de cuentas con contraseñas débiles.
2. La confidencialidad de la información y los metadatos limitados de las cuentas.
3. La disponibilidad de los servicios.
Elija contraseñas de calidad.
Si se utilizan contraseñas de calidad, un compromiso del servidor Wickr (conocido o desconocido) puede considerarse un evento de bajo o ningún impacto.
Considere la posibilidad de volver a aplicar la inyección periódicamente.
Crear periódicamente un nuevo par de claves y volver a verificar con otros (por ejemplo, anualmente, semestralmente) puede reducir aún más el riesgo de un ataque exitoso de adivinación de contraseñas para comprometer la clave de identidad de un usuario. También es un método eficaz para rehabilitar una cuenta de usuario que cree que ya ha sido comprometida a través de la adivinación de contraseñas o el compromiso del lado del cliente. Los usuarios pueden cambiar la clave de su cuenta completando el flujo de «Contraseña olvidada» en Wickr Pro y Wickr Enterprise o creando un nuevo ID en Wickr Me.