¿Es una buena idea "golpear la contraseña"?

104

Con el bloqueo de puertos, debe "golpear" puertos específicos en un orden definido para exponer un puerto en el que se ejecuta el servicio.

¿Qué hay de eliminación de contraseñas ? Por ejemplo, tiene tres contraseñas: A , B y C . Ninguno de ellos es correcto por sí mismo, pero ingresados uno por uno en este orden, le otorgarán acceso.

Algunos escenarios para aclarar esta idea:

Escenario 1.

  • Usted: Contraseña A .
    • Servidor: contraseña no válida.
  • Usted: Contraseña B .
    • Servidor: contraseña no válida.
  • Usted: Contraseña C .
    • Servidor: Contraseña aceptada .

Escenario 2.

  • Usted: Contraseña A .
    • Servidor: contraseña no válida.
  • Usted: Contraseña C .
    • Servidor: contraseña no válida.
  • Usted: Contraseña B .
    • Servidor: contraseña no válida.

Escenario 3.

  • Usted: Contraseña A .
    • Servidor: contraseña no válida.
  • Usted: Contraseña B .
    • Servidor: contraseña no válida.
  • Usted: Contraseña B .
    • Servidor: contraseña no válida.
  • Usted: Contraseña C .
    • Servidor: contraseña no válida.

Escenario 4.

  • Usted: Contraseña A .
    • Servidor: contraseña no válida.
  • Usted: Contraseña A .
    • Servidor: contraseña no válida.
  • Usted: Contraseña B .
    • Servidor: contraseña no válida.
  • Usted: Contraseña C .
    • Servidor: Contraseña aceptada .

No puedo pensar en ningún inconveniente de este método en el inicio de sesión de contraseña única regular. Además, hace que los ataques de diccionario sean exponencialmente más difíciles con cada contraseña agregada.

Me doy cuenta de que es seguridad por oscuridad y no elimina la necesidad de contraseñas seguras. La secuencia de contraseñas en sí misma es tan fuerte como una concatenación de contraseñas utilizadas. La seguridad agregada en este método proviene de un procedimiento inesperadamente complejo.

¿Es una buena idea? ¿Es una idea mejor que la contraseña clásica?

    
pregunta gronostaj 19.02.2015 - 08:39
fuente

17 respuestas

157

El sistema descrito en la pregunta es en realidad más débil que simplemente requiere una contraseña única de longitud A + B + C, ya que permite una clase de ataques que no se pueden usar contra contraseñas únicas:

Diga que su combinación de tres contraseñas es E F G . Un atacante puede enviar las contraseñas A B C D E F G , realizando cinco ataques ( A B C , B C D , C D E , D E F y E F G ) por el precio de dos. El término general para esto es una de la secuencia de Bruijn , y te permite atacar cualquier sistema basado en el estado (como un bloqueo) usando muchos menos intentos que combinaciones posibles.

    
respondido por el Mark 20.02.2015 - 01:41
fuente
148

Desde una perspectiva de seguridad sin formato, su contraseña es simplemente "A B C", y la fuerza relativa de la contraseña se calcula en consecuencia.

Desde la perspectiva del usuario, esto es posiblemente demasiado difícil de utilizar. El servidor no da ninguna indicación sobre el estado actual (¿está buscando la segunda contraseña todavía?) Y, por lo tanto, el usuario no puede decir qué contraseña proporcionar.

Desde una perspectiva de defensa, hay una pequeña cantidad de valor aquí. Los ataques de contraseña se vuelven un poco más complicados de realizar y las herramientas de ataque existentes tendrán que volver a escribirse para adaptarse a este extraño esquema. Eso puede ser suficiente para convencer a un atacante para que siga adelante, pero si eres un objetivo importante, entonces no te servirá de nada.

    
respondido por el tylerl 19.02.2015 - 09:31
fuente
37

Voy a abordar algunos puntos aquí.

En primer lugar, suponiendo que el atacante no conoce el esquema de contraseña es una suposición mala , y está en lo cierto de que es seguro a través de la oscuridad. Si cada usuario puede aprender este esquema de inicio de sesión, el atacante también puede hacerlo. Debido a eso, la detonación no es mejor que si hubiera una sola contraseña ABC .

Podrías pensar, "¿No tener más contraseñas aumenta el número de conjeturas de fuerza bruta de forma exponencial?" La respuesta es no. Considere un alfabeto de longitud z y tres contraseñas de longitud a , b y c . El número de contraseñas posibles para cada una es, respectivamente, za , zb , y z c . Si desea probar todos los valores posibles para cada contraseña en cada orden posible, necesitará za * z b * zc conjeturas, que es igual a z (a + b + c) . Da la casualidad de que la longitud de la contraseña única ABC es a + b + c , por lo que el número de las conjeturas necesarias también es z (a + b + c) .

