Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Exresion regular para validacion de contraseñas (https://www.clubdelphi.com/foros/showthread.php?t=90689)

lgarcia 12-08-2016 20:16:55

Exresion regular para validacion de contraseñas
 
Hola: estoy tratando de usando la libreria RegExression que permite trabajar con expresiones regulares en Delphi, crear una expresion que me gaantice una clave que tenga al menos una Mayuscula, una Minuscula, un digito y un caracter especial y que tenga al menos 7 caracteres y en cualquier orden.

He probado con esta expersion: '^(([A-Z]){1,}([a-z]){1,}(\d){1,}([ _*\-\+]){1,})$'

y me garantiza que al menos existe un tipo de cada uno pero tienen que estar en ese orden y tampoco logro validar el tamaño.

Saludos
Luis

TOPX 12-08-2016 21:17:22

Hola: Tomada de ~ RegEx to make sure that the string contains at least one lower case char, upper case char, digit and symbol - StackOverflow

Código:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$
... o también

Código:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[-+_!@#$%^&*.,?])).+$
-

lgarcia 12-08-2016 21:37:02

Muchas gracias por la rapida respuesta, voy a probar y te digo

Saludos
Luis

mamcx 12-08-2016 22:27:55

Cita:

Empezado por lgarcia (Mensaje 507628)
pero tienen que estar en ese orden y tampoco logro validar el tamaño.

TIENEN? Eso es un error de seguridad.

Ademas, esta forma de validar una clave no es buena. Obliga a los usuarios a hacer claves mas predecibles.

Si quieres que una clave sea segura? Haz que sea larga, o chequea su entropia:

https://xkcd.com/936/

TOPX 12-08-2016 22:37:40

Creo que lo que OP quiso decir fue:
Lamentablemente con la regex que ideé, solamente se puede validar contraseñas que tengan las restricciones de caracteres en ese orden.
Pero ya nos confirmará.
-

mamcx 12-08-2016 22:42:32

Ok, eso es mas probable.

De todas maneras, obligar a ponerle caracteres "raros" a las claves es una falla para el usuario y de seguridad. Es mucho mejor simplemente pedir clave larga.

exmachina 27-09-2016 07:41:09

Cita:

Empezado por mamcx (Mensaje 507637)
Ok, eso es mas probable.

De todas maneras, obligar a ponerle caracteres "raros" a las claves es una falla para el usuario y de seguridad. Es mucho mejor simplemente pedir clave larga.

De entrada, el uso de caracteres "raros" aumenta la seguridad ya que cualquier programa que intente generar claves (los ataques del tipo "fuerza bruta") tendria que lidiar con mas caracteres y la cantidad de combinaciones seria imposible de procesar en un plazo de tiempo "razonable" (¿10 años?, ¿50?).

Y para seguir: Eso no es ningun problema para los usuarios-> sirve para protegerlos. Y si "al usuario le falla"la memoria" pues puede recurrir a uno de los multiples programas que existen para almacenar contraseñas de forma segura. No creo que la inmensa mayoria de los humanos sea capaz de memorizar una contraseña (generada de forma aleatoria) de 15 caracteres dentro del rango a-z, por lo tanto no hay razon alguna para no usar caracteres "raros"

De hecho, hace varios años que existen sitios web que exigen contraseñas con mas de veinte caracteres y donde tambien se exige que al menos varios de ellos no sean alfa-numericos y que ademas contengan numeros y se alternen letras en mayuscula y miniscula. Esto es lo que se esta imponiendo, basta con ver el anuncio que realizo microsoft en fechas recientes.

Como curiosidad:
A raiz de uno de los ultimos problemas de seguridad (otro mas) de los de la "manzana" (robo masivo de datos en su "nube" de almacenamientode datos), uno de sus portavoces/responsable afirmo que el problema se debia a que los usuarios (es decir, sus clientes) usaban contraseñas "debiles" (basicamente estaba diciendo que los usarios de los "mac" e "iphones" son estupidos). En este caso es obvio que el problema no era de los usuarios ya que el robo de datos (y posterior filtracion en internet) fue masivo, pero...

Un saludo

mamcx 27-09-2016 15:03:42

Cita:

Empezado por exmachina (Mensaje 509134)
De entrada, el uso de caracteres "raros" aumenta la seguridad ya que cualquier programa que intente generar claves (los ataques del tipo "fuerza bruta") tendria que lidiar con mas caracteres y la cantidad de combinaciones seria imposible de procesar en un plazo de tiempo "razonable" (¿10 años?, ¿50?).

INCORRECTO.

No es los caracteres raros lo que da seguridad. Es su ENTROPIA. Una clave de <10 caracteres (y con "raros") es mas debil que una de 20 sin nada de eso.

Si prestaste atencion a https://xkcd.com/936/?

El problema de las claves es que deben ser relativamente faciles de recordar. Un pass-prase es mas facil de recordar que un pass-word.

Cita:

Empezado por exmachina (Mensaje 509134)
Y si "al usuario le falla"la memoria" pues puede recurrir a uno de los multiples programas que existen para almacenar contraseñas de forma segura. No creo que la inmensa mayoria de los humanos sea capaz de memorizar una contraseña (generada de forma aleatoria) de 15 caracteres dentro del rango a-z, por lo tanto no hay razon alguna para no usar caracteres "raros"

Cuantos usan un programa de manejo de claves? No todos, ni la mayoria.

Y si es "dificil de recordar" el esquema ha fracasado. La claves es para HUMANOS.

Cita:

Durante años hemos entrenado a todo el mundo en usar passwords que son dificiles para los humanos y faciles para los computadores de adivinar.
El uso de caracteres poco usuales hace MAS FACIL DE ADIVINAR LAS CLAVES, porque obliga a las personas a usar un patron para poder acordarse (como "Uso siempre la 1era letra mayuscula, lo demás minúscula y al final numeros" que es de lo mas común).


Cita:

Empezado por exmachina (Mensaje 509134)
. Esto es lo que se esta imponiendo, basta con ver el anuncio que realizo microsoft en fechas recientes.

Lo cual es un ERROR. Eso solo se impuso por el desconocimiento masivo en temas de seguridad, por que los campos en la BD de claves tienden a hacerlos "cortos" los mismo programadores que no saben del tema ; y agregarles mas caracteres era una forma de incrementarle la entropia. Pero eso AHORA no tiene sentido.

Los expertos en el tema reconocen que el uso de pass-pharse es muchisimo mejor y mas amigable para las personas:

https://en.wikipedia.org/wiki/Passph...d_to_passwords



Cita:

Empezado por exmachina (Mensaje 509134)
A raiz de uno de los ultimos problemas de seguridad (otro mas) de los de la "manzana" (robo masivo de datos en su "nube" de almacenamientode datos), uno de sus portavoces/responsable afirmo que el problema se debia a que los usuarios (es decir, sus clientes) usaban contraseñas "debiles" (basicamente estaba diciendo que los usarios de los "mac" e "iphones" son estupidos). En este caso es obvio que el problema no era de los usuarios ya que el robo de datos (y posterior filtracion en internet) fue masivo, pero...

Un saludo

Apple es de las empresas que tienen mejor record en la industria en temas de seguridad y de cara al usuario, es la unica de las grandes que promueve al maximo la privacidad y seguridad punta-a-punta, y que es esa estupidez constante de decir que Apple la usa gente idiota?

Esa forma de pensar no es propia de gente razonable.

Ademas, me pregunto si realmente sabes lo que paso, y no estas repitiendo una informacion tergiversada (no que problemas no existan, sino que 9 de 10 veces con Apple, la gente se inventa muchas cosas.)

exmachina 27-09-2016 15:58:58

Cita:

Empezado por mamcx (Mensaje 509142)
Ademas, me pregunto si realmente sabes lo que paso, y no estas repitiendo una informacion tergiversada (no que problemas no existan, sino que 9 de 10 veces con Apple, la gente se inventa muchas cosas.)

Es de dominio publico. Ademas yo no naci ayer y conozco perfectamnete la historia de Apple y todos su problemas de seguridad (son de dominio publico), comenzando por la gran mentira de su publicidad engañosa-> "los virus de Windows no te afectaran" ¿Lo recuerdas?, por cierto el primer virus conocido para los "mac" es del año 1983

Las claves no tiene que ser faciles de recordar., para eso ya tenemos las clasicas "qwerty", 123456", la fecha de nacimiento o de cualquier otra efemeride (estas pueden otenerse mediante ingenieria social), etc. No soy programador pero tengo bastante experiencia en estos temas y en ingenieria inversa y lo que propones es lo mismo que dejar abierta la puerta de una caja de caudales.

Un ejemplo en cuanto a conceptos de seguridad mal enfocados:
Es curioso que ultimamente se esta poniendo de moda usar archivos de licencia basados en un archivo xml firmado bajo la falsa premisa que es imposible falsificarlo y por ello se simplifica el esquema de proteccion-> craso error, ya que basta con generar un nuevo par de claves, generar una licencia falsa (lo mas divertido es que suele ser habitual es que el "fabricante" proporcione una de ejemplo) y parchear el ejecutable donde esta la firma privada (es cuestion de sustituir unos pocos bytes). Y lo mismo en cuanto a usar empaquetadores como armadillo para el cual existen scripts que automatizan todo el trabajo (basta con ejecutarlos cuando el depurador se detiene en el punto de entrada) e incluso en algunos casos llama automaticamente a scilla

Un saludo.

Lepe 28-09-2016 09:16:27

Cita:

Empezado por exmachina (Mensaje 509148)
Las claves no tiene que ser faciles de recordar.

No tengo ningún master en pass-phrasses, pero sí deben ser fáciles y hasta divertidas (conversación real):

- Dame la contraseña de tu WIFI
- ¡¡la madre que te parió 95 veces!!
- ¿cooomoo???
- No, que digo, que la contraseña es esa, todo junto, con tilde y sin mayúsculas
- ¡¡¡ qué fuerte !!!
- :D

exmachina, me interesa tu opinión sobre esos tipos de contraseñas, que usan modismos, palabras vulgares, contracciones del tipo "cagóntó ya joeee", sustituir algunas vocales por números, etc.

Saludos!


La franja horaria es GMT +2. Ahora son las 02:04:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi