1 puntos por GN⁺ 1 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 1 시간 전
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

    • Si la persona no estaba dentro del territorio de EE. UU., sigo preguntándome cómo pueden procesarla con una ley que solo aplica en EE. UU.
    • La cita en el primer artículo de que “GrapheneOS envía el mensaje de que es criminal por defecto” es bastante tendenciosa. Al final crea un marco donde la protección es criminal y la vulnerabilidad es obedecer la ley
    • El intervalo de reinicio automático puede reducirse hasta 10 minutos. Si esperas una posible confiscación, como al cruzar una frontera o en una protesta, conviene configurarlo temporalmente más corto o reiniciar manualmente para dejarlo en estado BFU
    • El artículo de The Guardian se discutió en un hilo anterior de HN, pero el de Computer Weekly solo se envió y casi no tuvo discusión
  • 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

    • GrapheneOS ya tiene un sistema de respaldo cifrado que maneja muchos más datos que el respaldo en la nube de Google. Funciona en modo de transferencia entre dispositivos, también respalda apps con allowBackup="false" y admite cualquier servicio de sincronización que ofrezca una API compatible
      Como 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
    • Hay una función planeada para reemplazar SeedVault: respaldos cifrados, issue relacionado
    • Parecería más útil una función para arrancar una partición de datos oculta con una contraseña distinta y ocultar la partición de uso diario. Como en LUKS, un volcado del almacenamiento se vería como datos aleatorios y solo la contraseña correcta encontraría y descifraría la partición oculta correspondiente
      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
    • Hace falta sí o sí un respaldo completo guardado en un servidor cifrado personal y restaurable con un solo botón. Si el teléfono se daña o te lo roban, preocupa tener que pasar horas reinstalando y reconfigurando lo que SeedVault no guardó, e incluso perder acceso a cuentas ligadas a claves del elemento seguro
    • Me pregunto si de verdad existe la posibilidad de ser objetivo en la frontera en un país occidental desarrollado solo por haber instalado GrapheneOS en un Pixel
  • 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ígitos
    Las 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

    • GrapheneOS admite contraseñas de hasta 128 caracteres para frases de contraseña Diceware. Si usas una frase fuerte, no dependes del elemento seguro, y un PIN aleatorio de 6 dígitos es seguro gracias al límite de intentos del elemento seguro. Solo se permiten 20 intentos en total, así que incluso un PIN aleatorio de 4 dígitos puede ser suficiente
      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
    • GrapheneOS reduce los intentos de huella de 20 a 5, y puede exigir un segundo PIN incluso después de una huella correcta. En BFU, usar de 6 a 8 palabras Diceware aleatorias es conveniente, y en el uso diario resulta práctico combinar huella con un PIN corto
      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 Pixel recientes tienen un dispositivo similar a un TPM que evita ataques de fuerza bruta. Si el patrón no es obvio, el atacante solo tiene 20 intentos antes de que se borre el material auxiliar de claves y se pierda la clave de cifrado
      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
    • Probé poner una contraseña de 35 caracteres directamente en GrapheneOS y funcionó sin ningún problema
  • 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

    • Las autoridades no solo se quejan de GrapheneOS, también de Apple, pero si llamaran criminales a los usuarios de iPhone sería fácil que se burlaran de ellos. En cambio, es más fácil presentar la instalación de un sistema operativo de terceros como algo extraño y marginarlo por ser poco familiar
  • 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

    • A esto habría que llamarlo una función de contraseña señuelo, más que una contraseña bajo coacción
    • Bastaría con poner algunas apps y datos en un área bloqueada aparte y pedir un PIN adicional después de desbloquear el dispositivo. Un PIN de coacción podría abrir el dispositivo mientras borra esa área y hacer que parezca que esa zona segura nunca estuvo configurada
      Google Photos, Samsung y otros sistemas operativos y servicios ofrecen funciones de datos bloqueados
    • El PIN y la contraseña de coacción de GrapheneOS no pretenden ser un reinicio encubierto, sino que realizan de forma segura el reinicio que el usuario espera. No es función del proyecto decidir cómo usarlos en situaciones con fuerzas del orden ni dar asesoría legal; las leyes cambian mucho según la jurisdicción y el contexto, así que hay que consultar a un abogado
      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

    • GrapheneOS protege fuertemente también los perfiles bloqueados en estado AFU. Por defecto reinicia automáticamente después de 18 horas bloqueado para limitar la ventana útil de ataques que explotan vulnerabilidades en funcionamiento, y el usuario puede bajarlo hasta 10 minutos
      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

    • Es mucho más seguro dejarlo en estado BFU apagándolo o reiniciándolo. Según el material filtrado más reciente de Cellebrite, GrapheneOS parece no ser atacable ni siquiera en estado AFU
      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/

    • No les gusta este meme. La idea central es al menos obligar al atacante a recurrir a violencia con una llave inglesa de 5 dólares, lo que según el país puede hacer que cometa un delito más grave que el cargo que enfrenta el usuario
    • Según este artículo, el Departamento de Justicia de EE. UU. está procesando al residente de Atlanta Samuel Tunick por supuestamente haber entregado a agentes fronterizos un PIN de coacción de GrapheneOS cuando registraban un Google Pixel
      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

    • Para una eliminación confiable hay que descartar claves con apoyo del hardware. Android usa claves separadas por usuario y por Private Space, así que puede borrarse con certeza toda la información o perfiles concretos, y reiniciar también es importante para eliminar restos en memoria
      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ó
    • No es posible de una forma segura incluso frente al análisis forense. Implementar una negación plausible que no sea sólida daría una falsa sensación de seguridad y pondría en riesgo a los usuarios, por lo que GrapheneOS no la adoptará