En esta entrada les ofrezco el webslice de este blog:
Tópicos de seguridad informática.
Recuerda que debes contar con IE8 para poder agregar el webslice a tu barra de herramientas.
Temas sobre seguridad informática en linux y en windows. Tópicos sobre tipos de ataques y tecnologías disponibles para poder evitar estos ataques.
martes, 2 de junio de 2009
domingo, 31 de mayo de 2009
El universal Webslice: Mantente informado con El Universal
Go to the English Version!!!
En esta entrada pongo a su disposición 2 nuevos Webslices con noticias de uno de los diarios mas leidos de Mexico: El Universal.
El primer WebSlice es para estar siempre al tanto de las noticias nacionales, mientras que el segundo WebSlice es de noticias sobre tecnologías.
Recuerden que "no" se pueden suscribir a los webslices directamente en esta pagina, tienen que suscribirse en estos enlaces:
Noticias de Mexico.
Noticias sobre tecnologia.
Un aspecto que debemos destacar es que los Webslices sólo funcionan en Internet Explorer 8 y en Firefox con el complemento WebChunks instalado, no se queden fuera de la jugada.
Sin importar las circunstancias, les dejo aquí las noticias de estos dos Webslices.
El Universal - Mexico:
El Universal - Tecnologia:
Post Data: También les ofreceré noticias de La Jornada (en cuanto encuentre el Feed).
En esta entrada pongo a su disposición 2 nuevos Webslices con noticias de uno de los diarios mas leidos de Mexico: El Universal.
El primer WebSlice es para estar siempre al tanto de las noticias nacionales, mientras que el segundo WebSlice es de noticias sobre tecnologías.
Recuerden que "no" se pueden suscribir a los webslices directamente en esta pagina, tienen que suscribirse en estos enlaces:
Noticias de Mexico.
Noticias sobre tecnologia.
Un aspecto que debemos destacar es que los Webslices sólo funcionan en Internet Explorer 8 y en Firefox con el complemento WebChunks instalado, no se queden fuera de la jugada.
Sin importar las circunstancias, les dejo aquí las noticias de estos dos Webslices.
El Universal - Mexico:
El Universal - Tecnologia:
Post Data: También les ofreceré noticias de La Jornada (en cuanto encuentre el Feed).
jueves, 28 de mayo de 2009
Pruebas sobre WebSlices V 2.0 - Blogs MSDN (nuevamente) y Technet
A diferencia de la entrada anterior, en esta entrada ofrezo 2 Webslices:
-Blogs de MSDN
-Blogs de Technet
En estos webslices solo se muestran las 4 últimas entradas. Espero que sea de utilidad.
Para poder suscribirse a los webslices, lo tienen que hacer desde estas paginas:
http://ajesusflores.host56.com/msdnTechnet_2.php
http://ajesusflores.host56.com/msdnBlogs_2.php
En esta entrada, solo se muestra una porcion de esa pagina, ¿pero por que? bueno, resulta que los Webslices solo muestran contenido que proviene del servidor donde se hizo la suscripcion
ENJOY THEM!!!
-Blogs de MSDN
-Blogs de Technet
En estos webslices solo se muestran las 4 últimas entradas. Espero que sea de utilidad.
Para poder suscribirse a los webslices, lo tienen que hacer desde estas paginas:
http://ajesusflores.host56.com/msdnTechnet_2.php
http://ajesusflores.host56.com/msdnBlogs_2.php
En esta entrada, solo se muestra una porcion de esa pagina, ¿pero por que? bueno, resulta que los Webslices solo muestran contenido que proviene del servidor donde se hizo la suscripcion
ENJOY THEM!!!
Actualizaciones de los Blogs de MSDN
martes, 26 de mayo de 2009
Pruebas sobre Webslices - Blogs MSDN
En esta entrada ofrezco un webslice para mantenerse actualizado con los blogs de MSDN. Realmente hay algunos blogs que ofrecen contenido sumamente interesante.
Suscribanse!!!
Hasta el momento he tenido problemas con el estilo al momento de utilizar un feed en el webslice
Stay in touch
Suscribanse!!!
Blogs MSDN
Hasta el momento he tenido problemas con el estilo al momento de utilizar un feed en el webslice
Stay in touch
Concurso Blogit.ms V 3.0 has been released!!!!!
Así es, la tercera edición del concurso de bloggers mexicanos "blogit.ms" ha dado inicio, este concurso es sobre tecnologia (especialmente Microsoft). Es por esto que esta entrada es una invitación a todos aquellos bloggers mexicanos para que participen, la pagina donde pueden registrar su blog y hacer las votaciones es: http://www.blogit.ms, Las bases del concurso las pueden consultar en este enlace: http://www.blogit.ms/ContestBases.aspx y este último enlace es para las P+F (FAQ):http://www.blogit.ms/FAQ.aspx
Participen.
Ah, y también voten por este blog.
Participen.
Ah, y también voten por este blog.
lunes, 6 de abril de 2009
Creación de llaves públicas y privadas del algoritmo asimétrico RSA como archivos XML en C#
En esta entrada les mostraré la forma en que podemos generar nuestras propias llaves tanto públicas y privadas del algoritmo de encriptación asimétrico RSA (llamado así por sus creadores), las llaves son generadas como archivos XML, esto con la finalidad de poder distribuir la llave pública para los fines que sean necesarios y el ejemplo está hecho en C# para aplicaciones de escritorio. El ejemplo esta hecho en VS 2008 express edition.
Si todo esto de la encriptación y las llaves públicas y privadas se te dificulta un poco, te recomiendo que consultes esta información.
Todo el proceso es realmente sencillo y se hace con el namespace System.Security.Cryptography.
Para este ejemplo y para ilustrar el contenido que tendrán los archivos, se tienen 2 cuadros de texto, en el primero se tiene el contenido de la llave privada (y pública tambien), mientras que en el segundo se tiene únicamente el contenido de la llave pública.
Tambien se tienen 3 botones, con un botón se generan las llaves y con otros botones se exporta el contenido de los cuadros de texto a archivos XML.
En el evento Load del formulario tenemos la siguiente instrucción:
En el evento clic del boton generar tenemos lo siguiente:
En los botones que nos permiten exportar el contenido de los cuadros de texto tenemos un código como este:
Si todo esto de la encriptación y las llaves públicas y privadas se te dificulta un poco, te recomiendo que consultes esta información.
Todo el proceso es realmente sencillo y se hace con el namespace System.Security.Cryptography.
Para este ejemplo y para ilustrar el contenido que tendrán los archivos, se tienen 2 cuadros de texto, en el primero se tiene el contenido de la llave privada (y pública tambien), mientras que en el segundo se tiene únicamente el contenido de la llave pública.
Tambien se tienen 3 botones, con un botón se generan las llaves y con otros botones se exporta el contenido de los cuadros de texto a archivos XML.
En el evento Load del formulario tenemos la siguiente instrucción:
algoritmoRSA = new System.Security.Cryptography.RSACryptoServiceProvider(2048);
la variable algoritmoRSA fue previamente declarada.En el evento clic del boton generar tenemos lo siguiente:
textBox1.Text = algoritmoRSA.ToXmlString(true);
textBox2.Text = algoritmoRSA.ToXmlString(false);
El sistema provee la funcionalidad necesaria para poder obtener las llaves mediante el método ToXmlString(bool indicador); el valor que acepta este método lo utlizamos para indicar si es la llave privada (con true) o si es la llave pública (con false).En los botones que nos permiten exportar el contenido de los cuadros de texto tenemos un código como este:
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "archivos xml |*.xml";
if (sfd.ShowDialog() == DialogResult.OK)
{
System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName);
sw.Write(this.textBox1.Text);
sw.Close();
}
esto nos permite guardar los archivos xml.
Etiquetas:
C#,
criptografia,
ejemplo,
llaves publicas y privadas
domingo, 5 de abril de 2009
Windows 7 Beta - imagenes.
como parte de los premios entregados por elsegundo concurso BlogIt de Micrsosoft se encuentra un disco de Windows 7 (beta). Les dejo unas imágenes (que seguramente varios han visto) para que puedan apreciar que el sistema tiene algunos cambios interesantes.
Cabe aclarar que esto no es una reseña de Windows 7, es tan solo una muestra de lo que ustedes pueden observar a primera vista con el Windows 7 (beta)
sábado, 4 de abril de 2009
Entrega de los premios del segundo concurso de Microsoft Blog it
Aquí les dejo algunas imágenes de los productos que mandaron de parte de Microsoft por la participación de este blog en el segundo concurso "blog it".
Los premios son:
-Libro de Microsoft Press: "Windows Vista step by step, deluxe edition"
-DVD de entrenamiento Technet
-DVD de Windows Vista 7 Beta
posteriormente llego una playera de IE8, supongo que es parte de los premios.