También existe la preocupación de diseño de que los usuarios se sientan confundidos y / o frustrados por este sistema, especialmente si tienen problemas para recordar sus contraseñas. Las personas tienen suficientes problemas para recordar la contraseña de una para cada sitio que visitan (y es por eso que muchas personas reutilizan las contraseñas). Tres contraseñas serían aún más difíciles de recordar, y no me sorprendería si algunos de sus usuarios usaran la misma cadena para los tres.

Requerir tres envíos de formularios para iniciar sesión ciertamente ralentizará un ataque de fuerza bruta, pero se podría lograr fácilmente agregando un retraso en la verificación de la contraseña del lado del servidor.

    
respondido por el Justin Lardinois 19.02.2015 - 09:55
fuente
19

Es seguridad a través de la oscuridad: si son ampliamente adoptados, los atacantes solo lo intentarán tres veces. En ese momento, es posible que tenga una sola contraseña, pero establezca una longitud de contraseña mínima más larga para asegurarse de que sea tan larga como tres contraseñas separadas concatenadas.

    
respondido por el Mike Scott 19.02.2015 - 09:02
fuente
11

Esto es indistinguible de tu contraseña simplemente por ser A || B || C .

    
respondido por el Stephen Touset 19.02.2015 - 09:09
fuente
9

La autenticación de dos factores es más fácil de usar pero más segura

Sin, una contraseña es apenas menos segura que la eliminación de contraseñas.

Un atacante que pueda encontrar su contraseña probablemente también descubra su esquema de detonación.

Elegir golpear es como elegir un algoritmo. Considérelo público .

Aunque las contraseñas son seguras por la oscuridad, pueden ser reemplazadas por otras completamente diferentes fácilmente .

Dicho esto, hay esquemas que son similares a tus "golpes" pero un poco más útiles:

  • Aleatoriamente solicitando uno de múltiples secretos (contraseñas, frases, iTANs ...).
    Esto es mucho más rápido que ingresar todos de los secretos, y es más seguro porque el atacante solo conoce un secreto a la vez (que puede ser invalidado después de su uso).
    Las posibilidades de que el atacante pueda autenticar se correlacionan con el número relativo de los secretos que conocen. Aún así, se requiere que el usuario sepa todos los secretos y su orden .
  • Tiempo de entrada , es decir, analiza los tiempos entre y para todos los caracteres de contraseña mientras el usuario está escribiendo.
    Esto es más difícil de descubrir y falsificar que golpear, y se ha investigado un par de veces en el IIRC. Inconvenientes:

    • El tiempo varía ligeramente cada vez que un usuario ingresa la contraseña, aunque puede ser suficiente para distinguir a los usuarios
    • El tiempo puede incluso cambiar por completo cuando el usuario elige ingresar de manera diferente, por ejemplo. durante la fase inicial después de elegir la contraseña (el usuario todavía está aprendiendo a ingresar la contraseña), o cuando no puede ingresarla de la forma en que lo hace normalmente (lesiones, sujetar una sándwich en una mano ...)

La seguridad por oscuridad es buena cuando puedes modificar rápidamente tu esquema de oscuridad , es decir, "cambiar el laberinto" con poco esfuerzo , en lugar del concreto de los que están hechas las paredes (asegúrese de que el laberinto no se pueda omitir ).

    
respondido por el Archimedix 19.02.2015 - 23:34
fuente
7

El concepto de detonación de puertos no se aplica directamente al inicio de sesión en sitios web. Al menos no en el sentido que has sugerido. Con el bloqueo de puertos, se conecta a diferentes puertos en un cierto orden para abrir el puerto deseado. En su ejemplo, está poniendo todas las contraseñas en un sitio. Como han señalado otros, esto no es realmente diferente de poner todas las contraseñas juntas. A menos que todas las contraseñas que use sean muy largas, también puede concatenarlas y usar una contraseña. La oscuridad de este método tampoco es tan útil, porque alguien tendrá que construirlo y alguien tendrá que saber cómo usarlo, lo cual es suficiente para que un atacante descubra cómo funciona. Además, acabas de explicárselo al mundo.

En su lugar, tal vez podría usar diferentes sitios web para representar diferentes puertos. Digamos que está intentando iniciar sesión en el sitio web D. Cuando se conecta al sitio web D, ni siquiera mostrará una página a menos que pueda ver que ha iniciado sesión en los sitios web A, B y C, correctamente y en ese orden. De esta manera, el atacante no solo tendría que descifrar las diferentes contraseñas, sino que tendría que hacerlo en 3 sitios diferentes y utilizarlos en el orden correcto para acceder al sitio D, donde se requeriría otra contraseña.

Esto sigue dependiendo de un cierto grado de oscuridad, pero se distingue más que simplemente dividir una contraseña en un sitio.

    
respondido por el fooot 19.02.2015 - 16:39
fuente
6

Positivo

  • Engañaría a los ataques estándar de fuerza bruta. Los ataques automatizados desde botnets o herramientas simples no funcionarán de forma inmediata.
  • Podría ser posible engañar a un keylogger de esta manera. En los registros parecería que el usuario recordó la contraseña en el tercer intento. Si el atacante usa esta contraseña no funcionará. Pero solo si él no sabe o adivina qué está pasando. Pero él te posee de todos modos en este caso.
  • El usuario está obligado a usar varias palabras = > contraseña más larga.

Negativo

  • Demasiado complicado para un usuario normal.
  • Al igual que la detonación de puertos, es en parte seguridad a través de la oscuridad. Si el atacante sabe que puede adaptar el ataque.

Total

Al igual que el puerto, agrega solo una pequeña ventaja contra ataques simples. El beneficio principal sería una contraseña más larga y que se puede hacer cumplir más fácilmente con las reglas de contraseña.

De todos modos, si a tus usuarios no les importa, es algo que puedes hacer. Al final, cada característica de seguridad cuenta. Pero no te aconsejaría hacerlo.

    
respondido por el PiTheNumber 19.02.2015 - 13:12
fuente
5

Solo una nota: esta metodología ya se utiliza en esquemas de recuperación de contraseña en algunas partes de la industria. Si olvida su contraseña, puede usar su dirección de correo electrónico para iniciar una secuencia de preguntas personales para recuperar su contraseña (aunque muchas veces es solo una pregunta). Se hace más aceptable para el usuario, ya que generalmente limita el contexto a una secuencia de preguntas bien elegidas que brindan al usuario la oportunidad de usar (con suerte) respuestas secretas pero bien conocidas.

Además, algunos de los mejores bancos proporcionan un conjunto adicional de preguntas de seguridad si no reconocen la computadora desde la que se está iniciando sesión (en el mismo sentido que el esquema de recuperación de contraseña mencionado anteriormente).

Por ejemplo:

Enter your password:  *****

Your computer is not recognized, please answer the following additional questions:

What city did your mother grow up in?  *********
What is your favorite movie? *************

Esto puede permitir a los usuarios inteligentes proporcionar respuestas bastante oscuras a una gama de preguntas que elijan, al tiempo que permiten una secuencia de "contraseñas" fácil de recordar. Por supuesto, los usuarios típicos podrían seguir usando respuestas fáciles de adivinar para las preguntas de "computadora no reconocida", pero la responsabilidad siempre ha estado en el usuario para proporcionar buenas contraseñas, de todos modos.

    
respondido por el Ogre Psalm33 19.02.2015 - 17:26
fuente
5

PROS : Este sistema comparte algunos beneficios con la autenticación de dos factores.

1) La mayoría de los navegadores y sistemas de guardado de contraseñas no lo admiten, por lo que recordaremos solo una de las contraseñas como máximo. Así que al menos no se almacenará en texto sin formato en alguna parte.

2) Las personas que usan la misma contraseña en todas partes deberán usar al menos dos contraseñas que no se comparten con otros sitios.

CONS : Sin embargo, el sistema es defectuoso en general, y yo diría que es peor que la autenticación de contraseña única.

1) Debido a que su sistema de almacenamiento de contraseñas preferido y protegido por contraseña que utilizan para las contraseñas más importantes no se puede usar, es probable que usen algo menos bueno para esta contraseña. Post-it, archivo de texto, lo que sea.

2) Otros han afirmado que esto es tan fuerte como la contraseña "ABC". No lo es. Diría que, en el peor de los casos, es tan fuerte como la contraseña "A".

Esto se debe a que yo (y el usuario típico) utilizaría las contraseñas "contraseña1", "contraseña2", "contraseña3". Este sistema de generación de contraseñas me da el beneficio de que puedo controlar la contraseña, ctrl-v y luego solo escribe el número.

