Impedir que usuarios registrados compartan contraseñas [cerrado]

5

A continuación se muestra una propuesta para tratar una situación de seguridad del sitio web. Me pregunto si parece factible, tanto desde el punto de vista técnico como de usabilidad. Quiero asegurarme de que la propuesta contenga errores evidentes.

  1. El sitio web

El sitio web en cuestión es un sitio web de la escuela donde los estudiantes pueden comprar varios artículos. Estos estudiantes obtienen una cuenta en el sitio web con un nombre de usuario y contraseña, que pueden usar para iniciar sesión. Una vez que inician sesión, tienen acceso a páginas protegidas con contenido privado que no están disponibles para el público en general.

  1. El problema de seguridad

Los propietarios del sitio web desean evitar una situación en la que un solo estudiante se registra en el sitio web, obtiene un nombre de usuario y contraseña, y luego hace circular esas credenciales a un círculo de amigos que luego pueden iniciar sesión en el sitio web e ilegalmente. Ver el contenido privado.

  1. La solución

La idea central que se nos ha ocurrido para resolver este problema de seguridad es permitir que cada estudiante inicie sesión en el sitio web solo en dos dispositivos. Una vez que un estudiante inicia sesión en dos dispositivos diferentes, están restringidos a esos dos dispositivos. Si luego intentan iniciar sesión en un tercer dispositivo, el sistema simplemente no les permitirá hacerlo. Entendemos que otros sitios web que ofrecen contenido privado, como Netflix, utilizan este enfoque.

  1. Implementación

Se me ocurren dos ideas para implementar la medida de seguridad anterior: la dirección IP y las cookies. Descartamos las direcciones IP que pueden cambiar, y elegimos cookies. Los sitios web como amazon.com permiten a sus clientes iniciar sesión una vez, y luego, cada vez que vuelven al sitio web, siempre son reconocidos. Esto es casi seguro que se logra a través de cookies.

Por lo tanto, cada vez que un estudiante inicie sesión, almacenaremos una cookie en su dispositivo. Y también almacenaremos esta cookie en nuestra base de datos bajo la cuenta de ese estudiante. Por lo tanto, cada vez que un alumno inicie sesión en cualquier dispositivo, verificaremos si el dispositivo en el que está ingresando actualmente contiene la cookie que hemos almacenado para ese alumno. Si no lo hace, sabremos que el estudiante está iniciando sesión en un dispositivo diferente. Por lo tanto, podremos saber cuántos dispositivos está intentando iniciar sesión el estudiante.

  1. Inconvenientes

Hemos identificado al menos tres posibles inconvenientes de este enfoque:

  • Borrar cookies. Las personas pueden, por una variedad de razones, elegir borrar las cookies de su computadora.
  • En ocasiones, es posible que una persona auténtica no tenga acceso a su dispositivo habitual y desee iniciar sesión en una computadora diferente.
  • La gente compra nuevos dispositivos de vez en cuando.
  • Estos son ejemplos de situaciones en las que un usuario de buena fe, por motivos legítimos, desea iniciar sesión, pero no podrá hacerlo debido a la restricción de seguridad de dos dispositivos del sitio web.

Tenemos algunas ideas sobre cómo integrar la lógica en el sistema para hacer frente a tales situaciones, que podemos implementar en el futuro, pero por el momento, sentimos que tales situaciones son lo suficientemente raras como para que no sea necesario. manejarlos programáticamente.

Más bien, por ahora, en el caso de que un estudiante esté bloqueado, recibirán una pantalla con un mensaje que explica por qué no les hemos permitido ingresar al sistema, y un botón en el que pueden hacer clic en el que generará automáticamente una correo electrónico a los administradores del sitio.

El correo electrónico les informará que un estudiante desea iniciar sesión en un tercer dispositivo. Los administradores pueden ponerse en contacto con el estudiante y, si están satisfechos de que la necesidad es de buena fe, podrán seguir los pasos del CMS para permitir la entrada del estudiante.

El tamaño del cuerpo estudiantil es lo suficientemente manejable para que el enfoque anterior sea viable.

  1. aviso justo