La verdad es que la calidad de la playera no es muy buena, pero seguramente encontraré la ocasión para darle un buen uso.
En cuanto a los demás productos, son realmente buenos.






Sin duda, esta es una gran iniciativa por parte de Microsoft, ya que promueve el intercambio de conocimiento entre usuarios de sus productos.
Por mi parte, la recomendación que les puedo hacer es que participen con su blog, puede ser un buen incentivo para no dejar de publicar.
Los premios son:
-Libro de Microsoft Press: "Windows Vista step by step, deluxe edition"
-DVD de entrenamiento Technet
-DVD de Windows Vista 7 Beta
posteriormente llego una playera de IE8, supongo que es parte de los premios.


La verdad es que la calidad de la playera no es muy buena, pero seguramente encontraré la ocasión para darle un buen uso.En cuanto a los demás productos, son realmente buenos.






Sin duda, esta es una gran iniciativa por parte de Microsoft, ya que promueve el intercambio de conocimiento entre usuarios de sus productos.
Por mi parte, la recomendación que les puedo hacer es que participen con su blog, puede ser un buen incentivo para no dejar de publicar.
lunes, 16 de febrero de 2009
Criptografia - Una introducción
La criptografia (que es una palabra que proviene del griego y significa "texto oculto") es la ciencia que se encarga de cifrar y descifrar la información mediante técnicas muy avanzadas. El interés primordial de la criptografia es el de proteger la información.

