CHRIS CONLON comienza la charla con tres grandes puntos conceptuales de seguridad de los datos: los datos en tránsito, los datos en reposo en el dispositivo, y el firmware y cómo se pone al día.
Un hilo común que subyace a todo esto es la criptografía, y le dedica la última sección de su charla. Así que si desea realizar un viaje relámpago por la seguridad del dispositivo, aquí está!
LOS DATOS EN TRÁNSITO
El dispositivo inteligente probablemente usa Internet para algún servicio u otro. Sus datos, ya que se mueve a través de la red, son vulnerables. Es posible que desee mantenerlos en privado. Aquí, se tienen básicamente dos opciones: o bien aplicar TLS / SSL en la capa de sesión, o asegurar sus conexiones a mayor profundidad en la capa de red con IPSec.
Es probable que haya oído hablar de TLS / SSL. Es lo que mantiene su navegación web segura cuando escribe https://en su navegador. TLS (Transport Layer Security) se compone realmente de cuatro componentes. Se ocupa de la conexión inicial - el saludo - entre el cliente y el servidor momento en que se ponen de acuerdo en el algoritmo de cifrado que van a utilizar para la conexión. Este es el lugar donde ocurre la autenticación: el cliente está seguro de que el servidor es quien usted piensa que es, y esto depende de la cadena de certificados X.509. Una vez que el cifrado está configurado, que mantiene sus datos privados y no los modifica. Todo esto parece funcionar casi sin esfuerzo en el navegador de su ordenador portátil.
Pero desde una perspectiva dispositivo integrado, TLS es difícil. Se trata de algoritmos criptográficos que pueden gravar la CPU de su microprocesador, la demanda demasiada memoria, y en general atascar su dispositivo. Para ayudar, se puede elegir un algoritmo de cifrado que utiliza menos memoria RAM o ROM, dependiendo de lo que cada uno dispone. Se pueden comprar dispositivos de hardware incorporado en periféricos de cifrado para descargar el trabajo de la CPU.
LOS DATOS EN REPOSO
Los datos almacenados en el dispositivo en sí también son vulnerables. Si tiene información sensible en él, debe ser al menos encriptada, y si es posible no almacenar la información en absoluto, asi se evita el problema por completo. Suponiendo que el firmware utiliza el cifrado, mantener el secreto de las claves de cifrado es una cuestión importante. La generación de las claves de forma local en el dispositivo impide que se pueda interceptar el transporte. (Chris) sugiere, además, que no se vuelvan a utilizar las claves para diferentes propósitos, y cambiarlas con frecuencia.
Pero, ¿cómo el dispositivo almacena las claves? Lo ideal sería que el chip tuviese un elemento de almacenamiento seguro: un TPM o HSM donde se pueden guardar las claves. Si usted no tiene ningún almacenamiento seguro, siempre se puede requerir que el usuario tome alguna acción para descifrar las claves, resetearlas totalmetne en caso de que se detecte la manipulación.
LAS ACTUALIZACIONES DE FIRMWARE
El procedimiento de actualización de firmware está plagado de numerosas estafas. El dispositivo debe ser capaz de ser actualizado de forma remota, pero también tiene que ser capaz de confiar en la fuente del firmware, que necesita ser encriptada en tránsito, y tiene que estar seguro de que el nuevo firmware llegó intacto.
[Chris] 's método se apoya fuertemente en el cifrado de clave pública para realizar el trabajo. Mientras que el dispositivo es capaz TLS-, se puede utilizar cualquier mecanismo de transporte en el medio. [Chris] sugiere que sería posible utilizar MQTT, asegurado por TLS, para manejar la distribución del firmware.
CRIPTOGRAFÍA
Si usted ha estado prestando atención, usted ha notado que todo lo anterior se basa en gran medida de mantener las cosas en secreto, y eso significa criptografía subyacente. Y cripto depende en gran medida de números aleatorios, que no es muy fácil en dispositivos de hardware pequeños.
Las cosas que usted podría pensar que son al azar, pero no lo son, tienen reloj y números de serie. Lo que realmente quiere es un verdadero generador de números aleatorios - algo que debe su aleatoriedad del medio ambiente. Si el dispositivo no tiene suficiente entropía que entra, se puede sembrar un generador de números pseudoaleatorios periódicamente con la entropía que tienes, y la esperanza de que sea lo suficientemente bueno. Muchos dispositivos de hardware en estos días tienen generadores de números aleatorios en el silicio, que se encarga de llevarlo a cabo.
Después, usted necesita para asegurarse de que está utilizando una clave de tiempo suficiente para el cifrado, y esto depende tanto del algoritmo que está utilizando y el número real de bits de la clave. La elección del algoritmo está influenciada sus requisitos de velocidad y de memoria y los recursos de su microcontrolador. Si el chip que está utilizando tiene dedicado un hardware periférico SHA-2, por ejemplo, usted probablemente va a querer usarlo, y entonces usted puede escoger la longitud de la clave adecuada en consecuencia.
RESUMEN
[Chris] señala que esta charla es una gran visión de conjunto. Si usted quiere realmente embarcarse en la tarea de diseñar un sistema de hardware seguro, vas a tener que profundizar en todos y cada uno de estos puntos mucho más. Sin embargo, él tiene una diapositiva de resumen lleno de buenos consejos, y te dará una buena base para iniciar su propio proceso de aprendizaje.
No hay comentarios:
Publicar un comentario