La inyección de malware se ha convertido en una amenaza importante para los sistemas integrados. La implementación de un arranque seguro basado en cifrado asimétrico es la mejor protección contra esta clase de ataques. Esta nota de aplicación describe los principios clave de dicho arranque seguro y muestra cómo implementarlo con el microcontrolador seguro DeepCover® MAXQ1050.
*Prólogo*
La seguridad de los sistemas integrados debe ser una prioridad máxima dado que vivimos en una época en la que todo lo que depende de la tecnología cibernética es vulnerable a los ataques de malware. La intrusión de amenazas maliciosas en un diseño puede tener una variedad de efectos perjudiciales, especialmente cuando se trata de problemas de salud, personales y financieros. Estamos comprometidos a proteger los diseños de sistemas integrados mediante .
Las preocupaciones sobre la seguridad de los sistemas integrados están creciendo. Todos los días se lanzan nuevos ataques contra los sistemas integrados, incluidos los sistemas de salud y seguridad. Un tipo de ataque es la inyección de malware (insertar código malicioso en una página web). Si un atacante logra ejecutar software malicioso en su dispositivo, este software malicioso puede:
* Transmitir datos confidenciales al exterior: cuando se usa en la industria médica, la inyección de malware puede hacer que los dispositivos (como los ECG portátiles) transmitan erróneamente información de salud personal. Quizás, en un esfuerzo más amplio, el software malicioso podría exponer las claves de cifrado.
* Dispositivos que se comportan mal: un ejemplo famoso de esto es el virus Stuxnet, que infectó un controlador lógico programable (PLC) y luego obligó a la centrífuga a funcionar a una velocidad diferente a la esperada.
* Inducir un comportamiento impredecible del dispositivo: Esto incluye un comportamiento potencialmente mortal.
Un proceso de arranque bien protegido garantiza que solo el software autorizado pueda ejecutarse en un dispositivo determinado. Por lo tanto, incluso durante la fase de actualización, evita la inyección de malware. Para proporcionar un alto nivel de confianza, Secure Boot debe basarse en algoritmos criptográficos comprobados. Sin embargo, esto presenta algunos desafíos.
* Los algoritmos más adecuados son los algoritmos asimétricos que requieren un poder computacional intensivo.
* Las claves asociadas a estos algoritmos deben estar protegidas.
* La implementación debe ser perfecta.
La implementación de estos requisitos puede ser difícil en muchos sistemas. Sin embargo, agregar un microcontrolador seguro como coprocesador como el MAXQ1050 puede admitir de manera eficiente la implementación del arranque seguro al tiempo que garantiza un nivel muy alto de seguridad.
*Cifrado asimétrico aplicado al arranque seguro*
Un principio clave del arranque seguro, que se basa en la criptografía asimétrica, es que el desarrollador del software conserva la clave privada utilizada para firmar y el dispositivo integrado almacena la clave pública para su verificación. La principal ventaja de esto (en comparación con el arranque seguro simétrico basado en criptografía) es que no se almacenan elementos confidenciales (es decir, claves privadas) en el producto final. Por lo tanto, cuando se usa ECDSA o RSA, no hay forma de que un atacante obtenga la clave privada incluso a través de los ataques más sofisticados e invasivos. Los secretos no se almacenan en ninguna parte del dispositivo de campo. Un atacante solo puede recuperar la clave pública del dispositivo y, con la criptografía asimétrica, es prácticamente imposible recuperar la clave privada si solo se conoce la clave pública. Esta es la ventaja fundamental de la criptografía asimétrica.
La figura 1 muestra el flujo de arranque seguro basado en criptografía asimétrica. ECDSA o RSA verifican la autenticidad del firmware, lo que proporciona un nivel muy alto de confianza, siempre que la longitud de la clave sea adecuada (normalmente, 2048 bits para RSA y 224 bits para ECDSA). ECDSA y RSA se mantienen de manera eficiente y segura por SHA-256. Dado que no es práctico firmar digitalmente una pieza completa de firmware, en su lugar se calcula un resumen (“valor hash”) que se garantiza que es único e infalsificable por las propiedades fundamentales del algoritmo hash SHA-256. Este resumen está firmado a través de ECDSA o RSA. El mismo flujo se aplica a las actualizaciones de firmware, excepto que la carga de firmware no se aplica en las instalaciones de fabricación. También notará que la clave privada nunca tiene que salir del centro de diseño de software.
El cifrado asimétrico tiene ventajas significativas, pero requiere recursos informáticos intensivos. Calcular SHA-x en un software grande lleva mucho tiempo si se realiza a través del software. Las firmas RSA o ECDSA también requieren recursos, especialmente si el microcontrolador del sistema principal no tiene un multiplicador.
Otro desafío es la integridad de las claves públicas y sus certificados. Como puedes imaginar, las claves públicas no tienen por qué ser secretas. La clave pública solo permite la verificación, por lo que puede ser revelada a cualquier persona. Sin embargo, un atacante podría intentar reemplazar la clave pública original con una clave pública personal. Si este reemplazo tiene éxito, el dispositivo autentica el software firmado por la clave privada del atacante. Para evitar este escenario, debe proteger la integridad de su clave pública. En otras palabras, necesitamos garantizar que no ha sido alterado o reemplazado.
*Por qué usar MAXQ1050 para implementar un arranque seguro*
El microcontrolador seguro DeepCover MAXQ1050 cumple con estos requisitos. La Figura 2 muestra un diagrama de bloques típico para implementar un arranque seguro compatible con MAXQ1050 para dispositivos integrados.
Con su motor de hash seguro integrado, el MAXQ1050 acelera los cálculos de hash del firmware y mejora el tiempo de arranque del dispositivo. El MAXQ1050 también puede realizar una verificación rápida de firma ECDSA o RSA con el acelerador de hardware MAA para operaciones aritméticas modulares.
El MAXQ1050 realiza los pasos que se muestran en la sección “Uso de campo” de la Figura 1. Además del cálculo hash del firmware y la verificación de la firma digital, el MAXQ1050 notifica al microcontrolador del sistema principal y/o al IC de administración de energía (PMIC) el estado de autenticación del firmware. Aquí hay una implementación de ejemplo:
* El MAXQ1050 (vía GPIO) permite alimentar el microcontrolador desde el PMIC.
de nuevo
* El GPIO del MAXQ1050 se puede conectar al pin de reinicio del microcontrolador principal. Los reinicios solo se liberarán después de que se haya verificado la autenticidad del firmware.
de nuevo
* Las dos opciones anteriores van seguidas de una secuencia digital enviada por el MAXQ1050 en varios GPIO.
Las capacidades de almacenamiento seguro del producto garantizan la integridad de las claves públicas, los certificados asociados y los valores hash de referencia.
*apunte al nivel correcto de seguridad*
A menudo es difícil definir el nivel de seguridad que se espera de un producto. Alcanzar el nivel más alto posible es generalmente más costoso de desarrollar y fabricar. Así que tienes que encontrar compensaciones. Esta compensación a menudo se basa en la probabilidad de un ataque frente al daño de un ataque exitoso. La determinación del nivel adecuado de seguridad debe tener en cuenta muchos factores de riesgo, entre ellos:
* Herramientas del atacante: los atacantes pueden ejercer un mayor impacto si tienen acceso a equipos sofisticados como microscopios electrónicos de barrido (SEM) y haces de iones enfocados (FIB).
* Perfil del atacante: los atacantes son individuos que actúan solos o miembros de sindicatos mafiosos/criminales con un sólido respaldo financiero.
* Motivación del atacante: los atacantes pueden estar buscando ganancias financieras o simplemente reconocimiento por sus habilidades.
* Impacto económico de los ataques de software exitosos.
Esta nota de aplicación considera tres niveles de ataque potencial:
* Básico: los atacantes pueden atacar los sistemas por cualquier medio de software, incluida la inyección de malware. Sin embargo, no puede cambiar las características físicas del sistema.
* Moderado: además de los ataques de software, los atacantes pueden usar técnicas físicas como probar las pistas de la placa de circuito impreso (PCB) para leer señales, forzar niveles en los pines digitales y eliminar los circuitos integrados de las PCB.
*Alto: los atacantes pueden realizar ataques altamente invasivos, como microsondeos de señales en los cables de enlace de un IC o microsondeos del propio IC.
“Leer más… (DeepCover)”: http://www.maximintegrated.com/en/app-notes/index.mvp/id/5696?utm_source=EEWeb&utm_medium=TechCommunity&utm_term=2014&utm_content=Content&utm_campaign=Maxim