En la sociedad de la información de hoy en dia, la criptografía se ha convertido en una de las principales herramientas para mantener la privacidad y la confianza, lo que tiene aplicaciones en distintos campos: control de acceso a recursos y servicios, autenticación de usuarios, pagos electrónicos, seguridad dentro de las coporaciones, etc. .
Debido a la gran cantidad de algoritmos de encriptación, la criptografía ha dejado de ser un privilegio especial de los gobiernos y de especialistas con grandes habilidades; ahora, la criptografia esta abierta a todo mundo.
En la criptologia, el mensaje que se quiere encriptar es llamado texto plano. El proceso de codificar un mensaje con el fin de ocultar el texto de personas externas es llamado cifrado o encriptación. El texto ya encriptado es llamado texto cifrado. El proceso inverso a la encriptación es llamado desencriptación, que consiste en decodificar el texto cifrado con el fin de obtener nuevamente el texto plano. Los procesos de encriptación y desencriptación necesitan el uso de una llave o key.
La confidencialidad es mantener en secreto el contenido de la información; la integridad de datos consiste en detectar cambios no autorizados en la información; autenticación consiste en verificar que las personas sean quien dicen ser y de esta forma identificar los origenes de la información.
El método para encriptar y desencriptar datos se conoce como algoritmo de encriptación o algoritmo de cifrado. Algunos algoritmos se basan en ocultar el método con el que el algoritmo de encriptación funciona, pero debido al gran auge de la encriptación y ya que hay muchos algoritmos que se han convertido en estandares de la industria la técnica de ocultar el método de funcionamiento de los algoritmos de encriptación se ha vuelto muy poco práctico. Los modernos algoritmos de encriptación basan su uso en llaves.
Hay dos clases de algoritmos de encriptación basados en llaves: los de llave privada o simétricos y los algoritmos de llave pública o asimétricos. La diferencia entre estos dos tipos de algoritmos consiste en que los algorimtos simétricos (de llave privada) utilizan la misma llave para encriptar y desencriptar el mensaje; por otro lado, los algoritmos asimétricos (de llave pública) utilizan una llave para encriptar el mensaje y otra llave completamente distinta para desencriptar el mensaje y es imposible encriptar el mensaje con una llave y desencriptarlo con esa misma llave, ya que las llaves no tienen relación alguna entre si.
Realmente los algoritmos asimetricos tienen dos tipos de llaves: Una llave pública y una llave privada y como su nombre lo indica, la llave pública puede darse a conocer sin problema y la llave privada tiene que esconderse bajo llave. En la vida real, un algoritmo asimétrico tiene el siguiente funcionamiento: Una empresa X (gorgosfot) emite documentos de configuración para sus usuarios y los envia por correo electrónico; la empresa gorgosoft para mejorar la seguridad de sus usuarios encripta sus documentos con un algoritmo de asimétrico (mediante la llave privada); los usuarios al recibir el documento encriptado intentan desencriptarlo con la llave pública que con anterioridad se les proporcionó; ya que los documentos encriptados con la llave privada solo pueden ser desencriptados con lla llave pública, se puede corroborar que los documentos que reciben los usuarios realmente son de gorgosotf. Los algoritmos asimétricos basan su seguridad en que la llave privada efectivamente permanezca privada.
Algunos de los algoritmos simétricos mas usados son: DES y AES (AES es el reemplazo de DES). Por su parte RSA es probablemente el algoritmo asimétrico mas conocido y utilizado.

