Estos días se está hablando mucho sobre si los ordenadores que se vendan con Windows 8 permitirán o no ejecutar otros sistemas operativos. Personalmente creo que estas discusiones absurdas las crea el desconocimiento o las ganas de pelea.
Sistemas Operativos 101: Proceso de arranque
- Usuario arranca ordenador
- BIOS realiza el Power-On Self Test
- BIOS localiza el disco duro de arranque y cede el control al Master Boot Record
- El MBR contiene algún cargador de arranque, como NTLDR y lo ejecuta
- El cargador de arranque inicia el Sistema Operativo.
Uno de los problemas que tiene este sistema es que la BIOS cederá al control a lo que sea que se encuentre en el MBR del disco de arranque, no hay ninguna garantía de que ahí esté lo que el Sistema Operativo puso durante su instalación.
Sin embargo, MBR ha sido reemplazado por GPT en EFI, que es el reemplazo de BIOS. Además, EFI incluye la característica Secure Boot que previene este tipo de situaciones cerciorándose de que el cargador de arranque sea exactamente el que se espera.
- Usuario arranca ordenador
- EFI realiza el Power-On Self Test
- EFI localiza todos los discos duros y carga (al menos) el driver FAT
- EFI lee el cargador de arranque de la partición EFI de la tabla DASD que tenga configurado.
- Secure Boot verifica mediante cifra pública que el cargador de arranque no haya sido alterado.
- EFI lanza el cargador de arranque de la partición EFI de la tabla DASD que tenga configurado.
Es decir, a diferencia de BIOS, EFI es capaz de leer una tabla de particiones y una partición FAT, por lo que puede leer el cargador de arranque antes de ceder el control a ciegas.
¿Dónde está la magia?
EFI no tiene una varita mágica para decidir que es un cargador de arranque lícito y qué es malware, sino que tiene una tabla de claves válidas. Si la clave del cargador de arranque está en su base de datos, lo da por bueno.
¿Qué ha hecho Microsoft?
Microsoft ha establecido que cualquier OEM que quiera poner a sus ordenadores la pegatina de “Diseñado para Windows” tendrá que soportar Secure Boot, activarlo por defecto e incluir la firma de Microsoft en su base de datos.
También ha establecido que el usuario debe tener la posibilidad de desactivar Secure Boot.
¿Dónde está la polémica?
Aun la estoy buscando. Tal y como yo lo veo, MS pide que todos los que quieran decir que sus ordenadores están diseñados para Windows, hagan uso de una función de seguridad y que lo hagan por defecto.
Es cierto que si un OEM sólo incluyese la firma de Microsoft sólo Windows podría hacer uso de Secure Boot en ese ordenador, pero eso es asunto únicamente del OEM, no de Microsoft. Además de que el OEM podría dar al usuario la posibilidad de añadir cualquier firma, pero una vez más, esto decisión del OEM, no de Microsoft.
Pero es que, se da la circunstancia de que Microsoft también exige que Secure Boot pueda ser desactivado, así que aun siendo la firma de Microsoft la única incluida en el equipo, podría desactivarse la verificación y punto.
¿No hay nada más?
En realidad sí. Todo lo anterior es cierto para PC’s. Si hablamos de ARM (teléfonos móviles y algunas tablets principalmente) Microsoft pide que Secure Boot no pueda ser desactivado (ojo, que no pide que su firma sea la única, ni que el usuario no pueda añadir sus firmas, simplemente pide que no haya software sin firmar).
Personalmente la idea no me gusta demasiado, pero no es nada nuevo. ¿Alguna vez has intentado ponerle Windows Phone a un teléfono Android? ¿Y ponerle iOS a tu Android o viceversa? Es más, ¿alguna vez has intentado ser root en tu Android o tu iOS?
Lo dicho, que hay gente con muchas ganas de pelea y pocos hechos sobre la mesa.
Muy interesante. ¡Gracias por escribirlo!