¿Cuál es una buena manera de autenticar a un usuario en un teléfono inteligente?

29

¿Cuál sería una buena manera de autenticar a un usuario en un teléfono inteligente? Por bueno, quiero decir que es seguro y fácil de usar. Las contraseñas no parecen ser las mejores porque las contraseñas deben ser largas para que sean seguras, pero es difícil escribir una contraseña larga en un teléfono inteligente. Algunos pensamientos en los que he comenzado a pensar son medidas biométricas (por ejemplo, posiblemente reconocimiento facial) y / o un token. Estoy interesado por esta pregunta en autenticar al teléfono. Como se señaló en los comentarios, mi pregunta original era demasiado amplia, por lo que estoy dividiendo la otra parte en otra pregunta aquí: ¿Cuál es una buena manera de autenticar a un usuario en sitios web y aplicaciones con un teléfono inteligente?

    
pregunta Jonathan 10.02.2015 - 16:12
fuente

7 respuestas

20

Mira los métodos de autenticación para desbloquear teléfonos. En mi galaxy S4, hay:

  • Deslizar (sin seguridad)
  • Desbloqueo facial (seguridad baja)
  • Cara y voz (baja seguridad)
  • Patrón (seguridad media)
  • PIN (medio a alto)
  • Contraseña (alta)

Por experiencia personal, el desbloqueo facial es un poco difícil. Tienes que entrenarlo, y luego tienes que poner tu cara en la luz correcta sin nada para desbloquear tu teléfono. También tenga en cuenta a las personas con discapacidades o lesiones: ¡alguien que haya sido quemado en un accidente quedará excluido de su dispositivo! También se ha investigado cómo derrotar al motor de reconocimiento con imágenes, y es bastante fácil de hacer porque cualquiera puede ver tu rostro.

La contraseña como dijiste es muy difícil de escribir. Los diminutos teclados de los teléfonos hacen que las mayúsculas sean muy difíciles.

Sin embargo, los dos métodos de autenticación que encuentro más fáciles desde el punto de vista de un usuario son el PIN y el patrón. El patrón se puede levantar de los aceites de pantalla (blech) para debilitarlo.

Un gran teclado numérico que haya aleatorizado la colocación de números es un buen compromiso entre la facilidad de uso y la seguridad. Coloque una longitud mínima en el pin (como 10) y podrá tener una seguridad comparable a una contraseña.

    
respondido por el Ohnana 10.02.2015 - 16:28
fuente
14

No mencionas para qué tipo de servicio es, pero como usuario, el método de autenticación menos irritante para mi teléfono es SSO. Ya estoy registrado en Google & Facebook de todos modos, así que normalmente es solo un caso de presionar "Sí" y ya terminamos.

    
respondido por el AlexH 10.02.2015 - 16:25
fuente
6

Si tiene el número de teléfono móvil del usuario (y si el usuario afirma durante el registro que este número de teléfono puede recibir mensajes de texto), puede usar esta capacidad para habilitar la autenticación de 2 pasos con SMS. Después de una autenticación exitosa con un nombre de usuario y contraseña, da un paso más. Envíe un mensaje de texto al usuario mediante la API a un proveedor de pasarela SMS como Twilio o Plivo (cuesta dinero, pero los precios de los proveedores de pasarela SMS tienden a ser muy bajos en los EE. UU.). El mensaje de texto que les envíe contendría un entero generado aleatoriamente que usted cree para ellos, quizás de 6 a 8 dígitos. Deje que el usuario escriba este número entero en un campo de formulario y autentíquelo con él. Para que el usuario pueda escribirlo más fácilmente, puede configurar el campo de formulario para que aparezca un teclado de teclado en su pantalla, que contiene solo números para los botones, como este:

<input type="text" name="smstoken" id="smstoken" pattern="[0-9]" autocomplete="off">

Una vez que han enviado el formulario con el entero correcto que recibieron en su mensaje de texto, se autentican por completo. Esta forma de autenticación de 2 pasos garantiza que los usuarios no solo sepan algo (su nombre de usuario y contraseña correctos) sino que también tengan algo (un número aleatorio recibido en tiempo real a través de un mensaje de texto), aumentando la seguridad de su aplicación.

Asegúrese de informar al usuario por completo de antemano que su proveedor de servicios móviles le puede cobrar para recibir el mensaje de texto.

    
respondido por el vrtjason 10.02.2015 - 20:07
fuente
4

Su mejor apuesta podría ser utilizar los métodos estándar tal como se menciona en la respuesta de Ohnana junto con un fuerte autenticación de segundo factor mediante U2F.

La YubiKey NEO de Yubico permite la autenticación segura de segundo factor del canal TLS, incluso a través de NFC, si recuerdo correctamente las especificaciones. Está utilizando un módulo de seguridad de hardware, por lo que esto, combinado con una contraseña incómoda fuerte, sería una forma muy segura de verificar que el usuario es quien dice ser.

Incluso más loco sería escribir un controlador de tarjeta inteligente GPG para Android que usaría el applet OpenPGP en dicho YubiKey NEO para tener un desafío único iniciado por el servidor / teléfono donde el usuario tendría que ingresar la clave para su inteligente Tarjeta para descifrar, firmar y devolver un desafío desde el servidor / teléfono. Sin embargo, necesitarías un dongle USB, ya que no hay ningún protocolo NFC para GPG si recuerdo bien.

