Protección de inicio de sesión en el sitio web con extensión de Chrome

2

Bien, estoy desarrollando sistemas muy privados recientemente, y estoy buscando protección de inicio de sesión de administrador. Soy un desarrollador de PHP con conocimientos esenciales de js / jq. Mientras manejé la mayoría de las cosas hasta ahora, estoy buscando proteger el proceso de inicio de sesión. Ahora, por lo que entiendo, solo internet explorer puede conectarse a un dispositivo (digamos un CD o una unidad de memoria) y buscar archivos, solo para permitir el inicio de sesión después, así que estoy buscando algo que realmente pueda usar. Así que mi idea fue una extensión de Chrome, desarrollada internamente y sin publicar, que realizaría algo bastante complejo y así protegería la página de inicio de sesión. Por lo tanto, podría tener una página de inicio de sesión en blanco, o una llena de spam agregados sin formulario de inicio de sesión en cualquier lugar, pero al hacer clic en la extensión, podré iniciar sesión.

Además, estoy buscando ideas, no necesariamente código, y aunque entiendo que es una pregunta genérica, no he podido recopilar muchos datos sobre esto como la búsqueda de "inicio de sesión protegido con la extensión de Chrome" y latas similares ser bastante engañoso

Otra cosa que encontré que es genial, pero no estoy seguro de si es utilizable, es una etiqueta NFC. En teoría, tendría el sitio web que controla el receptor NFC conectado a la PC, si encuentra un dispositivo específico encima, le permite iniciar sesión, de lo contrario, no lo hace. Solo una idea. Teniendo en cuenta que el entorno desde el que inicias sesión está bastante controlado (siempre es una PC, siempre ventanas, siempre Chrome, siempre el mismo país), no dudes en darme una idea de cómo resolverías esto. Sin invertir mucho dinero si es posible.

    
pregunta Predrag Beocanin 01.01.2014 - 18:14
fuente

3 respuestas

1

Después de leer todos los comentarios de esta publicación (hasta ahora), no hay mucho que pueda aportar, pero gracias por compartir. Habiendo dicho eso, aquí están mis opiniones sobre algunos comentarios escritos anteriormente.

Acerca de la solución de marcadores, el problema surge cuando alguien tiene acceso a sniffers, proxy o registros de http, incluso al historial del navegador de la máquina.

Me gusta la idea de @samfisher, usar un token dinámico (como el "autenticador" de Google). Si desea enviar el valor secreto en segundo plano (más fácil de usar), debe mantener la extensión alejada de personas no deseadas, una vez que la extensión lo instale en un navegador específico, el código está disponible para esa persona. Solo para usar como referencia [1]

Restringir por dirección IP siempre es una buena idea (funciona principalmente en intranet o usando VPN

La solución SSL / TLS es lo que creo que necesitas, en cierto modo, funciona como una clave, por otro, encripta el canal. Instalar una vez, trabajar cada vez (hasta que caduque)

En la mayoría de los casos, la máquina del usuario debe estar segura.

PS: siempre puedes aceptar un encabezado http específico del usuario-agente definido por ti para permitir las conexiones entrantes, algunas compañías principales lo habían hecho en el pasado [2];)

[1] enlace 's-security-token / #. U5CvIM9dW24

[2] enlace

    
respondido por el Pérez P. Javier E. 05.06.2014 - 20:29
fuente
3

Parece que potencialmente estás buscando una forma física de autenticación de dos factores. Es posible que desee consultar YubiKey . Es fácil agregar dos factores de autenticación a una aplicación web de PHP (incluso tienen bibliotecas de PHP para usted). Las claves en sí son muy asequibles (aunque no conozco su presupuesto)

Si realmente no necesita un dispositivo físico, entonces definitivamente vaya con lo que sugiere su cooperación. Los certificados son totalmente gratuitos y no requieren casi ninguna interacción del usuario (aunque eso puede ser un inconveniente si el sistema de usuarios no es seguro).

Habría agregado esto como un comentario, pero no tengo suficientes "puntos". Tan tonto.

respondido por el waitingToCompile 05.02.2014 - 20:57
fuente
0

Según tengo entendido, una solución ideal lograría lo siguiente:

  • Proteja el proceso de inicio de sesión de su aplicación al requerir una etapa adicional de autenticación antes de otorgar acceso a la página de inicio de sesión (es decir, reducir la posibilidad de un intento de fuerza bruta en el nombre de usuario / contraseña, etc.).
  • Proporcione un factor de autenticación adicional (aunque no ha mencionado específicamente el factor múltiple, los ejemplos de NFC, unidades USB, etc. pertenecen a esto).

No dudo que una extensión de Chrome bien escrita o similar pueda lograr esto. Para ser una forma efectiva de autenticación, realmente debería estar verificando un secreto que solo sería poseído por un administrador válido (yo digo que lo poseo, ya que idealmente verificaríamos algo que el usuario tiene : sepa que el otro factor de autenticación es una contraseña, algo que el usuario sabe ). Hay una serie de desafíos inherentes, entre ellos:

  • la generación de una clave segura (por ejemplo, un certificado) que es difícil de falsificar.
  • gestión de claves (¿cómo se almacenará el secreto de forma segura?).
  • comunicación segura con el servidor (es decir, ¿enviaría toda la clave o aprovecharía la respuesta de desafío? ¿A través de qué protocolo?).
  • el punto final del lado del servidor: si se usa HTTP para la comunicación con el servidor, es probable que el servidor en algún punto, o varios puntos, necesite recibir valores a través de parámetros. El código del lado del servidor aquí debería implementarse de manera segura al igual que la propia página de inicio de sesión.

En términos prácticos, una extensión de Chrome podría potencialmente leer un archivo del disco, aunque el usuario tendría que seleccionarlo ellos mismos. enlace

Dadas las dificultades presentadas anteriormente con respecto a la implementación de este tipo de sistema, recomendaría la alternativa antigua y razonablemente bien establecida de Certificados de Cliente SSL / TLS . Esto proporcionaría un factor de autenticación adicional (el administrador debe tener un certificado válido) y, de lo contrario, impediría el acceso a la página de inicio de sesión (o cualquier comunicación HTTP). Además, la generación de claves, la gestión, el transporte, etc., se implementan en el servidor / clientes SSL / TLS, y son relativamente confiables dado el gran escrutinio de la industria.

Una implementación de ejemplo solo para dar una idea de lo que está involucrado: enlace

    
respondido por el itscooper 06.01.2014 - 18:53
fuente

Lea otras preguntas en las etiquetas