En la sociedad de la información de hoy en dia, la criptografía se ha convertido en una de las principales herramientas para mantener la privacidad y la confianza, lo que tiene aplicaciones en distintos campos: control de acceso a recursos y servicios, autenticación de usuarios, pagos electrónicos, seguridad dentro de las coporaciones, etc. .
Debido a la gran cantidad de algoritmos de encriptación, la criptografía ha dejado de ser un privilegio especial de los gobiernos y de especialistas con grandes habilidades; ahora, la criptografia esta abierta a todo mundo.
Definiciones básicas
En la criptologia, el mensaje que se quiere encriptar es llamado texto plano. El proceso de codificar un mensaje con el fin de ocultar el texto de personas externas es llamado cifrado o encriptación. El texto ya encriptado es llamado texto cifrado. El proceso inverso a la encriptación es llamado desencriptación, que consiste en decodificar el texto cifrado con el fin de obtener nuevamente el texto plano. Los procesos de encriptación y desencriptación necesitan el uso de una llave o key.
La confidencialidad es mantener en secreto el contenido de la información; la integridad de datos consiste en detectar cambios no autorizados en la información; autenticación consiste en verificar que las personas sean quien dicen ser y de esta forma identificar los origenes de la información.
Algoritmos criptográficos básicos
El método para encriptar y desencriptar datos se conoce como algoritmo de encriptación o algoritmo de cifrado. Algunos algoritmos se basan en ocultar el método con el que el algoritmo de encriptación funciona, pero debido al gran auge de la encriptación y ya que hay muchos algoritmos que se han convertido en estandares de la industria la técnica de ocultar el método de funcionamiento de los algoritmos de encriptación se ha vuelto muy poco práctico. Los modernos algoritmos de encriptación basan su uso en llaves.