Informaremos a los estudiantes sobre estas medidas de seguridad cuando su cuenta se active para evitar sorpresas desagradables.

    
pregunta oyvey 16.11.2015 - 09:09
fuente

15 respuestas

53

Lo que estás tratando de hacer es inútil. La información no puede ser contenida. No se puede evitar que alguien pase información. Cuando no pueden compartir sus inicios de sesión, simplemente copian y pegan el texto. Cuando desactivas la copia y el pegado (los métodos comunes para hacer esto pueden omitirse fácilmente, por cierto), harán capturas de pantalla. Cuando encuentres alguna forma de hacer que las capturas de pantalla sean imposibles (no se me ocurrió ninguna), se lo leerán el uno al otro. Todo lo que logrará es perjudicar la experiencia del usuario para los usuarios legítimos sin realmente evitar el abuso.

Pero cuando realmente desea seguir esa ruta, puede buscar formas alternativas de detección de huellas digitales en el navegador que la dirección IP y las cookies. Hay un montón de otra información que un navegador web transmite en cada solicitud de página, y con frecuencia es lo suficientemente única como para identificar a un usuario. La Electronic Frontier Foundation tiene una demostración interesante con su sitio web Panopticlick .

Entre las técnicas utilizadas están:

  • Cadena de agente de usuario (autoidentificación del navegador)
  • encabezados HTTP_ACCEPT
  • Complementos instalados y sus números de versión
  • Fuentes instaladas
  • Zona horaria
  • Tamaño de la pantalla y profundidad de color
  • Técnicas de cookies alternativas (almacenamiento local, almacenamiento persistente en complementos como Flash)

Tenga en cuenta que todos estos métodos de identificación son propensos a falsos negativos porque muchos de ellos pueden cambiar en cualquier momento. Solo debe considerar que una huella dactilar proviene de un nuevo dispositivo cuando varias propiedades cambian drásticamente simultáneamente. Cuando la diferencia con el perfil del dispositivo anterior es menor, debe actualizar la huella digital del dispositivo en silencio.

    
respondido por el Philipp 16.11.2015 - 11:08
fuente
36

Además de las respuestas existentes, solo quiero subrayar que las cookies no pretenden ser un almacenamiento persistente confiable. Pueden borrarse en muchas ocasiones sin pedir el consentimiento del usuario, por ejemplo, después de un bloqueo del navegador , una actualización, la corrupción del perfil, lo que sea.

No puede simplemente enviar un aviso justo a sus usuarios y esperar que guarden las cookies. Simplemente no está bajo su control.

Lo que realmente podría impedir que los usuarios compartan sus credenciales es la posibilidad de abuso (por ejemplo, nunca le daré mi contraseña de SO, no necesariamente porque los términos y condiciones así lo digan, sino porque podrá abusar de ella haciéndome pasar por mí) ). Verifique si los estudiantes ya tienen algún tipo de cuenta administrada por la escuela (como correo electrónico de la escuela, intranet, etc.) y si podría delegar la autenticación a este sistema existente (para que los estudiantes puedan iniciar sesión con el correo electrónico de su escuela y contraseña como credenciales). No hace falta decir que es poco probable que los estudiantes compartan dichas credenciales con amigos para que vean la tienda.

    
respondido por el Dmitry Grigoryev 16.11.2015 - 13:57
fuente
13

Dejando de lado el hecho de que esto es inútil, que ya se ha establecido, existe una vía adicional que podría considerarse: la autenticación obligatoria de dos factores. Si necesita que cada cuenta de inicio de sesión registre un token 2FA (Google Authenticator, etc.) o simplemente haga clic en un enlace de verificación que se envió a través de un canal lateral si parece que es un usuario diferente, podría levantar la barrera de entrada.

    
respondido por el smitelli 16.11.2015 - 16:24
fuente
7

Si tu pregunta es "¿funcionará?", la respuesta es no. Sin ninguna huella dactilar adicional, es bastante trivial que los estudiantes compartan los datos de las cookies, haciendo que tu esquema sea completamente impotente. (Y si tiene huellas digitales adicionales, entonces realmente no necesita la cookie de sesión).