Si no puedo usar contraseñas similares, entonces ha reducido el alcance de las posibles contraseñas que puedo tener: en lugar de tan seguro como ABC, ahora solo tiene la misma seguridad que ABD donde A! = B! = C: usted He facilitado el trabajo del cracker al reducir su dominio de búsqueda.

Y todavía elegiría cualquier secuencia predecible que permitiera el script de entrada de contraseña: "Jan", "Feb", "Mar" quizás.

Y dado que usaría una secuencia natural, es probable que este sea el orden que tendría un intruso de contraseñas en el diccionario, por lo que una máquina de descifrado de contraseñas intentará esas contraseñas en el orden correcto y entrará directamente. Cualquier cracker que conozca su sistema absolutamente ordenaría su diccionario de esta manera.

3) El otro factor que reduce la seguridad es que para cambiar la contraseña, ahora necesita cambiar tres campos diferentes. Esto desalentaría a muchos a cambiar sus contraseñas.

4) Esto es terrible, terrible la experiencia del usuario, como han señalado otros. A menos que tenga una audiencia cautiva (empleados, estudiantes, etc.), perderá la costumbre a través de este enfoque hostil al usuario.

    
respondido por el Dewi Morgan 21.02.2015 - 05:33
fuente
3

Como han dicho otros, esto es equivalente a solo tener una contraseña que sea equivalente a A\nB\nC o similar. Sin embargo, hay una ventaja que puedo pensar en este esquema: ayuda a reducir las cosas de tipo phishing; Si un sistema acepta la primera contraseña en lugar de aceptar las demás, entonces sabe que el sistema está comprometido y simplemente registra su nombre de usuario y contraseña.

Sin embargo, en ese caso, es mejor intentar iniciar sesión con una contraseña aleatoria antes de iniciar sesión con su contraseña real; de lo contrario, acaba de comprometer una buena parte de su contraseña, ya que el sistema comprometido ha registrado el primer tercio (aproximadamente).

    
respondido por el fluffy 19.02.2015 - 22:29
fuente
2

No creo que sea siquiera la seguridad en la oscuridad, como han dicho algunos: el inicio de sesión de tres contraseñas se presenta públicamente, ¿no? Seguro que tomará un poco de trabajo ajustar algunas herramientas, pero nada demasiado difícil.

En cuanto a la complejidad de la fuerza bruta. El número de posibilidades es el mismo que tener una sola contraseña con la longitud A + B + C . Entonces, por esta razón, la única defensiva que obtienes con este esquema es frustrar un poco al atacante al principio. Además, si el esquema se volviera común, entonces las herramientas estándar se adaptarían rápidamente.

    
respondido por el Peter 19.02.2015 - 11:34
fuente
1

"Cuanto menos sean las partes móviles, menos hay que salir mal".

Además de no proporcionar ningún beneficio notable, esta idea es más compleja de implementar que una sola contraseña. Como tal, hay más puntos de falla potencial. Por ejemplo ...

Dependiendo de cómo se implementó, podría permitir un ataque de denegación en el que Malcolm envía la contraseña X a intervalos regulares. Si lo mide correctamente de manera que interrumpa un intento legítimo, el sistema recibe A X B C y le niega la entrada. De manera similar, si envía la contraseña C justo después de haber enviado A B, el sistema lo deja entrar y no a usted.

Un ataque de tiempo de respuesta podría ser capaz de descubrir que A era la primera contraseña correcta en A B C, donde no se daría cuenta de que D era el prefijo de DEF de una sola contraseña.

    
respondido por el Vynce 19.02.2015 - 22:58
fuente
1

Como muchos han mencionado, para propósitos de ataques dedicados, no es más fuerte ni más fácil / más difícil de recordar que una concatenación de contraseñas. Sin embargo, hay un valor de seguridad de operaciones (OPSEC) que es independiente de la seguridad de la contraseña. No tengo mucho valor, claro, pero como alguien que pasa mucho tiempo en el sitio de Worldbuilding Stack Exchange , mi imaginación se volvió loca.

Considere si desea que un servicio no solo esté restringido a usuarios autorizados, sino que también desee evitar que alguien tropiece accidentalmente con su existencia. Esto ya no es un simple problema de entropía, sino un problema de la teoría de la información espía contra espía. Su trabajo ahora es minimizar la relación señal / ruido (SNR) de cualquiera que vea la entrada de su contraseña. Esto ahora no está relacionado con la fortaleza de la contraseña.

Un enfoque sería configurar un comportamiento ficticio. Haz que parezca que es un inicio de sesión para un sistema diferente. Solo las cuentas con los privilegios correctos se redirigen al contenido significativo. Incluso puedes dejar que otros se inscriban en tu proyecto ficticio para que las personas puedan buscar y satisfacer su curiosidad.