Hay dos clases de algoritmos de encriptación basados en llaves: los de llave privada o simétricos y los algoritmos de llave pública o asimétricos. La diferencia entre estos dos tipos de algoritmos consiste en que los algorimtos simétricos (de llave privada) utilizan la misma llave para encriptar y desencriptar el mensaje; por otro lado, los algoritmos asimétricos (de llave pública) utilizan una llave para encriptar el mensaje y otra llave completamente distinta para desencriptar el mensaje y es imposible encriptar el mensaje con una llave y desencriptarlo con esa misma llave, ya que las llaves no tienen relación alguna entre si.
Realmente los algoritmos asimetricos tienen dos tipos de llaves: Una llave pública y una llave privada y como su nombre lo indica, la llave pública puede darse a conocer sin problema y la llave privada tiene que esconderse bajo llave. En la vida real, un algoritmo asimétrico tiene el siguiente funcionamiento: Una empresa X (gorgosfot) emite documentos de configuración para sus usuarios y los envia por correo electrónico; la empresa gorgosoft para mejorar la seguridad de sus usuarios encripta sus documentos con un algoritmo de asimétrico (mediante la llave privada); los usuarios al recibir el documento encriptado intentan desencriptarlo con la llave pública que con anterioridad se les proporcionó; ya que los documentos encriptados con la llave privada solo pueden ser desencriptados con lla llave pública, se puede corroborar que los documentos que reciben los usuarios realmente son de gorgosotf. Los algoritmos asimétricos basan su seguridad en que la llave privada efectivamente permanezca privada.
Algunos de los algoritmos simétricos mas usados son: DES y AES (AES es el reemplazo de DES). Por su parte RSA es probablemente el algoritmo asimétrico mas conocido y utilizado.
sábado, 6 de diciembre de 2008
Inyeccion SQL - Ejemplo de inyeccion SQL (SQL injection) en C# y MySQL
Los requisitos
En esta entrada les mostraré un sencillo ejemplo de inyección SQL en un programa escrito en C# con Visual Studio 2005 en un Sistema Operativo WIndows Vista Homa Basic y utilizando MySQL como gestor de base de datos. También se ha instalado en Service Pack 1 para Visual Studio y su respectiva actualización para Windows Vista.
Primeros Pasos:
Lo primero para realizar la demostración es crear un nuevo proyecto en Visual Studio 2005, y realizar la respectiva conexión con MySQL. Dentro de MySQL se tiene una base de datos con nombre "ejemplo" y una tabla de nombre "login", en la tabla login se cuenta con dos registros, uno para cada usuario; un usuario es "alfonso" y su contraseña es "123", el otro usuario es "jesus y su contraseña es "456".
La lógica para el acceso es muy simple y no debería emplearse para uso en sistemas reales, pero para este ejemplo bastara.
Visual Studio:
Dentro del proyecto de Visual Studio, el programa únicamente verificará que existen registros cuyos datos se ingresan mediante un campo de texto de usuario y otro de contraseña; la verificación en la base de datos se realiza mediante una consulta SQL:
SELECT * FROM login WHERE usuario='nombre_usuario' AND pass='contraseña_usuario';
Dentro del código de C# tenemos una función autenticación que recibe una consulta SQL de formato parecido a la consulta de la parte de arriba y devuelve un valor booleano si la consulta devuelve por lo menos un registro:
public bool Autenticacion(string query)
{
bool nivel;
MySqlCommand miComando = new MySqlCommand(query, this.miConexion);
MySqlDataReader miLector;
miLector = miComando.ExecuteReader();
if (miLector.Read())
{
nivel = true; // si la consulta SQL devuelve algun registro
miLector.Close();
}
else
{
nivel = false; //los datos no coinciden
miLector.Close();
}
return nivel;
}
esta función se llama desde el formulario principal, el cual sustituye el nombre de usuario y la contraseña con los valores que se obtienen del cuadro de texto de usuario y del cuadro de texto contraseña. Este procedimiento se lleva a cabo por medio de dos botones: Ver instruccion SQL y Ejecutar instrucción.
El boton Ver instrucción imprime en pantalla el contenido de la consulta SQL que se mandará como parametro a la función autenticación:
private void button1_Click(object sender, EventArgs e)
{
q = "SELECT * FROM login WHERE usuario='" + textBoxUsuario.Text + "' and pass='" + textBoxContra.Text + "';";
labelSQL.Text = q;
}
El botón Ejecutar Instrucción ejecuta la función autenticación con la consulta SQL como parametro y si la función autenticación devuelve un valor verdadero, muestra en pantalla un mensaje que indica que el usuario si se encuentra registrado; si por el contrario, la función devuelve un valor falso, se muestra en pantalla un mensaje que indica que los datos no se encontraron dentro de la base de datos.
Ejemplos de Inyección SQL
En nuestro formulario, si introducimos como alfonso como usuario y 123 como contraseña y damos clic sobre el botón Ver instrucción SQL, podemos observar la consulta SQL tal y como se enviaría a la función autenticación:
SELECT * FROM login WHERE usuario='alfonso' AND pass='123';