Si su pregunta es "es una buena idea", la respuesta sigue siendo no. Además de no lograr lo que desea, causará problemas a los usuarios legítimos. Este esquema será peor en todas las formas medibles que solo pedirle a los estudiantes que no compartan las cuentas.

Si tu pregunta es "¿Se puede hacer esto de una mejor manera?" bueno, lo siento, pero la respuesta sigue siendo no. Algunas formas de toma de huellas dactilares, como se menciona en la respuesta de @Philipp, pueden ayudarlo a hacer un mejor seguimiento de cuántos usuarios únicos acceden a su contenido, y tal vez incluso controlar cuántos directamente acceden a él. Como se señaló, esta es una ciencia inexacta y no será completamente precisa.

Sin embargo, el problema es que su objetivo declarado no es controlar cuántos usuarios directamente acceden a la información; es cuántos acceden a la información en absoluto. Algunas veces puede hacer esto más difícil / molesto a través de DRM, pero simplemente, literalmente, no es posible restringir completamente los datos con medidas tecnológicas. Una vez que los estudiantes tienen acceso a los datos, no puede impedir que compartan esos datos, completamente fuera de su servicio. (Nota: no solo es probable que agregar DRM sea un proyecto mucho más grande de lo que está esperando, sino que también es útil sobre todo para datos binarios como ejecutables o videos. Si una parte importante de sus datos privados es texto, es posible que no ser capaz de hacer mucho en absoluto.)

La mejor solución es simplemente pedir a los estudiantes que no lo hagan. Si no puede confiar los datos privados a los estudiantes, entonces no debe hacer que los datos estén disponibles en absoluto.

Si todavía estás decidido a hacer esto (espero que no lo estés), mi recomendación es que lo mejor que puedes esperar es incluir de alguna manera entradas ficticias en los datos, que se generan mediante programación en función de las cuentas de usuario de los estudiantes. Eso no impedirá que los estudiantes compartan, pero si los datos surgen en algún lugar que no se supone que deben estar, es posible que al menos tengas la oportunidad de rastrear quién los compartió originalmente.

    
respondido por el GrandOpener 16.11.2015 - 23:34
fuente
6

Menciona Netflix, pero hay diferencias importantes entre su propuesta y Netflix. Netflix impone un límite en el número total de dispositivos que pueden ser "autorizados previamente", es decir, donde el usuario no tiene que volver a ingresar una contraseña o código de autorización, al mismo tiempo, pero el límite es mayor (era seis; ahora puede ser 50), y si el usuario alcanza el límite, no rechaza la nueva autorización, simplemente desautoriza el dispositivo menos usado recientemente. También impone un límite de solo un dispositivo (o dos o cuatro, dependiendo de la cuenta) que realmente transmite un video al mismo tiempo.

También tenga en cuenta que al usar una cookie sola para identificar un dispositivo, aparecerá un usuario con una sola computadora que cambia de navegador (por ejemplo, IE y Firefox, o IE y Chrome, o IE y Opera, o Chrome y Firefox) estar usando dos dispositivos Si el usuario llama al soporte técnico para alguna aplicación y se le dice "borre sus cookies" (un primer paso común), parecerá que está usando un nuevo dispositivo. Incluso las tabletas Android de mis hijos tienen dos navegadores, el predeterminado de Android y Chrome.

Si el "contenido" es imágenes o texto, es prácticamente imposible evitar que se copie, en el peor de los casos, con una cámara apuntada a la pantalla.

Por lo tanto, su propuesta tiene un error evidente, al menos desde el punto de vista de la usabilidad.

    
respondido por el david 16.11.2015 - 17:00
fuente
5

Permítanme comenzar con esto: No creo que tu solución te ayude a evitar que compartan con tus amigos lo que sea que esté en ese sitio web.