Sin embargo, ahora estamos hablando de espía contra espía. Alguien se va a dar cuenta de que James Bond realmente no está tan interesado en un foro que discute las últimas tendencias en patitos de goma, y comience a entrometerse. James Bond es bueno en no revelar información, pero en algún momento, con un arma en la cabeza de su [última] novia, será sospechoso si no revela su contraseña del foro de goma-patito al Dr. NoGood. El Dr. NoGood no es tonto; él lo resolverá.

Así que configuramos a James con dos contraseñas. Uno le permite ingresar a su foro normal de patitos de goma y el otro al simulador de misiles nucleares de máximo secreto. No podemos ignorar la seguridad de la contraseña de la vida real aquí. Su contraseña del simulador de misiles nucleares tendrá que ser larga: siempre y cuando la concatenación de sus tres contraseñas. Su contraseña de patito es probablemente más corta. Algo bueno también, porque alguien lo ha visto iniciar sesión en su cuenta de patito antes. Saben cuántos personajes para empezar a forzar la fuerza bruta. No queremos que encuentren accidentalmente la contraseña segura antes de que encontremos la patito.

Por lo tanto, dado que aún es secreto que existe el simulador de misiles, devolver una "contraseña inválida" en parte no se espera que continúen los forzosos. Además, puedes hacer una gran revelación cuando James "escribe su contraseña dos veces mal", antes de que la pared a su lado se abra repentinamente para revelar la bóveda más allá.

    
respondido por el Cort Ammon 19.02.2015 - 20:06
fuente
0

Para agregar a todas las otras grandes respuestas, este tipo de esquema de protección de contraseña no proporcionaría ninguna protección contra los keyloggers o el hombre en los ataques medios. Ya que aún estaría poniendo su contraseña dentro de una secuencia, el keylogger puede reproducir sus acciones y aún así obtener autorización. La autenticación de 2 factores sugerida por @Archimedix sería la forma más efectiva de mitigar esto.

    
respondido por el PressingOnAlways 20.02.2015 - 23:08
fuente
0

Como han mencionado otros, funcionalmente, esto es lo mismo que una contraseña larga. Para hacer que la implementación sea menos confusa, podría implementarse solicitando las tres contraseñas en la misma pantalla.

Mi agente en línea hace algo en este sentido, donde solicita la contraseña de miembro y la contraseña de comercio durante el inicio de sesión. Tenemos que obtener las contraseñas correctas para iniciar sesión. Además, tengo que cambiar mi contraseña de miembro cada 10 días aproximadamente y hay reglas sobre no repetir las tres contraseñas anteriores, etc.

Mi banco ( Banco ICICI ) implementó previamente dos contraseñas, una para ver que se ingresará para iniciar sesión y acceder a información, y otra para realizar transacciones en cualquier momento en que se realizó una acción que resultaría en una transacción financiera. Mi tarjeta de débito Visa también está protegida por un sistema al que llaman 3-D Secure donde, independientemente de la pasarela de pago, Me llevan a su propio sitio para ingresar una contraseña para completar la transacción. Sé que este es el sitio de Visa genuino, porque me permiten personalizar el mensaje para mostrar.

Por lo tanto, la idea no tiene precedentes, aunque no se implementa exactamente de la misma manera que dices. Agregar varias contraseñas es algo de lo que al menos los banqueros y corredores de bolsa parecen estar convencidos.

    
respondido por el Kinjal Dixit 25.02.2015 - 11:12
fuente
0

Detener la complejidad técnica inútil

Según una respuesta previamente correcta,

A\nB\nC

es aproximadamente el mismo que

A B C

(o quizás más claro, con respecto a @ la respuesta de Mark, sobre Bruijn sequence ) .

A partir de ahí, si realmente necesitas guardar tu secreto:

  1. Use herramientas estándar fuertemente probadas por un tiempo. (Si no está seguro, prefiera compartir y preguntar a su alrededor, en lugar de usar cualquier tipo de oscuridad).

  2. Manténgalos actualizados.

  3. Enseñe a sus usuarios las frases de contraseña (consulte xkcd: Seguridad de la contraseña y discutir en IS )

  4. Tenga en cuenta que ingeniería social (en Wikipedia) es la primera fallas en la seguridad. (Otro xkcd: Seguridad famoso).

  5. Supervise su sistema y verifique sus registros.

respondido por el F. Hauri 27.02.2015 - 21:00
fuente

Lea otras preguntas en las etiquetas