7 votos

almacenar de forma segura y el uso de claves en un sistema embebido

Estoy usando un microprocesador PIC32MZ2048efm144 MCU que recibe órdenes cifradas con una clave, descifra ellos y se ejecuta el comando. El cifrado de los comandos se almacenan fuera de línea, así que no puede cambiar la clave cada vez que lo desee. La clave es FIJO. Los comandos son cifrados por un servidor, y donwloaded por un teléfono. El teléfono envía el cifrado de los comandos de la MCU en un momento posterior, cuando no en línea. Los comandos son encriptados antes de que el teléfono se comunica a la MCU, por lo que una clave de sesión no es posible.

Me permite conectar una externa de cifrado / descifrado módulo para el PIC, pero, a continuación, los datos se pasan descifrar en al menos una dirección..

La solución aquí: Almacenar una clave segura en un dispositivo incorporado a la memoria de

a la vez utiliza claves para cifrar, pero necesito almacenar un único super-clave secreta

Lo que Mi empleador requiere es de las claves para no ser accesible, por lo que la protección física, además de la que ofrece el seguro de los módulos de memoria y el MCU, no es considerado.

Suponiendo que no hay grado militar equipo es usado, ¿hay alguno sabe de soluciones de ustedes saben y pueden recomendar?

Gracias de antemano!

11voto

dim Puntos 618

Yo siento que esta respuesta no es la solución a su problema. Pero es demasiado largo para caber en un comentario, y le permite a repensar el problema de la manera correcta (porque como es, creo que es errónea).

Este tipo de problemas han de ser resueltos teniendo en cuenta todos los componentes del sistema, y hacer supuestos razonables sobre lo que es un hacker potencial que puede o no puede hacer.

Por ejemplo:

Usted dice: "el PIC32MZ2048efm144 (MCU) recibe órdenes cifradas con una clave específica, descifra ellos y ejecuta el comando". Supongo que el resultado de la ejecución del comando es la alternancia algunos de los GPIOs para accionar cosas.

Entonces, ¿por qué tienes miedo de que, potencialmente, algunos datos pasa a descifrar entre el MCU y el proceso de cifrado/descifrado módulo? Un hacker que tiene acceso al hardware a ver descifrado de comandos sería, de todos modos, ser capaz de actuar directamente sobre los GPIOs de la MCU y "actuar las cosas" tan fácilmente.

Segundo ejemplo:

El uso del tiempo de las teclas es una idea. Pero como usted dice, dónde se almacena la principal clave que se utiliza para generar las llaves? Te enfrentarás a los mismas preguntas que en el problema original.

En realidad, no hay ninguna manera de hacer que su sistema seguro si usted sospecha que un hacker puede potencialmente colarse en cualquier ubicación de su sistema (que es lo que a mí me parece que está suponiendo).

Lo que hace un sistema seguro, entonces?

Una tarjeta inteligente es asegurar porque es razonable asumir que un hacker puede sondear el interior de rutas dentro de la IC, entre la memoria y la CPU bloque.

Una cerradura eléctrica se realiza segura, ya que es razonable asumir que un hacker puede llegar a los cables que accionar la cerradura.

Etc... Básicamente, usted tiene que comenzar por identificar las cosas que un hacker no ser capaz de hacer, y el trabajo de su solución completa a partir de ahí. Por ejemplo, es posible poner todo el sistema en un lugar seguro, físicamente resistente a las manipulaciones cuadro? En este caso, usted puede libremente han descifrado los comandos que pasa a través de un bus interno.

Usted no puede construir un sistema seguro sin saber lo que es el hacker no puede razonablemente hacer. No nos dicen que. Por lo tanto, no se puede proponer una solución completa.

2voto

hildred Puntos 343

Este parece un caso clásico donde el cifrado de clave asimétrica, sería útil. En el cifrado de clave asimétrica tiene dos claves, una privada y una pública. Usted desea proteger la clave privada, pero la clave pública puede ser pública y no necesita protección. usted puede ser capaz de mantener la clave privada en el sistema de seguridad y la clave pública en el dispositivo embebido.

0voto

ant Puntos 31

No explican por qué desea que los comandos de cifrado (en otras palabras, cuál es su modelo de amenaza es). Es su propósito para impedir que un adversario en posesión de la PIC dispositivo basado a partir de la determinación de lo que los comandos que se envían son? O estás tratando de evitar que el PIC dispositivo basado en la ejecución de un conjunto de comandos sustituido por un adversario y sólo permitir la ejecución de comandos procedentes de su servidor?

En el primer caso, se enfrentan a una tarea casi imposible: el dispositivo debe descifrar los comandos para ejecutar en ellos - la posesión de la PIC dispositivo significa la posesión de la clave de descifrado. Un adversario puede extraer de la clave (almacenado en el PIC dispositivo que posee), o simplemente esperar hasta que hasta que el firmware descifra los comandos y, a continuación, la captura de la memoria.

Si, por el contrario, sólo está tratando de asegurarse de que el dispositivo sólo ejecutar comandos procedentes de su servidor, usted está en suerte. En este caso se puede usar el cifrado de clave pública (por ejemplo, RSA) o una clave pública de la firma digital esquema (por ejemplo, DSS). En estos, el dispositivo sólo se almacena la clave pública: esto es suficiente para descifrar los comandos (o verificar la firma digital), pero no pueden ser utilizados para cifrar los comandos (o generar una firma digital) que el dispositivo acepte. Que requiere de la clave privada, que se utiliza para cifrar (o signo) de los comandos antes de enviarlos. La clave privada nunca se necesita para salir de su servidor. Aún mejor, cifrar de firmar los comandos en una máquina que no se comunica externamente y copiar estos para el servidor, de forma que la clave privada nunca se encuentra en un externamente servidor de acceso.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X