Proteger el código QR, Eddystone y NFC contra la suplantación de identidad

2

Digamos que tengo el siguiente escenario. Tengo un código QR, Eddystone y / o NFC que contiene una dirección IP, con la cual se comunica mi aplicación del lado del cliente. Digamos que esta dirección IP puede variar de un usuario a otro (o digamos de una entidad a otra, puede ser de múltiples usuarios). ¿Hay alguna forma de proteger a estos "titulares de datos" (Código QR, Eddystone y / o NFC) contra la falsificación, es decir, un atacante no podrá reemplazar mi código QR con el suyo propio, sin que mi aplicación lo note?

Límites de tamaño

  • Eddystone - 17 bytes (todos utilizados: - /)
  • Código QR: 4.296 caracteres (+ - 60 utilizados)
  • NFC - 125 bytes (+ - 60 utilizados)

Cada dirección IP puede tener su propio certificado que no conozco de antemano. El servidor es mío, pero el certificado puede ser reemplazado por el administrador que no controlo.

    
pregunta Dávid Kaya 28.03.2017 - 09:39
fuente

2 respuestas

0

Puede colocar una clave pública en su aplicación para verificar la firma relacionada con la dirección IP.

  • Esta firma podría colocarse en el QR / Edystone / NFC si hay suficiente espacio para colocarlo (los certificados de ECC pueden ser pequeños);
  • o puede alojar un servicio en esta IP respondiendo a un desafío (la aplicación proporciona un nonce, el servicio lo firma, luego la aplicación verifica la firma);
  • o puede proporcionar un servicio a través de HTTPS en la dirección IP y verificar el certificado HTTPS con nuestra clave pública.

También necesitarás una forma de proteger la clave privada. Puedo pensar en dos soluciones:

  • Puede tener una forma de revocar las claves privadas implementadas con los servicios en la dirección IP (por ejemplo, mediante la actualización de la aplicación) en caso de que una clave privada sea abusada o filtrada.
  • La alternativa es proporcionar el servicio de firma por un servicio web que usted posee para que pueda asegurarse de que la clave privada no se filtre. Este segundo esquema funciona así: la aplicación envía un desafío al servicio, el servicio se autentica en su servidor y reenvía el desafío, su servidor firma el desafío y el servicio devuelve la firma a la aplicación.
respondido por el A. Hersean 28.03.2017 - 10:03
fuente
0

Los códigos QR son solo una forma de obtener texto de su cámara, para que el usuario pueda enviar cualquier cosa. Nada detendría a un usuario creando y escaneando un código QR para ingresar el texto que deseaba.

También los códigos QR se reducen rápidamente a partir de los 4,296 caracteres máximos que citó cuando utilizan una codificación de caracteres diferente (si necesita símbolos) y desea que sean fáciles de escanear (tal vez, como 300 caracteres es más realista dependiendo de cómo los esté escaneando) .

Este es un código QR de 2000 caracteres y creo que es demasiado pequeño para que la mayoría de los escáneres lo escaneen.

Entonces,hayciertoespacioparaqueincluyasalgúnsecretoconladirección,peroluegoesteQRdeberíamantenerseocultoporquecualquieraqueloleatambiénpodráveresesecreto.PodríahacerqueelcódigoQRcontengaunaURLaleatoriaprivadaquelepermitaaunusuariocrearunacontraseña,yluegohacerquelausedesdeesemomento.

enlace

    
respondido por el daniel 28.03.2017 - 10:31
fuente

Lea otras preguntas en las etiquetas