Re: Solucion a Conexiones desde destinos desconocidos.

From: Gunnar Wolf <gwolf(at)gwolf(dot)org>
To: Alvaro Herrera <alvherre(at)surnet(dot)cl>
Cc: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>, Maritza Parra <database_tallersoftware(at)yahoo(dot)es>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Solucion a Conexiones desde destinos desconocidos.
Date: 2005-05-25 18:51:48
Message-ID: 20050525185148.GD11620@gwolf.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera dijo [Thu, May 19, 2005 at 07:55:43PM -0400]:
> > md5 es un algoritmo digestor, y lo que estas haciendo es exponiendo el
> > resultado de dicho algoritmo digestor y por lo tanto exponiendo la
> > seguridad de tu base de datos y otorgando información para que un
> > agente malicioso realize ataques de fuerza bruta para descubrir tu
> > contraseña,
>
> Una nota adicional: me parece mucho que en realidad el digerido es lo
> unico que se necesita para autenticarse (no la contraseña en claro).
> Por lo tanto el atacante ni siquiera necesita aplicar fuerza bruta para
> descubrir la contraseña en claro :-(
>
> Efectivamente se va a necesitar para atacar otros sistemas donde uses la
> contraseña ... pero ya conectado a la base de datos es bastante el daño
> que se puede hacer.

Tengo que corregirte - No puedes aplicar dos veces el mismo MD5 y
esperar autenticarte correctamente. Analicemos, pues, un flujo de
datos. Si quieren hacer esto, basta con el excelente analizador de
protocolos Ethereal. Va paquete por paquete:

1- Inicio una conexión a Postgres.
Type: SSL request
Length: 8
2- Le indico al servidor que quiero conectarme a determinada BD y con
determinado usuario.
Type: Startup message
Length: 35
user: comas
database: comas
3- El servidor me indica que me autentique por MD5 y me da un valor
aleatorio (salt).
Type: Authentication request
Length: 12
Authentication type: MD5 password (5)
Salt value: 975BD354
4- Envío el MD5 de (supongo) la concatenación de la contraseña y el
salt, o al revés, o esto mas algún otro dato:
Type: Password message
Length: 40
Password: md50b3a568b0fbe96048adaefc0758c0716
5- Se establecen los parámetros de la comunicación, y comienzan las
consultas.

Pasa un par de segundos, y repito mi consulta. Lo que observo ahora
es:

1- Idéntico
2- Idéntico
3- Type: Authentication request
Length: 12
Authentication type: MD5 password (5)
Salt value: B62BC26D
4- Type: Password message
Length: 40
Password: md540a1abc50298f7a47417c3445b726c66

Q.E.D.

...Y de paso, me apunto dos puntitos más al ego. No todos los días
puedo contradecir a Álvaro impunemente en materia de Postgres :)

--
Gunnar Wolf - gwolf(at)gwolf(dot)org - (+52-55)1451-2244 / 5623-0154
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Julio Rivero 2005-05-25 19:12:10 Re: ejecutar una consulta creada
Previous Message Jairo Martín Miguel 2005-05-25 18:51:35 ejecutar una consulta creada