Carpe Teknus » 2007 » May

May 2007


Seguridad de Passwords: Salado(salting), #1 – Almacenamiento de Passwors

Seguridad

BewarePrácticamente en todas las aplicaciones actuales se manejan usuarios y passwords para permitir el acceso a sistemas.
También es muy conocido que es esa información de las más codiciadas por los “asaltantes” informáticos.
Como desarrolladores de sistemas, tenemos la obligación moral (y a veces legal) de proteger dicha informacién de nuestros usuarios. Anteriormente era común encontrar los datos almacenados en campos de texto plano “Usuario” y “Password” – de más esta decir que es el peor diseño en seguridad de información:

ID_Usuario Usuario Password
1 fulanito entradasistema
2 manganito manganito
3 juanperez password
4 josesanchez password

Un atacante que lograra obtener acceso a los datos, fácilmente podría entrar al sistema usando la identidad de otro usuario.
Ahora, con las mejoras tanto en legislación como en diseño de seguridad en sistemas, es común encriptar el password para que, si un atacante lograra entrar al sistema, no pudiera descifrar la información obtenida. Usando MD5 para encriptar los datos de ejemplo, tendríamos Password=MD5(password):

ID_Usuario Usuario Password
1 fulanito c09e9b31561eecdbb4f66e978ddba2ac
2 manganito be36b8eb2fabe4e58e2f6c0f8089fe20
3 juanperez 5f4dcc3b5aa765d61d8327deb882cf99
4 josesanchez 5f4dcc3b5aa765d61d8327deb882cf99

Prácticamente imposible de descifrar, no? Totalmente falso… Con la sofisticación de los ataques informáticos, hoy en dia una simple función de hash para encriptar información tan delicada como passwords es insuficiente. Porque? La mayoria de los usuarios elige passwords poco seguros (nombres, direcciones, fechas, palabras conocidas, hasta el mismo username), por lo que un atacante con acceso a la BD de usuarios sólo tendría que hacer un ataque de palabra conocida encriptada para obtener algunos passwords. Para facilitarse el trabajo, el atacante podria realizar un escaneo del hash de los passwords y detectar información repetida para centrarse en esos datos en el ataque de palabra conocida. Es decir, si hay 10 usuarios que utilizan la palabra “password” como password, habra 10 registros en la BD con el valor de “5f4dcc3b5aa765d61d8327deb882cf99″ (al igual que juanperez y josesanchez de nuestro ejemplo). Y, de otro modo, si se encuentran varios registros con el mismo valor, lo mas seguro es que sea una palabra conocida (cuantos utilizan el nombre de la empresa en que laboran como password para la intranet?)

Salado(Salting)

Para mitigar este peligro, existe una técnica que se llama “Salado” de password (de Salting en inglés). Esta técnica consiste en agregar información extra específica a cada usuario antes de realizar el cifrado del password. Entonces, al aplicar la función de hash, el resultado es unico(*) para cada usuario. En nuestro ejemplo usaremos la informacion extra ID_Usuario, por lo que obtendriamos Password=MD5(password + ID_Usuario):

ID_Usuario Usuario Password
1 fulanito 8b206463571df9f233165f1e3e0b3732
2 manganito 99259365af4debf221517baf4fed5bb2
3 juanperez 819b0643d6b89dc9b579fdfc9094f28e
4 josesanchez 34cc93ece0ba9e3f6f235d4af979b16c

* único en el termino relativo a la BD. Es conocido que la función MD5, al tener un número finito de resultados y un número infinito de datos de entrada, tiene muchas colisiones de hash strings. Sin embargo para nuestro ejemplo práctico de usuario/password, siempre obtendremos resultados únicos.
Con este método vemos que ya no encontraremos datos idénticos almacenados, haciendo mas difícil el ataque.
Recordemos que ningún método es infalible y ningún sistema es inviolable, pero el tomar acciones como la aquí sugerida aminora los riesgos que tenemos del lado del almacenamiento de datos.

En el siguiente artículo se tratará el tema de salting del lado de usuario. Como sabemos, es el usuario el eslabóm más débil en seguridad de sistemas, pero con un poco de educación por parte de la administración de sisteas y de responsabilidad por parte del usuario, podemos obtener un nivel de seguridad aceptable. Para los usuarios, el artículo ira encaminado a mejorar los passwords que usan para accesar a los sistemas y evitar que su información sea accesada por personas no autorizadas para ello.
Salud!

