Estableciendo la confianza entre un dispositivo y un desarrollador, la señal TLS frente a X.509, GnuPG (o ambos)

4

Supongamos que desea implementar un mecanismo de "descarga segura" para su dispositivo integrado para que el dispositivo pueda establecer confianza con desarrolladores externos autorizados. Los desarrolladores tendrían acceso local al dispositivo, el firmware no es actualizable y contiene el sistema operativo (Linux), la función de carga lateral les proporcionará una forma de cargar aplicaciones que se ejecutan en la parte superior

Estos fueron mis pensamientos iniciales:

1.) Habilite / deshabilite la carga de sidelo en el dispositivo a través de una señal remota (TLS), el cliente iniciará la solicitud en función de alguna acción iniciada por el usuario (el código del cliente TLS se incluirá en el firmware)

2.) Use un sistema como X.509 o GPG, genere previamente e incruste un certificado en el firmware del dispositivo antes de enviarlo. Los desarrolladores podrían recibir claves del proveedor del dispositivo que, a su vez, podrían ser verificadas por la clave pública / certificado incrustado en el dispositivo. Existen ventajas adicionales, como las fechas de caducidad y los métodos de revocación que funcionan sin conexión / OOB

3.) Usa ambos 1 + 2

No soy un experto en seguridad, así que no estoy familiarizado con las posibles formas de explotar el # 1, sin embargo, creo que el # 2 sería inherentemente más seguro que el # 1 ya que el establecimiento de la confianza está fuera de banda (no t utilizar la red). En ese sentido, asumo que el # 3 sería aún mejor.

¿Algún comentario? Gracias

    
pregunta Zugdud 18.07.2016 - 17:23
fuente

1 respuesta

2

Realmente necesitas ambos, ya que los dos logran cosas diferentes.

  1. Usted logra comunicaciones seguras, que protegen contra la intercepción / inyección de datos durante las comunicaciones.

  2. Usted logra la confianza de que la tercera parte es tanto una tercera parte confiable como la tercera parte que cree que es. (o en este caso, un tercero que es de confianza / autorizado por el proveedor).

El primero es bastante directo. El segundo es un poco más complicado y donde muchos proveedores han cometido errores. Por ejemplo, los muchos dispositivos de IoT en los que han utilizado un enfoque de GPG, pero han cometido el error de utilizar la misma clave privada de gpg en todos los dispositivos.

El tipo de solución que utilice para el # 2 dependerá de sus necesidades y riesgos exactos. Debe equilibrar la cantidad de protección requerida con el nivel inherente de complejidad que introduce: no tiene sentido tener una solución realmente compleja y muy segura si la administración de esa solución es tan compleja que es más probable que ocurra una falla operativa.

Considere cuáles son sus requisitos y cuáles son los riesgos asociados para determinar la protección mínima necesaria y luego vea cómo administrará la solución y asegúrese de que esto se puede hacer sin una carga excesiva.

No hay una solución correcta. Dependerá del perfil de riesgo que esté abordando y de cómo estructure las cosas. Por ejemplo, si desea que los desarrolladores externos gestionen las cosas, es decir, el software está disponible en los sitios web administrados por desarrolladores, es probable que desee un enfoque de certificado firmado en el que le dé a un tercero aprobado un certificado firmado y su dispositivo solo permita la carga. de aplicaciones de terceros que tienen un certificado debidamente firmado. Esto le permite revocar la aprobación revocando el certificado.

Como alternativa, puede utilizar un enfoque en el que permita que terceros envíen solicitudes a un sitio que usted controla. Usted evaluaría y aprobaría las aplicaciones de terceros y solo haría que las que usted aprueba estén disponibles en el sitio. En este caso, probablemente solo pueda utilizar un enfoque basado en GPG, que podría ser más fácil de administrar.

El primer enfoque pondría mayor confianza en los terceros, pero probablemente reduciría los gastos generales de administración para usted. El segundo requeriría menos confianza, pero crearía mayores gastos de administración para usted porque ha asumido un rol de verificación. También es probable que haya un mayor tiempo de respuesta, es decir, a partir del lanzamiento de nuevas versiones / parcheadas. Sin embargo, también tendría la ventaja de un mayor control y una mayor calidad, lo que puede ser importante, ya que la calidad general de su dispositivo se puede juzgar fácilmente por la calidad de las aplicaciones que ejecuta.

Los dos tampoco se excluyen mutuamente; puede hacer ambas cosas, lo que puede justificarse en algunas circunstancias. Una vez más, depende de su perfil de riesgo y de los niveles de riesgo con los que se sienta cómodo.

    
respondido por el Tim X 22.07.2016 - 00:56
fuente

Lea otras preguntas en las etiquetas