Administración y creación de claves de firmas para LocalPolicy
Creación
Cuando se realiza la instalación de fábrica de macOS por primera vez, o al ejecutar un borrado e instalado combinado, la Mac ejecuta código del disco RAM de restauración temporal para inicializar el estado predeterminado. Durante este proceso, el entorno de restauración crea un nuevo par de claves pública y privada que se conservan en el Secure Enclave. La clave privada se denomina clave de identidad del propietario (OIK). Si ya existe una OIK, se destruye como parte de este proceso. El entorno de restauración también inicializa la clave usada para el bloqueo de activación: la clave de identidad del usuario (UIK). Parte de ese proceso que es exclusivo de las Mac con Apple Chip consta de la solicitud de la certificación UIK para el bloqueo de activación, en donde se incluye un conjunto de restricciones solicitadas que se aplicarán en LocalPolicy en el momento de la validación. Si el dispositivo no puede obtener una certificación UIK para el bloqueo de activación (por ejemplo, debido a que el dispositivo está actualmente asociado con una cuenta de Encontrar y se reporta como perdido), no podrá continuar el proceso para crear un archivo LocalPolicy. Si un dispositivo recibe un certificado de identidad de usuario (ucrt), ese ucrt contiene restricciones de política impuestas por el servidor y restricciones de política solicitadas por el usuario en una extensión X.509 v3.
Cuando se obtiene correctamente un de bloqueo de activación/ucrt
, se almacena en una base de datos en el servidor y también se devuelve al dispositivo. Una vez que el dispositivo tiene un ucrt, se envía una solicitud de certificación para la clave pública que corresponde a la OIK al servidor de la autoridad de afirmación básica (BAA). La BAA verifica la solicitud de certificación de OIK utilizando la clave pública del ucrt almacenado en la base de datos accesible de la BAA. Si la BAA puede verificar la certificación, certifica la clave pública, devolviendo el certificado de identidad de propietario (OIC) que está firmado por la BAA y contiene las restricciones almacenadas en el ucrt. El OIC se devuelve al Secure Enclave. A partir de ese momento, cada vez que el Secure Enclave firma un LocalPolicy nuevo, adjunta el OIC a Image4. LLB tiene confianza integrada en el certificado raíz de la BAA, lo que hace que confíe en el OIC y, a su vez, en la firma de LocalPolicy general.
Restricciones de RemotePolicy
Todos los archivos de Image4, no sólo los LocalPolicy, contienen restricciones en la evaluación del manifiesto de Image4. Estas restricciones se codifican mediante identificadores de objetos especiales (OID) en el certificado de entidad final. La biblioteca de verificación de Image4 busca los OID de las restricciones de certificado especial de un certificado durante la evaluación de la firma, y luego evalúa de forma mecánica las restricciones especificadas en este. Las restricciones tienen el formato:
X debe existir
X no debe existir
X debe tener un valor específico
Por ejemplo, para las firmas “personalizadas”, las restricciones del certificado incluirán “ECID debe existir” y, para las firmas “globales”, incluirán “ECID no debe existir”. Estas restricciones están diseñadas para garantizar que todos los archivos Image4 firmados por una clave dada cumplan con ciertos requisitos para evitar errores al generar el manifiesto firmado de Image4.
En el contexto de cada LocalPolicy, se hace referencia a estas restricciones de certificado Image4 como RemotePolicy. Puede existir un archivo RemotePolicy distinto para los LocalPolicy de diferentes entornos de arranque. RemotePolicy se usa para restringir el LocalPolicy de recoveryOS de forma tal que cuando arranca recoveryOS, sólo puede comportarse como un arranque en modo de máxima seguridad. Esto incrementa la confianza en la integridad del entorno de arranque de recoveryOS, al ser un lugar desde el cual se puede cambiar la política. RemotePolicy restringe el LocalPolicy para que contenga el ECID de la Mac en la que se generó el LocalPolicy, y el rpnh
(hash de valor único de la política remota) específico almacenado en el componente de almacenamiento seguro de esa Mac. El rpnh
y, por lo tanto, RemotePolicy, sólo cambian cuando se realizan acciones de Buscar Mi Mac y el bloqueo de activación, tales como la inscripción, anulación de inscripción, bloqueo remoto y borrado remoto. Las restricciones de la política remota se determinan y especifican en el momento de la certificación de la clave de identidad de usuario (UIK) y se firman en el certificado de identidad de usuario (ucrt) emitido. Algunas restricciones de la política remota, como ECID, ChipID y BoardID, las determina el servidor, lo cual está diseñado para evitar que un dispositivo firme archivos de LocalPolicy para otro dispositivo. El dispositivo puede especificar otras restricciones de política remota para evitar reducir la política local sin proporcionar tanto la autenticación local requerida para acceder a la OIK actual como la autenticación remota de la cuenta en la que el dispositivo tiene bloqueo de activación.