¿Qué pasa si desarrollo mi propio algoritmo hash para crear contraseñas seguras a partir de las sencillas?

1

Se me ocurrió esta idea, pero no puedo averiguar si es buena o mala, tal vez puedas ayudar. Mi objetivo es: quiero crear contraseñas extremadamente seguras para mis cuentas principales (gmail, skype, etc.). Quiero tener contraseñas diferentes para todas mis cuentas que tengan más de 20 caracteres y que contengan caracteres en mayúsculas y minúsculas, números y caracteres especiales. ¿Qué harías para lograrlo?

Es bastante imposible recordar incluso una contraseña así, así que se me ocurrió esta idea: ¿qué sucede si desarrollo un algoritmo de hashing (simple y secreto) que transforma las contraseñas fáciles (incluso de 3 o 4 caracteres) en fuertes?

En ese escenario solo tendría que recordar "perro" para mi Gmail, "negro" para Yahoo y así sucesivamente. Cuando tiene que iniciar sesión, simplemente procesa su contraseña fácil en su script hecho a mano que la convierte, y luego simplemente la copia y pega.

Creo que este método es excelente por algunas razones:

Si tu hashing algo es irreversible y secreto, no hay forma de descubrir las "contraseñas fáciles" teniendo (incluso muchas) las contraseñas seguras (de todos modos, debes ser realmente desafortunado si alguien logró hackear todas tus cuentas principales). en gmail, foros, mensajería instantánea, etc.

solo tengo que recordar palabras extremadamente fáciles para todas mis cuentas, mientras que mis "contraseñas finales" serán a prueba de balas durante muchos años

si está bien hecho, un simple hashing algo puede ser recordado y usado en papel en lugar de hacer un script (que podría eventualmente ser robado). El algoritmo puede ser fácil porque no necesita un efecto de avalancha extremadamente bueno (¿no estará haciendo decenas de miles de contraseñas, tal vez solo 100 o 200 en unos pocos años?

Incluso si un cracker lograba comprender las fórmulas en su algoritmo de hash, no hay tablas arcoiris públicas para su algoritmo, y dudo mucho que su cuenta de gmail sea tan valiosa que cualquiera pueda comenzar a crear una. Este método está diseñado solo para contraseñas cotidianas, no para situaciones de alto riesgo en las que participa NSA, y es bueno porque el algoritmo está relacionado solo con SUS contraseñas, porque no es público. MD5 es utilizado por miles de sitios web, por eso la gente comenzó a perder tiempo / dinero para descifrarlo. Mi algo personal será solo mío, por lo que nadie estará interesado en invertir dinero para resolverlo

¿Cuál es tu opinión?

PS. perdón por mi muy mal inglés :)

    
pregunta Ross Genee 08.07.2014 - 09:45
fuente

5 respuestas

9

No lances tu propio criptográfico.

Lo adormece en un falso sentido de seguridad, y puede ser perjudicial si lo publica y otras personas comienzan a usarlo. La fuerza de un algoritmo hash no se deriva de la opacidad de su diseño; por el contrario, se beneficia de las mil mentes expertas que lo miran.

Sin embargo, tu idea básica no carece de mérito. Pero si va a usar palabras con hash como contraseñas, también puede optar por un algoritmo de hash comprobado que es conocido difícil de revertir.

  

Incluso si un cracker logró entender las fórmulas en su algoritmo de hash, no hay tablas arcoiris públicas para su algoritmo

Por cierto, el uso adecuado de las sales elimina este problema completamente para los algoritmos públicos.

    
respondido por el executifs 08.07.2014 - 09:58
fuente
5
  

si tu hashing algo es irreversible y secreto

Esta es siempre una mala práctica de diseño. Tan pronto como este algoritmo sea conocido por el atacante (y lo hará), estás condenado. Por lo tanto, todos los diseños deben asumir que los algoritmos son conocidos por el atacante. Las claves deben mantenerse secretas, no el algoritmo; las claves se pueden reemplazar fácilmente, pero el algoritmo no.

Por favor, no inventes ni publiques tus propios hashes "fuertes" a menos que seas realmente competente en el campo. Otras personas pueden terminar usando tus algoritmos pensando que están "seguros".

Si quieres algo fácil de recordar, escribe un poema corto. Esto proporciona suficientes bits para ser seguro y debería ser bastante fácil de recordar.

    
respondido por el Dmitry Yanushkevich 08.07.2014 - 09:49
fuente
5

No puede hacer que una contraseña débil sea más fuerte sin usar alguna fuente de entropía adicional. Hashing no agrega ninguna entropía y, por lo tanto, la contraseña resultante es tan débil como la que empezaste.

También usar un algoritmo hash "secreto" es una mala decisión, ya que está basando su seguridad únicamente en mantener el algoritmo en secreto. Esto significa que no puede discutirlo con nadie ni darle a alguien más acceso a su algoritmo. Una vez que se filtra, debe cambiar su configuración completa, ya que todo el secreto está dentro de la forma en que funciona el algoritmo. Esto se llama seguridad por oscuridad.

    
respondido por el martijnbrinkers 08.07.2014 - 10:14
fuente
3

No es una buena idea usar un administrador de contraseñas y contraseñas seguras reales. Si su algoritmo de "hash" se puede hacer en su cabeza, entonces simplemente no es seguro y SERÁ vulnerable a ataques de análisis bastante simples. Si es lo suficientemente complejo como para requerir una aplicación con múltiples iteraciones, puede o no ser vulnerable a ataques de análisis simples, pero entonces no es más difícil que usar un administrador de contraseñas, que proporcionaría mucho, FAR Mayor seguridad.

Lo importante a recordar es que una contraseña derivada no es significativamente más segura que la contraseña en la que se basa. Si la contraseña comenzó de manera simple y se descubrió el algoritmo de derivación, se vuelve trivial construir una tabla de arco iris contra contraseñas simples y se revelan rápidamente.

A menos que sea un criptógrafo con cientos de miles de dólares para invertir en pruebas y revisiones, no va a formar un algoritmo que sea más seguro que los hashes existentes y que puede estar seguro de que no tiene grandes debilidades.

Dicho todo esto, si todo lo que está protegiendo son algunas cuentas personales en las que no necesita una seguridad particularmente alta, las posibilidades de que alguien se moleste en descubrir su sistema (incluso si es relativamente fácil de hacer) son probablemente bastante mínimo siempre y cuando solo esté preocupado por los piratas informáticos criminales y no sea un objetivo de alto riesgo, por lo que, en ese sentido, SI en realidad es un objetivo de bajo valor y no lo utiliza en ninguna cuenta de valor, entonces podría proporcionar una seguridad ligeramente mejor que usar contraseñas simples, pero haría muy poco en contra de un atacante dedicado, especialmente después de usted.

El uso de los estándares establecidos es simplemente una práctica mejor, más sólida y más segura, ya que han sido bien diseñados y se han realizado millones, si no miles de millones, de dólares en verificación contra ellos.

    
respondido por el AJ Henderson 08.07.2014 - 15:42
fuente
0

En realidad, he hecho esto una vez para sortear una serie verdaderamente ridícula de restricciones de caracteres y complejidad de contraseñas. Generalmente es una idea mala ; sin embargo, les serviría bien si fueran hackeados parcialmente debido a sus propios requisitos de contraseña con daño cerebral.

    
respondido por el Joshua 03.12.2014 - 03:17
fuente

Lea otras preguntas en las etiquetas