- GrapheneOS combina cifrado de disco, límites contra fuerza bruta, mitigación de ataques al sistema operativo y defensas contra acceso físico, con base en las funciones de seguridad de Android 17 y el hardware Pixel más reciente
- El elemento de seguridad más reciente limita el ingreso de PIN o contraseña a un máximo de 20 intentos; retrasa 4 horas tras 10 fallos y hasta 41 días tras 15, e impide cambios de firmware sin autenticación del propietario, bloqueando también desvíos por parte de insiders
- Admite contraseñas de hasta 128 caracteres y la opción de huella digital + PIN secundario, lo que permite usar 6 a 8 palabras Diceware aleatorias como contraseña principal sin perder comodidad para el desbloqueo diario
- En estado bloqueado, bloquea nuevas conexiones USB tanto por software como por hardware, y devuelve el dispositivo al estado Before First Unlock mediante reinicio automático de 10 minutos a 72 horas e inicialización de memoria
- El PIN o contraseña de coacción borra el dispositivo si se ingresa en la ventana de autenticación de cualquier perfil, pero la protección general de los datos no se basa solo en esta función, sino en cifrado, seguridad de hardware y mitigaciones de ataques
Cifrado y límites de intentos de autenticación
- Romper directamente el cifrado de disco no es una vía realista ni siquiera para los atacantes más sofisticados; en su lugar, deben explotar vulnerabilidades del sistema operativo en estado After First Unlock o aplicar fuerza bruta al PIN o la contraseña
- El límite de intentos del elemento de seguridad de Android 16 QPR2 aumenta progresivamente los retrasos según la cantidad de fallos
- Tras 10 fallos, retrasa 4 horas; tras 15 fallos, hasta 41 días; y el total de intentos permitidos es de solo 20
- Rechaza de forma anticipada 5 valores distintos ingresados recientemente para evitar desperdiciar intentos por errores repetidos
- GrapheneOS solo admite dispositivos que implementan el límite de intentos del elemento de seguridad de última generación
- Para actualizar el firmware del elemento de seguridad en dispositivos compatibles, no solo se requiere una clave de firma válida y un número de versión más alto, sino también autenticación del usuario Owner
- Aunque un gobierno obligara a crear firmware que elimine el límite de intentos, no podría instalarse para eludir la restricción
- Desde el Pixel 2, lanzado a fines de 2017, Pixel usa un elemento de seguridad con temporizador interno y defensa contra ataques internos; desde entonces también mejoró su integración con el sistema operativo
- GrapheneOS elevó el límite de longitud de contraseña de 16 a 128 caracteres, lo que permite usar frases de contraseña Diceware de alta entropía sin depender del límite de intentos del elemento de seguridad
- La opción de huella digital + PIN secundario permite combinar una contraseña principal fuerte con un desbloqueo diario cómodo
- Before First Unlock usa una contraseña principal compuesta por 6 a 8 palabras Diceware aleatorias, y después se puede combinar huella digital con un PIN corto
- Incluso después de reconocer una huella válida, se debe ingresar el PIN secundario para desbloquear la pantalla y el almacén de claves de hardware
- Los intentos de huella permitidos se reducen de 20 a 5, y los PIN secundarios incorrectos también cuentan como fallos
Defensa del sistema operativo y contra acceso físico
- GrapheneOS aumenta la dificultad de los ataques al sistema operativo mediante funciones basadas en hardware, como un asignador de memoria reforzado y etiquetado de memoria por hardware (MTE); los detalles pueden consultarse en funciones de mitigación de ataques
- Para impedir ataques con acceso físico al dispositivo, bloquea por defecto las nuevas conexiones USB mientras está bloqueado, tanto a nivel de software como de hardware, y desactiva de inmediato las funciones de datos cuando desaparece una conexión USB activa
- El temporizador de reinicio automático para dispositivos bloqueados, introducido en junio de 2021, puede configurarse entre 10 minutos y 72 horas
- El valor predeterminado fue inicialmente de 72 horas, pero luego se redujo a 18 horas
- Al apagar y volver a iniciar el sistema operativo, inicializa la memoria y devuelve el dispositivo al estado Before First Unlock
- En abril de 2024, también se agregó inicialización de memoria al arranque del modo fastboot del firmware en Pixel
- Apple y Google también agregaron reinicio automático de dispositivos bloqueados en iOS 18.1 y Android 16; en Android puede activarse mediante Advanced Protection Mode
- Android usa claves de cifrado separadas para cada usuario secundario y para Private Space
- En GrapheneOS, mediante el cierre de sesión de usuarios secundarios y los toggles correspondientes, se puede devolver esa área al estado Before First Unlock sin reiniciar
- Para volver a dejar los datos del usuario principal en estado inactivo cifrado, borrar por completo los datos residuales de la RAM y bloquear incluso las actualizaciones del elemento de seguridad, conviene reiniciar todo el dispositivo
Borrado de datos en situaciones de coacción
- El PIN o contraseña de coacción borra el dispositivo si se ingresa en cualquier ventana de autenticación del sistema operativo que requiera el PIN o la contraseña del perfil actual
- Funciona no solo en la pantalla de bloqueo, sino en cualquier ventana que requiera autenticación, como cambios de configuración sensibles
- Puede usarse en todos los perfiles, incluidos el usuario principal, usuarios secundarios y Private Space
- También funciona si se ingresa como PIN secundario del desbloqueo con huella, pero no aplica al PIN de la SIM
- El PIN o contraseña de coacción podría anotarse en un papel dentro de la funda del teléfono o la cartera, pero borrar el dispositivo en una situación real de coacción puede tener consecuencias físicas o legales, por lo que hay que evaluar cuidadosamente cómo usarlo
- La función de coacción elimina por completo la posibilidad de recuperar datos aunque se conozcan los PIN o contraseñas de todos los perfiles, pero no es una defensa indispensable; el conjunto completo de protecciones puede consultarse en la lista de funciones de GrapheneOS y el registro de cambios de versiones
- Actualmente, solo Pixel ofrece las funciones de seguridad de hardware y las actualizaciones que exige GrapheneOS, pero esto cambiará a partir de 2027 gracias a la colaboración con Motorola Mobility y los avances de Qualcomm
1 comentarios
Comentarios de Hacker News
Esta publicación parece haberse hecho en respuesta al caso de una acusación después de restablecer un Pixel con un PIN bajo coacción durante una inspección fronteriza en EE. UU. para dejar claro que la defensa de GrapheneOS contra la extracción de datos es fuerte incluso sin un PIN bajo coacción
Recientemente también salió un artículo de Computer Weekly sobre cómo el reinicio automático de 18 horas de GrapheneOS devolvió el dispositivo al estado BFU (Before First Unlock, antes del primer desbloqueo), impidiendo la extracción de claves y protegiendo materiales periodísticos y fuentes confidenciales
GrapheneOS necesita una función completa de respaldo y restauración para poder restablecer preventivamente el teléfono antes de cruzar una frontera. Sería bueno poder respaldar y restaurar todas las apps y datos en un servidor privado SSH/SFTP, como con Google Cloud o iCloud
En vez de usar un PIN bajo coacción y arriesgarme a una acusación, preferiría restablecer el teléfono, cargar manualmente solo algunos contactos, una copia del pasaporte y el PDF del boleto de avión, y si me lo exigen en migración dar el PIN real. Para lo que se necesita durante el viaje bastaría con recordar la frase de contraseña del administrador de contraseñas o de un servidor SSH remoto, restaurar solo los datos necesarios y borrarlos de nuevo cuando quiera
Sin embargo, si esto se convirtiera en una función predeterminada, las autoridades podrían sospechar del almacenamiento remoto de todos los usuarios de GrapheneOS y exigir acceso y restauración, así que quizá sea mejor configurarlo aparte. También se puede preparar una cuenta falsa de Google que parezca normal y usarla solo para compras comunes y suscripciones de YouTube
En tres semanas salgo de viaje al extranjero por un mes, así que estoy pensando si restablecer el teléfono o dejar el principal en casa y llevar un dispositivo nuevo de 150 euros con solo contactos de emergencia familiares. Por suerte, solo por la pantalla de bloqueo no se nota que no es Android normal de Pixel
allowBackup="false"y admite cualquier servicio de sincronización que ofrezca una API compatibleComo el respaldo es por perfil, también se puede restaurar en un usuario secundario para probarlo. Están planeando una renovación completa para simplificar y limpiar la implementación y la experiencia de usuario; por ahora están rehaciendo primero otras apps
Si al ingresar un PIN especial en la pantalla de bloqueo arrancara una partición señuelo tras una pequeña demora, se podría tener una negación plausible no solo ante revisiones fronterizas previstas sino también ante inspecciones sorpresa
El patrón de desbloqueo de Android solo ofrece una entropía de
Log2(389112) ≈ 18.57 bits. Es más débil que 3 caracteres aleatorios, 4 letras minúsculas o incluso un PIN decimal de 6 dígitosLas contraseñas largas pueden memorizarse con técnicas mnemotécnicas, pero son incómodas de ingresar. Si son demasiado largas, se podría permitir algo como usar un resumen hash, pero bloquear contraseñas fuertes termina fomentando malos hábitos como reutilizarlas o enviárselas a uno mismo
Se puede agregar un segundo PIN de autenticación al desbloqueo por huella, lo que permite usar cómodamente una frase de contraseña fuerte sin las desventajas de depender solo de biometría. El patrón de desbloqueo inducía a usar solo una fracción mínima de las combinaciones realmente posibles, por lo que era mucho más débil de lo que indican los cálculos, y además daba una falsa sensación de seguridad, así que lo eliminaron hace años. También están desarrollando una función integrada para generar PIN y frases de contraseña aleatorios
Cambiaron el límite de AOSP para permitir contraseñas de hasta 128 caracteres. Las frases largas solo hay que ingresarlas después de reiniciar, y tienen la ventaja de seguir protegiendo incluso si se explotara el elemento seguro
Los ataques por canal lateral contra el chip de seguridad son teóricamente posibles, pero requieren un método de ataque ya comprobado, desmontar el dispositivo y realizar trabajo preciso y destructivo
Es ridículo que te traten como criminal por querer garantías de seguridad como las de un dispositivo Apple. Apple también tiene reinicio automático, cifrado completo y Lockdown Mode
El resultado de ingresar una contraseña bajo coacción no debería ser detectable por quien recibe el teléfono. Debería borrar la información real de la cuenta, pero mostrar un sistema operativo lleno de contenido creíble —como correos educados pero irrelevantes— para que el investigador pueda revisarlo
Google Photos, Samsung y otros sistemas operativos y servicios ofrecen funciones de datos bloqueados
Al eliminar un perfil quedan metadatos que prueban su existencia en el dispositivo y en el almacenamiento cifrado del perfil del propietario. También es fácil verificar mediante ADB si hubo un reinicio y cuándo ocurrió, así que no puede ofrecer negación plausible, y hacer creer lo contrario pondría en riesgo al usuario
Incluso ocultar el Private Space de Android apenas lo esconde torpemente en la interfaz de usuario; ya existen varios métodos públicos para detectarlo, y ocultarlo por completo incluso frente a ADB es algo poco realista. Las funciones imperfectas se conocerán rápido por discusiones en línea y se integrarán en LLM, herramientas forenses y guías
Las funciones de GrapheneOS deben funcionar incluso contra adversarios que saben que la función existe. No hay forma de distinguir un PIN de coacción de un PIN real, así que incluso con un PIN entregado por un usuario que no use la función habría que considerar la posibilidad de que sea un PIN de coacción
En futuros dispositivos quieren añadir soporte para PIN de coacción directamente en el elemento seguro como parte del límite de intentos de Weaver, para que no pueda eludirse ni con vulnerabilidades del sistema operativo
Hay curiosidad por saber si sigue protegido cuando el dispositivo está bloqueado después del primer desbloqueo (AFU). Como se usa con frecuencia, de poco sirve si al bloquearlo antes de que lo obtengan las autoridades o un atacante no se protegen los datos AFU, y las autoridades podrían analizarlo ese mismo día con herramientas como Cellebrite
Es parecido a usar VeraCrypt pero dejar la PC encendida porque da pereza reiniciarla; en ese caso podría descifrarse extrayendo la memoria
Las 18 horas se eligieron para que casi nunca se active incluso en personas que usan el teléfono solo unas pocas veces al día. Normalmente basta con que sea un poco más que el tiempo máximo de sueño; reiniciar de noche no es grave, pero sí podría hacer que se pierdan contactos de emergencia que no sean llamadas del operador
Documentación reciente filtrada de Cellebrite Premium también muestra que no tienen forma de atacar dispositivos GrapheneOS bloqueados y actualizados más allá de cierto nivel de parches de 2022
Preguntan si la colaboración entre GrapheneOS y Motorola sigue en marcha y cuándo saldrían dispositivos Motorola
Al pasar por TSA o control migratorio, siempre llevan apagados el teléfono y la laptop. Consideran que en EE. UU. no pueden obligarte a dar la contraseña, y que aunque confisquen el dispositivo, si está apagado será difícil romper la contraseña
El reinicio automático de GrapheneOS puede configurarse hasta un mínimo de 10 minutos y el valor predeterminado es 18 horas. Después, Google y Apple también introdujeron un temporizador fijo de 72 horas
Aun así, estaría bien que GrapheneOS tuviera un atajo de apagado más rápido. Entiendo que hoy hay que pulsar el botón físico y luego confirmar otra vez en pantalla
xkcd relacionado: https://xkcd.com/538/
Sí dio una contraseña, pero aparentemente era una que reiniciaba el teléfono en lugar de desbloquearlo. Sorprende que no haya respaldado el dispositivo antes del registro
Se podría crear un PIN de coacción atenuado que solo borre las apps seleccionadas sin llamar la atención. O bien revertir los datos de apps a un punto de restauración definido para que parezca que no pasó nada y que tampoco pueda rastrearse si estaba configurado; eso ayudaría a reducir el riesgo legal
Pero la existencia de un perfil específico y el momento de su eliminación quedan claramente expuestos en metadatos del sistema de archivos y del sistema operativo. También quedan rastros de archivos copiados y modificados por todo el SSD, y después de un uso general prolongado ya sería demasiado tarde para pedir un borrado seguro de un rango concreto y aún podría recuperarse. El simple hecho de que falten metadatos y estadísticas que deberían estar ahí también es evidencia
Sería posible una función en un espacio reservado que acepte como válidas todas las frases de contraseña y produzca una salida aleatoria si no está configurada o si es incorrecta. Para implementarlo bien harían falta máquinas virtuales y un espacio reservado base, pero aun así un análisis de bajo nivel del SSD podría demostrar que se usó