Cómo codificar la autenticación del usuario en un código de barras

0

Me sugirieron publicar aquí desde esta pregunta en Super User SE. Así que aquí está la copia:

Se me pide que agregue la posibilidad de escanear un código de barras (en una credencial) para autenticar a los usuarios cuando inician sesión en mi aplicación. En este contexto, mi cliente no tiene un estándar (no usa credenciales por ahora) pero le gustaría usar estos mismos códigos de barras / insignias para otras aplicaciones. Por supuesto, no se puede codificar de manera "usuario / separador / contraseña", ya que mostrará la contraseña cuando se escanee en cualquier editor de texto simple.

¿Hay algún estándar al respecto? ¿Hay algún escáner de código de barras que proporcione una función incorporada para esto?

Preferiblemente, los códigos de barras que me gustaría usar pueden ser códigos de barras 1D. La autenticación debe ser un paso en este contexto. El código se está escribiendo en C #.

Si no es nada de lo anterior, ¿cómo podría hacerse?

Gracias

    
pregunta lemon 28.06.2018 - 11:01
fuente

3 respuestas

7

No existe tal estándar. Lo que proporciona el código de barras (o código QR) es una forma de codificar información de texto.

Codifique, no cifre, para que el software relevante pueda decodificar los datos escaneados.

Usar esto como un sistema de autenticación es similar a imprimir una contraseña en la credencial.

    
respondido por el WoJ 28.06.2018 - 11:07
fuente
1

Si solo considera la seguridad como blanco o negro, solo puede escribir información pública en la credencial, ya sea en texto claro de código de barras. Y el usuario tendrá que escribir su contraseña, lo que hará que todo el sistema sea bastante inútil.

Entonces, podría preguntarse ¿cuáles son los riesgos y amenazas? Es común proteger las ubicaciones físicas con una clave antigua que se puede perder, robar y copiar a voluntad. Y el bloqueo en sí puede ser recogido. Si su analizador de seguridad no presenta requisitos más altos, la placa y su código de barras es algo que poseerlo es suficiente para dejarle entrar. El principal defecto es que probablemente sea suficiente para tomar una foto del código de barras Con un smartphone para poder copiarlo. Eso significa que solo debe proteger los datos cuando el nivel de confidencialidad sea bastante bajo. Desde el punto de vista de la implementación, el código de barras puede contener un nombre de usuario o, probablemente, un token opaco que el sistema puede asignar a una identificación de usuario.

De todos modos, nunca use el código de barras para escribir información confidencial, por lo que no hay contraseña aquí. Agregaría poca o ninguna seguridad y sería un vector de compromiso para la contraseña.

    
respondido por el Serge Ballesta 28.06.2018 - 14:16
fuente
1

Básicamente tienes que hacer una evaluación de riesgos. ¿A qué da acceso el sistema y qué protección requieren estos activos? No hay respuestas enlatadas a eso.

Si se trata de una aplicación de cronometraje simple, que ingresa y finaliza, probablemente sea suficiente con un simple código de barras con el número de empleado; los usuarios pueden revisar las hojas de tiempo y corregirlas.

Si se trata de un inicio de sesión para un sistema de control de producción, esto puede no ser lo suficientemente bueno, ya que es trivial para que alguien inicie sesión como cualquier otra persona, y es trivial para reproducir códigos de barras. Heck, tome una foto con cualquier teléfono inteligente, sostenga el teléfono inteligente frente a los escáneres.

Es posible que desee ver tarjetas inteligentes RFID. Son mucho más seguros y pueden devolver la firma criptográfica de la solicitud, lo que dificulta su copia.

Es posible que desee agregar un pin de 4 dígitos, con reintentos limitados. Hay muchos tipos de soluciones de autenticación, pero el punto común de todas ellas es que necesita definir el nivel de seguridad necesario , según su aplicación. Una vez que haya hecho esto, puede regresar con preguntas sobre cómo implementar esto. Pero recuerda que los códigos de barras son para todos los intentos solo texto.

    
respondido por el vidarlo 28.06.2018 - 19:14
fuente

Lea otras preguntas en las etiquetas