¿Por qué?
¿Qué sucede si comparten una pantalla y luego les muestran qué hay en ese sitio? En términos de compartir, no puedes parar eso. Pueden tomar capturas de pantalla, imprimir cosas, grabar videos, etc.
La alternativa
A: Una forma de hacerlo es restringir que la tienda web solo esté disponible en la red de la escuela, en las PC de la escuela. La razón por la que desea hacer esto es porque puede:

  1. Controla quién está iniciando sesión.
  2. Controla la PC y asegúrate de que no puedan compartir cosas.

Dicho esto, todavía pueden tomar fotos con sus teléfonos y compartir cosas de esta manera.

B: La cantidad de esfuerzo y seguridad que implementas debe estar directamente relacionada con lo que estás tratando de proteger. Tal vez quiera reconsiderar toda la aplicación web súper segura y permitir que las personas inicien sesión regularmente y desaconsejar compartir. Luego puede hacer una "revisión" de la actividad y, si las personas no utilizan sus cuentas de manera legítima, restrinja el acceso desde la tienda web.

    
respondido por el sir_k 16.11.2015 - 10:54
fuente
4

Implementé un mecanismo similar en uno de mis sitios web de alto tráfico con contenido de pago. Lo logré utilizando cookies de sesión del navegador. La cookie de la sesión actual se almacena en la base de datos, y cuando la cookie actual cambia porque la persona que inició sesión desde otro lugar, la primera sesión debe iniciar sesión nuevamente. Esto no necesariamente evitaría compartir las credenciales, pero sí evita que múltiples usuarios usen el sitio simultáneamente. Si dos o más usuarios deciden usar el sitio simultáneamente, entonces todos están constantemente teniendo que volver a iniciar sesión en cada visita a la página, lo que probablemente sería lo suficientemente molesto como para evitarlo. En algún momento, el titular de la cuenta original se hartará y cambiará su contraseña y no la compartirá nuevamente.

Dicho esto, después de realizar algunas pruebas con esta función, decidimos desactivarla. Hicimos esto por varias razones:

  1. La función estaba causando más dolor de cabeza a nuestros usuarios existentes que su utilidad en la prevención de compartir cuentas. Muchos de nuestros usuarios querían usar nuestro sitio tanto en casa como en el trabajo, y no les gusta tener que volver a iniciar sesión varias veces al día. Es aún peor si lo usan en su dispositivo móvil o con varios navegadores. Consideramos aumentar el número de sesiones permitidas, pero decidimos no hacerlo.
  2. Nuestro producto es lo suficientemente económico como para que la mayoría de las personas prefiera pagar por su propia cuenta en lugar de molestarse en compartir.
  3. Sabemos que algunas personas están compartiendo, y simplemente no nos importa. La mayor parte del intercambio que vemos es de países donde nuestro producto puede ser percibido como caro por sus estándares de ingresos. No tengo ningún problema con los amigos de esos países que se reúnen y pagan por nuestro producto como un equipo. No es probable que estemos perdiendo ventas de todas formas, si cada individuo no pudiera pagar el precio por sí mismo.
respondido por el TTT 16.11.2015 - 18:21
fuente
2

Ligeramente diferente de las respuestas leves, pero propongo agregar información muy personal a la cuenta de usuario para que el estudiante no quiera compartir su contraseña.

Por ejemplo, vincule su cuenta con la base de datos de su grado escolar: no quiere que nadie vea sus marcas. Además, agregue cosas como el número de teléfono, la edad, la dirección, los nombres de los padres, etc. que no pueden ser modificados por el usuario mismo sino solo por la escuela a cargo.

Mi escuela también usa esta forma: mi escuela tiene un sitio web en el que entregar los ensayos (p. ej.), y para evitar que se compartan las contraseñas, se vinculan con su agenda, marcas, datos personales, etc.

Como han dicho otros, identificar y distinguir completamente a personas / cuentas es imposible . ¡Mucha suerte!

    
respondido por el Thomas W 16.11.2015 - 22:23
fuente
2

