¿Cómo deben distribuirse las contraseñas múltiples administradas centralmente y generadas por el sistema de manera segura (si las hay)?

3

En un sistema donde un solo usuario administrador es responsable de la creación de múltiples (hasta 500) cuentas de usuario, incluidas las contraseñas y estas cuentas de usuario no tienen una dirección de correo electrónico asociada. ¿Cómo abordaría la distribución de los detalles de inicio de sesión?

Actualmente el administrador debe elegir una contraseña para cada usuario. Esto da como resultado uno o más escenarios:

  • el administrador usa la misma contraseña para cada usuario;
  • el administrador no crea cuentas porque el proceso es laborioso;
  • el administrador escribe las contraseñas (o las almacena de otra manera) para su distribución posterior.

Estoy considerando un cambio en el sistema mediante el cual generamos un código / frase de contraseña única para cada usuario para que el administrador no tenga que crear cada uno. Luego permitiríamos al usuario descargar estos detalles (es decir, una lista de nombres de usuario y frases de contraseña) para su posterior distribución. Obviamente, si hiciéramos esto, no podríamos cifrar las contraseñas como lo hacemos ahora. Así que creo que esta es una pregunta clásica de usabilidad contra seguridad. ¿Es nuestro cambio propuesto una locura? ¿En qué no hemos pensado? ¿Estoy siendo lo suficientemente paranoico / no lo suficientemente paranoico?

Más antecedentes : cada usuario agregado debe tener un nombre de usuario único dentro del sistema. Las direcciones de correo electrónico no se recopilan específicamente porque los usuarios son menores de 18 años (algunos son tan jóvenes como 6) y la política de la empresa es reducir los datos personales asociados con cada usuario al mínimo absoluto. Esto tiene el beneficio de significar que el acceso no autorizado sería muy bajo riesgo . Se puede ganar muy poco al acceder al sistema a menos que sea el usuario correcto y no se puedan obtener datos personales más allá del nombre del usuario.

    
pregunta Willl 28.11.2017 - 15:12
fuente

2 respuestas

1

Aproveche su relación de Confianza de Maestros / Maestros.

Sus maestros ya tienen una relación de confianza con usted. Use esa relación para administrar el acceso para el estudiante.

Si puede proporcionar una interfaz de profesor, eso puede mejorar el sistema en general y debería reducir enormemente la sobrecarga de administración.

Administra a tus maestros de forma segura.

  • Dirección de correo electrónico.
  • Restablecer contraseña a través de la dirección de correo electrónico.
  • Seguridad fuerte.

Proporcione una interfaz para que sus maestros.

  • Crear estudiantes.
  • Restablecer contraseñas.
  • Cuando sea necesario con el estudiante en la mano.
    • El administrador presiona el botón Establecer contraseña.
    • El estudiante ingresa la contraseña.
    • El estudiante golpea Guardar.

Estudiantes:

  • Accede al sistema desde la PC del estudiante.
  • Es posible que puedan cambiar la contraseña ellos mismos.
  • Pregunta al administrador / profesor cuando es necesario para restablecer la contraseña.

Sugerencias alternativas

Opción 1 elimine por completo la información de identificación personal (PII) y dé a cada estudiante un inicio de sesión basado en el curso y el número de estudiante. (comp101-0001, comp101-0002, comp101-0003)

  • El profesor restablece todas las contraseñas a la vez.
  • Luego emita un conjunto estándar de tarjetas de estudiante con contraseñas iniciales para estudiantes para empezar.
  • Las contraseñas iniciales se pueden actualizar en cada clase, el profesor puede cortar la página de las contraseñas iniciales y se le entrega a un alumno una hoja de papel.
  • La seguridad no es un problema porque la contraseña inicial cambia después del primer uso.
respondido por el Andrew Russell 29.11.2017 - 00:23
fuente
1

Voy a darle una oportunidad:

Distribución

