Mejores prácticas para actualizaciones seguras por aire [cerrado]

8

¿Cuáles son las mejores prácticas de seguridad a seguir al emitir una actualización OTA a una flota de dispositivos IoT? ¿Cuáles son las causas importantes de preocupación?

Por ejemplo,

  • evitar que una actualización sea interceptada
  • siguiendo los estándares establecidos
  • plataformas para distribución de software
  • actualizaciones automáticas vs actualizaciones opcionales
Noam Hacker
fuente
55
Esta pregunta es demasiado amplia para ser una buena opción para preguntas y respuestas.
Sean Houlihane
1
@SeanHoulihane, he reducido el enfoque a la seguridad de OTA. ¿Cómo se ve ahora?
Noam Hacker
2
Todavía es bastante amplio, ya que cada punto puede ser una pregunta independiente. Incluso para el último punto de prueba de los éxitos, podría escribir un libro completo al respecto.
Dom.
1
Estoy de acuerdo con Dom. Es mejor tomar un aspecto de OTA (como garantizar un resultado confiable). Incluso entonces, hay muchas respuestas. Idealmente, una pregunta solo debería necesitar una o dos respuestas de alta calidad para que usted pueda aceptar que es "respondida".
Sean Houlihane
1
editar el título también?
Sean Houlihane

Respuestas:

10

Esa pregunta es demasiado amplia, pero dado que omitió lo más importante, siento que necesito hablar.

Autenticar la actualización .

Si desea asegurarse de que sus dispositivos estén ejecutando su código, entonces necesita autenticación, no cifrado. El cifrado garantiza que otras personas no puedan saber qué hay en su código, y eso es difícil de lograr y rara vez es útil. (Puede cifrar, pero si la clave de descifrado está en el dispositivo, no ganó nada a menos que tenga una forma de proteger la clave de descifrado que no le permite proteger el código directamente). La autenticidad es propiedad de otras personas no puede producir una actualización falsa, y esa propiedad generalmente es deseable.

Tenga en cuenta que el cifrado no ayuda con la autenticidad. Esta es una creencia falsa que las personas que realmente no entienden la seguridad a veces sí, pero simplemente no es verdad.

Para algunos dispositivos, está bien ejecutar cualquier firmware si el propietario así lo elige. En ese caso, aún necesita algún mecanismo para garantizar que solo el propietario del dispositivo pueda instalar el firmware, y no un transeúnte aleatorio. En general, eso significa que el dispositivo debe autenticar la actualización como proveniente del propietario registrado.

Gilles 'SO- deja de ser malvado'
fuente
Esto no es realmente correcto. El cifrado no es muy difícil de lograr ni solo "rara vez es útil". Además, ese cifrado "no ayuda con la autenticidad" es solo semi-verdadero. La mayoría de los modos de cifrado modernos, como GCM, en realidad se denominan esquemas de "cifrado autenticado", que combinan autenticidad y confidencialidad.
mat
@mat He cambiado esa oración para que sea formalmente correcta. El cifrado no es difícil, pero me refería a la confidencialidad, que es difícil. El cifrado no le brinda confidencialidad si no puede mantener la clave confidencial. El cifrado no ayuda con la autenticidad en absoluto. Si usa encriptación autenticada, le da ambas, pero el hecho de que incluya encriptación no ayuda a obtener autenticidad.
Gilles 'SO- deja de ser malvado'
Si su clave se filtra, cada cripto pierde su utilidad, ya sea por confidencialidad o autenticación. Si tiene sentido usar el cifrado con una clave desprotegida en el dispositivo, depende de su modelo de amenaza (accesibilidad del dispositivo, habilidades de los adversarios)
mat
@mat No. De hecho, debería haber reaccionado a ese comentario de GCM en mi comentario anterior. GCM no es una forma decente de transmitir actualizaciones, porque significa que la autenticidad se verifica con una clave de clase. A menos que esté creando una plataforma altamente resistente (por ejemplo, tarjeta inteligente), una clave de clase es tan buena como pública. Las actualizaciones deben usar criptografía asimétrica. De esa manera, para implementar una actualización falsa en un dispositivo, se debe violar ese dispositivo en particular: para producir una actualización falsa que funcione en todas partes, el atacante necesitaría romper el servidor o el protocolo y estos generalmente están mejor protegidos que los dispositivos en el campo.
Gilles 'SO- deja de ser malvado'