Lo que estás proponiendo no funcionará. Las personas usan diferentes navegadores, entran en modo de privacidad, inician sesión en una computadora de trabajo, inician sesión desde su teléfono, inician sesión desde otra computadora todo el tiempo. Se les dice a las personas que borren las cookies todo el tiempo solo para solucionar otros problemas. Yo mismo tengo varias computadoras y uso múltiples navegadores. Su sitio sería totalmente inutilizable para mí dentro de uno o dos días. Su sitio web será esencialmente inutilizable muy rápidamente, y los estudiantes lo bombardearán con solicitudes para iniciar sesión constantemente. ¡Las cookies hacen que el almacenamiento persistente sea realmente terrible porque nunca fueron pensadas para persistir!

Netflix sí controla la cantidad de vapores que un solo usuario puede transmitir en un momento dado. Pero lo hacen de forma activa, no solo confían en una cookie que siempre persiste. Si realmente necesita controlar la cantidad de inicios de sesión, debe hacer un seguimiento de la cantidad de inicios de sesión ACTIVOS. Eso significa rastrear si la página del navegador está abierta, no simplemente un enfoque de cookies. Una forma de hacerlo es a través de javascript que se ejecuta en su sitio web y que envía un ping al servidor de forma activa. Cuando ya no se reciba el ping, desactive ese inicio de sesión.

Si no realiza un seguimiento de los inicios de sesión activos, se encontrará en un mundo de dolor. Puede pensar que puede fingir esto por un tiempo porque es pequeño, pero su sitio seguirá siendo inutilizable, y todo porque está tratando de evitar que las personas compartan inicios de sesión.

    
respondido por el Steve Sether 16.11.2015 - 22:55
fuente
1

Asegúrese de que las credenciales únicas de cada persona den acceso a información privada que la persona no quiera compartir con otras personas. Información de la tarjeta de crédito, calificaciones, dirección del hogar, número de teléfono, correo electrónico privado, etc. Permita que las compras se facturen al estudiante más adelante pero que se puedan enviar a cualquier dirección. Y así sucesivamente.

Esto supone un gran incentivo en el sistema para que los usuarios mantengan sus credenciales en secreto y se autocontrolen. Nadie, por ejemplo, entregará sus credenciales bancarias a otra persona.

Esto se puede lograr no solo proporcionando la información confidencial en la aplicación, sino también forzando la reutilización de un inicio de sesión que funciona en otro sistema que sí proporciona esa información, tal vez incluso en una especie de OpenID.

Para responder a la idea de que los estudiantes no son muy conscientes de la seguridad, estoy convencido de que hay una manera de hacerlo que funcionará. Coloque la información confidencial en la página de inicio y en la parte superior de cada página (o al menos un enlace para ir directamente allí, grande y claramente etiquetado).

Cualquier estudiante que encuentre que se está utilizando su información o que se está cambiando su cuenta se apresurará a informarle y cerrará el acceso a otros.

    
respondido por el ErikE 16.11.2015 - 23:55
fuente
1

Un problema similar que Amazon ha tenido que resolver implica su " Hogares " característica. Amazon le permite unirse a cuentas para compartir algunos beneficios de Amazon Prime (por ejemplo, envío gratuito de 2 días). La intención es que una familia solo necesite comprar Prime una vez, pero esto obviamente está abierto al abuso, donde las personas podrían unirse a cuentas con amigos y dividir el costo de Prime.

Amazon mitiga este problema al hacer que los métodos de pago formen parte de las cuentas compartidas, por lo que cualquier persona que se una a un "Hogar" también puede ver y usar sus métodos de pago. Sé que sin esto, me sentiría tentado a compartir cuentas con amigos casuales, pero ahora que los métodos de pago son compartidos, ¡de repente soy mucho más exigente con quién lo comparto!

    
respondido por el loneboat 17.11.2015 - 16:25
fuente
0

Muchas empresas adoptan un enfoque de autenticación de dos factores en el que el usuario obtiene un código SMS en un número de teléfono registrado previamente que se utiliza para iniciar sesión al ingresar las credenciales.