password salt security seguridad

Concurso de Microsoft pospuesto

General, Eventos

Parece que no solo los projectos reales tienen que “cambiar de fechas de entrega”, hasta los concursos (como este de microsoft) tienen que recalendarizarse para cumplir con las entregas :)

Estimado concursanteAgradecemos que se haya inscrito en el concurso “Microsoft Expression Awards 2007″. Hemos escuchado sus peticiones y hemos decidido extender la vigencia del concurso hasta el 22 de Junio del 2007 con el objetivo de que los participantes puedan terminar y mejorar satisfactoriamente sus proyectos. Estamos conscientes de la complejidad de los requisitos que estos deben de cumplir, tal como se expresa en los Términos y Condiciones inciso i). Usted puede revisarlos en el sitio web del concurso:
http://www.expressionawardslatam2007.com/default.asp?idioma=la

Le invitamos a tomar ventaja de esta oportunidad única de participar y poder ganar importantes premios. No espere más y empiece a usar “Expression Web” para construir su proyecto. También le recordamos que para cualquier pregunta o comentario relacionado con el concurso o las herramientas “Expression” contamos con un Foro en línea donde con gusto le atenderemos.¡Mucha Suerte!

Luis Fuentes
Gerente de Visual Studio y Expression

Microsoft Latinoamérica

events microsoft

Presentación de CardSpace/AJAX

Eventos

Hoy fui al evento de MSDN de ASP.NET AJAX and CardSpace en el Edwards Cinema de Mira Mesa, CA.
Para mi sorpresa, esta vez no estuvo Anand Iyer, sino que estuvo Michele Leroux Bustamante -un muy buen cambio a mi parecer- acompañando a la presentadora titular Lynn Langit .
Como siempre, me estuve durmiendo al principio. Pero mas fue por la desvelada que me dio Lore ayer (se le ocurrio tomar biberon a la 1 AM y quedarse despierta por casi una hora).
La platica de seguridad estuvo realmente interesante, aunque como casi siempre lo “nuevo” de Microsoft resulta que ya tiene años de existir. Se centro en CardSpace, que es el nuevo administrador de tarjetas de identidad de Microsoft.
Las partes de AJAX fueron muy apresuradas, pues como siempre tienen que terminar a la hora, la primera seccion es la que se lleva mas tiempo y la tratan de hacer mas entretenida para que la raza despierte.
Les dejo el link de las presentaciones por si le quieren echar un ojo o bajar los archivos de powerpoint al menos:

Presentacion de CardSpace/AJAX

.net ajax events msdn

CarpeTeknus: de donde viene?

General

Estaba un día pensando en la frase de Carpe Diem y su significado, cuando paso también por mi mente algo de tecnología y de lo poco que, a pesar de los grandes adelantos que tenemos a nuestra disposición, lo poco que la sabemos utilizar.
Tenemos el ejemplo clásico de la computadora guia usada para llevar al Apollo XI en 1969 a la luna contaba con un procesador de tan sólo 2.048Mhz (dos punto cero cuarenta y ocho megahertz), con 4Kwords de memoria RAM con tamaño de palabra de 16 bits, y codigos de instrucción de 3 bits. Y cuál es la especificación de la computadora en la que estas leyendo este mensaje? Apostaria a que es al menos un procesador Celeron de 1Ghz, con 256MB de RAM, usando instruccions de 32bits… miles de veces mas poderosa que la AGC que dirigio al Apollo XI. Y cuantas veces has ido y regresado a la luna… en la realidad?
Así pues, este es un intento por hacer un mejor uso de la tecnología que tenemos a la mano.
Sugerencias? Quejas? mentadas? Bienvenidas…

Iniciando una nueva etapa

General

Pues aqui estoy empezando de nuevo en esto de los sites y la publicacion.
Ahora mas que nada lo que quiero es tener un lugar en donde poner mis proyectos, experiencias e ideas que tengo, asi que aqui veran pedazos de codigo, fotos, eventos y demas cosas relacionadas con la tecnologia que aprendo y desarrollo.
Asi que espero que resulte bien y tal vez aprendan un poco uds, y a la vez aprenda con uds.
Saludos.

.net blog inicio start


Carpe Teknus © 2010

   Based on:  LonelyWay  &  FastTrack Modified by Abarajame