Verificación de la facturación del cliente

2

He creado una aplicación de fidelidad y recompensa para el cliente que funciona de una manera muy simple. Suministramos cafés, etc. con un código QR impreso que los clientes escanean en cada visita, utilizando la aplicación. Al completar X visitas, el cliente tiene derecho a una recompensa, por ejemplo, Un café gratis. Con el fin de evitar los registros ilegítimos, como tomar una foto del código QR impreso y escanearlo en casa, le proporcionamos un iBeacon junto con la etiqueta. Por lo tanto, cada vez que un usuario escanea con la aplicación el código QR, la aplicación intenta comunicarse a través de BLE con el iBeacon correspondiente. Si se encuentra, el registro se considera legítimo.

Sin embargo, esto ha demostrado tener muchas deficiencias, las más importantes de las cuales son:

  • Las baterías iBeacon se agotan con bastante frecuencia (después de unos meses) y A pesar del hecho de que los propietarios reciben SMS para reemplazar el baterías, en su mayoría no molestan.
  • El iBeacon en sí es relativamente caro (alrededor de $ 15 cada uno) dado que ofrecemos este servicio de forma gratuita.

Dado que el incentivo para "piratear" esta aplicación no es tan grande (no va a ganar un auto o una casa en la playa), se podría sugerir que confíe solo en la ubicación del usuario, por ejemplo, para validar eso. El cliente está de hecho en la tienda. Sin embargo, queremos que esto también funcione en bienes entregados. Actualmente también suministramos etiquetas "móviles" que un repartidor tiene con él y el cliente puede escanear en casa o en el trabajo.

Estoy tratando de pensar en una forma más simple o más rentable de validar los registros de los clientes, pero no he logrado hacerlo.

¿Alguien puede sugerir una forma alternativa "lo suficientemente buena para la mayoría de los casos" de hacer esto?

EDIT

Mi principal problema es que alguien puede tomar una fotografía de un código QR y escanearlo en casa. Por lo tanto, me preguntaba qué tan difícil sería verificar la imagen que mi aplicación "ve" durante la exploración en el lado del servidor. Entonces, si subí una imagen tomada por la cámara, cada vez que alguien escanea una etiqueta y tiene alguna forma "automágica" de determinar si es un escaneo legítimo o, por ejemplo, ¿La pantalla de otro teléfono o una copia impresa de mi etiqueta?

Así es como se ve una etiqueta

¿Puedo imprimir algo en el papel o en la etiqueta de plástico que puedo identificar durante el escaneo que sería difícil de imitar? P.ej. haciendo que la etiqueta se vea verde cuando se ve en un ángulo específico?

    
pregunta kagelos 22.10.2018 - 16:49
fuente

1 respuesta

4

Editar Aquí hay una respuesta más formal:

El diseño de un sistema de seguridad a menudo siempre encuentra el equilibrio adecuado entre costo, uso y seguridad.

En el extremo más alejado del espectro, tiene su solución inicial: código QR impreso que debe ser escaneado. Tiene el costo más bajo (1 pieza de papel por ubicación de implementación), la mayor facilidad de uso (un simple escaneo con una aplicación) y la seguridad más baja (puede ser jugado por cualquier persona sin equipo ni conocimiento).

Cambió un poco de costo y facilidad de uso por un poco más de seguridad al agregar un iBeacon. Ese fue un buen movimiento, pero resulta que no parece poder pagar ni el costo adicional (la baliza) ni la facilidad de uso perdida (la necesidad de cambiar la batería).

Entonces, lo que debe buscar es una solución que sea menos costosa y más utilizable sin comprometer la seguridad demasiado.

Por lo tanto, sugeriría algo que es:

  • Aún en su mayoría en papel (al menos en lo que respecta a los puntos de implementación)
  • Le permite ajustar su costo / usabilidad / seguridad según la situación específica.

Por lo tanto, mi idea es extender su código QR para incluir dos elementos adicionales:

  • Un tipo de "selector de reglas" que le permite definir qué perfil de seguridad se requiere para usar ese código
  • Una firma para evitar la falsificación.

Luego crearía varias reglas diferentes:

  • El tipo de regla más básico sería requerir que su aplicación esté ubicada geográficamente cerca del punto de implementación antes de validar la visita. Esa debería ser su opción de implementación normal.
  • Un límite de tiempo para la validez del código para que pueda generar (e imprimir o simplemente mostrar en una aplicación) un código que se pueda llevar a cabo.
  • Una limitación de IP que puede vincular a la ubicación de implementación (para que los visitantes solo puedan validar su visita desde el wifi local, por ejemplo).

Tal esquema le permitirá adaptar la validación que realice a la situación que enfrenta y ajustar la relación de usabilidad / seguridad en consecuencia.

Por supuesto, esa no es la única opción posible: puede (como lo sugiere @TripeHound) generar códigos que cambian rápidamente y mostrarlos en un terminal local (por ejemplo, en una pantalla de TV, tal vez como una superposición sobre el programa regular) pero eso es un cálculo de costo completamente diferente.

Respuesta inicial: Obviamente, su problema es el costo: cualquier solución a su problema requerirá algún tipo de dispositivo activo en una ubicación que sea difícil de falsificar pero que no sea demasiado costosa de implementar.

Sugeriría lo siguiente:

  • Cambie su aplicación para usar la ubicación GPS del dispositivo.
  • Para los repartidores, genere códigos especiales (firmados) que inhabiliten las comprobaciones de GPS para la fecha dada que pueden imprimir antes de salir.

Está lejos de ser perfecto y hay varias formas de hacer trampa (por ejemplo, tomar una fotografía del código de un repartidor)

    
respondido por el Stephane 22.10.2018 - 17:45
fuente

Lea otras preguntas en las etiquetas