Token de hardware para autenticar la aplicación web

5

Mi empresa está desarrollando una aplicación web, y me pidieron que investigue cómo realizar la autenticación de token basada en hardware para iniciar sesión en nuestra aplicación web . Permítanme repetir: básicamente habrá una aplicación web, y habrá una especie de USB para conectarse a la computadora, tal vez el usuario deba ingresar el nombre de usuario & contraseña en algún lugar y proporcionó ese nombre de usuario & la contraseña es correcta, el usuario debe estar autenticado para utilizar nuestra aplicación web. Por supuesto, no queremos que el usuario descargue / instale nada en la máquina porque la máquina podría no ser la suya o simplemente no quieren hacer nada adicional. Mi compañía sugirió tener un complemento de navegador, pero como el complemento tiene los derechos de sistema que tiene el navegador o menos, y un navegador no debería poder acceder al hardware subyacente (excepto para la cámara y el micrófono, ya que son esenciales)

Una forma en que veo cómo hacerlo es probablemente tener una versión modificada de un navegador web que, al mismo tiempo, tiene la capacidad de verificar si el token de seguridad (el usb) está presente, luego iniciar la aplicación web desde allí. Si los usuarios no quieren ejecutar nada o la computadora de destino no permite ejecutar este tipo de cosas, creo que hacer esto es imposible. Solo quiero consultar con ustedes si me estoy perdiendo algo.

    
pregunta wakandan 18.10.2014 - 20:19
fuente

4 respuestas

3

Luego sugeriría a Yubikey ( enlace ). Yubikey es un token de hardware OTP que pretende ser un teclado (por lo que no requiere instalación de software adicional) y luego envía un secreto cifrado de 128 bits al servidor. Los tokens son totalmente programables por el administrador, y es posible usar el token de varias maneras. Puede usar los tokens sin contraseña, por ejemplo, usar los tokens como autenticación de "lo que tiene" de un factor.

Pero también puede hacer que el usuario escriba una contraseña antes de presionar el botón en el token.

También es posible configurar el token para usar una identidad pública y luego una clave AES única por usuario, O puede usar una identidad secreta y luego iterar a través de todas las claves AES y descifrar (por ejemplo, si tiene 10 usuarios, entonces itera a través de las 10 claves AES diferentes almacenadas en el servidor) pero el proceso puede consumir CPU, O puede tener la misma clave AES para todos los usuarios.

Si selecciona alguna de las primeras alternativas, puede usar cualquiera de los tokens de Yubico. Si opta por la última alternativa, le sugeriría a Yubikey NEO, que tiene un chip de tarjeta inteligente criptográfica resistente a la manipulación, lo que hace imposible que un usuario no autorizado pueda manipular el yubikey para extraer la clave AES (lo que lo haría imposible). es posible que este usuario deshonesto se identifique a sí mismo como otro usuario).

La ventaja de usar una identidad secreta es que si alguien encuentra el yubikey, no podrá saber a quién pertenece. Otra ventaja de NEO es que tiene soporte NFC y puede generar las señales que hace una "etiqueta de URL NFC", pero agregando una OTP al final, como " enlace " para que el usuario pueda usar su Yubikey para iniciar sesión a través de un teléfono móvil compatible con NFC.

    
respondido por el sebastian nielsen 19.10.2014 - 01:12
fuente
2

El CryptoStick utiliza el API de criptografía web para exponer una clave al navegador. Es probable que el producto de token de seguridad USB propuesto utilice una técnica similar. CryptoStick es de código abierto , por lo que es fácil para los terceros verificar su seguridad.

La autenticación de 2 factores que uso regularmente es Google Authenticator , lo que lo hace muy fácil para la web aplicaciones para soportar autenticación de dos factores. Parece que más y más servicios son compatibles con Google Authenticator, LastPass y Amazon AWS son buenos ejemplos.

    
respondido por el rook 18.10.2014 - 20:31
fuente
1

Además de la respuesta de sebastians, también podría considerar no usar el servidor backend de Yubicos sino ejecutar su propio sistema, de modo que la solicitud de autenticación no se reenvíe a Yubico sino que se maneje en su propio sistema o dentro de su propia subred (la de sus clientes). Por desgracia, necesita instalar / ejecutar un sistema de back-end. Ellos mismos proveen un servidor de autenticación, pero también pueden echar un vistazo al backend de código abierto de autenticación privacyidea , que puede usar para administrar yubikeys pero también soft- Los tokens OTP como el Autenticador de Google.

También puede configurar uno de estos sistemas y ejecutarlo para varios clientes suyos.

    
respondido por el cornelinux 19.10.2014 - 18:04
fuente
1

Un token RSA podría ser otra opción. Esto requiere que el usuario ingrese una OTP que se muestra en el token RSA. Funciona bien pero no es barato.

    
respondido por el michiel perdeck 19.10.2014 - 19:50
fuente

Lea otras preguntas en las etiquetas