OS Image Digestor/lang-es
El OS Image Digestor es una shellscript corta que se puede usar para crear archivos de control de colocación (ingl. OFW Placement Control Files, un archivo que contiene una lista de sumas de verificacion del imagen), que son usados por OpenFirmware durante de los procesos de reflashear el sistema. Por enviar tal archivos a la oficina de OLPC principal, es posible para despligues hacer imagenes del SO customizadas que se pueden estar usadas en el processo de reflashear con seguridad sin requerir que OLPC se tiene que manejar las imagenes de sistemas directamente. Este elimina un punto de latencia crítica (el tiempo requerido para enviar imagenes en total atravez de enlances lentos) en el desarollo de imagenes customizadas que se pueden usar en el proceso de reflashear con el sistema de seguridad.
OLPC OS Image Digestor
- mantenador: Erik Garrison <erik@laptop.org>
- repositorio: [1]
git clone git://dev.laptop.org/users/erik/image-digestor
Objectivo
Simplificar el proceso de producir una imagen de SO usable en el proceso de reflashear con seguridad. Dar un metodo de compartir solamente los datos de una imagen de SO que son importantes en el proceso de firmar una imagen para uso en el proceso de reflashear en una XO con seguridad habilitado.
Resumen
Reflashear con el sistema de seguridad habilitado (ingl. "secure reflash") es el proceso de copiar una imagen firmada del sistema operativo sobre una laptop. En este proceso se necesita un archivo como se llama 'fs.zip' que contiene un archivo de control de colocación y un archivo que contiene una firma sobre el archivo de control de colocación y una clave criptográfico privado de OLPC. Durante el proceso de actualizacion, OFW lee estos archivos y verifica que la firma concide con el archivo de control de colocación. Si cambia algo en la cadena entre la firma, el archivo de colocación control, y la imagen del SO, OFW no continua con el proceso de actualizacion. Este cadena comprisa el cerradura de reflashear que Bitfrost define.
Se puede usar las scriptes en este repositorio para generar archivos de control de colocación de imagenes personalizadas. Estes archivos podrian ser firmada por la infrastructura de seguridad de OLPC para hacer el fs.zip que se necesita para actualizar con el sistema de seguridad habilitado.
Usage
Given an OS image file which contains a jffs2 filesystem:
$ ./image-digestor.sh <image_file_name>
This produces <image_file_name>.ofw_update_script. For use in secure reflash, the resulting update script must be included as data.img in an OLPC-signed fs.zip. At present this requires contact with OLPC's main office.
The common Linux utilities dd and sha256sum are required. These are present in the 'coreutils' package in Fedora, Ubuntu, and Debian, so this should be no issue on most systems.
Background and definitions
A reflash script, the bulk of which is a list of sha256sums (digests) for each erase block (128KiB chunk) of the image to be flashed. During the update process OFW uses the shasums to check the validity of each block as it is copied onto the internal memory (NAND flash) of the XO.
Secure reflash requires that the OFW update script be signed with a secure private key. The results are stored in a file called fs.zip, which contains the update script (data.img), a signature dependent on OLPC's private key and the update script (data.sig), and a file indicating the build version name (version.txt). This file is then placed alongside the image to be flashed on USB flash media, and is read during the reflash process to validate the build. The firmware only continues with the reflash if the signature file matches the update script.
Note that post-boot security is independent from the secure reflash system. On a security-enabled XO, separate checks occur at boot to verify that the kernel and initramfs are valid. Boot will proceed provided the image which has been built contains both the kernel and initramfs signatures (/boot/{runos.zip,runrd.zip}).
Further documentation of firmware-level security systems on the XO can be found at Firmware security.