En un Pixel de primera generación que ejecuta Pie, en locksettings.db
hay un campo llamado sp-handle
que contiene un valor de 64 bits. sp
es una abreviatura de "contraseña sintética". Bajo /data/system_de/0/spblob
hay tres archivos:
0000000000000000.handle
XXXXXXXXXXXXXXXX.pwd
XXXXXXXXXXXXXXXX.secdis
XXXXXXXXXXXXXXXX.spblob
XXXXXXXXXXXXXXXX
es la representación hexadecimal en minúsculas del valor de 64 bits mencionado. (En realidad tengo varios conjuntos de pwd
/secdis
/spblob
(algunos sin el archivo spblob
o el archivo secdis
—no puedo recordar cuál) presumiblemente debido a mis intentos de hacer que TWRP desencripte mi Pixel). También hay archivos bajo /data/misc/keystore/user_0
llamados 1000_USRSKEY_synthetic_password_XXXXXXXXXXXXXXXX
y .1000_chr_USRSKEY_synthetic_password_XXXXXXXXXXXXXXXX
.
Estas "contraseñas sintéticas" se mencionan y se utilizan en TWRP y SyntheticPasswordManager.java
. Se utilizan en la desencriptación, pero no puedo decir cómo se utilizan en ella o si también se utilizan en la autenticación de contraseñas. ¿Se utilizan para desencriptar /data/misc/vold/user_keys/ce/0/current/encrypted_key
(que me han dicho que se utiliza en el cifrado basado en archivos)? ¿Cuál es el propósito de los archivos .pwd
, .secdis
y .spblob
? ¿Se utilizan los archivos gatekeeper.*.key
en la obtención de contraseñas sintéticas?
Actualización
Este documento de Qualcomm detalla más sobre las "contraseñas sintéticas" que el código fuente, pero no responde las preguntas más importantes como:
- ¿Cuál es el propósito y qué hay dentro de
XXXXXXXXXXXXXXXX.spblob
? - ¿Cuál es el propósito y qué hay dentro de
XXXXXXXXXXXXXXXX.pwd
? - ¿Cuál es el propósito y qué hay dentro de
XXXXXXXXXXXXXXXX.secdis
? - ¿Se utiliza el token de autenticación en la desencriptación de la clave CE?
0 votos
@Robert Es, pero no está claro si se usan tokens de autenticación para descifrar algo.