miércoles, 23 de mayo de 2012

UNIDAD 5 TECNOLOGÍAS EMERGENTES DE DESARROLLO WEB

5.1 Concepto de Tecnologías Emergentes
Son definidas como innovaciones científicas que pueden crear una nueva industria o transformar una existente. Cada una de estas tecnologías ofrece un amplio campo de oportunidades lo que proporciona la motivación para hacer inversiones de riesgo, el problema que plantean estas nuevas tecnologías a las empresas o directivos de las mismas es que puede dar o no resultado. Las tecnologías emergentes surgen debido a que las herramientas de gestión tradicionales no son capaces de resolver con éxito los nuevos desafíos.

5.2 Herramientas de desarrollo web
5.2.1 Frameworks de Desarrollo
Un framework es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Se han convertido en la piedra angular de la moderna ingeniería del software Es una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, es una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.
Un framework es un ambiente de trabajo y ejecución, por ejemplo .Net, que es considerado un framework para desarrollar aplicaciones.
Son soluciones completas que completan herramientas de apoyo a la construcción y motores de ejecución.

Los objetivos de un framework son:
·         Desarrollo rápido.
·         Desarrollo estructurado.
·         Reutilización de código.
·         Disminuir el esfuerzo en el desarrollo.
·         Aprovechar las funcionalidades ya implementadas. No reinventar la rueda.
·         Concentrarse directamente en la solución del problema.

Algunos Frameworks que utiliza Java, ASP.net y HTML son los siguientes:
·         JAVA:
*OpenFrame. Orientado a servicios (SOA), basado en componentes de software libre.
*Hibernate. Herramienta de Mapeo objeto-relacional.
*OpenXava. Marco de trabajo de código abierto para desarrollo de aplicaciones de gestión.
·         ASP.NET:
*Ajaxium
*Lollygag
*Anthem.NET
·         HTML:
*Yaml. Yet Another Multicolumn Layout, para crear layouts flexibles y flotantes.
*HTML5 Boilerplate
*Baseline

5.2.2 Tecnología AJAX
AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

AJAX es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.

AJAX es una combinación de cuatro tecnologías ya existentes:
·         XHTML y hojas en estilo en cascada para el diseño que acompaña a la información.
·         Document Object Model (DOM) accedido con lenguaje de scripting por parte del usuario, implementaciones ECMAScript como JavaScript y JScript,  para mostrar e interactuar dinámicamente con la información presentada.
·         El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web.
·         XML es el formato usado generalmente para la transferencia de datos solicitados al servidor.

5.2.3 Utilización de Librerías
Prototype: facilita el desarrollo de aplicaciones web con JavaScript, su autor original es SamStephenson y las últimas versiones incorporan códigos e ideas de muchos programadores, es la base de muchos frameworks.

Scriptaculous: es una de las muchas librerías que han surgido para facilitar el desarrollo de aplicaciones su autor es Tomas Fuchs se encuentra dividida en varios modulos que son:
·         Efectos: permite añadir efectos a cada uno de los componentes de la página web.
·         Controles: los tres controles que forman este modulo son, arrastrar y soltar, autocompletar y editor de contenidos.
·         Utilidades: la utilidad principal se llama builder que se utiliza para crear nodos y fragmentos complejos de DOM.

JQuery: Su autor original es Jhon Resi, recibe contribuciones de decenas de programadores. Su diesño interno tiene diferencias drásticas respecto a prototype.


Conclusión
Las tecnologías emergentes son innovaciones que van surgiendo para satisfacer las necesidades de ciertas industrias ya sean nuevas o existentes y estas tecnologías pueden dar o no resultado.
Un framework es un ambiente de trabajo y ejecución que nos permite un desarrollo rápido, estructurado y además la reutilización del código en las aplicaciones web. Existe una infinidad de frameworks disponibles para las diferentes lenguajes de programación.
            Ajax es una tecnología para desarrollar aplicaciones interactivas, es una tecnología asíncrona, ya que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización de la página.


Bibliografía


miércoles, 16 de mayo de 2012

MÉTODOS DE ENCRIPTACIÓN EN LA WEB

ENCRIPTACIÓN
La encriptación es la única forma eficiente de transmitir información confidencial por Internet. El objetivo de la encriptación es garantizar la confidencialidad, integridad e irrefutabilidad de la información. La encriptación hace uso de diversas fórmulas matemáticas con el propósito de transformar el texto sin formato en un criptograma el cual es un conjunto de caracteres que a simple vista no tiene ningún sentido para el lector.

La encriptación es básicamente transformar datos en  alguna  forma  que  no  sea  legible  sin el conocimiento  de  la clave o algoritmo adecuado. El  propósito  de  esta  es  mantener  oculta la información que consideramos privada a cualquier persona o sistema que no tenga permitido  verla.

Para poder Encriptar un dato, se pueden utilizar tres procesos matemáticos diferentes:
Los algoritmos HASH, los simétricos y los asimétricos.
·         Algoritmo HASH:
Este algoritmo efectúa un cálculo matemático sobre los datos que constituyen el documento y da como resultado un número único llamado MAC. Un mismo documento dará siempre un mismo MAC.
·         Algoritmos Simétricos (Clave Privada):
Utilizan una clave con la cual se encripta y desencripta el documento. Todo documento encriptado con una clave, deberá desencriptarse, en el proceso inverso, con la misma clave. Es importante destacar que la clave debería viajar con los datos, lo que hace arriesgada la operación, es imposible de utilizar en ambientes donde interactuan varios interlocutores.

En la criptografía con claves simétricas es esencial que la clave utilizada para codificar y descodificar el mensaje se mantenga confidencial. Si alguien de fuera descubre la clave, la información que se transmite deja de estar protegida. Se requiere tomar muchas precauciones para enviar la clave al destinatario de forma segura.

En la práctica, se combinan varios métodos de encriptación para garantizar que la información permanece realmente protegida. Una forma de garantizar la encriptación es hacer que el programa de encriptación cree una clave simétrica en cada sesión y la envíe al destinatario codificada asimétricamente. El remitente y el destinatario sólo necesitan las claves asimétricas para implementar y descodificar el mensaje: el remitente tiene la clave pública del destinatario y el destinatario tiene su propia clave privada.
Las principales desventajas de los métodos simétricos son la distribución de las claves, el peligro de que muchas personas deban conocer una misma clave y la dificultad de almacenar y proteger muchas claves diferentes.
Los modernos algoritmos de encriptación simétricos mezclan la trasposición y la permutación. Estos algoritmos ofrecen confidencialidad.
Los principales algoritmos simétricos actuales son DES, IDEA y RC5.
DES, trabaja con claves simétrica, fue desarrollado en 1977 por la empresa IBM, se basa en un sistema monoalfabético, con un algoritmo de cifrado consistente en la aplicación sucesiva de varias permutaciones y sustituciones.
Inicialmente el texto a cifrar se somete a una permutación, utiliza una clave simétrica de 64 bits, de los cuales 56 son usados para la encriptación, mientras que los 8 restantes son de paridad, y se usan para la detección de errores en el proceso.
DES ya no es estándar y fue crackeado en Enero de 1999.
IDEA, trabaja con bloques de texto de 64 bits, operando siempre con números de 16 bits usando operaciones como XOR, suma y multiplicación de enteros.
El algoritmo de desencriptación es muy parecido al de encriptación, por lo que resulta muy fácil y rápido de programar, y hasta ahora no ha sido roto nunca, aportando su longitud de clave una seguridad fuerte ante los ataques por fuerza bruta.
También llamada asimétrica, se basa en el uso de dos claves diferentes, claves que poseen una propiedad fundamental: una clave puede desencriptar lo que la otra ha encriptado.
Una de las claves de la pareja, llamada clave privada, es usada por el propietario para encriptar los mensajes, mientras que la otra, llamada clave pública, es usada para desencriptar el mensaje.
RC5, Este sistema es el sucesor de RC4, que consistía en hacer un XOR al mensaje con un vector que se supone aleatorio y que se desprende de la clave, mientras que RC5 usa otra operación, llamada dependencia de datos, que aplica sifths a los datos para obtener así el mensaje cifrado.

Otros métodos de encriptación de claves privadas son:
IPSec (seguridad del protocolo de Internet) es un mecanismo de seguridad de la información que garantiza la confidencialidad e integridad de los paquetes IP. Protege y blinda el tráfico y la información de la aplicación durante la comunicación. El IPSec puede utilizarse, por ejemplo, para construir una relación de confianza entre servidores al crear redes privadas virtuales (VPN).
SSL (Secure Sockets Layer) método utilizado en aplicaciones de correo electrónico y varias aplicaciones web, como, por ejemplo, en la protección de conexiones bancarias en red entre la estación de trabajo y el servidor. El mecanismo SSL viene incorporado en los navegadores de Internet más usuales. Puede utilizarse para garantizar la identidad de las partes, asegurarse de que la información se transmite de forma confidencial y asegurar, asimismo, la integridad de los datos transmitidos.
·         Algoritmos Asimétricos (Clave Pública):
Los sistemas de cifrado de clave pública o sistemas de cifrado asimétricos se inventaron con el fin de evitar por completo el problema del intercambio de claves de los sistemas de cifrado simétricos. Con las claves públicas no es necesario que el remitente y el destinatario se pongan de acuerdo en la clave a emplear. Todo lo que se requiere es que, antes de iniciar la comunicación secreta, el remitente consiga una copia de la clave pública del destinatario. Esa misma clave pública puede ser usada por cualquiera que desee comunicarse con su propietario. Por tanto, se necesitarán sólo n pares de claves por cada n personas que deseen comunicarse entre sí.
Para que un algoritmo de clave pública sea considerado seguro debe cumplir con los siguientes puntos:
·         Conocido el texto cifrado no debe ser posible encontrar el texto en claro ni la clave privada.
·         Conocido el texto cifrado (criptograma) y el texto en claro debe resultar más caro en tiempo o dinero descifrar la clave que el valor posible de la información obtenida por terceros.
·         Conocida la clave pública y el texto en claro no se puede generar un criptograma correcto encriptado con la clave privada.

Dado un texto encriptado con una clave privada sólo existe una pública capaz de desencriptarlo, y viceversa.
Los algoritmos de clave pública se basan más en complejas operaciones matemáticas y ofrecen autenticidad, integridad, confidencialidad en el envío y no repudio si van asociados a una firma digital.
Los principales algoritmos asimétricos son:

Diffie-Hellman, algoritmo de encriptación de Whitfield Diffie y Martin Hellman fue el punto de partida para los sistema asimétricos, basados en claves pública y la privada.

RSA, es el más conocido y usado de los sistemas de clave pública, y también el más rápido de ellos.

Presenta todas las ventajas de los sistemas asimétricos, incluyendo la firma digital, aunque resulta más útil a la hora de implementar la confidencialidad el uso de sistemas simétricos, por ser más rápidos.

El sistema RSA se basa en el hecho matemático de la dificultad de factorizar números muy grandes. Para factorizar un número el sistema más lógico consiste en empezar a dividir sucesivamente éste entre 2, entre 3, entre 4,..., y así sucesivamente, buscando que el resultado de la división sea exacto, es decir, de resto 0, con lo que ya tendremos un divisor del número.

GAMMAL, esquema de cifrado basado en problemas matemáticos de algoritmos discretos. Algoritmo que puede ser utilizado tanto para generar firmas digitales como para cifrar o decifrar, no está bajo ninguna patente lo que lo tiene su uso libre.

BIBLIOGRAFÍA