Mi sugerencia sería dejar el sistema de distribución como está, especialmente porque no parece haber un método más seguro para distribuir las contraseñas de forma segura. Si realmente desea distribuir las contraseñas utilizando un servidor web, le recomendaría que proporcione a cada usuario un enlace único de tiempo limitado. El usuario ingresa el enlace en un navegador y está conectado, pero debe ingresar una nueva contraseña antes de que el acceso normal pueda continuar. Esto simula un intercambio típico de restablecer contraseña a través del correo electrónico, excepto que el único enlace único se imprime en papel en lugar de enviarlo por correo electrónico.

Creación de contraseña única

Mi sugerencia sería crear una tabla simple en la base de datos de tu elección que tenga dos columnas: nombre de usuario y contraseña.

Uso postgresql, pero que yo sepa, todos los sistemas de base de datos tienen un calificador único para una restricción de columna. Puede tener contraseñas de salida de un generador de contraseñas aleatorias y compararlas con las actuales en la base de datos ... o puede emitir un UUID como contraseña. Se garantiza que un UUID es único, y si se combina con la idea del vínculo de enlace en la sección de distribución solo se deberá ingresar una vez. En cualquier caso, el generador de contraseñas aleatorias combinado con una lista de contraseñas actuales es bastante fácil de implementar y automatizar. Además, la tabla de contraseña inicial se puede exportar fácilmente o incluso vincularse directamente a la tabla de contraseña de la base de datos de la aplicación web.

Cambios de administración

Si implementa una tabla de base de datos con un generador automático de contraseñas aleatorias, el administrador de la aplicación web simplemente necesita ingresar un nuevo nombre de usuario y el sistema creará una contraseña. Si implementa un método de enlace de distribución de contraseña inicial único, la distribución en papel solo cambiará el contenido ... en lugar de una contraseña, habrá un enlace.

Asuntos legales y trato con menores

En algunas localidades, hay leyes específicas que detallan los sistemas de información / computación y los menores. Si no está al tanto de las leyes en su área, le sugiero que averigüe si la ejecución de un sistema que puede incluir información de identificación personal (PII) de menores tiene alguna implicación especial de seguridad y / o registro / registro.

Preguntas

¿Algo de esto tiene sentido? ¿Servicial? ¿O simplemente confuso?

Addendum

Tras una consideración más a fondo, me doy cuenta de que omití algunas preocupaciones de seguridad específicas, así como algunas sugerencias para la implementación.

Almacén de contraseña de la base de datos

Es una mala práctica de seguridad almacenar contraseñas de texto simple. Hay al menos dos opciones decentes al almacenar contraseñas en una base de datos:

  1. Almacene un hash salado de una manera en lugar de la contraseña.
  2. Almacene la contraseña de texto sin formato en una columna cifrada usando la clave pública del propietario de los datos.

En este caso de uso particular, de contraseñas generadas centralmente e inmutables, recomendaría almacenar las contraseñas en una columna cifrada en una base de datos separada y un sistema separado de la aplicación web. Por supuesto, la columna de contraseña de la aplicación web debe contener el hash con sal de la contraseña según la consideración de seguridad habitual. Además, la exportación de una columna de contraseñas en formato salted y hash como un vector o tabla csv se automatiza fácilmente con el único requisito de administración de que el propietario de los datos ingrese la frase de contraseña de la clave privada.

Si se utiliza la idea de enlace web, entonces no es necesario rastrear las contraseñas de texto sin formato, ya que el administrador nunca generará una. Pero entonces, el administrador no tendría un registro de la contraseña de texto sin formato. Sin embargo, en la mayoría de los casos, el acceso a la contraseña de texto simple real no es necesario.

Tasa de crecimiento de datos

Según la descripción de su caso de uso, se supone que su almacén de datos crecerá lentamente o no crecerá en absoluto. Parece que tiene una inscripción progresiva en la aplicación con un número total de usuarios estático a lo largo del tiempo, más o menos algún búfer. Si es verdadero, las consideraciones de escalabilidad más allá del número actual de usuarios no son aplicables.

Lecturas adicionales

respondido por el RubberStamp 28.11.2017 - 21:55
fuente

Lea otras preguntas en las etiquetas