Entradas

Mostrando las entradas de noviembre, 2017

Hash

Introducción La tecnología se ha desarrollado tan rápidamente en la mayoría de las áreas de informática que es fácil pasar por alto las áreas que no se han desarrollado en las últimas décadas. La autenticación basada en contraseña es probablemente una de las funciones técnicas más importantes que todos usamos todos los días, sin embargo, no ha evolucionado mucho desde los primeros sistemas informáticos de usuarios múltiples. El término autenticación (o autentificación) se refiere al servicio que trata de asegurar que una comunicación sea auténtica, es decir, verificar que el origen de los datos es el correcto, quién los envió y cuándo fueron enviados y recibidos también sean correctos. Anteriormente se había tratado el tema de la autenticación con el uso de Kerberos, esta vez el método a abordar son las funciones hash. ¿Qué es Hash? Es un algoritmo matemático que, con una entrada A, nos da una salida B. Son también llamadas funciones de resumen y se emplean en el área d

JUnit

Introducción  En los últimos años las pruebas unitarias han tomado mucha importancia en el desarrollo de software. Estas pruebas buscan conocer el funcinamiento de las unidades del software de forma temprana. Uno de los motivos por el cual estas pruebas son ahora más conocidas y más usadas es la incorporación de metodologías ágiles como Scrum y XP. Si bien existen diversos enfoques y algunos procesos de desarrollo proponen variantes, normalmente las pruebas unitarias son realizadas por la misma persona que contrsuyó la unidad. El conocimiento de la unidad, por haberla construido, permite encontrar los defectos de forma rápida luego de que alguna prueba falle. ¿Qué es jUnit?   jUnit es un frameword java que permite la realización de la ejecución de clases de manera controlada, para poder comprobar que los métodos realizan su cometido de forma correcta. También sirve como herramienta para realizar las pruebas de regresión, que realizaremos cuando una parte del código ha sido

RMI

Introducción Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados. ¿Qué es el RMI? RMI es un paquete de JAVA que permite manejar objetos (y sus respectivos metodos) de manera remota, para utilizar los recursos de un servidor de manera transparente para el usuario local. La manera en que RMI logra hacer esto, es por medio de l

Kerberos

Introducción En la antiguedad se tenía un sólo ordenador compartido entre varias personas, para ayudar a mantener los archivos individuales privados, se desarrolló el concepto de contraseña, para que los usuarios solo pudieran acceder a sus propios contenidos. Fue Fernando Corbató quien introdujo la idea mientras trabajaba en el Massachusetts Institute of Technology (MIT) en 1960. En aquellos tiempos, el uso de contraseñas con este fin era bastante limitado, principalmente reducido a personas como Corbató y su equipo, que estaban entre los primeros que realmente exploraron el poder de las computadoras, por lo que no era importante o preocupante el hecho de que las contraseñas fueran simples y por lo tanto vulnerables. En la actualidad, en un entorno de computación de red abierta, una estación de trabajo no es confiable para identificar correctamente a sus usuarios en los servicios de red. Kerberos proporciona un enfoque alternativo por el que se utiliza un servicio co

Socket Stream

Introducción El paradigma Cliente/Servidor es quizás el más conocido de los paradigmas para aplicaciones de red. Se usa para describir un modelo de interacción entre dos procesos, que se ejecutan de forma simultánea. Este modelo es una comunicación basada en una serie de preguntas y respuestas, que asegura que si dos aplicaciones intentan comunicarse, una comienza la ejecución y espera indefinidamente que la otra le responda y luego continua con el proceso.  Los dos componentes del paradigma son:  Cliente que es la aplicación que inicia la comunicación, es dirigida por el usuario y el servidor el cual es quien responde a los requerimientos de los clientes, son procesos que se están ejecutando indefinidamente. Los procesos clientes son más sencillos que los procesos de los servidores, los primeros no requieren de privilegios de sistemas para funcionar, en cambio los procesos servidores sí. ¿Qué es un Socket? Se le denomina Socket a una interfaz de entrada o