Un equipo de investigadores del MIT y
la Universidad de California en Berkeley con el apoyo de Facebook, Google, Microsoft y otros gigantes de TI
presentaron el proyecto
Keystone . Este es un componente de código abierto que le permite organizar un entorno confiable para ejecutar programas (entorno de ejecución confiable,
TEE ) basado en la arquitectura RISC-V.
A continuación, sobre por qué se necesitaba una solución y cómo funciona.
/ foto Wikimedia CCPor qué Keystone
El entorno de ejecución confiable es un área aislada (enclave) del procesador principal con un conjunto de mecanismos de seguridad. Se cree que el código y los datos cargados en esta área están protegidos de manera confiable contra cambios e interferencias externas.
La idea es que en estos enclaves puede realizar operaciones con datos personales y confidenciales sin temor a comprometerse, ya que ni el sistema operativo ni otras aplicaciones tienen acceso a estas áreas del procesador.
Existen sistemas y soluciones en el mercado que protegen los datos a nivel de hierro. Sin embargo, todos son propietarios, ya que los implementan los propios fabricantes de chips de computadora. Y
existe la opinión de que estas tecnologías no están bien protegidas (ya que no están disponibles para evaluación por expertos independientes en seguridad de la información).
Por ejemplo, Intel ofrece la
extensión de arquitectura
Software Guard Extensions (SGX), que protege los datos contra el acceso y la modificación no autorizados. Esta tecnología también involucra enclaves en los que se ejecuta el código de aplicación del usuario. Sin embargo, recientemente
se supo que este sistema es vulnerable a un ataque
de Prefiguración (
CVE-2018-3615 ). Los atacantes pueden obtener acceso a los datos en el enclave SGX utilizando las funciones de
ejecución especulativa de comandos .
Además de Intel, AMD ofrece sus soluciones (sus nombres son Secure Processor y SEV, así como ARM), tienen TrustZone. Sin embargo,
los expertos en
seguridad también tienen preguntas sobre
su seguridad .
Según los investigadores del MIT y la Universidad de California, el sistema de código abierto, aunque no hace invulnerables los enclaves, aumentará su seguridad a través de la experiencia de muchos expertos de la comunidad.
/ foto Brad Holt CCPor lo tanto, el sistema Keystone es un proyecto de código abierto basado en la arquitectura RISC-V para construir TEE. Los investigadores eligieron RISC-V porque es menos vulnerable a los
ataques a través de canales de terceros destinados a la implementación práctica de sistemas criptográficos. En particular, este tipo de arquitectura
no se ve afectado por vulnerabilidades como Meltdown y Spectre.
Los desarrolladores de Keystone
han establecido los siguientes objetivos :
- Cree una cadena de confianza para verificar cada componente de hardware y software (esto incluye sistemas de arranque seguro y verificación remota de confiabilidad de hardware);
- Aislar la memoria de la interferencia externa;
- Implementar métodos de protección contra ataques a canales de terceros;
- Implemente métodos de encriptación para memoria y bus de direcciones.
Componentes de soluciones
El concepto de Keystone se basa en la tecnología
SGX y la plataforma de enclave
Sanctum Processor desarrollada en MIT .
Este último se construye utilizando la llamada
capa de abstracción confiable o plataforma abstracta confiable (TAP). La plataforma (TAP) consiste en un procesador con un
contador de comandos ,
registros generales , un sistema para
traducir direcciones virtuales y un conjunto de primitivas para ejecutar código en un enclave seguro.
Desde el sistema SGX, Keystone "tomó" el motor para el cifrado de memoria (Memory Encryption Engine, MEE). El núcleo de la solución se organiza utilizando el procesador RISC-V
BOOM parametrizado (Berkeley Out-of-Order Machine) en el generador
Rocket SoC .
En términos generales, el esquema de implementación de un sistema con un enclave en RISC-V es el siguiente:
Los investigadores ya han realizado varias pruebas de su solución y
descubrieron que aísla de manera confiable el entorno de tiempo de ejecución del código y lo protege de interferencias externas (al menos de ataques conocidos).
Cuando suelte
La primera versión, Keystone v0.1
, aparecerá este otoño y se realizará en FPGA. Los investigadores cobran vida que en el futuro podrá reemplazar a SGX en la
implementación de plataformas blockchain.
PS Recursos adicionales del primer blog corporativo de IaaS:
PPS Un par de publicaciones de nuestro blog sobre Habré: