domingo, 29 de enero de 2017

Aprendiendo GIT 1 - Introduccion a GIT

Introducción a GIT




GIT, es un sistema de control de versiones y un sistema de control de versiones (o sistema de control de revisiones) es una combinación de tecnologías y practicas para seguir y controlar los cambios realizados en los archivos de un proyecto, en particular en el código fuente, en la documentación y en las páginas web. El sistema de control de versiones permite a una fuerza coordinadora central abarcar todas estas áreas. El núcleo del sistema es la gestión de cambios: identificar cada cambio a los ficheros del proyecto, anotar cada cambio con meta-data como la fecha y el autor de la modificación y disponer esta información para quien sea y como sea. Es un mecanismo de comunicación donde el cambio es la unidad básica de información.

viernes, 11 de diciembre de 2015

Aprendiendo C# 3 - Generalidades y Caracteristicas de C#

Características de C#



Facilidad de uso: el ambiente de trabajo es muy cómodo ya que tiene un ambiente amigable y clásico de las aplicaciones de Windows. En cuanto a la forma de programar, será fácil de usar para quien esta familiarizado con C++, ya que su estructuración básica es muy similar, sin embargo C# ahorra muchos pasos “tediosos” de otros lenguajes como la creación de funciones complejas desde cero y declaración de variables globales.

Programación orientada a objetos: esta forma de programación ahorra mucho código, lo cual indica que partes de código son reutilizables para no volverlas a escribir, con lo cual se afirma que C# presenta las características necesarias para considerarlo como un lenguaje orientado a objetos, tales son: encapsulación, herencia y polimorfismo; además una de las mejoras que presenta este lenguaje con respecto a este tipo de programación es que para evitar confusiones no existen variables o funciones globales, sino que se definen dentro de los tipos de datos. En cuanto a la herencia, esta solo puede ser herencia simple, con lo cual se evitan confusiones que si fuera herencia múltiple.

jueves, 10 de diciembre de 2015

Aprendiendo C# 2 - Paradigmas

Que es un paradigma?

Paradigma es un conjunto de compromisos compartidos dentro de los cuales yacen supuestos que permiten crear un marco conceptual a partir del cual se le da cierto sentido y significado al mundo.

Guían la forma en que se resuelven los problemas científicos y modelan nuestros marcos epistémicos, es decir, delimitan nuestro horizontes de conocimiento. Digamos que, cuando se hace ciencia, no se parte de la nada, sino que se parte de una serie de herramientas que nos permiten trabajar y sin las cuales ninguna ciencia podría tener lugar. La cuestión es que nuestras herramientas -que podríamos definirlas como herramientas conceptuales- ya tienen una carga, una forma específica conforme a la cual laboramos. En otras palabras, un paradigma es el conjunto de herramientas conceptuales que asumimos de antemano y ya están enfocadas a resolver los problemas de cierta manera y no de otra.


miércoles, 9 de diciembre de 2015

Aprendiendo C# 1 - Primer Programa

Doy por sentado que ya conseguimos nuestra version de Visual Studio Express C#, si aun no lo tienes puedes descargarlo de acá, iniciaremos con algo muy muy sencillo... iniciaremos con una aplicacion de consola que nos despliegue algun mensaje adicionaremos elementos para conocer mejor la interfaz de usuario de Visual Studio, para aclarar una aplicacion de consola podemos definirla como aquella que se ejecuta en ventas MS-DOS o en linea de comandos.

Para comenzar nos dirigimos a menu archivo -> Nuevo -> Proyecto. Se nos genera un cuadro de dialogo con las opciones relacionadas  con "Proyecto", aqui nos aparecen los distintos tipos de proyectos que podemos desarrollar pero para este caso seleccionaremos "Aplicacion de consola" y en la parte inferior del cuadro de dialogo daremos nombre a nuestra aplicacion, les recomiendo que sea un nombre ascendente por ejemplo " 1 - Mensaje por consola" y se fijan en las opciones con ticket que lo tenga la que dice "Crear directorio para la solucion".

Cuadro de dialogo para la creacion de proyectos.

viernes, 2 de octubre de 2015

Unidad 2 - Tarea 1 2da parte: Capturando tráfico con Wireshark

Segunda parte: analizando SSL.

¿Que es SSL?



SSL significa "Secure Sockets Layer". Secure Sockets Layer es un protocolo diseñado para permitir realizar conexiones seguras entre un cliente (como lo es un navegador de Internet) y un servidor (como lo son las computadoras que despachan páginas web).
Certificado SSL

utiliza certificados X.509 (criptografía asimétrica) para autentificar a la contraparte con quien se están comunicando y para intercambiar una llave simétrica. Esta sesión es luego usada para cifrar el flujo de datos entre las partes, logrando la confidencialidad del dato/mensaje, y códigos de autenticación de mensajes para integridad y como un producto lateral, autenticación del mensaje

Manos a la obra


Para la realización de este ejercicio, descarga esta traza con tráfico SSL y abrela con Wireshark.

¿Puedes identificar en qué paquete de la trama el servidor envía el certificado?

R: En los paquetes 2, 11 y 18.

Paquetes 2 y 11 en el que se envia el certificado

Paquete 18 en el que se envia el certificado



¿El certificado va en claro o está cifrado? ¿Puedes ver, por ejemplo, qué autoridad ha emitido el certificado?
R: El certificado va cifrado para proveer un canal seguro para la autentificacion de este con el  usuario, si se puede ver es verisign haciendo doble click en el segundo paquete, se desplega esta informacion: Certificate (id-at-commonName=login.passport.com,id-at-organizationalUnitName=Terms of use at http://www.verisign.com/r,id-at-organizationalUnitName=MSN Passport,id-at-organizationName=Microsoft,id-at-localityName=Redmond,id-at-stateOrProvinceNam

Informacion del segundo paquete.


¿Qué asegura el certificado, la identidad del servidor o del cliente?

El uso de SSL en un servidor web ayuda a asegurar que la información transmitida entre un cliente, como un navegador web y un servidor, como un servidor web, permanece privada, y permite a los clientes autenticar la identidad del servidor.

fin Tarea 1 2da parte: Capturando tráfico con Wireshark


Unidad 2 - Tarea 1 1ra parte: Capturando tráfico con Wireshark

Lo primero...

¿Que es Wireshark?


Wireshark

Wireshark(descarga), es una herramienta multiplataforma utilizada para realizar análisis sobre paquetes de red. La utilización de esta herramienta puede parecer de gran complejidad en un principio, pero es de gran utilidad una vez conocida su interfaz y su forma de operar. La funcionalidad que provee es similar a la de tcpdump, pero añade una interfaz gráfica y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una red (usualmente una red Ethernet, aunque es compatible con algunas otras).

Permite examinar datos de una red viva o de un archivo de captura salvado en disco. Se puede analizar la información capturada, a través de los detalles y sumarios por cada paquete. Wireshark incluye un completo lenguaje para filtrar lo que queremos ver y la habilidad de mostrar el flujo reconstruido de una sesión de TCP.

manos a la obra...

Primera parte: analizando un protocolo inseguro - Telnet.


Telnet (Telecommunication Network) es el nombre de un protocolo de red que nos permite viajar a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella en modo consola.

Funcionamiento

Telnet sólo sirve para acceder en modo terminal, es una herramienta muy útil para arreglar fallos a distancia. También se usaba para consultar datos a distancia, en general telnet se ha utilizado (y aún hoy se puede utilizar en su variante SSH) para abrir una sesión con una máquina UNIX, de modo que múltiples usuarios con cuenta en la máquina, se conectan, abren sesión y pueden trabajar utilizando esa máquina. Es una forma muy usual de trabajar con sistemas UNIX.

Problemas de seguridad 

Su mayor problema es de seguridad, ya que todos los nombres de usuario y contraseñas necesarias para entrar en las máquinas viajan por la red como texto plano (cadenas de texto sin cifrar). Esto facilita que cualquiera que espíe el tráfico de la red pueda obtener los nombres de usuario y contraseñas, y así acceder él también a todas esas máquinas. Por esta razón dejó de usarse, casi totalmente, hace unos años.

Como puedes ver, la elección de una aplicación no segura como Telnet puede llevar a la difusión de información importante, como información de acceso, sistemas operativos, etc., en este caso a través del tráfico intercambiado.
En esta tarea no vamos a realizar capturas en vivo de tráfico, sino que vamos a analizar trazas (capturas) ya realizadas con anterioridad y salvadas en archivos. En este caso, vamos a usar la traza telnet-raw.pcap, del repositorio de capturas disponible en Wireshark.

Descárgate la traza en tu ordenador y ábrela con Wireshark. Esta traza ha capturado el tráfico de una sesión de Telnet entre el cliente y el servidor.

Traza

Un consejo: para observar mejor el tráfico de Telnet, puedes usar un filtro muy sencillo de visualización, como puedes ver en la imagen:

Interfaz Wireshark
Video inroductorio wireshark (en ingles, muy ilustrativo).


  • Qué usuario y contraseña se ha utilizado para acceder al servidor de Telnet?
  • ¿Qué sistema operativo corre en la máquina?
  • ¿Qué comandos se ejecutan en esta sesión?

Para responder las preguntas debemos hacer uso de una herramienta poderosa de WireShark Follow TCP Stream que me permite seguir el flujo de un paquete elejido para su revisión y me muestra un resumen de lo capturado de una forma mas comprensible.


Ejecutando Follow TCP Stream.


Rsultado Follow TCP Stream


Respuestas


  • Qué usuario y contraseña se ha utilizado para acceder al servidor de Telnet?
         R: User: fake Password: user

  • ¿Qué sistema operativo corre en la máquina?
          R: OpenBSD 2.6-beta (OOF) #4: Tue Oct 12 20:42:32 CDT 1999

  • ¿Qué comandos se ejecutan en esta sesión?
          R: ping, ls, ls -a, exit

Fin Tarea 1, 1ra parte, Unidad 2






jueves, 1 de octubre de 2015

Unidad 1 - Tarea 3: Una sencilla práctica sobre criptografía

¿Qué es la Criptografía?


DEF: Arte y técnica de escribir con procedimientos o claves secretas o de un modo enigmático, de tal forma que lo escrito solamente sea inteligible para quien sepa descifrarlo.

La criptografía es la técnica que protege documentos y datos. Funciona a través de la utilización de cifras o códigos para escribir algo secreto en documentos y datos confidenciales que circulan por un medio potencialmente inseguro como es Internet, modificándola de manera que no sea comprensible para personas no autorizadas.


Proceso criptografico


Para cifrar y descifrar usamos claves criptográficas. Esto es lo que conocemos como confidencialidad, una solución que aporta la criptografía a la seguridad de la información.

Además, la criptografía puede aportar otras soluciones a los problemas de seguridad como:


  • La integridad de los datos: garantizar que los datos no han sido modificados por un tercero.
  • La validación de la identidad, la autenticación: garantizar que nos estamos comunicando con la persona o sistema con el que realmente queremos comunicarnos, entre otras.

Aprendiendo GIT 1 - Introduccion a GIT

Introducción a GIT GIT, es un sistema de control de versiones y un sistema de control de versiones (o sistema de control de revisione...