y si presionamos el botón Ejecutar instrucción, esta consulta SQL se envia como parametro esta consulta. Podemos observar que se muestra en el formulario que el usuario si cuenta con derechos de acceso.

Si modificamos la contraseña y ahora ponemos 456 como contraseña y presionamos el botón Ver instrucción SQL, observamos que la consulta SQL quedaria asi:
SELECT * FROM login WHERE usuario='alfonso' AND pass='456';
Si en este momento presionamos el botón Ejecutar instrucción, recibiremos de parte de la función autenticación un valor falso, y esto muestra en el formulario un mensaje de que el usuario no tiene derecho de acceso.
Comencemos con en el ejemplo:
Al momento de ingresar un nombre de usuario, podemos engañar al sistema si utilizamos la comilla simple en el cuadro de texto y a la vez escribimos con una operación OR alguna condición que siempre de como resultado un valor verdadero (ejemplos: 1=1, 5=5, 5>1, 1<2 -="">SELECT * FROM login WHERE usuario='as' or '2'='2' AND pass='as' or '9'='9';2>
en esta instrucción tenemos operaciones de tipo OR que siempre dan en verdadero, ya que '2' es igual a '2' y '9' es igual a '9', esto ocasiona que siempre se devuelvan registros de la consulta (siempre y cuando existan registros en la tabla), y ya que la consulta SQL devuelve por lo menos un registro, la función autenticación devolverá un valor verdadero, esto podrá otorgarle acceso al sistema sin que realmente tenga los derechos de accesar.
Otra forma de obtener el acceso al sistema mediante inyeccion SQL es utilizar la capacidad de poder hacer comentarios en las sentencias SQL, de esta forma aprovechariamos el no tener que escribir contraseña alguna, de esta forma podriamos escribir algo como esto:
usuario: t' and 2=2;--
contraseña:
y la consulta SQL quedaria de esta forma:
SELECT * FROM login WHERE usuario='t' or 2=2;-- and pass='';
ya que utilizamos el simbolo de comentarios (--), todo lo que va después del simbolo de comentarios es ignorado por el sistema de base de datos, es como se no se escribiera, lo que nos da una sentencia SQL asi:
SELECT * FROM login WHERE usuario='t' or 2=2;
y ya que utilizamos una operacion de tipo OR en donde siempre da un resultado verdadero, obtenemos por lo menos un registro y la función autenticación nos permite el acceso del atacante aunque realmente no tenga derechos de acceso.
Actualización (21 Agosto 2013):
Un video que muestra que hasta las instituciones de gobierno sufren este tipo de problemas, realmente recomiendo verlo en pantalla completa para alcanzar a visualizar el texto que introducen.
Etiquetas:
Base de datos,
C#,
ejemplo,
inyeccion SQL,
SQL injection
Suscribirse a:
Entradas (Atom)

