¿Por qué mi teléfono Android han eFuses Y ¿Por qué debería tener cuidado con ellos?
Este es un puesto de invitado por Ricardo "Arcee" Cerqueira que toma cosas aparte para el deporte, en una búsqueda para entender cómo funcionan. Actualmente trabaja en los dispositivos Android en el cianógeno.
Como las personas comenzaron a recibir sus 6PS Nexus, algunos comenzaron flipando sobre un nuevo mensaje que aparece en la pantalla cuando se arranca en modo fastboot: "QFUSE: HABILITADO", con las teorías especulativas salvajes que suben con respecto a lo que hace y no hace, qué tipo de limitaciones se imponen, y se preguntan si, y cómo puede ser "discapacitado". Entonces ... ¿qué es esto lo qFuse, de todos modos?
Piense en un eFUSE como representación de la mente ojo de un poco que sólo voltea en una dirección, o algo que sólo se puede hacer una vez en un pedazo de flash de escritura. Una vez que le da la vuelta esos bits escribiendo algo en ellos, no hay vuelta atrás: se quedarán escritos con ese valor, para siempre, y desde ese punto en adelante, ese trozo de Flash en esencia se convierte en ROM (en el sentido original de la sigla: leer memoria -sólo).
En un teléfono inteligente, eFuses (que, dependiendo de quién está la comercialización de la función, tendrá nombres diferentes - la cosa caliente actual es "qFuse" de Qualcomm) almacenará bits de datos que el vendedor no quiere que nadie joder con.
Lo que me lleva a gestores de arranque: el gestor de arranque en un dispositivo se enciende algunas partes del dispositivo, los configura, y luego aplica la seguridad de primera línea en la protección de sus datos. Eso comienza a "negarse a ejecutar un sistema operativo no autorizado en un dispositivo bloqueado," pasa por "No dejes que las herramientas no autorizadas volcar el contenido de la flash," y termina en "tratar de proteger la viabilidad dispositivo al no permitir que para destruir la cadena de gestor de arranque por accidente ".
Teniendo esto en mente, he aquí otro hecho real en la mayoría de los chipsets, y en particular Qualcomm, como el 6P Nexus: además del principal sistema operativo de alto nivel (Android, o la recuperación de Android) que se ejecuta en el chip principal, hay un sistema operativo en ejecución de nivel inferior en un compañero de DSP, y que OS ejecuta aplicaciones. Negociación DRM, validación de huellas digitales, e incluso de vídeo de codificación / decodificación de ejecutar aplicaciones como especializados en ese núcleo, protegidos por unas pocas capas de seguridad. Una de estas capas es asegurarse de que las aplicaciones de confianza sólo se ejecutan en ese ambiente, y que la confianza se consigue haberlos firmado con una clave de cifrado, y la garantía de que sólo aplicaciones firmó con esa clave se les permite correr (que no quiere que sus huellas dactilares interceptado, ¿verdad? Y los estudios de contenido definitivamente no quieren claves DRM manipulados :)).
El gestor de arranque en sí también se puede considerar una de esas aplicaciones de confianza: esto es ya sea firmado con la clave correcta, o el dispositivo se negará a ejecutarlo. Si su teléfono corrió cualquier gestor de arranque compatible, se podría, por ejemplo, conseguir un gestor de arranque que no desbloquear sin destruir los datos (ahí van sus contraseñas, y esas fotos de su esposa). O simplemente un gestor de arranque que se saltó los controles de arranque por completo, y permitió que cualquier imagen de arranque para conseguir arrancar o brilló, independientemente del estado de bloqueo.
La clave que firma éstos NO HLOS (sí, eso es lo que significa: Sistema operativo no de alto nivel) Apps no es la misma clave que valida las imágenes de arranque. Aquellos son validados por el gestor de arranque por sí solo, y el gestor de arranque puede (y lo hace) validar obstante lo considere oportuno: es un micro-sistema operativo propio, y lo suficientemente autónoma para ello. La clave que valida los bootables (boot.img, recovery.img) vive habitualmente en el propio gestor de arranque, o en algún lugar se puede leer. Y si a desbloquear el bootloader, esa es la clave que ya no comprobar.
Entonces, ¿dónde vive la clave pública que valida el propio gestor de arranque (y las aplicaciones NO HLOS)? Lo has adivinado: una eFUSE. Si ese fusible particular, está vacía, el dispositivo funcionará cualquier firmware de bajo nivel (y para las personas que trabajan en el dispositivo, sobre todo la gente que trabaja en aplicaciones DSP o el propio gestor de arranque, es muy útil tener un dispositivo de este tipo en la mano). Pero para todos los demás, incluyendo las personas que realmente trabajan en Android (en o fuera de Google), que el fusible almacena la clave pública que valida firmware. No se puede romper accidentalmente su gestor de arranque, no se puede interceptar claves DRM, usted no puede conseguir a escondidas / datos de teléfono de un usuario o tirarlo todo, que son todas las "cosas malas". Pero todavía se puede ejecutar su propia variante de Android, la recuperación, o un sistema operativo de alto nivel totalmente diferente. Y eso es una gran cosa.
¿Puede el "QFUSE: HABILITADO" mensaje en el gestor de arranque 6P referencia a otro fusible? Sí, pero lo dudo: la navaja de Occam y todo eso. Después de haber trabajado con múltiples dispositivos físicamente idénticos a mí mismo, es muy útil para las personas que destellan las cosas sean capaces de distinguir visualmente los dispositivos aceptan un nuevo gestor de arranque experimental (y sin firmar). He Bricked múltiples dispositivos debido a que :).
TL-DR: La qFuse no afecta a desbloquear el bootloader o cualquiera de las funciones del teléfono, y no se ve afectada por desbloquear el gestor de arranque. Es un Nexus después de todo. Desbloquear a voluntad!
Crédito de la imagen: linkmedia360