¿Algún protocolo conocido para establecer la confianza entre una fuente intrínsecamente no confiable y un servidor sin un tercero?

1

¿Existe algún tipo de protocolo, esquema o documento teórico que implemente o examine el problema de establecer la confianza entre dos partes (comunicación, escucha) donde la parte comunicante inicia el contacto y no tiene una clave / secreto / contraseña? conocido por la escucha de la fiesta; pero el oyente necesita verificar de alguna manera que la parte comunicante es confiable para devolver información confidencial sin interrogar a una tercera parte. Personalmente , esto suena casi imposible, pero me he encargado de investigar la factibilidad. El problema que intentamos resolver es el aprovisionamiento de dispositivos en un entorno en el que los dispositivos no necesitan una configuración inicial que no sea el de apuntar al punto final remoto adecuado.

Considere una situación en la que tenemos un Dispositivo (D) y un Servidor (S):

  1. D envía el Mensaje inicial M [0] a S que contiene la supuesta identidad (nombre) de D
  2. S verifica la identidad D utilizando (???) y devuelve la clave K a D
  3. D usa K para todos los mensajes subsiguientes M [1..N-1].

La mayoría de este problema se encuentra en < 2 > donde (???) ocurre. El dispositivo puede ser tan pequeño como un micro de 8 bits con opciones de almacenamiento limitadas.

    
pregunta Philip Lombardi 17.04.2014 - 16:12
fuente

1 respuesta

3

Como es habitual, el problema es uno de definition . En concreto, ¿qué hace que el dispositivo sea "D" más "genuino" que una PC ejecutada por algún individuo malintencionado? Si se pone manos a la obra, dirá algo como: el dispositivo D es genuino porque es la verdadera pieza de hardware tangible, la acumulación de átomos que salió de la fábrica. Esto está bien en cuanto a la definición, pero no se correlaciona bien con las configuraciones de red . Desde el punto de vista del servidor S, solo hay paquetes IP; ceros y unos; el servidor no tiene acceso alguno a la manifestación del dispositivo en el mundo físico, sino solo a lo que envía.

En el mundo abstracto de las redes, eres lo que sabes . Lo que permite que un servidor S reconozca un dispositivo remoto D como un "dispositivo verdadero D" es que D puede hacer cosas (es decir, calcular ) cosas que requieren algo de conocimiento del que solo D posee.

Esto significa que tienes principalmente dos formas de resolver tu problema:

  1. En algún punto del proceso de construcción en el que el dispositivo D aún se encuentra en instalaciones seguras (por ejemplo, en la fábrica), inyecte alguna clave secreta en el dispositivo. En ese momento, usted puede asegurarse (con testigos oculares) de manera procesal que solo un dispositivo verdadero y genuino obtendrá esa clave secreta. Luego, D puede usar la clave para demostrar que es un dispositivo real.

  2. Realice el emparejamiento inicial entre D y S bajo el control físico de un agente confiable (jurado), quien se asegura de que se use el dispositivo verdadero. En la práctica, dicho agente conectaría el dispositivo a su computadora portátil, usaría algún mecanismo de autenticación para hablar con S (como agente autorizado) y enviaría los datos en ambas direcciones.

He visto (realmente hecho) ambos tipos en que los dispositivos eran terminales de pago, con mucho dinero en juego, justificando los gastos generales de los agentes jurados. Si su dispositivo es del tipo más barato, esta sobrecarga puede ser insoportable para usted. Por otro lado, si inyecta "información confidencial" en un dispositivo barato, entonces tal vez esté corriendo hacia su perdición: si la información vale la pena, entonces algunos propietarios de dispositivos intentarán abrirla y extraerla. ¡Lo hacen por meros archivos de música y video!

    
respondido por el Tom Leek 17.04.2014 - 16:35
fuente

Lea otras preguntas en las etiquetas