jueves, abril 28, 2016

AMD SME/SEV: Cifrado de memoria en el microprocesador y máquinas virtuales

Una de las nuevas funciones que va a incluir AMD en su próxima microarquitectura (Zen) es la posibilidad de cifrar usando el algoritmo AES los datos antes de escribirlos en memoria con una clave que se generada dentro del chip. AMD ha publicado un artículo, AMD MEMORY ENCRYPTION donde se describe esta nueva funcionalidad así como una serie de parches para Linux que habilitan el cifrado

Cuando se activa el cifrado de memoria, existe un nuevo bit en las tablas que describen las páginas de memoria. Si ese bit está activo, cuando se escriban datos desde la CPU hacía la memoria física que describe ese marco de página, será cifrada internamente por la CPU y descifrada al leerla. El controlador de memoria integrado en la CPU es el encargado de gestionar el cifrado y descifrado de la misma. La clave de cifrado para AES es aleatoria y se genera en cada arranque de la CPU. Nunca es visible para los programas que ejecuta la CPU y se maneja desde el AMD Secure Processor, un procesador Cortex-A5 integrado en el SOC.Esta tecnología no sólo funciona con los accesos a RAM, sino que también puede usarse con los dispositivos que realizan transferencias DMA a la RAM del sistema.

Como puede verse, se necesita soporte desde el sistema operativo para que configure las tablas de páginas adecuadamente para usar el cifrado de memoria. Para los sistemas antiguos o que no tienen soporte para SME, AMD tiene un modo transparente que hace que todos los accesos a memorias sean cifrados y que puede activarse a través de la BIOS del sistema.

Este tipo de funcionalidad es útil en sistemas de virtualización, donde se quiere que las máquinas virtuales estén lo más aisladas posibles, y llegado el caso, se pueda parar ciertos ataques. Sin embargo, en un host donde se ejecutan varias máquinas virtuales bajo el control de un hipervisor, nada puede hacer que el administrador del hipervisor use sus privilegios para leer la RAM física de la máquina y por tanto obtener la información de las máquinas virtuales

Para esto AMD ha diseñado el sistema SEV: La idea es que las máquinas virtuales que corren bajo el hipervisor puedan verificar criptográficamente que están ejecutándose en un chip de AMD con estas funcionalidad y configurar el cifrado de memoria por ellas mismas,sin intervención del hipervisor, el cual no tiene acceso a ninguna de las claves de cifrado que usan las máquinas invitadas. Con este mecanismo se evita que un administrador poco honesto pueda aprovechar los privilegios del hipervisor para leer la memoria de las máquinas invitadas. Esto está implementado como una extensión a la arquitectura AMD-V

miércoles, marzo 30, 2016

MacOS X "El Capitán" y problemas de Bluetooth

Hace un par de meses empecé a tener problemas con el Macbook del trabajo: En ciertas circunstancias, los auriculares bluetooth que utilizo y el Magic Trackpad no funcionaban bien. El ratón se movía a trompicones y los auriculares reproducían el sonido de manera entrecortada. Comencé a buscar información para ver si había casos similares y encontré varias referencias a problemas de bluetooth a partir de Yosemite, específicamente problemas en la reproducción de audio a través de dispositivos bluetooth.

La solución al problema que tenía la encontré en Troubleshooting OS X Bluetooth Issues: A partir de Yosemite, OS X incluye una nueva funcionalidad llamada Handoff que permite - a través de iCloud - comenzar una tarea en un dispositivo y pasarnos a otro continuando con la misma tarea: por ejemplo, empezar a escribir un correo en el iPhone y continuar en el Mac. Esto funciona si los dispositivos están en rango de bluetooth y ambos están usando la misma cuenta iCloud. Desactivando el Handoff en el Mac, se solucionaron los problemas de audio y de saltos del track pad. Para desactivar Handoff, abrimos Ajustes del Sistema, General y desmarcamos la casilla Permitir Handoff entre este Mac y sus dispositivos iCloud.

martes, marzo 15, 2016

Que sean muchos años más, maestro Ibáñez

Hoy cumple 80 años el genial autor de cómics Francisco Ibañez. Creador de Mortadelo y Filemón, el Botones Sacarino, Rompetechos o 13 Rue del Percebe, personajes con cuyas historietas disfruté de horas de risas y diversión durante mi infancia y adolescencia. Sus personajes forman ya parte de la historia del cómic español y de la memoria de muchas personas. Aquí os dejo la portada de uno de los álbumes con los que más he disfrutado: El sulfato atómico.

Ojalá podamos disfrutar muchos años más de las creaciones de este gran maestro del cómic.

miércoles, marzo 02, 2016

Máquinas virtuales con Windows gratuitas

Llevo mucho tiempo desconectado del desarrollo en Windows, así que supongo que lo que cuento en esta entrada - a modo de agenda - debe ser conocido para muchos usuarios: Microsoft pone a disposición de los desarrolladores sin coste alguno diversas máquinas virtuales configuradas en diversos entornos de virtualización para poder usar las diferentes versiones del Internet Explorer - y del sistema operativo - para evaluarlo. En Download virtual machines Microsoft nos ofrece todo un juego de máquinas, cada una de las cuales con un sistema operativo (XP, Vista, Windows 7, Windos 8, Windows 8.1, Windows 10) y versiones de Explorer desde la 6 a la MSEdge. Las máquinas están disponibles para plataformas de virtualización que se ejecutan sobre Windows, Linux y Mac.

Todo un detalle por parte de Microsoft para atraer desarrolladores. Eso si, las máquinas tienen fecha de caducidad, a partir de la activación de las mismas de 90 días, pero lo suficiente para hacer evaluaciones o desplegar las mismas para probar software.

martes, marzo 01, 2016

Windows 10 y Android

Aunque llevo unos años desconectado de la evolución de la plataforma Windows (básicamente curro con OS X y entornos Linux), hace unos días, leía en Ars Tecnica el artículo Android-on-Windows Astoria tech is gone.Me llamó la atención que Microsoft dejara de dar soporte a una plataforma que permitía ejecutar las aplicaciones de Android sobre Windows 10 sin modificar. Estas tecnologías - también disponibles para iOS, HTML, .NET y Win32, reciben el nombre de bridges - puentes -. La diferencia entre estas últimas y la de Android es que es necesario recompilar y adaptar el código, mientras que la de Android no.

Leyendo sobre Astoria, la capa de emulación de Android sobre Windows 10, queda claro que es capaz de ejecutar una aplicación Android - apk - sin modificar. Y ahí es donde probablemente Microsoft ve el problema: No es que le falte madurez, es que cuando tienes una capa capaz de emular otra plataforma de manera sencilla, las empresas acabarán sólo desarrollando la aplicación para la plataforma mayoritaria - en este caso Android - y dejarán que la capa de emulación se encargue del resto en Windows 10, sin aprovechar las funcionalidades nativas del sistema.

Y Microsoft puede mirar a un ejemplo cercano. ¿Un Windows mejor que Windows 3.1? . Existió, se llamaba OS/2 3.x - por aquellos entonces IBM todavía tenía acceso al código Windows de Microsoft - y casi nadie quiso desarrollar para OS/2. Supongo que Microsoft tiene la lección aprendida.

Para terminar, el puente de iOS está disponible en código fuente en github.