Si bien esta es una medida de seguridad, tiene el efecto secundario de dificultar (si no imposible) compartir las credenciales con varios usuarios. También agregue a esta sesión la caducidad cada pocas horas, dependiendo de la frecuencia con la que los usuarios inicien sesión en su sitio.

También puede usar cookies para averiguar si un usuario ha iniciado sesión en varias sesiones simultáneamente, lo que podría implicar que el usuario ha compartido sus credenciales.

Obviamente, esta no es una solución perfecta para su problema, pero es una solución factible que puede aplicarse para dificultar la reutilización de credenciales entre múltiples usuarios.

    
respondido por el Chirag Bhatia - chirag64 16.11.2015 - 19:03
fuente
0

Puede desarrollar un sistema donde las personas puedan iniciar sesión utilizando la verificación biométrica. P.ej. Se puede tomar una fotografía con la cámara web y luego el software extrae datos de lo que para la misma persona es único, lo que no cambia en escalas de tiempo del orden de algunos años.

    
respondido por el Count Iblis 16.11.2015 - 22:05
fuente
0

Sugeriría rangos de IP. Esto brindará una protección suficiente contra el intercambio de cuentas, pero seguirá permitiendo cambios de IP.

El rango de IP válido para el usuario en cuestión se puede determinar mediante una búsqueda automática a WHOIS. (En realidad, WHOIS está diseñado para permitir búsquedas automáticas). Luego, puede solicitar una IP como 94.254.51.234 y obtener una respuesta como 94.254.0.0 - 94.254.127.255. Luego agrega la entrada "94.254.0.0 - 94.254.127.255" a su base de datos de autenticación.

Esto solo debe hacerse cada vez que un usuario inicie sesión desde un dispositivo "no autorizado", y su número autorizado de dispositivos sea inferior a 2.

Como adición, puede hacer que el inicio de sesión desde las computadoras de la escuela sea "Siempre libre", por ejemplo, no es necesario que afecte la autorización.

Esto hará que el sistema no afecte a nada de lo que haga el usuario en la computadora cliente (como borrar las cookies), y le permitirá iniciar sesión desde un número ilimitado de dispositivos en una casa específica (como la tableta, PC, móvil y tal).

El límite de 2 rangos de IP es bastante bueno, ya que el usuario usualmente iniciará sesión desde casa, móvil y escuela. Entonces el hogar y el móvil serían dispositivos "autorizados", y la escuela es un dispositivo "gratuito".

Otra forma es darle al usuario un token Yubico U2F (que se vende por $ 18 en Yubico), que reemplazará el nombre de usuario / contraseña. Solo obtienen UNA ficha, y la inscripción de una nueva ficha costará como $ 50. Entonces será mucho más difícil compartir el acceso que solo compartir un nombre de usuario / contraseña por teléfono. Combinado con la restricción del rango de IP, sería muy difícil compartir el acceso.

    
respondido por el sebastian nielsen 17.11.2015 - 11:17
fuente
0

EDITAR: En resumen, tu solución es mala. Aquí hay una alternativa.

...

Como entiendo esto, este es un problema común que se presenta de una manera poco común.

¿Autenticación multifactor? Les da un inicio de sesión regular y, cuando intentan iniciar sesión, les envía un texto que contiene un código aleatorio de 5 dígitos (o lo que sea) que deben ingresar.

Esto significa que se tienen en cuenta dos factores al iniciar sesión en esa persona:

  • Algo que sabes (el nombre de usuario y la contraseña)
  • Algo que tienes (el teléfono móvil asociado con la cuenta).

Dado que esta es una escuela que puede contener información confidencial, este tipo de enfoque se debe usar de manera general (ya que las unidades compartidas de la escuela a menudo contienen fotos y demás).

Este enfoque es bastante fácil de implementar a través de una API de SMS.

NOTA: Además, un enlace de correo electrónico con una confirmación puede funcionar, un dolor, pero si la seguridad de los niños es su prioridad aquí, puede estar dispuesto a tomar esta ruta.

    
respondido por el Prinsig 17.11.2015 - 20:44
fuente

Lea otras preguntas en las etiquetas