El cielo es el límite. Asegúrese de que el teléfono esté encriptado con una frase de contraseña incómoda y apáguelo si hay más de 5 intentos de inicio de sesión incorrectos.

    
respondido por el Naftuli Kay 10.02.2015 - 23:00
fuente
3

Podría utilizar algún tipo de comunicación de campo cercano.

Por ejemplo, escribe algunas etiquetas que desbloquean el teléfono cuando la etiqueta se toca en la parte posterior.

Otra cosa buena que puedes ver es Yubikey: enlace

    
respondido por el Mitch 11.02.2015 - 05:32
fuente
1

También debe considerar el teléfono inteligente específico (iOS, Android, Windows, etc.) ya que los diferentes teléfonos varían en la forma en que funcionan y en las funciones que ofrecen.

Apple ha abierto el acceso a Touch ID en iOS 8. Por lo tanto, para los dispositivos Apple, puede requerir que un usuario inicie sesión por primera vez con su contraseña. Después de iniciar sesión, el servidor puede proporcionar una clave única para ese dispositivo. Guarde esa clave en el llavero y permita que los inicios de sesión posteriores se desbloqueen a través de la API de identificación táctil.

Agregas un par de posibles problemas de seguridad que conozco.

  1. Almacena lo que es esencialmente el equivalente a una contraseña en el dispositivo. A pesar de que está cifrado, todavía se almacena localmente y podría ser descifrado. Puede mitigar algunas preocupaciones aquí al requerir la contraseña para algunas operaciones. Por supuesto, al cambiar la contraseña; pero podría haber otros casos.

  2. La identificación táctil se puede piratear obteniendo las huellas digitales del propietario desde el propio dispositivo.

A pesar de esto, animas a los usuarios a usar mejores contraseñas. Y eso debería proporcionar una mejor seguridad en general.

    
respondido por el David V 10.02.2015 - 19:46
fuente
1

La premisa de esta pregunta es un poco defectuosa porque implica que hay una respuesta de "talla única". Este no es el caso. La autenticación debe ajustarse tanto a los requisitos de la aplicación como al usuario. Algunas aplicaciones / dispositivos necesitan más protección que otras. Del mismo modo, algunos usuarios necesitan más protección que otros.

Creo que el mejor enfoque es permitir un rango de opciones y dejar que el usuario elija la opción que prefiera. La desventaja de este enfoque es que algunas personas simplemente optarán por el método más fácil y conveniente. Sin embargo, resolver ese problema realmente consiste en aumentar la conciencia del usuario. Forzar una solución a lo largo de la línea "Sabemos lo mejor" es poco probable que obtenga mucho apoyo y frustrará a algunos usuarios que pueden evaluar su exposición al riesgo de manera adecuada y simplemente encontrar la solución impuesta o fuera de lugar con sus requisitos.

Para fines de autenticación en un dispositivo general, como un teléfono, es probable que deba cubrir los tres enfoques principales, es decir, algo que el usuario sabe (por ejemplo, contraseña), algo que tiene el usuario (por ejemplo, token, posiblemente hardware generado a partir de un dongle o Código SMS, etc.) y algo que el usuario es, por ejemplo, biométrico: huella dactilar, impresión de voz, etc. Sin embargo, la clave sería permitirle al usuario seleccionar si solo desea una contraseña / pin o una combinación. Mi hija de 15 años probablemente solo querrá un alfiler, pero eso está bien, ya que todo lo que realmente usa para su teléfono es Facebook. Por otro lado, trabajo en seguridad, tengo acceso a datos confidenciales y quiero más protección, por lo que podría usar biométrica, contraseña y token.

Para aplicaciones específicas, el enfoque debe ser similar, pero se puede simplificar. Una aplicación tiene un perfil de uso más definido. Esto significa que puede realizar una evaluación más precisa de los riesgos de seguridad. Si la aplicación tiene pocos datos confidenciales y un "beneficio" bajo para personas no autorizadas, entonces un simple pin o contraseña puede ser suficiente. A medida que aumentan los riesgos, debe aumentar el rango de los métodos de autenticación disponibles. En algunos casos, donde la sensibilidad de los datos está por encima de un cierto umbral, puede imponer un estándar mínimo.

La otra cosa a considerar es la educación del usuario y las soluciones disponibles para hacer algo de esto un poco más fácil. Por ejemplo, puede ser apropiado fomentar el uso de una aplicación de administración de contraseñas. Esto puede reducir el impacto / inconveniente de escribir contraseñas largas / complejas en una pequeña pantalla de dispositivo móvil. Es posible que tenga una aplicación de administración de contraseñas en la que inicie sesión una vez al comienzo de una sesión y, a partir de ese momento, cada vez que vaya a un sitio / aplicación que requiera una contraseña, el administrador de contraseñas completará los detalles por usted. Algunos de los mejores incluso proporcionan soporte para sistemas de 2 factores y biométricos. Obviamente, no hay una bala de plata, pero pueden solucionar algunos de los inconvenientes asociados con la autenticación con solo un pequeño aumento en el riesgo, que puede compensarse mediante el uso de contraseñas más aleatorias y más fuertes, etc.

    
respondido por el Tim X 13.02.2015 - 00:34
fuente

Lea otras preguntas en las etiquetas