Protección de claves selladas (SKP)
En dispositivos Apple compatibles con la función de protección de datos, la clave de encriptación de claves (KEK) está protegida (o sellada) con mediciones del software en el sistema y, a su vez, está vinculada al UID que está disponible sólo en el Secure Enclave. En una computadora Mac con Apple Chip, la protección de la KEK se potencia aún más al incorporar información sobre la política de seguridad en el sistema, porque macOS admite cambios críticos en la política de seguridad (por ejemplo, desactivar el arranque seguro o la SIP) que no son compatibles con otras plataformas. En una Mac con Apple Chip, esta protección abarca las claves de FileVault, ya que FileVault se implementa mediante la protección de datos (Clase C).
La clave resultante al combinar la contraseña del usuario, la clave SKP a largo plazo y la clave de hardware 1 (el UID del Secure Enclave) se denomina clave derivada de la contraseña. Esta clave se utiliza para proteger el repositorio de claves del usuario (en todas las plataformas compatibles) y la KEK (sólo en macOS), y luego activa el desbloqueo biométrico o el desbloqueo automático con otros dispositivos, como el Apple Watch.
El monitor de arranque del Secure Enclave captura la medición del sistema operativo del Secure Enclave que se carga. Cuando la ROM de arranque del procesador de aplicaciones mide el manifiesto de Image4 adjunto a LLB, ese manifiesto contiene una medición de todo el resto del firmware vinculado con el sistema que también está cargado. LocalPolicy contiene las configuraciones de seguridad básicas para macOS que se cargan, y también contiene el campo nsih
, que es un hash del manifiesto de Image4 de macOS. El manifiesto de Image4 de macOS contiene mediciones de todo el firmware vinculado con macOS y de los objetos de arranque de macOS centrales, como la colección del kernel de arranque o el hash raíz del volumen del sistema firmado (SSV).
Si un atacante puede cambiar inesperadamente cualquiera de los componentes de configuración de seguridad, software o firmware medidos anteriormente, modifica las medidas almacenadas en los registros del hardware. La modificación de las mediciones ocasiona que la clave raíz de medición del sistema (SMRK) derivada del hardware criptográfico obtenga un valor diferente, lo que rompe efectivamente el sello en la jerarquía de claves. Eso causa que la clave del dispositivo de medición del sistema (SMDK) sea inaccesible, lo que a su vez hace que la KEK y, por lo tanto, los datos sean inaccesibles.
Sin embargo, cuando el sistema no está bajo ataque, este debe admitir actualizaciones de software legítimas que cambian las medidas de firmware y el campo nsih
en LocalPolicy para apuntar a nuevas medidas de macOS. En otros sistemas que intentan incorporar medidas de firmware, pero que no cuentan con una fuente de la verdad conocida sólida, el usuario debe desactivar la seguridad, actualizar el firmware y luego volver a activarla para poder capturar una nueva línea de base de medición. Esto aumenta significativamente el riesgo de que el atacante pueda manipular el firmware durante una actualización de software. El hecho de que el manifiesto de Image4 contiene todas las medidas necesarias sirve de ayuda al sistema. El hardware que desencripta la SMDK mediante la SMRK cuando las medidas coinciden durante un arranque normal también puede encriptar la SMDK a una futura SMRK propuesta. Al especificar las medidas que se esperan después de una actualización de software, el hardware puede encriptar una SMDK a la que se puede acceder en el sistema operativo actual, de modo que siga siendo accesible en un sistema operativo futuro. De forma similar, cuando un cliente cambia su configuración de seguridad de forma legítima en LocalPolicy, la SMDK debe encriptarse en la futura SMRK en función de la medición de LocalPolicy, que LLB valoraría en el próximo reinicio.