SISTEMA DE MENSAJERIA PARA REDES LAN
Transcript of SISTEMA DE MENSAJERIA PARA REDES LAN
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
SISTEMA DE MENSAJERÍA CIFRADO PARA REDES LAN
T E S I S QUE PARA OBTENER EL TITULO DE
INGENIERO EN COMUNICACCIONES Y ELECTRONICA
P R E S E N T A :
VALDOVINOS NAVARRO ROSA ISELA
VIZCAYA HERRERA ERICK FERMIN
ASESORA: GONZALEZ AMERICA MARIA
MEXICO D.F 2009
1
AGRADECIMIENTOS
Valdovinos Navarro Rosa Isela
A mi Madre:
María Navarro Valle
Y Hermanas:
Ana y Elena
Gracias
Vizcaya Herrera Erick Fermín
A mis padres:
Ana María Herrera Vizcaya y Fermín Vizcaya Torres
Gracias
2
INDICE
JUSTIFICACCION ........................................................................................................................ 6
OBJETIVO .................................................................................................................................... 6
Introducción ................................................................................................................................. 7
Capitulo 1 SEGURIDAD EN REDES ........................................................................................... 9 1.1 ARQUITECTURA DE SEGURIDAD OSI .................................................................................................. 9 1.2 ATAQUES A LA SEGURIDAD ............................................................................................................... 10
1.2.1 Ataques pasivos ............................................................................................................... 10 1.2.2 Ataques Activos ................................................................................................................ 12
1.3 SERVICIOS DE SEGURIDAD ................................................................................................................ 15 1.3.1Autentificación ................................................................................................................... 15 1.3.2 Control de Acceso ............................................................................................................ 17 1.3.3 Confidencialidad de los Datos .......................................................................................... 17 1.3.4 Integridad de los Datos .................................................................................................... 17 1.3.5 No Repudio del Mesaje .................................................................................................... 18 1.3.6 Servicio de Disponibilidad ................................................................................................ 18
1.4 MECANISMOS DE SEGURIDAD ........................................................................................................... 19 1.5 CARACTERISTICAS DE UN MODELO DE SEGURIDAD EN REDES .................................................. 21
Capitulo 2 Cifrado simétrico y mensajería reservada ........................................................... 25 2.1 PRINCIPIOS DE CIFRADO SIMETRICO ............................................................................................... 25
2.1.1 Criptografía ....................................................................................................................... 26 2.1.2 Criptoanálisis .................................................................................................................... 27 2.1.3 Estructura del Cifrado de FEISTEL .................................................................................. 30
2.2 ALGORITMOS DE CIFRADO SIMETRICO ............................................................................................ 34 2.2.1 DES (Data Encryption Standar) ....................................................................................... 34 2.2.2Triple DES ......................................................................................................................... 36
2.3 MODELO DE OPERACIÓN DEL CIFRADO DE BLOQUES .................................................................. 38 2.3.1 Ubicación de los Dispositivos de Cifrado ........................................................................ 39 2.3.2 Distribución de Claves ...................................................................................................... 40
Capitulo 3 ALGORITMO TRIPLE DES ...................................................................................... 42 3.1 EL ALGORITMO DES ............................................................................................................................ 42 3.2 ESTRUCTURA DEL DES ....................................................................................................................... 43 3.3 DESIFRADO DES .................................................................................................................................. 51 3.4 ESTRUCTURA DE CLAVES EN EL DES .............................................................................................. 51 3.5 PROPIEDADES DEL DES ..................................................................................................................... 54 3.6 SEGURIDAD DEL DES ......................................................................................................................... 54 3.7 TRIPLE DES ........................................................................................................................................... 56
3.7.1 Seguridad del Cifrado Triple DES ................................................................................... 58 3.7.2 Usos del Cifrado Triple DES ............................................................................................ 58
3
Capitulo 4 SISTEMA DISTRIBUIDO DE MENSAJERÍA CIFRADO ......................................... 59 4.1 PROPIEDADES Y HERRAMIENTAS PARA LA CREACIÓN DEL SISTEMA DE MENSAJERÍA CIFRADO. ........... 59 4.2 CONCEPTOS GENERALES DEL SISTEMA DE MENSAJERÍA CIFRADO ........................................................ 62 4.3 AUTENTIFICACIÓN DE USUARIOS Y PETICIONES DE CONVERSACIONES ................................................. 65 4.4 CARACTERÍSTICAS DEL SERVIDOR DE AUTENTIFICACIÓN DE USUARIOS. .............................................. 67
4.4.1 Características del Servidor de Bases de Datos.............................................................. 68 4.4.1 Características del Servidor Web ..................................................................................... 69
Capitulo 5 ESTRUCTURACIÓN DEL SISTEMA DE MENSAJERÍA CIFRADO ...................... 71 5.1 AUTENTIFICACIÓN DE LOS USUARIOS. ................................................................................................... 71 5.2 CONFIRMACIÓN DE LA LISTA DE CONTACTOS ......................................................................................... 78 5.3 ENVIÓ Y RECEPCIÓN DE MENSAJES UTILIZANDO EL CIFRADO TRIPLE DES ............................................ 82 5.4 CARACTERÍSTICAS DE LAS PC´S, PARA INSTALAR EL SISTEMA DE MENSAJERÍA. ................................... 86
Capitulo 6 CONFIGURACIÓN DE LA INFORMACIÓN EN LA BASE DE DATOS .................. 88 6.1 PROPIEDADES DEL SERVIDOR DE BASES DE DATOS ............................................................................. 88 6.2 DISTRIBUCIÓN DE LA INFORMACIÓN DE ALTA DE USUARIOS ................................................................ 91 6.3 ADMINISTRACIÓN DE LOS DATOS, PARA LA INTEGRACIÓN DE LAS LISTAS DE CONTACTOS. .................. 94 6.4 PROGRAMACIÓN Y ADMINISTRACIÓN DE LAS BASES DE DATOS ............................................................ 99
CapitUlo 7 RESULTADOS, CONCLUSIONES Y ALCANCES DE LA CREACION DEL SISTEMA DE MENSAJERÍA CIFRADO PARA REDES LAN .................................................................. 103
7.1 RESULTADOS OBTENIDOS Y COSTOS DE CREACION DEL SISTEMA DE MENSAJERIA CIFRADO PARA REDES LAN.................................................................................................................................................. 103 7.2 CONCLUCIONES DE LA CREACION DEL MENSAJERÍA CIFRADO PARA REDES LAN ................................ 106 7.3 ALCANCES Y APORTACIONES DEL SISTEMA MENSAJERÍA CIFRADO PARA REDES LAN ......................... 109
APENDICE A GLOSARIO DE TECNOLOGÍAS DE LA INFORMACIÓN .............................. 110 Concepto de Modelo OSI: .......................................................................................................................... 110 protocolo TCP ............................................................................................................................................. 111 protocolo IP ................................................................................................................................................ 112 PROTOCOLO TCP-IP ............................................................................................................................... 112 RECOMENDACIÓN X.800 ......................................................................................................................... 114 Sector de Normalización de las Telecomunicaciones de la UIT ................................................................. 114 RFC ............................................................................................................................................................ 116 RFC 2828 ................................................................................................................................................... 117 ARQUIRECTURA DE SEGURIDAD OSI ................................................................................................... 117 Instituto Nacional de Estándares y Tecnología ........................................................................................... 117
APENDICE B CODIGO FUENTE DEL CIFRADO TRIPLE DES EN C# ................................ 119
BIBLIOGRAFIA ......................................................................................................................... 121
4
INDICE DE FIGURAS
Figura 1.1 Obtencion del contenido del mensaje ......................................................................... 11 Figura 1.2 Analisis del trafico ......................................................................................................... 12 Figura 1.3 Suplantacion de la identidad ....................................................................................... 13 Figura 1.4 Repeticion ...................................................................................................................... 13 Figura 1.5 Modificacion de mensajes ............................................................................................ 14 Figura 1.6 Interrupcion del servicio ............................................................................................... 14 Figura 1.7 Modelo para la seguridad en redes .............................................................................. 22 Figura 1.8 Modelo para la seguridad en el accesoa redes .......................................................... 23 Figura 2.1 Modelo simlificado del cifrado convencional ............................................................. 25 Figura 2.2 Red clásica de feistel .................................................................................................... 32 Figura 2.3 Tiempo empleado en romper un código (suponiendo 10,000,000 descifrados / Microsegundo ) ................................................................................................................................. 36 Figura 2.4 Cifrado triple des ........................................................................................................... 37 Figura 2.5 Descifrado triple des ..................................................................................................... 37 Figura 2.6 Cifrado a travéz de una red de conmutación de paquetes ........................................ 39 Figura 3.1 Cálculo de las subclaves Ki .......................................................................................... 44 Figura 3.2 Ronda del Algoritmo DES .............................................................................................. 45 Figura 3.3 Esquema de transformaciones iterativas de los bloques Ln y Rn ............................. 47 Figura 3.4 Diagrama de descifrado DES ...................................................................................... 51 Figura 3.5 Diagrama para la Obtención de Una Clave a partir de una Clave de 64 Bits .......... 52 Figura 3.6 Diagrama de Claves para el Cifrado Triple Des.......................................................... 57 Figura 3.7 Proceso de Cifrado 3DES entre Emisor A y Receptor B ............................................. 57 Figura 4.1 Información visualizada por cada usuario al ingreso del Sistema de Mensajeria63 Figura 4.2 Ventana por medio de la cual se entablan las conversaciones ................................ 64 Figura 4.3 Rroceso de autenticacíon del sistema ....................................................................... 65 Figura 4.4 Envío de peticiones para la creación de la lista de contactos .................................. 66 Figura 4.5 Envío de peticiones para la realización de conversaciones ...................................... 66 Figura 4.6 El usuario 1 podrá establecer conversaciones con sus contactos ........................... 67 Figura 5.1 Inicio se sesión en el sistema de mensajería ............................................................. 71 Figura 5.2 Ventana que indica elingreso al sistema..................................................................... 72 Figura 5.3 Ventana de usuario y/o contraseña no valido ............................................................ 73 Figura 5.4 Diagrama de Autentificación de usuario ..................................................................... 74 Figura 5.5 Caracteristicas de los modulos master server y master client .................................. 75 Figura 5.6 Caracteristicas del modulo slave server ...................................................................... 76 Figura 5.7 Diagrama de Petición de conversaciones ................................................................... 76 Figura 5.8 Diagrama de distribucion de puertos entre las solicitudes de los usuarios ........... 78 Figura 5.9 Status de los integrantes de la lista de contactos ..................................................... 79 Figura 5.10 Ventana de Agregar contacto a la lista .................................................................... 79 Figura 5.11 Mensaje de usuario no agragado .............................................................................. 80 Figura 5.12 Mensaje de envío de solicitud de contacto ................................................................ 80 Figura 5.13 Mensaje de solicitud de confirmación de contacto ................................................... 81 Figura 5.14 Confirmacion de agregar usuario a lista de contactos .............................................. 81 Figura 5.15 Encripción de dados con c# ........................................................................................ 83 Figura 5.16 Cifrado y descifrado de datos ..................................................................................... 84 Figura 5.17 Los datos no son descifrados, las claves no son correctas ...................................... 84 Figura 5.18 Servidor del usuario a envía datos al servidor b del usuario b, los datos no se descifran, las claves no son las mismas ........................................................................................ 85
5
Figura 5.19 Servidor del usuario a envía datos al servidor b del usuario b, los datos se descifran y es legible ....................................................................................................................... 86 Figura 5.20 Estructura de una red lan .......................................................................................... 87 Figura 6.1 Estructura de una base de datos ................................................................................. 88 Figura 6.2 Arquitectura de un sistema de bases de datos .......................................................... 91 Figura 6.3 Tabla dbo.contactos ...................................................................................................... 92 Figura 6.4 Ataque activo: una entidad finge ser otra ................................................................... 93 Figura 6.5 Diagrama de integración de datos en dbo.contactos ................................................. 95 Figura 6.6 Tabla dbo.contactos, confirmacion de contacto ......................................................... 96 Figura 6.7 Autentificacion para acceso al sistemade administracion de usuarios ................. 101 Figura 6.8 Aplicación de Administracion de Usuarios del Sistema ........................................... 102 Figura 6.9 Aplicación de Administracion de Usuarios del Sistema ........................................... 102 Figura7.1 Ventana de wireshark……………………………………….....................................104 Figura7.2 Horas utilizadas para realizar el sistema de mensajería cifrado.........................105
6
JUSTIFICACION
Hoy en día, en donde la seguridad de la información, forma un aspecto importante
en todos los Sistemas de Comunicación, se ha observado un incremento en el
uso de la mensajería instantánea, convirtiéndose en un medio importante de
comunicación y una forma eficiente de compartir información, por lo que existe la
necesidad de crear un sistema de mensajería que cuente con mecanismos que
nos permita tener seguridad en la información que se envía por este medio y igual
tener un control más detallado de los usuarios que utilizan el sistema en una red
LAN.
OBJETIVO
Desarrollar un Sistema de Mensajería Instantánea con Tecnología .NET, que nos
permita compartir, solo con usuarios que sean autorizados por medio del servidor
de bases de datos y que la información que sea transmitida por la red LAN, este
protegida por medio del cifrado de datos utilizando el algoritmo Triple DES de tal
manera que solo el destinatario, sea quien pueda acceder y leer dicha
información.
7
INTRODUCCIÓN
La mensajería instantánea, a diferencia del correo electrónico y el ambiente Web,
proporciona la interacción de dos o más personas en tiempo real, donde un
usuario puede revisar quienes están conectados al sistema, y entablar
conversaciones con usuarios habilitados en el mismo sistema.
Para la creación de Sistema de Mensajería Cifrado se toman como base las
siguientes características, que nos ayudara a crear un sistema confiable y
funcional.
Como un Sistema de Comunicación.
Un Sistema Adaptado a Redes LAN.
Programado como un Sistema Distribuido con Tecnología .NET.
Un Sistema con Seguridad aplicando el Cifrado de Datos.
Como un Sistema de Comunicación: En la actualidad la transmisión de
información se produce a gran escala mundial, todos días el tratamiento y gestión
de datos sufren un empuje extraordinario y el desarrollo de las redes de
computadores crece impresionantemente. Al tener varias redes interconectadas, la
información que se maneja debe ser controlada con sistemas que puedan permitir
a los usuarios de una red entablar comunicación con otros usuarios en una
forma segura.
Un Sistema Adaptado a Redes LAN: El Sistema de Mensajería, se utilizara en
redes LAN, en donde se puedan estar interconectados, un servidor donde se
contendrá la información para el funcionamiento del sistema y los computadores
que podrán usar a la red LAN como un medio de conexión al sistema de
Mensajería.
8
Al utilizar una Red LAN, la finalidad es enlazar computadores utilizando un
conjunto de reglas que aseguren un servicio confiable y seguro. Algunas de las
características que debe tener el envió y transmisión de información es:
• La información debe proporcionarse de forma confiable sin ningún daño o
alteración en los datos.
• La información debe transferirse de manera constante. La red debe ser
quien determine hacia dónde se dirige la información.
Como un Sistema Distribuido: El Sistema de Mensajería se formara por medio de
de una o varias comunicaciones siguiendo un protocolo prefijado mediante un
esquema cliente-servidor. Los clientes son los usuarios que solicitaran una
conexión al Sistema de Mensajería, y el servidor es la maquina que proporcionara
la información y los medios necesarios para utilizar el Sistema.
El sistema de Mensajería se creara, con Tecnología .NET, programado con el
lenguaje C# y se utilizara un gestor de bases de datos que es SQL Server 2005.
Un Sistema con Seguridad aplicando el Cifrado de Datos: Con el crecimiento de
las redes de computadoras, se genero la necesidad de disponer de herramientas
automatizadas para la protección de archivos y otros tipos de información
almacenada en el computador. Esto ocurre especialmente en el uso de sistemas
compartidos, como es el caso del Sistema de Mensajería.
En el Sistema de Mensajería contendrá un conjunto de mecanismos para
resguardar los datos y evitar la intrusión de usuarios no autorizados, que pueden
causar modificación, eliminación, o afectar la integridad de los datos en el Sistema
de Mensajería.
El procedimiento que se utiliza en el Sistema de Mensajería, como mecanismo de
seguridad, es el cifrado de datos, que tiene como objetivo ocultar el contenido de
los mensajes, por medio de una serie codificada de signos, con el fin de
transmitirlo a un receptor, sin que nadie más pueda leerlo.
9
CAPITULO 1 SEGURIDAD EN REDES
1.1 ARQUITECTURA DE SEGURIDAD OSI
Para analizar las necesidades de seguridad de una organización, evaluar y elegir
distintos productos y políticas de seguridad, el responsable de la seguridad
necesita en forma sistemática definir los requisitos de seguridad y calificar los
enfoques para satisfacer dichos requisitos. Esto es difícil en un entorno
centralizado de procesamiento de datos, y con el uso de redes de área local y de
área ancha, los problemas se agravan.
La recomendación X.800 de la ITU-T (El sector de Estandarización de
Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU) es
una agencia que desarrolla estándares, recomendaciones, relativos a las
telecomunicaciones y a la interconexión de sistemas abiertos OSI). La arquitectura
de seguridad OSI es útil a los administradores de red para organizar la tarea de
proporcionar seguridad. A demás, que esta arquitectura fue desarrollada como un
estándar internacional, los vendedores han desarrollado características de
seguridad para sus productos.
La arquitectura de seguridad OSI se centra en los ataques a la seguridad, los
mecanismos y los servicios, se definen a continuación.
Amenaza: Una probabilidad de violación de la seguridad, que se da cuando hay
una circunstancia, acción o evento que pudiera romper la seguridad y causar daño
o alteración en la información. Es decir, una amenaza es un riesgo que toda red o
sistema tienen de ser quebrantado y se pueda extraer o modificar la información.
Ataque: Una invasión a la seguridad del sistema ocasionado de una amenaza
inteligente, es decir, un acto inteligente y premeditado (especialmente en el
sentido de método o técnica) para evitar los servicios de seguridad y violar la
política de seguridad de un sistema.
10
En la literatura los términos amenaza y ataque se usan frecuentemente de las
definiciones extraídas Internet Security Glossary, documento que contiene la lista
de información relacionada con la seguridad, mejor conocida como RFC 2828
(request for comments o petición de comentarios).
Mecanismos de seguridad: Es un proceso diseñado para reconocer un ataque a
la seguridad, evitarlo o restaurarse de él.
Servicio de seguridad: Es un conjunto de procedimientos que mejora la seguridad
de los sistemas de procesamiento de datos y la trasferencia de información de una
organización. Los servicios están diseñados para resistir los ataques a la
seguridad, y hacen uso de uno o más mecanismos para proporcionar el servicio.
De acuerdo a la Arquitectura de Seguridad OSI, un servicio de seguridad es una
característica que debe tener un sistema para satisfacer una política de seguridad.
Políticas de Seguridad: Es un conjunto de reglas que definen la manera en que
una organización maneja, administra, protege y asigna recursos para alcanzar el
nivel de seguridad definido como objetivo.
1.2 ATAQUES A LA SEGURIDAD
Una forma importante de clasificar los ataques a la seguridad, es la empleada en
la recomendación X.800 y RFC2828, en donde se realiza la identificación entre
ataques pasivos y ataques activos. Un ataque pasivo trata de conocer o hacer uso
de información del sistema, pero no afecta los procesos del mismo. Un ataque
activo, intenta modificar los recursos del sistema o afectar a su funcionamiento.
1.2.1 ATAQUES PASIVOS
Los ataques pasivos, el atacante no altera la comunicación, sino que únicamente
la monitoriza y observa transmisiones no autorizadas. El objetivo del atacante es
11
obtener información que se esté transmitiendo. Dos tipos e ataques pasivos son la
obtención de contenidos de mensaje y el análisis de tráfico.
La obtención de contenidos de mensaje se puede observar fácilmente en la figura
1.1. Una conversación telefónica, un mensaje por correo electrónico, mensajes
enviados por medio de mensajería instantánea y un fichero enviado pueden
contener información confidencial, son algunas de las formas en cómo se pueden
monitorear datos.
FIGURA 1.1 OBTENCION DEL CONTENIDO DEL MENSAJE
El ataque pasivo de análisis de tráfico, se puede detallar en la figura 1.2. Si se
ocultan los contenidos de los mensajes o trafico de información de forma que el
atacante, incluso habiendo capturado el mensaje, no pueda extraer la información
que contiene. El método utilizado frecuentemente para ocultar los contenidos es el
cifrado.
Todavía aun teniendo protección mediante el cifrado, un atacante podría observar
el flujo de los mensajes, obtener la localización y la identidad de los servidores que
se comunican y descubrir la frecuencia y la longitud de los mensajes que se están
intercambiando. Esta información puede ser utilizada para averiguar el tipo de
comunicación que está teniendo lugar.
12
FIGURA 1.2 ANALISIS DEL TRAFICO
Los ataques pasivos son difíciles de identificar, ya que no provocan alteración en
los datos. El envió y recepción de mensajes se realiza de una forma
aparentemente normal ya que ni el emisor ni el receptor llegan a detectar que una
tercera persona ha leído los mensajes o ha observado el patrón de tráfico. Es
posible evitar el éxito de estos ataques, normalmente utilizando el cifrado. Por lo
que al tratar con los ataques pasivos, es más la prevención que en la detección.
1.2.2 ATAQUES ACTIVOS
Estos ataques implican algún tipo de modificación del flujo de datos transmitido o
la creación de un falso flujo de datos, se pueden dividir en cuatro categorías:
suplantación de identidad, repetición, modificación de mensaje e interrupción de
servicio.
Una Suplantación se realiza cuando un agente finge ser otro como se observa en
la figura 1.3. Un ataque de este tipo incorpora una de las otras formas de ataque
activo. Por ejemplo, las fases de autentificación pueden ser capturadas y repetidas
después de una fase valida de autentificación se haya realizado, permitiendo que
un agente autorizado con pocos privilegios obtenga privilegios extra haciéndose
pasar por el agente que realmente los posee.
13
FIGURA 1.3 SUPLANTACION DE LA IDENTIDAD
La repetición incluye la captura pasiva de una unidad de datos y su retransmisión
posterior para producir un efecto no autorizado, como se observa en la figura 1.4.
FIGURA 1.4 REPETICION
La modificación de mensajes significa que una fracción de un mensaje original es
cambiada, o que los mensajes se han retrasados o reordenado, para hacer un
efecto no autorizado como se observa en la figura 1.5. Por ejemplo, el mensaje
“Permitir a Erick Pérez que lea las cuentas de archivos confidenciales” se
convierte en “Permitir a Marcos Fernández que lea las cuentas de archivo
confidenciales”.
14
FIGURA 1.5 MODIFICACION DE MENSAJES
La interrupción de servicio impide el uso normal de los recursos de comunicación.
Este ataque podría tener un objetivo específico; por ejemplo, un agente podría
anular todos los mensajes dirigidos a un destino en particular. Otra forma de este
tipo de ataque es la suspensión de una red completa, ya sea inhabilitándola o
sobrecargándola con mensajes para reducir su rendimiento como se observa en la
figura 1.6.
FIGURA 1.6 INTERRUPCION DEL SERVICIO
Los ataques activos son difíciles de prevenir por completo, debido a que se
necesita la protección física de todas las herramientas de comunicación y las rutas
en todo momento.
15
1.3 SERVICIOS DE SEGURIDAD
La recomendación X.800 define un servicio de seguridad como un conjunto de
procesos otorgado por una capa de protocolo de sistemas abiertos de
comunicación (OSI), que avala la seguridad adecuada de los sistemas o de las
transferencias de datos.
La definición en RFC 2828 indica que un servicio de procesamiento o de
comunicación por un sistema para dar un tipo especial de protección a los
recursos del sistema; los servicios de seguridad implementan políticas de
seguridad y son implementados, a su vez, por mecanismos de seguridad.
En X.800 estos servicios quedan divididos en cinco categorías y 14 servicios
específicos Tabla 1.1.
1.3.1AUTENTIFICACIÓN
El servicio de autentificación su objetivo es garantizar la autenticidad de la
comunicación. La autentificación asegura que la identidad de los participantes es
verdadera. Se pueden evaluar tres aspectos para autentificar usuarios: verificar
algo que el usuario tiene; poner a prueba al usuario sobre algo que sabe, esto es,
pedirle una contraseña y, finalmente, el tercer aspecto es verificar algo que el
usuario es, por ejemplo, analizar sus huellas dactilares o su retina.
En el estándar X.800 se definen dos tipos particulares de autentificación:
Autentificación de entidades origen/destino: Proporciona la información de la
identidad de un usuario de una agrupación. Se otorga en el establecimiento de
una conexión o durante la fase de transmisión de datos de la conexión. Tratan de
confirmar que un usuario no está realizando una sustitución o una repetición no
autorizada de una conexión anterior.
Autentificación del origen de los datos: Identifica la fuente de una unidad de datos.
No aporta protección contra la repetición o la alteración de unidades de datos.
16
Este tipo de servicio admite aplicaciones como el correo electrónico, donde no hay
interacciones previas entre las entidades que se comunican.
TABLA 1.1 SERVICIOS DE SEGURIDAD (X.800)Servicio Descripción
AUTENTIFICACCION
*Autentificación de las entidades origen/destino:
Empleada conjuntamente con una conexión lógica para aportar confianza
sobre los usuarios conectados a una red.
*Autentificación del origen de los datos: En transmisión no orientada a la
conexión, avala que la fuente de los datos recibidos.
CONTROL DE ACCESO
*La prevención del uso no autorizado de una fuente. Mediante restricciones
durante la conexión a aplicaciones dentro de una red.
CONFIDENCIALIDAD DE LOS DATOS
*Confidencialidad de la Conexión: La protección de los datos de todos los
usuarios en una conexión.
*Confidencialidad no Orientada a la Conexión: La protección de los datos de
todos los usuarios en un único bloque de datos.
*Confidencialidad de Campos Seleccionados: Se realiza en los datos del
usuario en una conexión o en un único bloque de datos.
* Confidencialidad del Flujo de Trafico: La protección de la información que
podría extraerse a partir de la observación del flujo del tráfico.
INTEGRIDAD DE LOS DATOS
*Integridad de la Conexión con Recuperación: Proporciona la integridad de
los datos de todos los usuarios en una conexión y detecta cualquier
modificación, inserción, omisión o repetición de cualquier dato de una
secuencia completa de datos, con intento de recuperación.
*Integridad de la Conexión sin Recuperación: Igual que el anterior, pero
proporciona solo detección sin recuperación.
*Integridad de la conexión de Campos Seleccionados: Proporciona la
integridad de los campos seleccionados en los datos del usuario del bloque
de datos transferido por una conexión.
*Integridad no Orientada a la Conexión: Proporciona integridad de un bloque
de datos sin conexión y puede detectar la alteración de datos.
*Integridad no Orientada a la Conexión de Campos Seleccionados:
Proporciona la integridad de los campos seleccionados en un bloque de
datos sin conexión; determina si los campos seleccionados han sido
modificados.
NO REPUDIO DEL MENSAJE
*No Repudio, Origen:
Prueba que el mensaje fue enviado por la parte especificada.
*No Repudio, Destino:
Prueba que el mensaje fue recibido por la parte especificada.
17
1.3.2 CONTROL DE ACCESO
El control de acceso es la facultad de limitar y revisar el acceso a sistemas host y
aplicaciones por medio de enlaces de comunicaciones. Para conseguirlo,
cualquier usuario que intente ingresar debe antes ser identificada o autentificada,
de forma que los derechos de acceso puedan asignarse de manera individual.
1.3.3 CONFIDENCIALIDAD DE LOS DATOS
Este servicio trata de impedir que usuarios no autorizados conozcan la existencia
de datos, los examinen o revelen, o analice su flujo. De acuerdo al contenido de
una transmisión de datos, existen diferentes niveles de protección. El servicio más
amplio resguarda los datos de los usuarios que se han transmitido por conexión
TCP (Protocolo de Control de Transmisión).
El otro aspecto de la confidencialidad es la protección del flujo del tráfico frente al
análisis de tráfico. Para ello el atacante no debería poder ver la fuente, el destino,
la frecuencia, la longitud ni otras características del tráfico en una comunicación.
1.3.4 INTEGRIDAD DE LOS DATOS
Es el servicio que nos indica que la información no ha sido modificada por
usuarios, sistemas o procesos no autorizados para hacerlo. Dentro de las posibles
modificaciones están la escritura, modificación o borrado de segmentos de datos.
Un servicio de integridad orientado a la conexión que funcione sobre un flujo de
mensajes garantiza que los mensajes se reciben tal y como son enviados, sin
duplicación, inserción, modificación, reordenación ni repeticiones.
La destrucción de datos también queda cubierta con este servicio. Así, el servicio
de integridad orientado a la conexión trata tanto la modificación del flujo de
mensajes como la interrupción del servicio.
18
El servicio de integridad tiene que ver con los ataques activos, en este servicio
interesa más la detección que la prevención. Si se detecta una violación de la
integridad, el servicio podría simplemente informar de esta violación, y será
necesaria la intervención humana o de algún otro software para restablecerse de
la violación.
1.3.5 NO REPUDIO DEL MENSAJE
El no repudio evita que el emisor o el receptor rechacen la transmisión de un
mensaje. Así, cuando se envía un mensaje, el receptor puede comprobar que, el
supuesto emisor envió el mensaje y cuando se recibe un mensaje, el emisor
puede verificar que, el supuesto receptor recogió el mensaje.
1.3.6 SERVICIO DE DISPONIBILIDAD
Tanto X.800 como RFC2828 define la disponibilidad como la característica que
tiene un sistema o recurso de un sistema de estar accesible y utilizable a petición
de una entidad autorizada de acuerdo a las propiedades de rendimiento para el
sistema.
Una variedad de ataques puede dar como resultado la pérdida o reducción de la
disponibilidad. Algunos de estos ataques son susceptibles a contramedidas
automatizadas, como la autentificación o el cifrado, mientras que otras requieren
algún tipo de acción física para prevenir o recuperarse de la perdida de
disponibilidad de elementos de un sistema distribuido.
La norma X.800 trata la disponibilidad como un servicio que protege un sistema
para asegurar su disponibilidad y trata los problemas de seguridad que surgen a
raíz de ataques de interrupción de servicio.
La tabla 1.2 muestra la relación que existe entre los servicios de seguridad y los
ataques.
19
TABLA 1.2 RELACIÓN ENTRE SERVICIOS DE SEGURIDAD Y ATAQUES Ataque
Servicio Obtención
del
contenido
del mensaje
Análisis de
trafico
Suplantación Repetición Modificación
de mensajes
Interrupción de
servicio
Autentificación de
Entidades
Origen/Destino
Autentificación del
Origen de los
Datos
Y
Control de Acceso Y
Confidencialidad Y
Confidencialidad
del Flujo de
Trafico
Y
Integridad de los
Datos
Y Y
No Repudio
Disponibilidad Y
1.4 MECANISMOS DE SEGURIDAD
La tabla 1.3 indica los mecanismos de seguridad definidos en X.800. Como se
puede observar, los mecanismos se dividen en aquellos que se implementan en
una capa específica de un protocolo y aquellos que no son específicos de ninguna
capa de protocolo o servicio de seguridad en particular. La definición de cifrado
X.800 distingue entre mecanismos de cifrado reversible y mecanismos de cifrado
irreversible. El primero es un algoritmo de cifrado que permite cifrar los datos y
posteriormente, descifrarlos. Por otro lado, los mecanismos de cifrado irreversible
incluyen algoritmos hash y códigos de autentificación de mensajes, que se
emplean en firmas digitales y en aplicaciones de autentificación de mensajes.
20
TABLA 1.3 MECANISMOS DE SEGURIDAD (X.800)
Mecanismo
Descripción
Mecanismos
Específicos de
Seguridad
*Cifrado: El Uso de algoritmos matemáticos para transformar datos en una forma inteligible. La
transformación y la posterior recuperación de los datos depende de un algoritmo y cero o mas
claves de cifrado
*Firma Digital: Datos añadidos a, o una transformación criptográfica de, una unidad de datos que
permite al receptor verificar la fuente y la integridad de la unidad de datos y protegerla de la
falsificación (por parte del receptor).
*Control de Acceso: Una serie de mecanismos que refuerzan los derechos de acceso a los
recursos. *Integridad de los Datos: Una serie de mecanismos empleados para verificar la integridad de una
unidad de datos o del flujo de unidades de datos. *Intercambio de Autentificación: Un mecanismo diseñado para comprobar la identidad de una
entidad por medio del intercambio de información. *Relleno de Tráfico: La inserción de bits en espacios en un flujo de datos para frustrar los
intentos de análisis de tráfico.
*Control de Enrutamiento: Permite la selección de rutas físicamente seguras para determinados
datos y permítelos cambios de enrutamiento, especialmente cuando se sospecha de una brecha
en la seguridad.
*Notarizacion: El uso de una tercera parte confiable para asegurar determinadas propiedades de
un intercambio de datos
Mecanismos
Generales de
Seguridad
*Funcionalidad Fiable: La que se considera correcta con respecto a algunos criterios (por
ejemplo, los establecidos por una política de seguridad).
* Etiquetas de Seguridad: La marca asociada a un recurso (que podría ser una unidad de datos)
que designa los atributos de seguridad de ese recurso. *Detección de Acciones: Detección de acciones relacionadas con la seguridad.
*Informe para la Auditoria de Seguridad: Recopilación de datos para facilitar una auditoria de
seguridad, que consiste en una revisión y un examen independientes de los informes y
actividades del sistema.
* Recuperación de la Seguridad: Maneja las peticiones de los mecanismos (como funciones de
gestión de acciones) y lleva a cabo acciones de recuperación.
La tabla 1.4 está basada en la recomendación X.800, indica la relación que se da
entre los servicios de seguridad y los mecanismos de seguridad.
21
TABLA 1.4 RELACIÓN ENTRE SERVICIOS Y MECANISMOS DE SEGURIDAD Mecanismos
Servicio Cifrado Firma
Digital
Control
de
Acceso
Integridad
de los
Datos
Intercambio de
Autentificación
Relleno
del
Trafico
Control del
Enrutamiento
Notariz-
ación
Autentificación de
Entidades
Origen/Destino
Y Y Y
Autentificación del
Origen de los
Datos
Y Y
Control de Acceso Y
Confidencialidad Y Y
Confidencialidad
del Flujo de
Trafico
Y Y Y
Integridad de los
Datos
Y Y Y
No Repudio Y Y Y
Disponibilidad Y Y
1.5 CARACTERISTICAS DE UN MODELO DE SEGURIDAD EN REDES
La figura 1.7 representa un modelo de un mensaje que ha de ser transmitido de
mediante alguna red de un sitio a otro. Las dos partes, que son los interlocutores
en la transmisión, deben cooperar para que el intercambio tenga lugar. Se
establece un canal de información definiendo una ruta a través de la red que vaya
de la fuente al destino y mediante el uso cooperativo de comunicación por parte de
los interlocutores.
La seguridad entra cuando se necesita proteger la transmisión de información de
un oponente que pudiera presentar una amenaza a la confidencialidad, a la
autenticidad de los datos. Todas las técnicas para proporcionar seguridad tienen
dos componentes.
• Una Transformación relacionada con la seguridad de la información que se
va enviar. Un ejemplo de ello es el cifrado del mensaje, que lo desordena
para que resulte ilegible al oponente, y la aplicación de un código basado
22
en el contenido del mensaje, que puede usarse para verificar la identidad
del emisor.
• Alguna información secreta compartida por los interlocutores y desconocida
por el oponente. Un ejemplo es la clave de cifrado usada en conjunción con
la transformación para desordenar el mensaje antes de la transmisión y
reordenarlo al momento de la recepción.
Para lograr una transmisión segura, puede ser necesaria una tercera parte
confiable, por ejemplo, sea la responsable de distribuir la información secreta a los
dos interlocutores y la guarde de cualquier oponente. También puede ser
necesaria para ordenar disputas entre los interlocutores con lo que respecta a la
autenticidad de la transmisión de un mensaje.
FIGURA 1.7 MODELO PARA LA SEGURIDAD EN REDES
Este modelo general muestra que hay cuatro tareas básicas en el diseño de un
servicio de seguridad particular.
1. Diseñar un algoritmo para llevar a cabo la transformación relacionada con la
seguridad. El algoritmo debe estar diseñado de forma que un oponente no
pueda obtener la información.
2. Generar la información secreta que deba ser usada con el algoritmo.
23
3. Desarrollar métodos para distribuir y compartir la información secreta.
4. Especificar un protocolo para los dos interlocutores que hagan uso del
algoritmo de seguridad y la información secreta, para obtener un servicio
concreto de seguridad.
En la figura 1.8 se identifica un modelo que refleja la preocupación por proteger un
sistema de información del acceso no deseado. Los problemas ocasionados por
la existencia de hackers, que tratan de penetrar sistemas a los que pueden
acceder por medio de la red.
El hacker puede ser alguien que, sin la intensión de hacer daño, obtiene
satisfacción rompiendo y entrando en los sistemas informáticos. El Intruso también
puede ser un empleado contrariado que quiere hacer daño, o un criminal que
intenta explotar los sistemas computacionales para obtener beneficios financieros.
Otro tipo de acceso no deseado consiste en introducir en un sistema
computacional software que explote debilidades en el sistema y que pueda
afectar a programas de aplicaciones, como editores y compiladores.
Los mecanismos de seguridad necesarios para enfrentarse a accesos no
deseados se dividen en dos categorías (figura 1.8). La primera categoría es la de
función de vigilancia, incluye los procedimientos de conexión mediante clave,
diseñados para negar accesos a usuarios no autorizados, y los software de
ocultación, diseñados para detectar y rechazar gusanos, virus y ataques similares.
FIGURA 1.8 MODELO PARA LA SEGURIDAD EN EL ACCESOA REDES
24
Una vez que un usuario o software no deseado accede, la segunda línea de la
defensa consiste en una serie de controles internos que monitorizan la actividad y
analizan la información almacenada con el fin de detectar la presencia de intrusos.
25
CAPITULO 2 CIFRADO SIMÉTRICO Y MENSAJERÍA RESERVADA
2.1 PRINCIPIOS DE CIFRADO SIMETRICO
Un esquema de cifrado simétrico tiene cinco componentes Figura 2.1:
• Texto claro: Son los datos o información original que se introducen en el algoritmo
como entrada.
• Algoritmo de cifrado: El algoritmo de cifrado realiza varias sustituciones,
modificando en el texto claro.
• Clave Secreta: La clave es también una entrada del algoritmo. Las sustituciones y
modificaciones realizadas por el algoritmo dependen de ella.
• Texto Cifrado: Son los datos ilegibles que se produce como salida. Depende del
texto claro y de la clave secreta. Para datos determinados, dos claves diferentes
producirían dos textos cifrados diferentes.
• Algoritmo de Descifrado: Es el algoritmo de cifrado ejecutado a la inversa. Toma el
texto cifrado y la misma clave secreta, y genera el texto claro.
FIGURA 2.1 MODELO SIMLIFICADO DEL CIFRADO CONVENCIONAL
26
Hay dos requisitos para el uso del cifrado simétrico.
1.0 Se requiere un algoritmo de cifrado fuerte: Para que el atacante no pueda descifrar
el texto o averiguar la clave aunque estuviera una serie de textos cifrados juntos
con sus correspondientes textos originales.
2.0 El emisor y el receptor deben poseer copias de la clave secreta de forma segura y
su obligación es guardarla ya que si alguien descubre la clave y conoce el
algoritmo, la información que se transmite con esa clave es descifrable.
La seguridad del cifrado simétrico depende de la privacidad de la clave, no de la
privacidad del algoritmo. Es decir, no es necesario que el algoritmo sea secreto; lo
único que se debe mantener en secreto es la clave.
2.1.1 CRIPTOGRAFÍA
La criptografía es el arte de cifrar y descifrar información mediante técnicas que
hagan el intercambio de mensajes de manera segura y que sólo los mensajes
puedan ser leídos por los usuarios a quienes van dirigidos.
La criptografía se basa en la aritmética: En el caso de un texto, consiste en
transformar las letras que conforman el mensaje en una serie de números (en
forma de bytes ya que los equipos informáticos usan el sistema binario) y luego
realizar cálculos con estos números para modificarlos y hacerlos incomprensibles.
El resultado de esta modificación se llama texto cifrado, en contraste con el
mensaje inicial, llamado texto claro.
El objetivo de la criptografía es, garantizar el secreto en la comunicación entre dos
entidades (personas, organizaciones, etc.) y asegurar que la información que se
envía es auténtica en un doble sentido: que el remitente sea realmente quien dice
ser y que el contenido del mensaje enviado, no haya sido modificado durante el
envío del mensaje.
27
Generalmente, los sistemas criptográficos se clasifican atendiendo a tres factores
independientes.
1.0 El procedimiento utilizado para transformar el texto claro en texto cifrado: Los
algoritmos de cifrado se fundamentan en dos principios: sustitución, donde cada
pieza de texto claro (bit, letra, grupo de bits o letras) se sustituye por otro diferente;
y transposición, donde las piezas del texto claro se reordenan. Lo principal del
proceso es que todas las operaciones sean reversibles. La mayoría de los
sistemas emplean múltiples etapas de sustituciones y transposiciones.
2.0 El numero de claves usadas. Si el emisor como el receptor usan la misma clave,
el sistema se denomina simétrico, de clave única, de clave secreta o cifrado
convencional. En cambio, si el emisor y el receptor usan cada uno claves
diferentes, el sistema se denomina asimétrico, de dos claves, o cifrado de clave
pública.
3.0 La forma de procesar el texto claro. Un cifrador de bloque procesa un bloque de
elementos, produciendo un bloque de salida por cada bloque de entrada. Un
cifrador de flujo procesa los elementos de entrada continuamente, produciendo la
salida de un elemento cada vez.
2.1.2 CRIPTOANÁLISIS
El criptoanálisis es el proceso que intenta descubrir un texto claro o una clave de
cifrado, demostrando la vulnerabilidad de un sistema de cifrado. La estrategia
usada por el criptoanàlista depende de la naturaleza del esquema de cifrado y de
la información disponible.
En la tabla 2.1 se localizan los distintos modelos de ataques criptoanàliticos,
basados en la cantidad de información que tiene el criptoanàlista. Uno de los
modelos más complicado de estudiar, es aquel en donde la información disponible
esta en el texto cifrado.
28
Un ataque de esta índole s realiza mediante el uso de la fuerza, tratando con
todas las claves posibles, pero si el rango de las claves es muy grande, el
atacante puede utilizar herramientas estadísticas para realizar pruebas.
Para este tipo de análisis el atacante debe conocer, una característica del texto
claro implicado (texto en inglés, francés, un fichero de cuentas, un fichero EXE
etc.).
El ataque con solo texto cifrado es el más difícil de evitar, ya que el atacante
dispone de la mínima información con la cual trabajar.
En el caso del ataque por texto claro conocido, consiste en encontrar la clave
descifrado, utilizando uno o más textos cifrados, conociendo el texto claro.
Un ejemplo de cómo obtener información del texto claro seria obteniendo el código
fuente de un programa desarrollado por una corporación, en donde se incluya
información de copyright en alguna posición estandarizada.
Cuando un analista logra conseguir que el sistema fuente introduzca en el sistema
un mensaje elegido por el, por lo cual se puede producir un ataque de texto claro
elegido.
En general si el atacante tiene capacidad de elegir los mensajes que va a cifrar,
podría conseguir patrones que se pueden esperar para revelar la estructura de la
clave.
En la tabla 2.1 se presenta otros dos tipos de ataques: texto cifrado elegido y
texto elegido.
Estos se utilizan menos como técnicas criptoanalíticas pero constituyen, no
obstante, vías posibles para los ataques.
29
TABLA 2.1 TIPO DE ATAQUES A MENSAJES CIFRADOS
Tipo de Ataque Información del Criptoanàlista
Solo Texto Cifrado Algoritmos de cifrado.
Texto cifrado que se va a decodificar
Texto Claro Conocido Algoritmo de cifrado.
Texto cifrado que se va a decodificar
Uno o más pares e texto claro-texto cifrado formados con la clave secreta
Texto Claro Elegido Algoritmo de cifrado.
Texto cifrado que se va a decodificar.
Mensaje de texto en claro elegido por el criptoanàlista junto con su correspondiente texto cifrado
generado con la clave secreta.
Texto cifrado Elegido Algoritmo cifrado.
Texto cifrado que se va a decodificar.
Texto cifrado intencionado elegido por el criptoanàlista, junto con su correspondiente texto claro
descifrado generado con la clave secreta.
Texto Elegido Algoritmo de cifrado
Texto cifrado que se va a decodificar.
Mensaje de texto claro elegido por el criptoanàlista, junto con su correspondiente texto cifrado
generado con la clave secreta.
Texto cifrado intencionado elegido por el criptoanàlista, junto con su correspondiente texto claro
generado con la clave secreta.
Solamente un algoritmo relativamente débil no resistiría un ataque de solo texto
cifrado. Generalmente, un algoritmo de cifrado se diseña para resistir un ataque de
texto claro conocido.
Un esquema de cifrado es computacionalmente seguro si el texto cifrado generado
cumple uno o los dos criterios siguientes:
• El costo de romper el cifrado excede el valor de la información cifrada.
• El tiempo necesario para romper el cifrado excede el tiempo de vida útil de la
información.
Si no hay debilidades matemáticas inherentes en el algoritmo, lo que procede es
un enfoque de fuerza bruta y aquí se pueden calcular algunas estimaciones
razonables sobre costos y tiempos.
30
En enfoque de fuerza bruta implica intentar cada clave posible hasta que se
obtenga una traducción legible del texto cifrado al texto claro. Como promedio, se
debe intentar la mitad de todas las claves posibles para conseguir descubrirla.
En la tabla 2.2 se muestra el tiempo necesario para distintos tamaños de clave. El
tamaño de clave de 56 bits se usa con el algoritmo DES –(Data Encryption
Standard o Estándar de cifrado de datos).
Para cada tamaño de clave, se muestran los resultados suponiendo que cada
operación de descifrado simple necesita un microsegundo, lo cual es un valor
razonable para las maquinas actuales.
TABLA 2.2 TIEMPO MEDIO PARA LA BÚSQUEDA EXHAUSTIVA DE CLAVES
Tamaño de Clave (Bits)
Numero de Claves
Alternativas
Tiempo necesario a 1
cifrado/µs
Tiempo necesario a 106
cifrados/µs
32
232=4,3 X109
231µs = 35,8 minutos
2,15 milisegundos
56
256=7,2 X1016
255 µs =1.142 años
10,01 horas
128
2128= 3,4 X1038
2127 µs= 5,4 X10 24 años
5,4 X1018 años
168
2168= 3,7X1050
2167 µs=5,9 X1036 años
5,9 X 10 30 años
26 Caracteres (Permutación)
26!=4X1026
2X1026 µs = 6,4 X1012
años
6,4 X106 años
2.1.3 ESTRUCTURA DEL CIFRADO DE FEISTEL
El Cifrado de Feistel es un método de cifrado en bloque con una estructura
particular. Debe su nombre al criptógrafo de IBM Horst Feistel. También es
conocida comúnmente como Red de Feistel.
31
Un gran número de algoritmos de cifrado simétrico por bloques lo utilizan, incluido
el algoritmo Data Encryption Standard (DES).
Las redes de Feistel presentan la ventaja de ser reversibles por lo que las
operaciones de cifrado y descifrado son idénticas, requiriendo únicamente invertir
el orden de las subclaves utilizadas.
El cifrado tiene la estructura que se muestra en la figura 2.2 Las entradas al
algoritmo de cifrado son un bloque de texto claro de tamaño 2ω bits y una clave
K. E l bloque de texto claro se divide en dos partes L0 y R0.
Las dos partes de datos pasan a través de n etapas de procesamiento y luego se
combinan para producir el bloque de texto cifrado.
Cada etapa ί tiene como entradas Lί-1 y Rί-1, que se derivan de la etapa anterior,
así como una subclave Kί generada a partir de K y entre ellas mismas, y se
generan a partir de la clave mediante un algoritmo de generación de subclaves.
Todas las etapas tienen la misma estructura. Se realiza una sustitución sobre la
mitad izquierda de los datos.
Esto se hace aplicando una función de etapa F a la mitad derecha de los datos y
haciendo luego un OR exclusivo (XOR) de la salida de la función y la mitad
izquierda de los datos.
La función de etapa tiene la misma estructura general para cada etapa pero esta
parametrizada por la subclave de etapa Ki.
Después de esta sustitución, se realiza una permutación que consiste en
intercambiar las dos mitades de datos.
32
FIGURA 2.2 RED CLÁSICA DE FEISTEL
La realización exacta de una red de Feistel depende de la elección de los
siguientes parámetros y características de diseño.
• Tamaño del bloque: bloques mayores implican mayor seguridad (quedando igual
todo lo demás) pero reduce la velocidad de cifrado/descifrado. Un tamaño de 64
bits es adecuado es casi universal en el diseño del cifrador de bloques.
• Tamaño de la clave: Claves más largas implican mayor seguridad pero puede
reducir la velocidad de cifrado/descifrado. La longitud de clave más común en los
algoritmos modernos es de 128 bits.
33
• Número de Etapas: La esencia del cifrado de Feistel consiste en que mientras una
sola etapa ofrece una seguridad inadecuada, múltiples etapas la aumentan. Un
valor típico es de 16 etapas.
• Algoritmo de generación de subclaves: Cuanto más complejo sea este algoritmo
más difícil resultara el criptoanálisis.
• Función de etapa: Generalmente, a mayor complejidad mayor resistencia al
criptoanálisis.
Hay otras consideraciones en el diseño del cifrado de Feistel:
• Cifrado/Descifrado mediante software rápido: En muchos casos, el cifrado es parte
de aplicaciones o funciones de utilidad, lo cual imposibilita una implementación
hardware. En esos casos, la rapidez de ejecución del algoritmo es un aspecto
importante.
• Facilidad de análisis: Aunque sería deseable hacer el algoritmo tan difícil como
fuera posible para el criptoanálisis, también es ventajoso hacerlo fácil de analizar.
Es decir, si el algoritmo se puede explicar de manera concisa y clara, entonces es
más fácil detectar las debilidades y por tanto desarrollar un nivel mayor de
garantías en función de su robustez. El Des por ejemplo, no es funcionalmente
fácil de analizar
El descifrado es básicamente igual que el proceso de cifrado. La regla es la
siguiente: usar el texto cifrado como entrada al algoritmo, pero usar las subclaves
Ki en orden inverso.
Es decir, usar Kn en la primera etapa Kn-1 en la segunda, y así sucesivamente
hasta k1 en la última. Es una ventaja ya que implica que no es necesario
implementar dos algoritmos diferentes, uno para el cifrado y otro para el
descifrado.
34
2.2 ALGORITMOS DE CIFRADO SIMETRICO
Los algoritmos de cifrado simétrico son aquellos que utilizan la misma clave para
cifrar y descifrar un documento. El principal problema de seguridad reside en el
intercambio de claves entre el emisor y el receptor ya que ambos deben usar la
misma clave. Por lo tanto se tiene que buscar también un canal de comunicación
que sea seguro para el intercambio de la clave.
Es importante que dicha clave sea muy difícil de adivinar ya que hay sistemas que
pueden adivinar claves muy rápidamente.
Los algoritmos de cifrado simétrico más usados son los cifradores de bloques. Un
cifrador de bloques procesa la entrada de texto claro en bloques de tamaño fijo y
genera un bloque de texto cifrado del mismo tamaño para cada texto claro.
2.2.1 DES (DATA ENCRYPTION STANDARD)
El Standard de Encriptación de Datos (DES - Data Encryption Standard o estándar
de cifrado de datos) es un algoritmo desarrollado a mediados de los 70s. Se
convirtió en un estándar por National Institute of Standards and Technology (NIST
Instituto Nacional de Estándares y Tecnología), y fue utilizado por varios gobiernos
en todo el mundo. Fue y todavía es extensamente usado, especialmente en la
industria financiera.
El texto claro tiene una longitud de 64 bits y la clave de 56; si el texto claro es más
largo se procesa el bloques de 64 bits. La estructura del DES consiste en una
pequeña variación de la red de Feistel. Hay 16 etapas de proceso, se generan 16
subclaves partiendo de la clave original de 56 bits, una para cada etapa.
El proceso de descifrado con el DES es básicamente el mismo que el de cifrado.
La regla es la siguiente: usar el texto cifrado como entrada al algoritmo del DES,
pero las subclaves Kί se pasan en orden inverso. Es decir, en la primera etapa se
usa K16, K15 en la segunda y así hasta K1 en la 16a y ultima.
35
Los aspectos de robustez del DES se abarcan en dos categorías: aspectos sobre
el algoritmo mismo y aspectos sobre el uso de una clave de 56 bits.
La primera se refieren a la probabilidad de que el criptoanálisis se realice
aprovechando las características del algoritmo DES.
A lo largo de los años, se han intentado encontrar debilidades que aprovechar en
el algoritmo, lo que ha hecho del DES el algoritmo de cifrado existente mas
estudiado.
A pesar de los numerosos análisis, nadie ha conseguido descubrir ninguna
debilidad grave en el DES.
Un aspecto importante es la longitud de la clave. Con una clave de 56 bits, hay
256 claves posibles, que es aproximadamente 7,2 X1016 claves. Por este motivo,
no es factible un ataque de fuerza bruta.
Ya que en promedio, se tiene que intentar la mitad del espacio de claves, una
única maquina que realice un cifrado DES por microsegundo tardaría mas de mil
años en romper el cifrado.
En la figura 2.3 muestra cuanto se tardaría en romper un algoritmo del estilo del
DES en función del tamaño de la clave.
Por ejemplo, para una clave de 128 bits, que es común en lo algoritmos actuales
se tardarían 1018 años en romper el código usando el cracker de la EFF, incluso,
aunque se aumentara la velocidad del cracker en un factor de un trillón (1012),
todavía se tardaría un millón de años en romper el código.
Así que una clave de 128 bits garantiza que el algoritmo es inexpugnable por la
fuerza bruta.
36
FIGURA 2.3 TIEMPO EMPLEADO EN ROMPER UN CÓDIGO (SUPONIENDO 10,000,000 DESCIFRADOS / MICROSEGUNDO )
2.2.2TRIPLE DES
El Triple DES se llama al algoritmo que hace triple cifrado del DES. También es
conocido como 3DES, fue desarrollado por IBM en 1978.
Cuando se descubrió que una clave de 56 bits no era suficiente para evitar un
ataque de fuerza bruta, TDES fue elegido como forma de agrandar el largo de la
clave sin necesidad de cambiar de algoritmo de cifrado. Este método de cifrado es
inmune al ataque por encuentro a medio camino, doblando la longitud efectiva de
la clave, pero en cambio es preciso triplicar el número de operaciones de cifrado,
haciendo este método de cifrado muchísimo más seguro que el DES.
El 3DES usa tres claves y tres ejecuciones del algoritmo Des. La función sigue la
secuencia cifrar-descifrar-cifrar (EDE: encrypt-decrypt-encrypt), figura 2.4.
C=EK3 [DK2 [EK1 [P]]]
37
Donde
C= Texto Cifrado
P= Texto Claro
EK[x]= Cifrado de X usando la clave K
DK[y]= Descifrado de Y usando la clave K
El descifrado es simplemente la misma operación con las claves en orden inverso
figura 2.5
P= DK1 [Ek2 [DK3 [C]]]
FIGURA 2.4 CIFRADO TRIPLE DES
FIGURA 2.5 DESCIFRADO TRIPLE DES
El descifrado del segundo paso su única ventaja es que permite a los usuarios del
3DES descifrar datos cifrados por usuarios del DES.
C= EK1 [DK1 [ EK1 [P]]] = EK1 [P]
Con tres claves diferentes, el 3DES tiene una longitud efectiva de clave de 168
bits. También se permite el uso de dos claves con K1 = K3, lo que proporciona una
longitud de clave de 112 bits.
38
• El Des original, que usa una única clave de 56 bits, se mantiene solo para los
sistemas existentes. Las nuevas adquisiciones deberían admitir 3DES.
• Se premia a las organizaciones gubernamentales con sistemas que usan DES a
migrar a 3DES.
• Se prevé que el 3DES y el AES (Advanced Encryption Stardard) coexistirán como
algoritmos oficiales, permitiendo una transición gradual hacia el AES.
Es fácil observar que el 3DES es un algoritmo robusto. Es más, con una clave de
168 bits de longitud, los ataques de fuerza bruta son efectivamente imposibles.
2.3 MODELO DE OPERACIÓN DEL CIFRADO DE BLOQUES
Casi todos los algoritmos de cifrado de bloque simétricos actuales utilizan la
estructura básica de bloque de Feistel. Resultando más fácil determinar la
robustez criptográfica de un algoritmo nuevo. Si se usara una estructura
totalmente nueva, podría tener alguna debilidad sutil no detectada inmediatamente
por el diseñador. En la tabla 2.3 se comparan algunas de las principales
características.
TABLA 2.3 ALGORITMOS DE CIFRADO CONVENCIONALAlgoritmo Tamaño de Clave
(bits) Tamaño de bloque (bits)
Numero de Etapas
Aplicaciones
DES
56
64
16
SET, Kerberos
Triple DES
112 0 168
64
48
Financial Key Management,
PGP, S/MIME
AES
128, 192 O 256
128
10,12 o 14
Destinado a sustituir DES Y
3DES
IDEA
128
64
8
PGP
BLOWFISH
Variable hasta 448
64
16
Varios paquetes de Software
RC5
Variable hasta
2048
64
Variable hasta
255
Varios paquetes de Software
39
2.3.1 UBICACIÓN DE LOS DISPOSITIVOS DE CIFRADO
Para resistir las amenazas a la seguridad en la red es el cifrado. Al usar cifrado se
debe decidir que cifrar y donde situar el cifrado. Hay dos alternativas
fundamentales: cifrado en enlace y cifrado extremo a extremo, en la figura 2.6 se
ilustra su uso sobre una red de conmutación de paquetes.
Con cifrado en enlace: En un medio de comunicaciones vulnerable, es equipado
con un dispositivo de cifrado en ambos extremos. De esta manera, todo el tráfico
sobre los enlaces de comunicaciones es seguro. Una desventaja de este enfoque
es que el mensaje debe descifrarse cada vez que introduce el conmutador un
paquete; esto es necesario porque el conmutador debe leer la dirección (numero
de circuito virtual) en la cabecera del paquete para decidir su ruta. Debido a esto,
el mensaje es vulnerable en cada conmutador. Si la red de conmutación de
paquetes es pública, el usuario no tiene control sobre la seguridad en los nodos.
FIGURA 2.6 CIFRADO A TRAVÉZ DE UNA RED DE CONMUTACIÓN DE PAQUETES
40
Con el cifrado extremo a extremo, el proceso se realiza en los dos sistemas
finales. El Host o terminal fuente cifra los datos, estos se envían cifrados a través
de la red, hacia el terminal o host de destino sin ser alterados. El destino y la
fuente comparten una clave y por tanto el primero es capaz de descifrar los datos.
Este enfoque parece que aseguraría la transmisión contra ataques en los enlaces
de comunicación o conmutadores. Pero todavía hay una debilidad.
El cifrado extremo a extremo, los datos de usuario están seguros. No obstante, el
patrón de tráfico no lo está por que las cabeceras de los paquetes se transmiten
en claro. Para conseguir mayor seguridad se necesitan ambos cifrados como se
muestra en la figura 2.6.
Resumiendo, cuando se emplean ambas formas, el host cifra la parte de datos de
usuario de un paquete usando una clave de cifrado extremo a extremo. Entonces
se cifra el paquete entero usando una clave de cifrado de enlace.
A medida que el paquete recorre la red, cada conmutador descifra el paquete
usando la clave de cifrado de enlace para leer la cabecera y entonces cifrar otra
vez el paquete entero para enviarlo al próximo enlace. Ahora el paquete entero
está seguro, excepto durante el tiempo en que está en la memoria del conmutador
de paquetes, momento en que la cabecera esta en claro.
2.3.2 DISTRIBUCIÓN DE CLAVES
Para que el cifrado simétrico funcione las dos partes deben tener la misma clave
para realizar un intercambio seguro, y esa clave debe protegerse del acceso de
otros, por lo cual es deseable cambiar frecuentemente la clave para limitar la
cantidad de datos comprometidos si un atacante la descubre.
La robustez de un sistema criptográfico depende de la técnica de distribución de
claves, término que se refiere a la manera de entregar una clave a dos partes que
desean intercambiar datos, sin permitir que otros vean dicha clave. La distribución
de claves se puede realizar de diferentes formas. Para dos partes Ay B.
41
.1 Una clave podría ser elegida por A y entregada físicamente a A y a B.
.2 Una tercera parte podría elegir la clave y entregarla físicamente a A y a
B.
.3 Si con anterioridad Ay B han estado usando una clave, una parte podría
transmitir la nueva clave a la otra cifrada usando la antigua.
.4 Si A y B disponen de una conexión cifrada a una tercera parte C, C
podría distribuir mediante los enlaces cifrados una clave a A y a B.
Las opciones 1y 2 implican la entrega manual de una clave. Para el cifrado de
enlace es un requisito razonable, porque cada dispositivo de cifrado de enlace
solamente intercambia datos con su interlocutor en el otro lado del enlace. Sin
embargo, para cifrado extremo a extremo la entrega manual es difícil.
En un sistema distribuido, cualquier host o terminal podría necesitar demasiado
tiempo en ocuparse de los intercambios de clave con muchos otros hosts o
terminales. Por eso, cada dispositivo necesita un número de claves, suministrada
de forma dinámica.
La opción 3 es una posibilidad tanto para cifrado de enlace como para cifrado
extremo a extremo, pero si un atacante consiguiera acceso a una clave, se
revelarían todas las subsiguientes. Aunque se realizaran cambios frecuentes de
las claves de cifrado de enlace, deberían hacerse manualmente.
42
CAPITULO 3 ALGORITMO TRIPLE DES
3.1 EL ALGORITMO DES
DES (Data Encryption Standard, estándar de cifrado de datos) es un algoritmo
desarrollado originalmente por IBM a requerimiento del NBS (National Bureau of
Standards, Oficina Nacional de Estandarización, en la actualidad denominado
NIST, National Institute of Standards and Technology, Instituto Nacional de
Estandarización y Tecnología) de EE.UU.
Posteriormente modificado y adoptado por el gobierno de EE.UU. En 1977 como
estándar de cifrado de todas las informaciones sensibles no clasificadas.
En 1980, el NIST estandarizó los diferentes modos de operación del algoritmo. Es
el más estudiado y utilizado de los algoritmos de clave simétrica.
En 1974, la corporación IBM presento, entre otras, una propuesta, inspirada en un
sistema propietario LUCIFER, que convenientemente modificada, dio lugar al Data
Encryption Standard (Norma de Encriptación de Datos), DES.
La aprobación y modificación de la propuesta se hizo bajo la supervisión de la
NSA (National Security Agency, USA).
Tras las modificaciones introducidas por el NBS, consistentes básicamente en la
reducción de la longitud de clave y de los bloques, DES cifra bloques de 64 bits,
mediante permutación y sustitución y usando una clave de 64 bits, de los que 8
son de paridad (esto es, en realidad usa 56bits), produciendo así 64 bits cifrados.
DES se basa en un sistema monoalfabético, con un algoritmo de cifrado
consistente en la aplicación sucesiva de varias permutaciones y sustituciones.
43
Inicialmente el texto en claro a cifrar se somete a una permutación, con bloque de
entrada de 64 bits (o múltiplo de 64), para posteriormente ser sometido a la acción
de dos funciones principales, una función de permutación con entrada de 8 bits y
otra de sustitución con entrada de 5 bits, en un proceso que consta de 16 etapas
de cifrado.
DES 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.
Como la clave efectiva es de 56 bits, son posible un total de 2 elevado a 56 =
72.057.594.037.927.936 claves posibles, es decir, unos 72.000 billones de claves,
por lo que la ruptura del sistema por fuerza bruta o diccionario es sumamente
improbable, aunque no imposible si se dispone de suerte y una gran potencia de
cálculo.
3.2 ESTRUCTURA DEL DES
DES tiene 19 etapas diferentes. La primera etapa es una transposición, una
permutación inicial (IP) del texto plano de 64 bits, independientemente de la clave.
La última etapa es otra transposición (IP-1), exactamente la inversa de la primera.
La penúltima etapa intercambia los 32 bits de la izquierda y los 32 de la derecha.
Las 16 etapas restantes son una Red de Feistel de 16 rondas. En cada una de las
16 iteraciones se emplea un valor, Ki, obtenido a partir de la clave de 56 bits y
distinto en cada iteración como se observa en la figura 3.1.
44
Figura 3.1 cálculo de las subclaves Ki
Se realiza una permutación inicial (PI) sobre la clave, y luego la clave obtenida se
divide en dos mitades de 28 bits, cada una de las cuales se rota a izquierda un
número de bits determinado que no siempre es el mismo. Ki se deriva de la
elección permutada (P) de 48 de los 56 bits de estas dos mitades rotadas.
La función f de la red de Feistel se compone de una permutación de expansión
(E), que convierte el bloque correspondiente de 32 bits en uno de 48. Después
realiza una or-exclusiva con el valor Ki, también de 48 bits, aplica ocho S-Cajas de
6*4 bits, y efectúa una nueva permutación (P), como se observa en la figura 3.2.
Clave 64 bits
Permutación 1 (54 bits)
C0(28 bits)
D0 (28 bits)
Rotación a la izquierda Rotación a la izquierda
C0(28 bits)
D0 (28 bits)
Rotación a la izquierda Rotación a la izquierda
C0(28 bits)
D0 (28 bits)
Rotación a la izquierda Rotación a la izquierda
C0(28 bits)
D0 (28 bits)
Rotación a la izquierda Rotación a la izquierda
Permutación 2
K1 (48 bits)
Permutación 2
Kn (48 bits)
Permutación 2
K16 (48 bits)
45
FIGURA 3.2 RONDA DEL ALGORITMO DES
Cada bit de de un bloque está sujeto a una permutación, que puede estar
representada mediante una matriz de permutación inicial.
La tabla 3.1 muestra, al leerse de izquierda a derecha y de arriba hacia abajo, que
el bit de la posición 58 de un bloque de 64 bits está en la primer posición, y el bit
de la posición 50, está en la segunda posición de la tabla, y así sucesivamente.
Cuando la permutación inicial esta completa, el bloque de 64 bits se divide en dos
más de 32 bits, denominados “bloque izquierdo y bloque derecho”, el estado inicial
de estos se denominan L0 y R0 que vienen de “izquierda: left y derecha: right”
como se observa en la tabla 3.1.
Li-132 bits
Ri-132 bits
Expansión(Permutación E)
48 bits
XOR Ki48 bits
Expansión(Permutación E)
48 bits
Expansión(Permutación E)
48 bits
XOR
Li32 bits
Ri32 bits
46
TABLA 3.1 PERMUTACIÓN DIVIDIDA BLOQUE L0 Y R0
L0
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 46 32 24
16 8
R0
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
La parte de L0 contendrá todos los bits que se encuentran en posición par en el
mensaje inicial, mientras que R0 contendrá los bits en posición impar.
Los bloques Ln y Rn están sujetos a un conjunto de transformaciones iterativas
denominadas rondas, que se muestran en este esquema y que detallamos a
continuación en la figura 3.3:
47
FIGURA 3.3 ESQUEMA DE TRANSFORMACIONES ITERATIVAS DE LOS BLOQUES LN Y RN
Los 32 bits del bloque R0 se expanden a 48 bits gracias a una tabla llamada tabla
de expansión “E”, en la que los 48 bits se mezclan y 16 de ellos se duplican en la
tabla 3.2:
TABLA 3.2 TABLA DE EXPANSIÓN “E”
E
32 1 2 3 4 5 32 1
4 5 6 7 8 9 4 5
8 9 10 11 12 13 8 9
12 13 14 15 16 17 12 13
16 17 18 19 20 21 16 17
20 21 22 23 24 25 20 21
24 25 26 27 28 29 24 25
28 29 30 31 32 1 28 29
El último bit de R0 se convierte en el primero, el primero en el segundo, etc. Los
bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28 y 29 de R0 (respectivamente los bits 57,
33, 25, l, 59, 35, 27, 3, 6l, 37, 29, 5, 63, 39, 31 y 7 del bloque de origen) son
duplicados y diseminados en la matriz.
+ S + E
32 bits
Gn
48 bits
Kn + 132 bits
Dn
Dn + 1 48 bits
48
La tabla resultante de 48 bits se denomina D'0 o E[D0]. El algoritmo DES aplica
después OR exclusivas entre la primera clave K1 y E[D0].
El resultado de este OR exclusivo es una tabla de 48 bits “D0” que no es la D0
inicial).
Después, D0 se divide en 8 bloques de 6 bits, denominado D0i. Cada uno de
estos bloques se procesa a través de funciones de selección (llamadas cajas de
sustitución o funciones de compresión), denominadas generalmente Si.
Los primeros y últimos bits de cada D0i determinan la línea de la función de
selección; los otros bits (2, 3, 4 y 5 respectivamente) determinan la columna.
Como la selección de la línea se basa en dos bits, existen 4 posibilidades (0, 1, 2,
3).
Como la selección de la columna se basa en 4 bits, existen 16 posibilidades (0 a
15).
Gracias a esta información, la función de selección "selecciona" un valor cifrado de
4 bits (ver tabla 3.3).
TABLA 3.3 PRIMER FUNCIÓN DE SUSTITUCIÓN
S1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Cada uno de los 8 bloques de 6 bits pasa a través de la función de selección
correspondiente, dando un resultado de 8 valores con 4 bits cada uno. A
continuación están las otras funciones de selección en la tabla 3.4:
49
TABLA 3.4 S-CAJAS DEL ALGORITMO DES
Fila Columna
S- Caja
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3
14 0 4 15
4 15 1 12
13 7 14 8
1 4 8 2
2 14 13 4
15 2 6 9
11 13 2 1
8 1 11 7
3 10 15 5
10 6 12 11
6 12 9 3
12 11 7 14
5 9 3 10
9 5 10 0
0 3 5 6
7 8 0 13
S1
0 1 2 3
15 3 0 13
1 13 14 8
8 4 7 10
14 7 11 1
6 15 10 3
11 2 4 15
3 8 13 4
4 14 1 2
9 12 5 11
7 0 8 6
2 1 12 7
13 10 6 12
12 6 9 0
0 9 3 5
5 11 2 14
10 5 15 9
S2
0 1 2 3
10 13 13 1
0 7 6 10
9 0 4 13
14 9 9 0
6 3 8 6
3 4 15 9
15 6 3 8
5 10 0 7
1 2 11 4
13 8 1 15
12 5 2 14
7 14 12 3
11 12 5 11
4 11 10 5
2 15 14 2
8 1 7 12
S3
0 1 2 3
7 13 10 3
13 8 6 15
14 11 9 0
3 5 0 6
0 6 12 10
6 15 11 1
9 0 7 13
10 3 13 8
1 4 15 9
2 7 1 4
8 2 3 5
5 12 14 11
11 1 5 12
12 10 2 7
4 14 8 2
15 9 4 14
S4
0 1 2 3
2 14 4 11
12 11 2 8
4 2 1 12
1 12 11 7
7 4 10 1
10 7 13 14
11 13 7 2
6 1 8 13
8 5 15 6
5 0 9 15
3 15 12 0
15 10 5 9
13 3 6 10
0 9 3 4
14 8 0 5
9 6 14 3
S5
0 1 2 3
12 10 9 4
1 15 14 3
10 4 15 2
15 2 5 12
9 7 2 9
2 12 8 5
6 9 12 15
8 5 3 10
0 6 7 11
13 1 0 14
3 13 4 1
4 14 10 7
14 0 1 6
7 11 13 0
5 3 11 8
11 8 6 13
S6
0 1 2 3
4 13 1 6
11 0 4 11
2 11 11 13
14 7 13 8
15 4 12 1
0 9 3 4
8 1 7 10
13 10 14 7
3 14 10 9
12 3 15 5
9 5 6 0
7 12 8 15
5 2 0 14
10 15 5 2
6 8 9 3
1 6 2 12
S7
0 1 2 3
13 1 7 2
2 15 11 1
8 13 4 14
4 8 1 7
6 10 9 4
15 3 12 10
11 7 14 8
1 4 2 13
10 12 0 15
9 5 6 12
3 6 10 9
14 11 13 0
5 0 15 3
0 14 3 5
12 9 5 6
7 2 8 11
S8
Por lo tanto, cada bloque de 6 bits se sustituye por un bloque de 4 bits. Estos bits
se combinan para formar un bloque de 32 bits.
50
Finalmente, el bloque de 32 bits se somete a una permutación P. A continuación,
mostramos la tabla 3.5:
TABLA 2 PERMUTACIÓN “P”
P
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25
El conjunto de estos resultados salidos de P están sujetos a un OR exclusivo con
l0 inicial para devolver D1, en tanto que la D0 inicial devuelve I1.
Al final de las iteraciones, los dos bloques L16 y R16 se vuelven a conectar y se
someten a una permutación inicial inversa como se observa en la tabla 3.6:
TABLA 3 PERMUTACIÓN INICIAL INVERSA
IP-1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
51
El resultado que surge es un texto cifrado de 64 bits. Dado que el algoritmo DES
mencionado anteriormente es público, toda la seguridad se basa en la complejidad
de las claves de cifrado.
3.3 DESCIFRADO DES
Para descifrar un bloque, se llevan a cabo las mismas operaciones, lo único que
cambia es el orden en el que se utilizan las subclaves K1 y K2 que son generadas
de la clave K como se explica a continuación en la figura 3.4.
FIGURA 3.4 DIAGRAMA DE DESCIFRADO DES
3.4 ESTRUCTURA DE CLAVES EN EL DES
El algoritmo que sigue a continuación muestra cómo obtener a partir una clave de
64 bits (compuesta por cualquier de los 64 caracteres alfanuméricos), 8 claves
diferentes de 48 bits, cada una de ellas utilizadas en el algoritmo DES como se
observa en la figura 3.5.
52
FIGURA 3.5 DIAGRAMA PARA LA OBTENCIÓN DE UNA CLAVE A PARTIR DE UNA CLAVE DE 64 BITS
En primera instancia, se eliminan los bits de paridad de la clave para obtener una
clave que posea una longitud de 56 bits.
El primer paso es una permutación denominada PC-1, cuya tabla se presentará a
continuación en la tabla 3.7:
TABLA 4 PERMUTACIÓN PC-1
PC-1
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
Esta matriz puede escribirse en forma de dos matrices Li y Ri, cada una ellas de
28 bits: El resultado de esta primera permutación se denomina I0 y D0 como se
observa en la tabla 3.8.
Clave inicial de 64 bits
Permutación de CP-1
Parte izquierda Parte derecha
Desequilibrio izquierdo
Parte izquierda Parte derecha
Permutación de CP-2
Clave final de 48 bits
56 bits
28 bits 28 bits
28 bits 28 bits
56 bits
48 bits
53
Tabla 5 Matrices Li y Ri cada una de 28 bits
Li
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
Ri
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
Luego, estos dos bloques se rotan hacia la izquierda, de manera que los bits que
estaban en la segunda posición pasan a la primera, aquellos que estaban en
tercera posición pasan a la segunda, etc.
Los bits que estaban en la primera posición se mueven hacia la última posición.
Los dos bloques de 28 bits se agrupan en un bloque de 56 bits. Este pasa por una
permutación, denominada PC-2, dando como resultado un bloque de 48 bits que
representa la clave Ki.
Realizando iteraciones del algoritmo es posible obtener las 16 claves K1 a K16
utilizadas en un algoritmo DES.
LS 1 2 4 6 8 10 12 14 15 17 19 21 23 25 27 28
54
3.5 PROPIEDADES DEL DES (DATA ENCRYPTION STANDARD)
Las propiedades fundamentales del DES son:
• Dependencia entre símbolos: Cada bit del texto cifrado es una función
compleja de todos los bits de la clave y todos los bits del texto original.
• Cambio de los bits de entrada: Un cambio de un bit en el mensaje original
produce el cambio del 50%, aproximadamente, de los bits del bloque
cifrado.
• Cambio de los bits de clave: Un cambio en un bit de la clave produce,
aproximadamente, el cambio de la mitad de los bits del bloque cifrado.
• Claves débiles: Existen cuatro claves débiles que producen un mensaje
cifrado fácil de desencriptar, porque todas las claves parciales K1 a K16 son
iguales. Existen 28 claves semidébiles que producen un mensaje cifrado
fácil de descifrar, por que producen solo dos o cuatro subclaves parciales
diferentes. Cuando se elige una clave al azar, es preciso asegurarse de que
no se ha producido de estas claves.
• Un error en la transmisión de un texto cifrado se propaga a todo el bloque
del que forma parte, produciendo un conjunto de errores después del
descifrado de 64 bits.
3.6 SEGURIDAD DEL DES ((DATA ENCRYPTION STANDARD)
No existe ninguna prueba que garantice que un algoritmo de cifrado sea
prácticamente indecifrable; lo único que existe son demostraciones de que ciertos
algoritmos son vulnerables.
55
El DES es un excelente sistema de cifrado. El único problema que presenta s que
su espacio de claves resulta reducido para el actual estado del arte de la
tecnología electrónica. Una clave de 56 bits es insuficiente frente a la potencia de
los actuales computadores y las posibilidades de integración a gran escala de la
tecnología microelectrónica.
El primer ataque especializado para el DES ha sido el Criptoanálisis Diferencial,
que es una técnica que se basa en la observación de pares de texto cifrado, cuyos
textos en claro correspondientes tienen ciertas diferencias entre sí. Se estudia la
evolución de estas diferencias mientras los textos en claro atraviesan las 16
rondas de DES, al ser encriptados por la misma clave. Mediante esta técnica se
consigue recuperar la clave del DES a cambio de un considerable esfuerzo
computacional, que obliga al análisis de una cantidad inmensa de parejas de
textos claros y sus correspondientes cifrados. La economía frente al esfuerzo
necesario para un ataque por fuerza bruta es moderada, por que los diseñadores
del DES ya habían previsto la eventualidad de un ataque de este género.
Hoy en día el sistema de ataque al DES más eficaz se realizo finalmente en Julio
de 1998, se aprobó que el DES no era seguro, cuando la Electronic Frontier
Foundation (EFF Fundación Fronteras Electrónicas) anuncio que había roto un
cifrado DES utilizando una maquina especializada., DES cracker, construida por
menos de 250.000 dólares. El ataque duro menos de tres días. La EFF ha
publicado la descripción detallada de la maquina, haciendo posible que cualquiera
construya su propio cracker. Naturalmente, los precios del hardware continuaran
bajando mientras la velocidad irá aumentando, haciendo al DES prácticamente
inútil.
La construcción de una maquina similar no está al alcance de un particular, pero si
al alcance de cualquier gobierno u organización. Por tanto, debe concluirse que el
DES ya no es seguro, y debe prescindirse de él en beneficio de algoritmos con un
espacio de claves considerablemente mayores.
56
El sustituto del DES, puede ser el Triple DES, que con una longitud efectiva de
clave de112 bits, resulta inatacable con los medios informáticos actuales y los
previsibles para un futuro próximo.
3.7 TRIPLE DES
En 1990, Eli Biham y Adi Shamir desarrollaron el criptoanálisis diferencial, que
buscaba pares de textos planos y pares de textos cifrados. Este método funciona
con un máximo de 15 rondas, mientras que en el algoritmo presentado
anteriormente admite 16 rondas.
Por otro lado, aunque una clave de 56 bits ofrece una enorme cantidad de
posibilidades, muchos procesadores pueden calcular más de 106 claves por
segundo.
Con lo que, cuando se utilizan al mismo tiempo una gran cantidad de máquinas,
es posible que un gran organismo encuentre la clave correcta.
Una solución a corto plazo requiere que se encadenen tres cifrados DES mediante
dos claves de 56 bits (esto equivale a una clave de 112 bits).
Este método de cifrado es inmune al ataque por encuentro a medio camino,
doblando la longitud efectiva de la clave (112 bits), pero en cambio es preciso
triplicar el número de operaciones de cifrado, haciendo este método de cifrado
muchísimo más seguro que el DES.
Por tanto, la longitud de la clave usada será de 192 bits, aunque como se ha dicho
su eficacia solo sea de 112 bits como se observa en la figura 3.6.
57
FIGURA 3.6 DIAGRAMA DE CLAVES PARA EL CIFRADO TRIPLE DES
El 3DES permite aumentar de manera significativa la seguridad del DES, pero
posee la desventaja de requerir más recursos para el cifrado y descifrado.
Por lo general, se reconocen diversos tipos de cifrado triple DES:
• DES-EEE3: Cifrado triple DES con 3 claves diferentes,
• DES-EDE3: una clave diferente para cada una de las operaciones de triple
DES (cifrado, descifrado, cifrado),
• DES-EEE2 y DES-EDE2: una clave diferente para la segunda operación
(descifrado) véase figura 3.7.
FIGURA 3.7 PROCESO DE CIFRADO 3DES ENTRE EMISOR A Y RECEPTOR B
Se le aplica al documento a cifrar un primer cifrado mediante la primera clave, C1.
Al resultado (denominado ANTIDES) se le aplica un segundo cifrado con la
segunda clave, C2. Y al resultado se le vuelve a aplicar un tercer cifrado con la
primera clave, C1.
Mensaje desolo texto
Mensaje Codificado 1
Mensaje Codificado 2
Mensaje Codificado final
K1 clave
K2 clave
K1 clave
A
Emisor
B
Receptor
DES ANTIDES DES DES ANTIDES DES
Triple
de la
indep
carac
mismo
de la
La va
Donde
Cuand
ataqu
clave
inmun
la clav
hacie
El Tr
algori
pago
usaba
e DES utiliza
clave 112
endientes
terística m
o bloque do
clave.
riante más
e M es el m
do se desc
e de fuerza
sin necesid
ne al ataqu
ve, pero en
ndo este m
riple DES
tmo AES. S
electrónico
an el DES).
a dos clave
bits. El algo
todas las
atemática
os veces co
simple del
mensaje a c
3.7.1 SE
cubrió que
a bruta, TD
dad de cam
e por encu
n cambio e
método de c
3.7.
está desa
Sin embarg
o tienen co
Por el dise
es y tres eje
oritmo no l
subclases.
de no ser
on dos clav
Tripe DES
cifrar y k1, k
EGURIDAD
una clave
DES fue ele
mbiar de alg
uentro a me
s preciso t
cifrado muc
.2 USOS DE
apareciendo
go, la mayo
omo están
eño DES y
ecuciones d
lega a ser
Este hech
un grupo,
ves diferent
funciona d
k2 y k3 las re
D DEL CIFRA
de 56 bits
egido como
goritmo de
edio camino
riplicar el n
hísimo más
L CIFRADO T
o lentame
ría de las ta
dar el algo
por lo tanto
del algoritm
un cifrado
ho se basa
lo que im
tes se aum
de la siguien
espectivas
ADO TRIPLE
s no era s
o forma de
cifrado. Es
o, doblando
número de
s seguro qu
TRIPLE DES
nte, siendo
arjeta de cr
oritmo Trip
o TDES son
mo, y la long
múltiple, po
a en que D
mplica que s
menta el tam
nte manera
claves DES
E DES
uficiente pa
agrandar e
te método
o la longitu
operacione
ue el DES.
S
o reempla
rédito y otro
ple DES (a
n algoritmo
5
gitud efectiv
orque no so
DES tiene
si se cifra
maño efectiv
a:
S.
ara evitar u
el largo de
de cifrado
d efectiva d
es de cifrad
zado por
os medios d
anteriormen
s lentos.
58
va
on
la
el
vo
un
la
es
de
do,
el
de
nte
59
CAPITULO 4 SISTEMA DISTRIBUIDO DE MENSAJERÍA CIFRADO
4.1 PROPIEDADES Y HERRAMIENTAS PARA LA CREACIÓN DEL SISTEMA DE MENSAJERÍA CIFRADO.
El sistema de mensajería es un sistema distribuido, la comunicación se realiza
siguiendo un protocolo prefijado mediante un esquema cliente- servidor, donde los
usuarios se comunican y coordinan sus acciones intercambiando información y
confirmaciones de algoritmos.
Dentro del sistema de mensajería se considera cliente a la parte del sistema que
estará instalado en los computadores de los usuarios que acceden al sistema,
ellos solicitaran a un servidor conectarse al sistema de mensajería y poder
entablar conversaciones. El servidor es nuestro Computador en donde el cliente
de cada usuario se conectara para revisar la información que nos ayudara para la
autentificación del cliente dentro del sistema.
La información entre el cliente y el servidor será por medio de gestión de datos,
en donde la interacción con el usuario, como la aplicación se realizara del lado del
cliente, siendo el servidor solo el encargado de contener la información.
Las herramientas que se utilizaran para la realización del Sistema de Mensajería
son las siguientes, cada una forma una parte fundamental para la creación del
sistema.
a) Tecnología .NET: Es un proyecto de Microsoft para crear una plataforma de
desarrollo de software con transparencia en redes, e independencia de plataforma
de hardware y que permita un rápido desarrollo de aplicaciones.
Los principales componentes son:
• El conjunto de lenguajes de programación
60
.NET soporta ya más de 20 lenguajes de programación y es posible desarrollar
cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera
de ellos .Algunos de los lenguajes desarrollados para el marco de trabajo .NET
son: C#, Visual Basic, Delphi (Object Pascal), C++, J#, Perl, Python, Fortran,
Cobol y PowerBuilder. El que se utiliza para el Sistema de Mensajería es C#,
• La Biblioteca de Clases Base o BCL (Library Class Base)
La biblioteca de clases base, define un conjunto funcional mínimo que debe
implementarse para que el marco de trabajo sea soportado por un sistema
operativo. Aunque Microsoft implementó esta norma para su sistema operativo
Windows, la publicación de la norma abre la posibilidad de que sea
implementada para cualquier otro sistema operativo existente o futuro,
permitiendo que las aplicaciones corran sobre la plataforma
independientemente del sistema operativo para el cual haya sido
implementada, Por lo cual se puede considerar al Sistema De Mensajería,
como un sistema multiplataforma, ya que puede ser instalado en cualquier
sistema operativo.
• Common Language Runtime (CLR). Entorno Común de Ejecución para
Lenguajes.
Este es el lenguaje insignia de .NET Framework (marco de trabajo .NET) y
pretende reunir las ventajas de lenguajes como C, C++ y Visual Basic en uno solo.
El CLR es el verdadero núcleo del framework de .NET, entorno de ejecución en el
que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando
el conjunto de servicios del sistema operativo.
b) .NET FRAMEWORK 2.0: Microsoft .NET Framework incluye todo lo necesario
para que se puedan ejecutar aplicaciones .NET. Microsoft .NET Framework
incluye las librerías comunes, las rutinas de idioma comunes y ASP.NET.
Requisitos del sistema
61
• Sistemas Operativos compatibles: Windows 2000 Service Pack 4; Windows
Server 2003; Windows XP Service Pack 2
• Procesador: procesador Pentium a 400 MHz o equivalente (mínimo);
procesador Pentium a 1 GHz o equivalente (recomendado)
• RAM: 96 MB (mínimo); 256 MB (recomendado)
• Disco duro: se pueden necesitar hasta 500 MB de espacio disponible
• Pantalla: 800 x 600, 256 colores (mínimo).
c) Visual Studio 2005
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas
en inglés) para sistemas operativos Windows. Soporta varios lenguajes de
programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual
Basic .NET.
Con Visual Studio 2005, se pueden:
• Se cuenta con un entorno de desarrollo productivo con diseñadores
visuales, lenguajes de programación y editores de código.
• Desarrolla y depura aplicaciones multicapa de servidor desde un mismo
entorno unificado de desarrollo.
• Construye soluciones para SQL Server 2005 utilizando herramientas
visuales integradas de diseño de bases de datos e informes.
• Crea tus propias herramientas que extienden el IDE de Visual Studio
usando el SDK de Visual Studio.
Visual Studio 2005 añade funcionalidad a las características básicas que incluye la
edición Standard, agregando herramientas para desarrollo remoto en el servidor
así como depuración, desarrollo para SQL Server 2005 y un IDE completo y sin
restricciones.
62
También tiene acceso sin trabas al .NET Framework 2.0, el entorno robusto y
plenamente funcional de la plataforma Microsoft; así como soporte para la
creación de add-ins para extender el IDE de Visual Studio.
d) C#: Es un lenguaje de programación orientado a objetos desarrollado y
estandarizado por Microsoft como parte de su plataforma .NET.
Su sintaxis se desglosa de C/C++ y utiliza el modelo de objetos de la plataforma
.NET. C# fue diseñado para combinar el control a bajo nivel de lenguajes como C
y la velocidad de programación de lenguajes como Visual Basic.
Es una parte esencial de la plataforma .Net, C# combina los mejores elementos de
múltiples lenguajes de amplia difusión como C++, Java, Visual Basic o Delphi. La
idea principal detrás del lenguaje es combinar la potencia de lenguajes como C++
con la sencillez de lenguajes como Visual Basic, y que además la migración a este
lenguaje por los programadores de C/C++/Java sea lo más inmediata posible.
4.2 CONCEPTOS GENERALES DEL SISTEMA DE MENSAJERÍA CIFRADO
El Sistema de Mensajería Instantánea, realiza el envió y recepción de
mensajes en tiempo real, y su principal característica es, que la información
que se envía por la red está cifrada por medio del método Triple Des. En el
sistema los usuarios pueden interactuar con varios usuarios que estén
autorizados por el mismo sistema.
El sistema de mensajería se instala en el computador de cada usuario y por
medio de una conexión a una red LAN se conectan los usuarios a un servidor
que alberga bases de datos, donde se obtiene la información de cada uno de
los usuarios, que se utiliza para iniciar y conversar en el Sistema de
mensajería instantánea.
63
Cuando el servidor autentifica los datos del usuario y de su lista de contactos,
como se observa en la figura 4.1.El usuario dentro del sistema tendrá la
capacidad de realizar conversaciones seguras ya que a pesar de contar con un
mecanismo de seguridad como la autentificación, la interacción con los demás
usuarios contara con el proceso de cifrado, podrá aceptar o rechazar usuarios
que crea que no son seguros y aceptar o rechazar entablar conversaciones,
como se observa en la figura 4.2.
La parte del Sistema de Mensajería, que se instala en el computador de los
usuarios tiene las siguientes características de funcionamiento.
• Mostrar varios estados de los usuarios al momento de iniciar una sesión:
Disponible para hablar, Sin actividad, No disponible, no conectado.
• Enviar peticiones de conversación a contactos que estén en estado
activos y disponibles para iniciar conversación.
Usuario: Juan Rodríguez
Lista:
(off-line) Rosa Valdovinos
(on-line) Erick Vizcaya
(on- line) Christian Mercado CERRAR
FIGURA 4.1 INFORMACIÓN VISUALIZADA POR CADA USUARIO AL INGRESO DEL SISTEMA DE MENSAJERIA
64
En el Sistema de Mensajería el servidor, tendrá las bases de datos, que
contengan la información de cada usuario, como por ejemplo, nombre, usuario,
contraseña, IP del equipo, Clave de Cifrado etc. Esta información nos servirá
para autentificar a los usuarios y mayor seguridad para el sistema.
El servidor tiene como características y funciones principales.
• Guardar el nombre del Usuario y Contraseña, de cada persona que está
dada de alta en el sistema.
• Contener cada una de la lista de contactos, de cada usuario y
asignarlas, cada vez que los usuarios se conecten al sistema
• Administrar y limitar la cantidad de usuarios que estén dados de alta en
el Sistema.
• Asignar los contactos a los usuarios que lo requieran.
• Registrar las claves de cifrado, para el envió y recepción de mensaje. La
clave se guardara cifrada, por lo que ni los administradores podrán
conocerla.
Contacto: Erick
Cuadro de Texto, donde se visualiza la información que se envía y se recibe.
ENVIAR Cuadro de Texto, donde se escribe la información que se desea enviar
CERRAR
FIGURA 4.2 VENTANA POR MEDIO DE LA CUAL SE ENTABLAN LAS CONVERSACIONES
4.3 A
La au
realiza
proce
ellos s
el usu
El mé
Contr
ingres
pueda
El pro
obser
AUTENTIFIC
utentificació
ar en el
edencia de
son, que e
uario que tie
étodo de a
raseña, que
sar al sistem
a soportar e
oceso gene
rva en la fig
CACIÓN DE
ón es el serv
Sistema d
los usuario
l usuario qu
ene la auto
autentificac
e previame
ma. Con es
en primera
eral de aut
gura 4.3.
FIGURA 4.3
USUARIOS
vicio de se
de Mensaj
os, asegura
ue intenta
orización pa
ión que s
ente se les
ste método
estancia ci
tentificación
3 PROCESO
S Y PETICI
guridad que
ería, ya q
ar que los u
realizar fun
ara hacer.
se utiliza, e
s asigna y
o nos permi
erto tipo de
n consta d
DE AUTENTICA
ONES DE C
e se utiliza
que nos p
usuarios so
nciones en
está basad
proporcion
itirá, que el
e ataques.
de los sigu
ACÍON DEL SIS
CONVERSA
como prim
permitirá, g
on quién ell
el sistema
do en un U
na a los u
l sistema se
ientes pas
STEMA
ACIONES
mer proceso
garantizar
os dicen qu
es de hech
Usuario y u
usuarios pa
ea fiable qu
os, como
65
o a
la
ue
ho
un
ara
ue
se
Cuand
lista d
cuand
uno d
Al ing
solicit
usuar
(ver fi
Los u
depen
conta
en la
do se ingre
de contacto
do sean co
e los usuar
FIGURA 4.4
gresar al
tudes de c
rios de su li
igura 4.5)
FIGURA 4
usuarios po
nderá de l
ctos, y cad
figura 4.6
esa por prim
os, enviand
onfirmadas
rios (ver fig
4 ENVÍO DE P
Sistema d
conversacio
sta de cont
4.5 ENVÍO DE
odrán tener
la cantidad
a una de la
mera vez a
o peticione
sus peticio
ura 4.4).
PETICIONES P
de Mensaj
ones, estas
tactos que
E PETICIONES
r la cantida
d de perso
as conversa
l sistema e
es, a usuar
ones, el us
ARA LA CREAC
ería, el u
s solicitudes
se encuent
PARA LA REA
ad de conve
onas que
aciones ser
el usuario p
ios habilita
uario podrá
CIÓN DE LA LI
suario pod
s solo pod
tren en esta
LIZACIÓN DE C
ersaciones
tienen agr
rá independ
puede gene
dos dentro
á ver el sta
STA DE CONTA
drá solicita
drán ser re
ado activo e
CONVERSACIO
que desee
regados en
diente Com
erar su prop
del sistem
atus de cad
ACTOS
ar y acept
ealizadas co
en el sistem
ONES
en, esto so
n la lista d
o se observ
66
pia
ma,
da
tar
on
ma
olo
de
va
Para
alta a
aleato
cifrad
4.4 C
El se
datos
conte
usuar
princi
•
•
FIGURA 4.6
que el siste
a un conta
oria, las cla
o diferente
CARACTERÍ
rvidor, tend
y un servi
nida en la
rios, lista d
pales Requ
El Sistem
RAM : Mí
EL USUARIO 1
ema sea au
acto y este
aves para e
s para cada
STICAS DE
drá las fun
dor web, q
s bases de
de contact
uerimientos
a Operativo
nimo: 1 GB
1 PODRÁ ESTA
un más seg
e es acept
el cifrado d
a uno de lo
EL SERVIDO
nciones de
que nos per
e datos co
tos, IP, et
s mínimos
o Windows
B
ABLECER CONV
guro, al mo
tado, se c
e los mens
os usuarios
OR DE AUT
dos servid
rmitirá adm
omo son, a
c. El serv
XP.
VERSACIONES
omento de q
reara auto
sajes, por lo
y cada uno
TENTIFICAC
dores, un d
ministrar y v
altas, bajas
vidor tiene
S CON SUS CO
que cada u
omáticamen
o cual, hab
o de sus co
CIÓN DE U
de servidor
visualizar la
s, autentific
como ca
NTACTOS
usuario da d
nte de form
brá claves d
ontactos.
SUARIOS.
r de base d
a informació
cación de l
aracterístic
67
de
ma
de
de
ón
os
as
68
• Espacio en el disco duro 10 GB
• Procesador de la Arquitectura I386 o superior.
• Software, SQL Server 2005, Visual Studio 2005, .NET Framework 2.0.
• Lenguajes de programación C# y ASPX
• IIS 5.1 para Windows XP
4.4.1 CARACTERÍSTICAS DEL SERVIDOR DE BASES DE DATOS
El servidor proporcionara servicios de bases de datos al programa de Sistema de
Mensajería, como es definido por el modelo cliente-servidor y también. Las bases
de datos se realizaran en el Software SQL Server 2005 el cual tiene las siguientes
características.
SQL Server es la base de datos, fácil de utilizar, construir, administrar e
implementar aplicaciones de negocios. Esto significa, tener que poner a
disposición un modelo de programación rápido y sencillo para desarrolladores,
eliminando la administración de base de datos para operaciones estándar, y
suministrando herramientas sofisticadas para operaciones más complejas.
La instalación del SQL Server 2005, tiene los siguientes requerimientos:
• Requisitos previos de software : Microsoft .NET Framework, SP1 de
Microsoft Internet Explorer 6.0 o posterior
• RAM : Mínimo: 192 MB Y Recomendada: 512 MB o más
• Espacio en el disco duro 600 MB de espacio libre
• Procesador Compatible con Pentium III o superior, Mínimo: 500 MHz y
Recomendado: 1 GHz o más
• Sistema Operativo: Windows Server 2003 Standard Edition, Enterprise
Edition, Datacenter Edition, Windows XP Professional, Home Edition
69
(SP2 o posterior, Windows 2000 Professional, Server, Advanced
Server, Datacenter Server (SP4 o posterior)
4.4.1 CARACTERÍSTICAS DEL SERVIDOR WEB
El servidor web es un programa que correrá sobre el servidor, el cual nos permitirá
obtener, cambiar y visualizar la información contenida en las bases de datos.
El servidor web, nos ayudara a poder administrar a los usuarios por medio de una
página web dinámica. El programa estará realizado con plataforma .Net C# y
ASP.Net
El programa correrá sobre el servidor que escucha las peticiones HTTP que le
llegan y realiza sus solicitudes ya sean de búsqueda de usuarios o agregar
usuarios al Sistema de Mensajería. Dependiendo del tipo de la petición, el servidor
Web buscará una página Web o bien ejecutará un programa en el servidor. De
cualquier modo, siempre devolverá algún tipo de resultado HTML al cliente o
navegador que realizó la petición.
ASP (Active Server Pages) es una tecnología de Microsoft del tipo "lado del
servidor" que ha sido comercializada como un anexo a Internet Information
Services (IIS).
Con ASP se utilizaran diversos componentes ya desarrollados como algunos
controles ActiveX así como componentes del lado del servidor, tales como
CDONTS, por ejemplo, que permite la interacción de los scripts con el servidor
SMTP que integra IIS.
La página será generada mezclando código de scripts del lado del servidor
(incluyendo acceso a base de datos con HTML y comando que serán realizados
por medio de la programación de C#.
70
Las versiones pre-.NET se denominan actualmente (desde 2002) como ASP
clásico.
Internet Information Server, IIS, es una serie de servicios para los ordenadores
que funcionan con Windows. Este servicio convierte a un ordenador en un servidor
de Internet o Intranet es decir se pueden publicar páginas web tanto local como
remotamente.
Los Servicios de Internet Information Services (IIS) proporcionan las herramientas
y funciones necesarias para administrar de forma sencilla un servidor Web seguro.
La versión de IIS 5.1 para Windows XP es la que utilizaremos para el servidor,
esta es una versión compacta del IIS que soporta sólo 10 conexiones simultáneas
y sólo un sitio web.
71
CAPITULO 5 ESTRUCTURACIÓN DEL SISTEMA DE MENSAJERÍA CIFRADO
5.1 AUTENTIFICACIÓN DE LOS USUARIOS.
Para desarrollar, el sistema se considera, como primer paso la autentificación del
usuario, al momento de abrir el sistema, se le solicita un nombre de Usuario y una
contraseña como se observa en la figura 5.1.
estos dos datos se enviaran cifrados al servidor para evitar sean monitoreados o
identificados en la red, este proceso se realiza por medio de procesos que
permiten cifrar el nombre de usuario y contraseña y descifrarlos al momento de
hacer la conexión con la base de datos, el usuario será buscado en la base de
datos del servidor, si su usuario y contraseña son validos se le permite el acceso,
a la siguiente ventana de la aplicación, los datos que se actualizan, al momento de
ingresar a la aplicación son la IP del usuario, su estado de desactivado, pasa a
activado, su ID, y su lista de contactos se actualiza conforme a el estado de cada
uno de sus contactos en ese momento como se observa en la figura 5.2.
FIGURA 5.1 INICIO SE SESIÓN EN EL SISTEMA DE MENSAJERÍA
72
La información que se obtiene de la base de datos, permite, tener control de que
no cualquier usuario, puede utilizar la aplicación y siempre es necesario contar con
un Nombre de Usuario y contraseña valido en el sistema, en caso contrario no se
permitirá el acceso a la aplicación como se observa en la figura 5.3.
FIGURA 5.2 VENTANA QUE INDICA ELINGRESO AL SISTEMA
El ingreso de usuarios al sistema será controlado por el Administrador del
Servidor, el cual podrá dar de altas y bajas de usuarios, cambios de nombre
de usuarios y contraseñas, modificación de las listas de contactos de cada
usuario y mantener el servicio correcto de la aplicación.
73
FIGURA 5.3 VENTANA DE USUARIO Y/O CONTRASEÑA NO VALIDO
La información que se obtenga del servidor, nos ayudara a controlar las claves de
cifrado, que serán únicas, para cada usuario, y se crearan de forma aleatoria y
guardándose la información en la base de datos, en la Figura 5.4 se muestra un
Diagrama de flujo de cómo se realiza la autentificación y el ingreso al Sistema.
Cuando la aplicación se encuentra ya activa, el sistema cuenta con funciones
estructuradas, encargadas de realizar procesos de envió de solicitudes de
conversación y aceptación de conversaciones.
74
Cada vez que el usuario entre a la aplicación del Sistema de Mensajería
Instantánea, se tendrá un modulo que estará activo y a la escucha para la
atención de peticiones, a la cual llamamos A_Servidor, este modulo realizara una
conexión, en el puerto 9018 por el cual se recibirán las peticiones de escucha
como se observa n la figura 5.5.
USUARIO 1
Inicia Aplicación, Sistema de Mensajería
Ingresa Nombre de Usuario y Contraseña
Envía Información al servidor
Conexión Server Error de Conexión del Servidor
no
Abre Sesión, se Actualizan Datos del Usuario 1, y la Lista de Contactos se Actualiza De acuerdo al estado de cada contacto
Sesión en Escucha de Entablar conversación
si
FIGURA 5.4 DIAGRAMA DE AUTENTIFICACIÓN DE USUARIO
75
FIGURA 5.5 CARACTERISTICAS DE LOS MODULOS MASTER SERVER Y MASTER CLIENT
Las solicitudes de conversación en el sistema, son generadas por un modulo de la
aplicación, que es A_Cliente (ver figura 5.5) en el cual se encuentran los
parámetros como son la IP del servidor de Base de Datos, el puerto con el que se
inician la primera conversación es en el puerto 9019 y de ahí en adelante hasta el
puerto 9099, con lo cual nos permite tener 80 conversaciones de diferentes
contactos a la vez. En estos puertos realiza la conexión para enviar las solicitudes
de conversación, a cualquier usuario que se encuentre en estado on-line dentro de
la lista de contactos, las peticiones de invitación tendrán que ser confirmadas por
el A_Servidor del usuario con el que se desea entablar conversación, si la
solicitud es rechazada por el A_Servidor, se cancela el proceso, y se termina el
flujo, y el A_Servidor vuelve a quedar a la espera de peticiones de conversación.
Si se logra establecer la comunicación entra ambas partes e inicia una
conversación, esa se llevara a cabo por los módulos B_Servidor, el envío de
mensajes se sincronizara en el puerto 9019, se actualizara la IP de cada uno de
los usuarios cada vez que se conecten y se empezara el envió y recepción de
mensajes como se observa en la figura 5.6.
76
FIGURA 5.6 CARACTERISTICAS DEL MODULO SLAVE SERVER
A continuación se muestra un diagrama de flujo, sobre el proceso que se realiza
para entablar una conversación por medio del Sistema de Mensajería. Figura 5.7.
FIGURA 5.7 DIAGRAMA DE PETICIÓN DE CONVERSACIONES
77
Cada uno de los mensajes enviados y recibidos por los usuarios están cifrados,
por medio del Método Triple Des, lo cual nos permite, resguardar la información
de usuarios intrusos, en la Red LAN tratando de monitorear, mensajes.
Existe la posibilidad de realizar conversaciones con más de un contacto al mismo
tiempo, esto se logra debido al diseño de comunicación del sistema, de manera
escrita es lo siguiente:
El sistema toma un puerto base “N”, el cual está disponible para enviar y recibir las
peticiones de los demás contactos, si el usuario “A”, desea establecer un dialogo
con el usuario “B”, el Cliente de “A” utilizando el puerto base “N” se comunica con
el Servidor de “B” que está a la escucha en el puerto base “N”, del lado de “A” se
pregunta por la disponibilidad de puertos desde N+1, hasta N+Max , así que “A”
por medio del cliente que utiliza “N”, le notifica “B”, en que puerto estará a la
escucha y así establecer el dialogo deseado.
Los pasos siguientes son, del lado de “A” se inicia el Servidor a la escucha en
N+1, suponiendo que N+1 está libre, de no serlo será N+2 y así sucesivamente, El
servidor en “B” recibe la información y se inicia un cliente que se comunicará a “A”
en el puerto indicado, en este caso N+1.
Se cierra la comunicación entre “N” de “A” y “N” de ”B”, pudiendo estar el sistema
a la espera de otra petición, o del envío de una a algún otro contacto.El puerto
base utilizado en la implementación del sistema es el 9018.
En la figura 5.8 se observa un diagrama, con tres usuarios A, B Y C cada uno con
su respectivo cliente y servidor, en el diagrama se nos indica cómo se realiza la
distribución de los puertos para realizar las conversaciones.
78
5.2 CONFIRMACIÓN DE LA LISTA DE CONTACTOS
La Lista de Contactos es una colección de nombres que identifican a usuarios con
los cuales es posible entablar conversaciones en el Sistema de Mensajería. Cada
lista es única y está asociada a una cuenta creada por un Usuario.
Cada integrante de la lista se identificara por medio de un NickName que se le
solicitara a cada usuario al momento de estar dado de alta en el Sistema.
La lista de contactos esta ordenada por usuarios que están habilitados al
momento de iniciar la sesión y usuarios que se encuentren fuera del sistema.
Como se observa en la Figura 5.9.
FIGURA 5.8 DIAGRAMA DE DISTRIBUCION DE PUERTOS ENTRE LAS SOLICITUDES DE LOS USUARIOS
79
FIGURA 5.9 STATUS DE LOS INTEGRANTES DE LA LISTA DE CONTACTOS
Para agregar usuarios nuevos en la lista de contactos, es necesario, dar click en la
opción de contactos del Sistema de Mensajería, al momento de elegir la opción se
abre la ventana de agregar contacto como se observa en la figura 5.10, como dato
se solicitara el Nick Name o nombre del usuario que se desea agregar, en dado
caso que el usuario no exista en la base de datos como usuario del Sistema de
Mensajería, aparecerá un mensaje de notificación, indicando que el usuario no
existe (ver Figura 5.11).
FIGURA 5.10 VENTANA DE AGREGAR CONTACTO A LA LISTA
Cuando el usuario si está habilitado en la base de datos, y es autentificado,
aparece un mensaje, que se ha enviado la solicitud de contacto al usuario que se
80
desea agregar, como se observa en la figura 5.12, en ese instante en la base de
datos se genera que hay una solicitud pendiente y que el usuario agregado
necesita confirmar si desea aceptar la operación o la cancela.
FIGURA 5.11 MENSAJE DE USUARIO NO AGRAGADO
Al momento que el usuario agregado, abre sesión en el Sistema, aparecerá un
mensaje, en donde se le indica que tiene una solicitud pendiente y que un usuario
del sistema le ha enviado una solicitud, para ser agregados al sistema, el usuario
tiene la opción de aceptar la solicitud o desecharla, en dado caso que no conozca
el destinatario de la solicitud, como se observa en la figura 5.13.
FIGURA 5.12 MENSAJE DE ENVÍO DE SOLICITUD DE CONTACTO
Si el usuario desea cancelar la operación, se borra todo proceso en la base de
datos y se cancela la operación, si el usuario acepta la solicitud, se genera en la
base de datos que ambos usuarios son contactos y se genera la clave privada
como se observa en la figura 5.14, para generar el cifrado de los mensajes, ya
agregados como contactos, en el Sistema de Mensajería de cada uno de los
81
usuarios aparecerán en la lista de contactos de cada uno y se podrán entablar
conversaciones.
FIGURA 5.13 MENSAJE DE SOLICITUD DE CONFIRMACIÓN DE CONTACTO
La creación de la lista de contactos tiene como objetivo principal, tener un control
sobre que usuario con que usuarios están entablando conversaciones y si estas
conversaciones están siendo autorizadas para ser realizadas, también nos
ayudara a que cada vez que se den de alta usuarios en las lista de contactos, se
tenga la información necesaria, para generar los procesos necesarios de
seguridad que puedan autentificar las conversaciones.
FIGURA 5.14 CONFIRMACION DE AGREGAR USUARIO A LISTA DE CONTACTOS
82
5.3 ENVIÓ Y RECEPCIÓN DE MENSAJES UTILIZANDO EL CIFRADO TRIPLE DES
El Sistema de Mensajería, siendo un sistema que tiene como característica la
interacción de varios usuarios al mismo tiempo por medio de una red LAN, se
podrían tener eventos que pudieran romper la seguridad y causar daño o
alteración en la información, para evitar algún ataque en donde se violen las
políticas de seguridad del sistema se tiene como principal herramienta el cifrado
de los datos que se utilizan en el sistema.
Con el cifrado de los datos se podrán evitar ataques pasivos, y lo único que podrá
monitorear el atacante es información cifrada, ya que son estos los datos que
viajan por medio de la red LAN.
Los componentes que se utilizan para el proceso del cifrado de la información son
los siguientes:
Texto claro
Algoritmo de cifrado: El Utilizado es el Cifrado Triple DES
Clave Secreta: Se utilizan dos claves con base al proceso del Triple DES
Texto Cifrado
Algoritmo de Descifrado
Para que el cifrado simétrico funcione las dos partes deben tener la misma clave
para realizar un intercambio seguro, y esa clave debe protegerse del acceso de
otros, por lo cual en el Sistema de Mensajería, cada usuario tendrá claves de
cifrado diferente, para cada contacto que este agregado en la lista de contactos,
con este manejo de claves, aunque un atacante encuentre la clave de cifrado de
una de las conversaciones del usuario, no podrá conocer las demás
conversaciones ya que tendrá que buscar las diferentes claves utilizadas.
El Cifrado Triple Des, utilizado para cifrar los mensajes enviados por los usuarios,
cuenta con dos claves clave de Cifrado de 192 bits y una clave anti Des de 64
bits, como se muestra en la figura 5.15, donde aparece el proceso de cifrado
utilizado para el Sistema de Mensajería, es programado en tecnología .NET C#.
83
FIGURA 5.15 ENCRIPCIÓN DE DADOS CON C#
Para programar el Triple Des en C# se crea una biblioteca de clases en que
proporcionará funcionalidad de cifrado y descifrado. Las claves se proporcionaran
por el servidor de bases de datos, en donde estarán creadas, estas se enviaran al
sistema y si son correctas el sistema descifrara el mensaje enviado.
En la figura 5.16 se muestra el procedimiento a realizar para la aplicación del
algoritmo de Cifrado Triple Des, como primer paso se muestra el mensaje a
enviar, en la parte de abajo se muestran las claves, con las cuales se cifrara el
mensaje, ya teniendo las claves de cifrado de 192 bits y 64 bits, se da click en
encriptar, y en la parte de abajo donde se escribió el mensaje, aparecerá ya el
mensaje cifrado y es así como el mensaje viajara por la red LAN y solo hasta
llegar a su destino y se proporcionen las claves correctas del cifrado el mensaje se
recibirá de forma correcta.
84
FIGURA 5.16 CIFRADO Y DESCIFRADO DE DATOS
Cuando las claves de cifrado no son correctas o algún atacante pruebe con n
claves, el sistema no podrá descifrar los mensajes de Texto, y por lo tanto la
comunicación no será realizara ya que no se conocerá el mensaje original.
Como se muestra en la figura 5.17, en donde al ser modificada la clave al
momento de descifrar el mensaje, el mismo sistema nos indica que el mensaje
no se puede descifrar.
FIGURA 5.17 LOS DATOS NO SON DESCIFRADOS, LAS CLAVES NO SON CORRECTAS
85
A continuación en las figuras 5.18 y 5.19 se muestra, como se aplica el Algoritmo
de Cifrado Triple DES, en el Sistema de Mensajería, como funcionara ya el
encriptado de los mensajes, con los mensajes enviados por los usuarios.
En la figura 44 se muestra ya una conversación entre dos usuarios A y B. Cuando
el usuario A envía un mensaje de Texto (“HOLA”), al usuario B solo le llega el
mensaje cifrado, esto es debido a que las claves de cifrado no son las correctas y
que el usuario B, dentro de su sistema, no tiene habilitado la función de
desencriptar el mensaje, por lo cual los dos usuarios no están coordinados y no se
logra la comunicación.
FIGURA 5.18 SERVIDOR DEL USUARIO A ENVÍA DATOS AL SERVIDOR B DEL USUARIO B, LOS DATOS NO SE DESCIFRAN, LAS CLAVES NO SON LAS MISMAS
En la figura 5.19, se muestra nuevamente la conversación entre el usuario A y
B, pero ahora ya se logran comunicar debido a que el usuario B ahora si
cuenta con la opción de desencriptar el mensaje y por lo tanto ya con las
claves del Cifrado, que permite que ya los dos usuarios se entiendan y
comuniquen.
86
FIGURA 5.19 SERVIDOR DEL USUARIO A ENVÍA DATOS AL SERVIDOR B DEL USUARIO B, LOS DATOS SE DESCIFRAN Y ES LEGIBLE
5.4 CARACTERÍSTICAS DE LAS PC´S, PARA INSTALAR EL SISTEMA DE MENSAJERÍA.
Como primera característica las PC ´S de los usuarios que utilicen el Sistema de
Mensajería deben estar conectados por medio de la Red LAN, que les pueda
permitir compartir información. En estas redes se realiza la interconexión de
computadores personales y estaciones de trabajo.
En la red LAN cada nodo (ordenador individual) debe tener su propia CPU con la
cual ejecuta programas, pero también tiene acceso a los datos y a los dispositivos
en cualquier parte en la LAN. Esto significa que muchos usuarios pueden
compartir dispositivos, como impresoras laser, así como datos. Los usuarios
pueden también utilizar la LAN para comunicarse entre ellos, enviando E-mail y
utilizando el Sistema de Mensajería para envío de mensajes como se observa en
la figura 5.20.
87
FIGURA 5.20 ESTRUCTURA DE UNA RED LAN
El sistema de Mensajería, es una aplicación multiplataforma, por lo cual puede ser
instalado en un sistema operativo como Windows, Linux, Unix, en sur versiones
actuales, debido a que la aplicación necesita un Framework 2.0, el cual viene
integrado a partir de Windows 2000.
88
CAPITULO 6 CONFIGURACIÓN DE LA INFORMACIÓN EN LA BASE DE DATOS
6.1 PROPIEDADES DEL SERVIDOR DE BASES DE DATOS
El servidor de bases de datos, tiene como objetivo introducir, almacenar y
recuperar la información, que se vaya generando en el Sistema de Mensajería.
La información que sea recopilada por el servidor, nos ayudara a tener un control y
seguridad sobre los usuarios que utilicen el sistema, la información se recopila en
tablas, donde de forma ordenada se contendrán los datos para su uso en el
sistema.
El conjunto de procesos que nos permite la interacción entre el Sistema de
Mensajería y la información es un sistema de gestor de bases de datos, que
permite almacenar y posteriormente acceder a los datos de forma rápida y
estructurada.
El sistema de gestión de bases de datos, se encarga de la comunicación entre el
usuario y las bases de datos, proporcionando al usuario los medios para poder
realizar cambios, agregar contactos, dar de alta usuarios etc.
FIGURA 6.1 ESTRUCTURA DE UNA BASE DE DATOS
89
En la figura 6.1 se observa la estructura que tiene una base de datos la estructura
de una base de datos hace referencia a los tipos de datos, los vínculos o
relaciones y las restricciones que deben cumplir esos datos.
El sistema de gestión de bases de datos que se utiliza para la interacción con el
Sistema de Mensajería es Microsoft SQL Server 2005, maneja bases de datos
relacionales, es decir que la información puede ser recuperada o almacenada
mediante consultas, que ofrecen una amplia flexibilidad y poder para administrar la
información.
Las características de Microsoft SQL Server son las siguientes.
Soporte de Transacciones
Escalabilidad, estabilidad y seguridad
Soporta procedimientos almacenados
Incluye también un potente entorno grafico de administración, que permite
el uso de comandos DDL y DML gráficamente.
Permite trabajar en modo cliente servidor, donde la información y datos se
alojan en el servidor y las terminales o clientes de la red solo acceden a la
información.
Permite administrar información de otros servidores de datos.
SQL Server incluye interfaces de acceso para varias plataformas de
desarrollo como .NET
Las ventajas que tenemos al utilizar un sistema de gestión de bases de datos
como SQL Server 2005 son:
Simplifican la programación de equipos
Manejo de políticas de respaldo adecuados, garantizando que los cambios
de las bases de datos eran siempre consistentes.
Permite realizar organización de los datos con un impacto mínimo en el
código de los programas.
Bajan drásticamente los tiempos de desarrollo y aumentan la calidad del
sistema
90
Provee interfaces y lenguajes de consulta que simplifican la recuperación
de los datos
Al utilizar un Sistema de gestión de bases de datos como SQL Server, nuestro
sistema de Mensajería, contara con las siguientes características, que nos
ayudara en el manejo de la información de una forma adecuada ver figura 6.2.
Abstracción de la información: Ahorra a los usuarios detalles, acerca del
almacenamiento físico de los datos.
Independencia: La independencia de los datos consiste en la capacidad de
modificar el esquema físico lógico de una base de datos sin tener que
realizar cambio en la aplicación.
Consistencia: Que todos los datos repetidos se actualizan de forma
simultánea.
Seguridad: La información almacenada, en una base de datos es
importante, por lo cual se debe garantizar que esta información se
encuentra segura de permisos a usuarios que permite otorgar diversas
categorías de permisos.
Manejo de Transacciones: Provee mecanismos, para programar las
modificaciones de los datos de una forma simple, que si no se dispusieran
de ellos.
Tiempo de respuesta: El deseable minimizar el tiempo que el sistema tarda
en darnos la información solicitada y almacenar los cambios realizados
91
FIGURA 6.2 ARQUITECTURA DE UN SISTEMA DE BASES DE DATOS
6.2 DISTRIBUCIÓN DE LA INFORMACIÓN DE ALTA DE USUARIOS
Una vez que se ha elegido el sistema de gestión de bases de datos y dado
nombre a la base de datos como SMC (por las siglas de Sistema de Mensajería
Cifrado) y clasificado los datos que se utilizan para el funcionamiento del sistema,
se está listo para crear las tablas que contendrán los datos a emplear.
La tabla de alta de usuarios es una colección de datos específicos de cada usuario
que utilice el Sistema de Mensajería, como su nombre, IP, o password. La tabla
contiene un conjunto de columnas. Cada columna representa un atributo del
Sistema de Mensajería. Por ejemplo, el usuario Erick es un atributo de la entidad
Usuario. Cada instancia de la entidad en la tabla es representada por un solo
registro o fila.
Cuando se crea una tabla con el nombre dbo.usuarios, para ingresar la
información de los usuarios dados de alta, los nombres de las columnas que
conformaran la tabla son los siguientes y están distribuidos como se observa en la
figura 6.3.
ID
Usuario
92
Password
NickName
IP
Status
FIGURA 6.3 TABLA DBO.CONTACTOS
La información de cada una de las columnas será guardada por cada usuario que
sea habilitado en el sistema de mensajería, a continuación se describirá los
parámetros a ingresar de cada columna y su importancia que tienen dentro del
Sistema de Mensajería.
Dentro de la tabla dbo7.Usuarios se identifica que en todas las columnas se tiene
un valor Null (nulo) lo que significa que ninguna entrada ha sido cargada para ese
dato. La presencia de un valor nulo generalmente implica que el valor o es
desconocido o no está definido. A continuación se describe cada uno de las
columnas que conforman la tabla y su importancia dentro del Sistema de
Mensajería
ID: La primera columna nos ayuda a tener un orden en los datos, ya que se
organizan los datos conforme fueron ingresados a la tabla, identificados con un
Id en la tabla empezando con el numero 1001 y este se va incrementando
conforme los datos son ingresados. Por cada dato ingresado se tiene un ID
diferente, lo cual nos ayudara a facilitar las búsquedas dentro de la tabla, por
ser un parámetro irrepetible.
93
USUARIO: La columna usuario, es en donde se guardan los nombres de
los usuarios que pueden utilizar el Sistema de Mensajería. En la columna se
tienen ingresados los nombres de los usuarios, pero se podrían utilizar varios
datos que identifiquen al usuario como por ejemplo su apellido, puesto laboral
o área de trabajo.
El nombre de usuario es un dato que será entregado a cada uno de los usuarios
en forma confidencial por el Administrador del Sistema de Mensajería.
PASWORD: En la columna etiquetada como Password o contraseña, se
guardaran cada una de las contraseñas que se les asignen a los usuarios, la
contraseña es la forma de autentificación que se utiliza para ingresar al
Sistema de Mensajería, con ella nos permite controlar el acceso al sistema.
La contraseña que le sea entregada a cada uno de los usuarios, debe mantenerse
en secreto, ante aquellos que no se les permite el acceso y así evitar algún ataque
activo en donde durante el proceso de autentificación otros usuarios puedan
adquirir la clave de acceso, permitiendo así, que una entidad no autorizada tenga
acceso y realizar conversaciones con usuarios y para obtener información por
medio de la suplantación como se observa en la figura 6.4.
FIGURA 6.4 ATAQUE ACTIVO: UNA ENTIDAD FINGE SER OTRA
NICKNAME: En la columna de NickName o alias en español, este dato es
actualizado e ingresado por el usuario por medio del Sistema de Mensajería y
enviado a la tabla para ser guardado. El NickName se emplea para cuando el
94
usuario ya es dado de alta y se personaliza el nombre con el cual quiere ser
identificado en el sistema, este dato, puede ser su primer nombre, algún apodo
o área a la cual pertenece el usuario.
IP: En la Columna IP, se hace referencia al Internet Protocolo (IP), el cual
nos sirve para almacenar la dirección de red y poder establecer la
comunicación entre equipos origen-destino, en dicho campo se depositara la
dirección IP de la PC de cada uno de los usuarios, en donde la IP es un
número que identifica de manera lógica y jerárquica una interfaz de un
computador dentro de una red.
La IP, es un dato dinámico, por lo cual cada vez que un usuario se conecte, este
dato será modificado y actualizado por el sistema, ya que por lo general un usuario
se puede conectar por varios medios y su IP, no siempre será la misma.
STATUS: Y en la última columna Status, esta nos indicara si los usuarios
están conectados o desconectados del Sistema de Mensajería, este dato es
dinámico ya que dependiendo del estado de usuario este será modificado
automáticamente en la tabla.
Cuando el usuario se conecta en la tabla se actualiza el status a 1 y por
consiguiente se envía la información a las ventanas de cada uno de los usuarios,
indicando que un usuarios está conectado y está disponible para realizar
conversaciones y cuando se desconecta el status pasa a 0 y en las ventanas de
los demás usuarios aparece como desconectado
6.3 ADMINISTRACIÓN DE LOS DATOS, PARA LA INTEGRACIÓN DE LAS LISTAS DE CONTACTOS.
En el Sistema de Mensajería, para realizar el proceso que nos permite controlar y
administrar la creación de las lista de contactos de los usuarios, se creó una tabla
con el nombre de Dbo.contactos en la base de datos SMC (Base de datos del
95
Sistema de Mensajería), en la cual se realizan los procesos necesarios para
guardar la información tanto para creación de contactos, como el guardado de
información que nos ayudara en el proceso de seguridad hacia del sistema.
En la tabla Dbo.contactos donde se almacenaran los datos, que serán utilizados,
cuando los usuarios deseen agregar a un usuario nuevo a su lista de contactos,
esta petición será guardada en la tabla con un status de pendiente, hasta que el
usuarios al que se le envío la petición confirme la solicitud, ya confirmada la
solicitud de aceptación o negación se actualizaran los datos en la tabla, y se
actualizan las listas de contactos de cada uno de los usuarios involucrados en la
petición que se envío en el Sistema de Mensajería, como se observa en el
diagrama de la figura 6.5.
FIGURA 6.5 DIAGRAMA DE INTEGRACIÓN DE DATOS EN DBO.CONTACTOS
96
En la tabla Dbo.contactos, son guardados los datos que son necesarios para la
integración de la listas de los contactos, los datos son ingresados de forma
dinámica y se irán modificando dependiendo de las confirmaciones de las
peticiones enviadas por los usuarios, las columnas y los datos que se agregan en
cada una son las siguientes, y se puede observar su integración en la figura 6.6.
FIGURA 6.6 TABLA DBO.CONTACTOS, CONFIRMACION DE CONTACTO
ID: La primera columna como en la tabla usuario nos ayuda a tener un
orden en los datos, ya que se organizan los datos conforme fueron
ingresados a la tabla, la numeración empieza en 1 y este se va
incrementando conforme los datos son ingresados. Por cada dato
ingresado se tiene un ID diferente.
USUARIO: En este parámetro se guardan el nombre de usuario, de quien
envío la petición de agregar contacto en el Sistema de Mensajería. El
nombre que se guarda es el NickName con el cual es conocido el usuario,
por ejemplo en la figura 6.6, el usuario Erick, fue el usuario que envío una
solicitud al usuario Rosa para ser agregado a su lista de contactos, en el
Sistema de Mensajería.
PASWORD: El password, es la clave, que se utiliza para realizar el cifrado
Triple Des, esta clave es creada automáticamente, cuando el usuario
solicita agregar a otro usuario del sistema como contacto.
97
Como por ejemplo en la figura 6.6 se observa que el usuario Erick envió una
solicitud de petición al usuario Rosa, luego en la siguiente posición ID 2 aparece
en usuario Rosa, tiene una petición pendiente por parte del usuario Erick, pero
observando la columna de password, este el mismo, por lo que al momento de
aceptar la confirmación, de ser agregados a las listas de contactos de cada uno de
los usuarios, la clave con la cual se cifraran los mensajes que se envíen los
usuarios será única, ya que para cada solicitud de contacto la clave de cifrado es
diferente.
CONTACTO: En la columna contacto se agrega el nombre del usuario al
cual se le envío una solicitud de petición para ser agregado como contacto.
Como por ejemplo en la figura 6.6 en el ID 1 se observa que el usuario Erick,
fue el que le envió una solicitud de agregar contacto al usuario Rosa, y en el ID
2 aparece como contacto Erick y de usuario Rosa, pero con diferente proceso.
STATUS: Cuando un usuario envía una solicitud a otro usuario para ser
agregado a su lista de contactos, en la tabla Dbo.contactos,
automáticamente se generan dos registros indicándonos que los usuarios
están en proceso de confirmación para ser contactos, por ejemplo en la
figura 6.6, cuando el usuario Erick envía una solicitud de agregar contacto
al usuario de Rosa, en la tabla se generaron dos registros, el primero como
usuario Erick y Contacto Rosa, en el segundo con ID 2 se tiene como
usuario a Rosa y como contacto a Erick, por lo que, para identificar quien
envió la petición y quien la recibió, en la columna status y proceso nos
ayudara a identificar esta información.
La columna status nos ayuda a saber en qué proceso se encuentra la solicitud de
agregar contacto, si ya fue confirmada, quien envió la solicitud y si el contacto al
que le fue envía la petición no ha confirmado. En la tabla 6.1 se observa, cada uno
de los status que se manejan en el Sistema de Mensajería, de acuerdo a número
que representa en la columna de la tabla Dbo.contactos.
98
Tabla 6 Procesos de la Columna Status para Generar Lista de Contactos
Status
Definición
1 Se confirma Petición
2 El usuario envió petición al contacto y el usuario está en espera de la
confirmación del contacto.
3 Al usuario se le ha enviado una solicitud de petición para realizar
conversaciones de la persona que está ingresada en la columna contacto
y el usuario no ha confirmado la petición
PROCESO: En la columna proceso, se generan dos opciones que nos
indican quien fue el usuario que envió la solicitud de agregar contacto y el
usuario que está en proceso de conformación de petición.
Con estas dos opciones, se identifican a los usuarios que envían las solicitudes,
para futuras aclaraciones de quejas en la creación de listas de contactos. En la
tabla 6.2 se observa como quedo definida la columna proceso para el Sistema de
Mensajería.
TABLA 7 DEFINICIÓN DE LA COLUMNA PROCESO
Status
Definición
2
Recibió solicitud, para ser agregado en la lista de contacto de otro usuario
3 Envió solicitud al usuario para ser agregado a su lista de contactos.
99
6.4 PROGRAMACIÓN Y ADMINISTRACIÓN DE LAS BASES DE DATOS
El administrador de las Bases de Datos del Sistema de Mensajería, es la persona
encargada de gestionar y controlar todas las actividades que tienen que ver con el
sistema y los datos que se generen en las bases de satos. El administrador de la
base de datos es el responsable de garantizar que el servidor de bases de datos
funcione correctamente, se tengan los mínimos errores de conexión y revisar el
guardado de los datos en las tablas que conforman el Sistema de Mensajería.
El Administrador de Bases también es responsable de:
• Administrar la estructura de la Base de Datos: El administrador tendrá las
opciones de dar de alta los usuarios que utilizaran el Sistema de
Mensajería.
• Administrar la actividad de los datos: Podrá revisar en que status se
encuentran las conexiones de los usuarios, y también podrá revisar las
tablas de agregar usuarios e identificar fallas o errores en la inserción de
datos.
• Administrar el Sistema Manejador de Base de Datos: Tendrá acceso al
Servidor SQL Server y realizar cambios, identificar fallas y resolverlas
dentro del servidor
• Asegurar la confiabilidad de la Base de Datos: El sistema de bases de
datos es lo suficientemente robusto parara ser capaz de recuperarse frente
a errores o usos inadecuados. Se utilizan gestores con las herramientas
necesarias para la reparación de los posibles errores que las bases de
datos pueden sufrir, por ejemplo tras un corte inesperado de luz. • Confirmar la seguridad de la Base de Datos: Que los datos proporcionados
por los usuarios son los correctos, e identificar malos usos que los usuarios
realicen al utilizar el Sistema de Mensajería.
La Funciones Básicas del Administrador de la Bases de Datos, que tendrá en el
sistema de Mensajería son las siguientes.
100
Especificación de las Restricciones de Integridad de los Datos. Las
restricciones de integridad se mantienen en una estructura especial del
sistema que consulta el gestor de la base de datos cada vez que se tiene
lugar una actualización en el sistema.
El administrador, podrá monitorear y revisar cualquier problema que se suscite con
las bases de datos, al igual que podrá cancelar el uso del Sistema de Mensajería a
usuarios que le dan mal uso al sistema.
Administrar la Concurrencia. La administración de la concurrencia involucra
como los datos son consultados y actualizados en un ambiente multiusuario.
Existen dos tipos de control de la concurrencia:
• Concurrencia de Lectura: (Instrucción SELECT)
• Administrada a través de los niveles de aislamiento.
• Concurrencia de Actualización: Instrucciones INSERT, DELETE y
UPDATE.
El administrador podrá ingresar, borrar y actualizar usuarios en la base de datos,
para que puedan iniciar sesión en el Sistema de Mensajería, dando de alta
nombres de usuarios y passwords.
Una vez diseñada las bases de datos, se crea una aplicación web que nos
ayudara a administrar el alta, baja y cambios de usuarios, desarrollando
procedimientos y controles para asegurar la calidad y la integridad de los datos a
ingresar.
La aplicación se programo utilizando plataforma .Net C# y ASP.Net. La aplicación
corre sobre el servidor web donde se efectúan las solicitudes ya sean de
búsqueda de usuarios, borrada o agregado de usuarios al Sistema de Mensajería.
A continuación en la figura 6.7, se muestra la aplicación, el proceso de
autentificación, para acceso al sistema, en los cuales se deberá ingresar el
101
nombre de usuario y password, que previamente será entregado al administrador,
y poder ingresar al sistema.
FIGURA 6.7 AUTENTIFICACION PARA ACCESO AL SISTEMADE ADMINISTRACION DE USUARIOS
Una vez ingresado al sistema, como se observa en la figura 6.8, se tiene una
aplicación en donde nos aparecen de forma ordena conforme han sido ingresados
los usuarios, que pueden ingresar al Sistema de Mensajería.
El administrador dentro de la aplicación tendrá las opciones de seleccionar, editar
o eliminar usuarios, dependiendo de las necesidades que se tengan durante la
utilización del sistema.
En la figura 6.8 se observa, que por cada usuario, se tiene de forma
independiente, las opciones de editar, eliminar y seleccionar, esto se generó para
qué solamente se realicen los cambios en los usuarios indicados y no modificar la
información de otros usuarios que no lo necesiten.
102
FIGURA 6.8 APLICACIÓN DE ADMINISTRACION DE USUARIOS DEL SISTEMA
Con la opción editar, el administrador podrá modificar, el nombre de usuario,
contraseña, nickname, la IP y el status de un usuario, en dado caso que existiera
algún error o se necesite realizar cambios en los parámetros como se observa en
la figura 6.9.
En las opciones seleccionar, solamente se elige el usuario al cual se desea
realizar cambios, y en eliminar el usuarios es totalmente borrado del Sistema de
Mensajería, por lo que si el usuarios deseara ingresar el sistema le indicaría que
su nombre de usuario y contraseña son incorrectos, al igual que su nombre seria
borrado de las listas de contactos de los usuarios del Sistema de Mensajería.
FIGURA 6.9 APLICACIÓN DE ADMINISTRACION DE USUARIOS DEL SISTEMA
103
CAPITULO 7 RESULTADOS, CONCLUSIONES Y ALCANCES DE LA CREACION DEL SISTEMA DE MENSAJERÍA CIFRADO PARA REDES LAN
7.1 RESULTADOS OBTENIDOS Y COSTOS DE CREACION DEL SISTEMA DE MENSAJERIA CIFRADO PARA REDES LAN.
Las pruebas se realizaron conectando cuatro computadores en red, a uno se
asigno como el servidor de bases de datos, los computadores de conectaran
mediante el proceso cliente Servidor. A tres computadores se les instalo la
aplicación del sistema de Mensajería.
Dentro del Servidor de bases de datos, se dieron de alta los nombres de usuarios
y contraseñas, que deberá ingresar cada usuario para utilizar el sistema.
Al conectarse los usuarios al sistema, se inician a crear sus listas de contactos, y
poder iniciar las conversaciones. Ya creadas las listas, se inician y realizan las
conversaciones entre los usuarios.
Como el objetivo es que el sistema pueda enviar la información cifrada por la red,
se utilizo el programa Wireshark que es un analizador de protocolos basado en
las librerías pcap (un interfaz de una aplicación de programación para captura de
paquetes) utilizado comúnmente como herramienta de diagnóstico de redes y de
desarrollo de aplicaciones de red (Ver figura 7.1).
Con este programa, revisaremos el tráfico en la red y el envío de datos, por lo cual
nos permitirá observar los datos enviados en el Sistema de Mensajería Cifrado,
cuando se utiliza el cifrado Triple DES, y cuando este, se encuentra deshabilitado
e identificar que efectivamente la información que se envía por el sistema esta
oculta.
104
FIGURA 7.1 VENTANA DE WIRESHARK
Con el programa Wireshark, logramos observar el tráfico en la red y efectivamente
la información viaja cifrada, y aunque monitoreen la red esta información no
puede ser leída hasta que llega al computador del usuario final y al tener este las
claves para descifrar el Trile DES, logra obtener el texto claro y leer la información.
Dentro de las dificultades que se encontraron fue, que en un principio los
mensajes no eran cifrados por el sistema, y nos marcaba errores al momento de la
transmisión. Este error se ocasiono debido a que nosotros mandamos el mensaje
en código ASCCII (acrónimo inglés de American Standard Code for Information
Interchange en español Código Estadounidense Estándar para el Intercambio de
Información) y el Cifrado Triple DES, no acepta código ASCCI, si no solo bytes,
por lo cual los mensajes de texto se paso a bytes para poder realizar el cifrado.
Logrando el cifrado damos como viable el Sistema de Mensajería Cifrado, ya que
cuenta con la seguridad de contar con el cifrado y aunque se desee realizar el
criptoanálisis para conocer las claves de cifrado, este no será redituable ya que en
cuanto el atacante tenga las claves, la información que se envío ya no es viable y
útil.
105
Para revisar el costo en horas que nos llevo, realizar el sistema de mensajería, se
realizo una tabla en donde se observa la cantidad de horas que se le invirtió para
la creación de cada uno de los módulos, el total de horas fue de 260 horas, estas
se distribuyeron durante 8 meses de pruebas y programación del sistema con
Tecnología .NET.
FIGURA 7.2 HORAS UTILIZADAS PARA REALIZAR EL SISTEMA DE MENSAJERIA CIFRAD0
Teniendo el número de horas utilizado a continuación mostraremos la cantidad de
líneas de código que se utilizo para cada función.
Tabla 7.1 Líneas de código por función Función Líneas de CódigoInicio 890Inicio (Autentificación) 202Cliente Base 89Servidor Base 116Cliente 486Servidor 510Contactos 262Seguridad 3DES 103Total 2658
0102030405060708090
Horas
Horas
106
7.2 CONCLUCIONES DE LA CREACION DEL MENSAJERÍA CIFRADO PARA REDES LAN
De a cuerdo al objetivo planteado al inicio del proyecto se llegaron a las siguientes
conclusiones con el Sistema ya funcionando:
• Con el Sistema de Mensajería Cifrado, se integraron operaciones, de envió
y recepción de información en tiempo real, lo que permite en la red LAN ya
sea de una empresa, escuela o toda una comunidad, de disponer de una
herramienta fundamental para la toma de decisiones y corrección de
posibles problemas sin la necesidad de recurrir a una herramienta
secundaria como seria utilizar el teléfono o correo electrónico, confiando en
que su información solo será leída por la persona a quien se le envía la
información
• El sistema, logra la comunicación entre varios usuarios con un límite de 80
conversaciones al mismo tiempo en los puertos del 9019 al 9099. Los
usuarios que se encuentren conectados en una Red LAN, deber ser
autentificados por el servidor de base de datos del Sistema de Mensajería
Cifrado.
• Con Leguaje C#, nivel descriptor para la construcción de código, facilita
llamadas al intérprete CLR por igual de alto y de bajo nivel, es decir, la
sencillez de un lenguaje de alto nivel como Visual Basic o Java, y la
robustez de C o C++, el segundo motivo es la experiencia del equipo de
trabajo bajo este lenguaje de programación.
• Al programar el sistema, con C#, y poder realizar la comunicación se
utilizaron Socket de flujo que permiten un flujo de datos de dos vías,
confiable, sin duplicados y sin límites de grabación. El flujo opera en forma
parecida a una conversación telefónica. El tipo del socket es
SOCK_STREAM, el cual en el dominio de Internet usa TCP (Transmission
Control Protocol).
107
• La conexión que hay entre los computadores de los usuarios y el servidor
de bases de datos, también se encuentra protegida por medio del Cifrado
de datos Triple DES, se creó una aplicación, con la cual los datos que se
necesitan en la aplicación del Sistema de Mensajería, como son la dirección
IP (Internet Protocol), y el nombre de usuario y contraseña para ingresar al
servidor SQL Server 2005, van cifrados durante el envío de los datos por la
red, al llegar e su destino son descifrados por el sistema y leídos para
ingresar al Servidor SQL Server.
• Durante la programación del sistema, también encontramos importante
proteger las conexiones, consultas, borrados en la base de datos, por lo
cual dentro del código fuente, no se pueden observar estas consultas
debido a que se utilizaron Stored Procedure (Procedimiento Almacenado)
La ventaja que nos aporta es que al ser ejecutado, en respuesta a una
petición de usuario, es ejecutado directamente en el motor de bases de
datos, el cual usualmente corre en un servidor separado. Como tal, posee
acceso directo a los datos que necesita manipular y sólo necesita enviar
sus resultados de regreso al usuario, deshaciéndose de la sobrecarga
resultante de comunicar grandes cantidades de datos salientes y entrantes.
• El Sistema de Mensajería Cifrado para redes LAN, es creado ante la
necesidad de tener sistemas seguros. El sistema fue creado basándonos
es protocolos de seguridad entablados por organismos como son
Recomendaciones X.800 y Arquitectura de Seguridad OSI dedicados a
regular, evaluar y crear políticas, que permitan que el sistema, cumplan con
los objetivos de un sistema seguro como son, consolidación de la
información, integridad y autenticidad de los datos, disponibilidad del
sistemas y de la información y evitar cualquier a o ataque para obtención de
la información de forma ilegal, ya sea por medio de ataques activos o
pasivos.
• El sistema de Mensajería se toma como base a un sistema distribuido, con
base a un protocolo cliente-servidor, en donde los clientes son los usuarios
que utilizaran el Sistema de Mensajería y se conectaran al servidor, para
108
poder realizar las conversaciones. Con este tipo de esquema se intenta
crear un sistema centralizado, en donde los administradores, puedan tener
control de los usuarios y la información que se envía por medio del sistema.
• El sistema de Mensajería, no solo se creó como una aplicación, sino como
un sistema integrado por varias aplicaciones como son la administración de
los usuarios por medio de una aplicación web, el contener políticas de
seguridad, en donde se incluye que solo persona autorizada podrá realizar
los cambios en el Sistema de Mensajería.
• La información se protege de usuarios y personas que no estén autorizadas
a revisar la información y deseen hacer mal uso de dicha información como
por ejemplo robo, extorción o modificación de la información para beneficio
propio.
• Con el cifrado en el Sistema de Mensajería se garantiza la confidencialidad
de la información entre dos usuarios y se asegura que la información que
se envía es autentica, es decir que el receptor es realmente quien dice ser y
que el contenido del mensaje enviado, no haya sido modificado durante el
envió de los datos.
• Con el Cifrado Triple Des, las claves se deben proteger, en el Sistema de
Mensajería se realiza, guardando las claves en el servidor de bases de
datos, y están claves son generadas de forma automática y ninguno de los
usuarios las conoce, ya que al momento de entrar al sistema y agregar
contactos, estas claves son generadas de forma automática en el sistema.
• La idea de desarrollar el sistema de mensajería cifrado para redes LAN, con
la utilización de la plataforma .Net, radica en la portabilidad de las
aplicaciones a diferentes sistemas operativos y aprovechar al máximo el
soporte de código que ofrece Microsoft para la elaboración de programas,
ya que en las especificaciones de código utilizable, cuenta con una amplia
lista de clases y métodos orientados a la seguridad, de los cuales se tomo
la decisión de utilizar aquellos en los que se implementan los cifrados
simétricos como lo es el triple DES.
109
7.3 ALCANCES Y APORTACIONES DEL SISTEMA MENSAJERÍA CIFRADO PARA REDES LAN
Dentro de los alcances y aportaciones que el Sistema de Mensajería Cifrado para
Redes LAN proporciona como un sistema seguro son:
• .Cada vez son más los negocios que utilizan los Sistemas de Mensajería,
debido a la obligada movilidad en el trabajo y la dispersión geográfica de los
negocios, por lo cual los trabajadores deben estar en constante
comunicación y el poder contar con un Sistema de Mensajería, reduce
costos en cuanto a llamadas telefónicas, ya que solo necesitan conectarse
a su propia Red y tendrán comunicación con su área de trabajo en una
forma segura, sin la necesidad de utilizar Sistemas de Mensajería Públicos,
donde la información no cuenta con un proceso de cifrado.
• El Sistema de Mensajería cifrado utilizado en redes LAN, tiene como motivo
incrementar la productividad y eficiencia de los empleados de forma segura,
para que la soluciones de los problemas sean rápidos y tener
interconectados a los usuarios de la red con una herramienta que les ayude
a revisar e identificar problemas en un tiempo menor, que si lo realizaran
con alguna otra herramienta.
• Con las medidas de seguridad implementadas por el sistema de mensajería
nos permite que el sistema sea eficiente, fácil de usar y apropiadas al
medio, por lo cual está orientado a cualquier tipo de usuario.
• Para cada uno de los usuarios se genera una clave diferente con cada uno
de sus contactos, por lo cual por cada usuario se tiene claves diferentes, lo
cual hace al sistema computacionalmente seguro, ya que el costo de
romper el cifrado excede el valor de la información cifrada y el tiempo
necesario para romper el cifrado, excede el tiempo de vida útil de la
información. Y aun realizando esfuerzos mediante fuerza bruta, se lléguese
a conocer una clave, para el atacante.
110
APENDICE A GLOSARIO DE TECNOLOGÍAS DE LA INFORMACIÓN
CONCEPTO DE MODELO OSI:
Es el Modelo de Referencia de Interconexión de Sistemas Abiertos, conocido
como Modelo OSI (Open System Interconnection), fue creado por la ISO
(Organizacion Estándar Internacional) y en él pueden referenciarse diferentes
dispositivos que reglamenta la ITU (Unión Internacional de Telecomunicaciones),
con el fin de poner orden entre todos los sistemas y componentes requeridos en la
transmisión de datos, y además de simplificar la interrelación entre fabricantes.
Así, todo dispositivo de cómputo y telecomunicaciones podrá ser referenciado al
modelo y por ende concebido como parte de un sistema interdependiente con
características muy precisas en cada nivel.
Esta idea da la pauta para comprender que el modelo OSI existe potencialmente
en todo sistema de cómputo y telecomunicaciones, pero que solo cobra
importancia al momento de concebir o llevar a cabo la transmisión de datos. El
Modelo OSI cuenta con 7 capas o niveles:
Capa 7: Nivel de Aplicación: Le brinda aplicaciones a la interfaz. Por lo tanto, es el
nivel más cercano a los usuarios, administrado directamente por el software.
Capa 6: Nivel de Presentación: Define el formato de los datos que maneja la capa
de aplicación (su representación y, potencialmente, su compresión y cifrado)
independientemente del sistema.
Capa 5: Nivel de Sesión: Define el inicio y la finalización de las sesiones de
comunicación entre los equipos de la red.
Capa 4: Nivel de Transporte: Se encarga del transporte de datos, su división en
paquetes y la administración de potenciales errores de transmisión.
111
Capa 3: Nivel de Red: permite administrar las direcciones y el enrutamiento de
datos, es decir, su ruta a través de la red.
Capa 2: Nivel de Enlace de Datos: define la interfaz con la tarjeta de interfaz de
red y cómo se comparte el medio de transmisión.
Capa 1: Nivel Físico: define la manera en la que los datos se convierten
físicamente en señales digitales en los medios de comunicación (pulsos eléctricos,
modulación de luz, etc.).
PROTOCOLO TCP
TCP (que significa Protocolo de Control de Transmisión) es uno de los principales
protocolos de la capa de transporte del modelo TCP/IP. En el nivel de aplicación,
posibilita la administración de datos que vienen del nivel más bajo del modelo, o
van hacia él, (es decir, el protocolo IP). Cuando se proporcionan los datos al
protocolo IP, los agrupa en datagramas IP, fijando el campo del protocolo en 6
(para que sepa con anticipación que el protocolo es TCP). TCP es un protocolo
orientado a conexión, es decir, que permite que dos máquinas que están
comunicadas controlen el estado de la transmisión.
Las principales características del protocolo TCP son las siguientes:
• TCP permite colocar los datagramas nuevamente en orden cuando vienen
del protocolo IP.
• TCP permite que el monitoreo del flujo de los datos y así evita la saturación
de la red.
• TCP permite que los datos se formen en segmentos de longitud variada
para "entregarlos" al protocolo IP.
• TCP permite multiplexar los datos, es decir, que la información que viene de
diferentes fuentes (por ejemplo, aplicaciones) en la misma línea pueda
circular simultáneamente.
112
• Por último, TCP permite comenzar y finalizar la comunicación
amablemente.
PROTOCOLO IP
El protocolo IP es parte de la capa de Internet del conjunto de protocolos TCP/IP.
Es uno de los protocolos de Internet más importantes ya que permite el desarrollo
y transporte de datagramas de IP (paquetes de datos), aunque sin garantizar su
"entrega". En realidad, el protocolo IP procesa datagramas de IP de manera
independiente al definir su representación, ruta y envío.
El protocolo IP determina el destinatario del mensaje mediante 3 campos:
• el campo de dirección IP: Dirección del equipo;
• el campo de máscara de subred: una máscara de subred le permite al
protocolo IP establecer la parte de la dirección IP que se relaciona con la
red;
• el campo de pasarela predeterminada: le permite al protocolo de Internet
saber a qué equipo enviar un datagrama, si el equipo de destino no se
encuentra en la red de área local.
PROTOCOLO TCP-IP
Es un conjunto de protocolos. La sigla TCP/IP significa "Protocolo de control de
transmisión/Protocolo de Internet" y se pronuncia "T-C-P-I-P". Proviene de los
nombres de dos protocolos importantes del conjunto de protocolos, es decir, del
protocolo TCP y del protocolo IP.
En algunos aspectos, TCP/IP representa todas las reglas de comunicación para
Internet y se basa en la noción de dirección IP, es decir, en la idea de brindar una
113
dirección IP a cada equipo de la red para poder enrutar paquetes de datos. TCP-
IP está diseñado para cumplir con una cierta cantidad de criterios, entre ellos:
• Dividir mensajes en paquetes.
• Usar un sistema de direcciones.
• Enrutar datos por la red.
• Detectar errores en las transmisiones de datos.
Para poder aplicar el modelo TCP/IP en cualquier equipo, es decir,
independientemente del sistema operativo, el sistema de protocolos TCP/IP se ha
dividido en diversos módulos. Cada uno de éstos realiza una tarea específica.
Además, estos módulos realizan sus tareas uno después del otro en un orden
específico, es decir que existe un sistema estratificado. Ésta es la razón por la cual
se habla de modelo de capas.
El término capa se utiliza para reflejar el hecho de que los datos que viajan por la
red atraviesan distintos niveles de protocolos. Por lo tanto, cada capa procesa
sucesivamente los datos que circulan por la red, les agrega un elemento de
información (llamado encabezado) y los envía a la capa siguiente.
Las funciones de las diferentes capas son las siguientes:
• capa de acceso a la red: especifica la forma en la que los datos deben
enrutarse, sea cual sea el tipo de red utilizado;
• capa de Internet: es responsable de proporcionar el paquete de datos
(datagrama);
• capa de transporte: brinda los datos de enrutamiento, junto con los
mecanismos que permiten conocer el estado de la transmisión;
• capa de aplicación: incorpora aplicaciones de red estándar (Telnet, SMTP,
FTP, etc.
114
RECOMENDACIÓN X.800
Es una recomendación que describe las características básicas que deben ser
consideradas cuando se quiere conectar una computadora con otras, ya sea
conectarse a Internet o a una Red de área local, de forma segura.
X.800 forma parte de la Unión Internacional de Telecomunicaciones, aprobaba el
22 de marzo de 1991 en Ginebra. El Comité Consultivo Internacional Telegráfico y
Telefónico fue el responsable de su elaboración. No es una especificación de
implementación, sino una descripción de los servicios de seguridad básicos que
pueden ser aplicados cuando es necesario proteger la comunicación entre
sistemas. La recomendación define en que capa del Modelo de Interconexión de
Sistemas Abiertos se puede aplicar cada servicio e incluye los mecanismos que
pueden ser implementados para ofrecerlos, así como un capítulo dedicado a la
administración de la seguridad.
SECTOR DE NORMALIZACIÓN DE LAS TELECOMUNICACIONES DE LA UIT
El Sector de Normalización de las Telecomunicaciones de la UIT (UIT-T) es el
órgano permanente de la Unión Internacional de Telecomunicaciones (UIT) que
estudia los aspectos técnicos, de explotación y tarifarios y publica normativa sobre
los mismos, con vista a la normalización de las telecomunicaciones a nivel
mundial. Con sede en Ginebra (Suiza) fue conocido hasta 1992 como Comité
Consultivo Telefónico y Telegráfico (CCITT).
Las normas producidas por el UIT-T son conocidas como "Recomendaciones"
(normalmente escrito en mayúsculas para distinguir su significado del sentido
ordinario de la palabra recomendación). Dado que el UIT-T es parte la UIT, la cual
es un organismo de la Organización de las Naciones Unidas (ONU), sus normas
gozan de mayor reconocimiento internacional que las que publican otras
organizaciones técnicas en forma similar.
115
El UIT-T divide su trabajo normativo en categorías, cada una de las cuales viene
identificada por una letra que se conoce como serie. Las Recomendaciones están
numeradas dentro de cada serie, por ejemplo V.90.
Las series de las Recomendaciones del UIT-T y el tema a que aplican son las
siguientes:
• Serie A Organización del trabajo del UIT-T.
• Serie B Medios de expresión: definiciones, símbolos, clasificación.
• Serie C Estadísticas generales de telecomunicaciones.
• Serie D Principios generales de tarificación.
• Serie E Explotación general de la red, servicio telefónico, explotación del
servicio y factores humanos.
• Serie F Servicios de telecomunicación no telefónicos.
• Serie G Sistemas y medios de transmisión, sistemas y redes digitales
• Serie H Sistemas audiovisuales y multimedia.
• Serie I Red digital de servicios integrados (RDSI).
• Serie J Transmisiones de señales radiofónicas, de televisión y de otras
señales multimedios.
• Serie K Protección contra las interferencias.
• Serie L Construcción, instalación y protección de los cables y otros
elementos de planta exterior.
• Serie M Red de Gestión de las Telecomunicaciones (RGT) y mantenimiento
de redes: sistemas de transmisión, circuitos telefónicos, telegrafía, facsímil
y circuitos arrendados internacionales.
• Serie N Mantenimiento: circuitos internacionales para transmisiones
radiofónicas y de televisión.
• Serie O Especificaciones de los aparatos de medida.
• Serie P Calidad de transmisión telefónica, instalaciones telefónicas y redes
locales.
• Serie Q Conmutación y señalización.
• Serie R Transmisión telegráfica.
116
• Serie S Equipos terminales para servicios de telegrafía.
• Serie T Terminales para servicios de telemática.
• Serie U Conmutación telegráfica.
• Serie V Comunicación de datos por la red telefónica.
• Serie X Redes de datos y comunicación entre sistemas abiertos y
seguridad.
• Serie Y Infraestructura mundial de la información, aspectos del protocolo
Internet y Redes de la próxima generación.
• Serie Z Lenguajes y aspectos generales de soporte lógico para sistemas de
telecomunicación.
RFC
Request For Comments ("Petición De Comentarios") son un conjunto de notas
sobre Internet que comenzaron a publicarse en 1969.Se abrevian como RFC.
Cada una de las listas, son un documento cuyo contenido es una propuesta oficial
para un nuevo protocolo de la red Internet, que se explica con todo detalle para
que en caso de ser aceptado pueda ser implementado.
Cualquiera puede enviar una propuesta de RFC a la IETF Internet Engineering
Task Force (Grupo de Trabajo en Ingeniería de Internet), pero es ésta la que
decide finalmente si el documento se convierte en una RFC o no. Si luego resulta
lo suficientemente interesante, puede llegar a convertirse en un estándar de
Internet.
Cada RFC tiene un título y un número asignado, que no puede repetirse ni
eliminarse aunque el documento se quede obsoleto.
117
Cada protocolo de los que hoy existen en Internet tiene asociado un RFC que lo
define, y posiblemente otros RFC adicionales que lo amplían. Por ejemplo el
protocolo IP se detalla en el RFC 791, el FTP en el RFC 959, y el HTTP (escrito
por Tim Berners-Lee, entre otros) el RFC 2616.
Las RFC se redactan en inglés según una estructura específica y en formato de
texto ASCII.
RFC 2828
Es el documento avalado IETF Internet Engineering Task Force (Grupo de
Trabajo en Ingeniería de Internet), donde queda establecido como protocolos o
conceptos de seguridad un glosario de seguridad de internet (Internet Security
Glossary) documento que contiene la lista de información relacionada con la
seguridad, mejor conocida como RFC 2828 (request for comments o petición de
comentarios en español).
ARQUIRECTURA DE SEGURIDAD OSI
El documento de ISO que describe el Modelo de Referencia OSI, presenta en su
Parte 2 una Arquitectura de Seguridad. Según esta arquitectura, para proteger las
comunicaciones de los usuarios en las redes, es necesario dotar a las mismas con
servicios de seguridad.
INSTITUTO NACIONAL DE ESTÁNDARES Y TECNOLOGÍA
El Instituto Nacional de Normas y Tecnología (NIST por sus siglas en inglés,
National Institute of Standards) es una agencia de la Administración de Tecnología
118
del Departamento de Comercio de los Estados Unidos. La misión de este instituto
es promover la innovación y la competencia industrial en Estados Unidos mediante
avances en metrología, normas y tecnología de forma que mejoren la estabilidad
económica y la calidad de vida.
Como parte de esta misión, los científicos e ingenieros del NIST continuamente
refinan la ciencia de la medición (metrología) creando una ingeniería precisa y una
manufacturación requerida para la mayoría de los avances tecnológicos actuales.
También están directamente involucrados en el desarrollo y pruebas de normas
hechos por el sector privado y agencias de gobierno. El NIST fue originalmente
llamado Oficina Nacional de Normas (NBS por sus siglas en inglés), un nombre
que tuvo desde 1901 hasta 1988. El progreso e innovación tecnológica de Estados
Unidos dependen de las habilidades del NIST, especialmente si hablamos de
cuatro áreas: biotecnología, nanotecnología, tecnologías de la información y
fabricación avanzada.
El NIST tuvo un presupuesto del año fiscal 2006 de aproximadamente $ 930
millones de dólares, empleó cerca de 2.800 científicos, ingenieros, técnicos y
personal de administración y soporte. Cerca de 1.800 asociados al NIST
(investigadores e ingenieros invitados de compañías estadounidenses y
extranjeras) complementaban el staff. Además de 1.400 especialistas en
manufactura como socios y cerca de 350 centros afiliados en todo el país.
119
APENDICE B CODIGO FUENTE DEL CIFRADO TRIPLE DES EN C#
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; using System.Windows.Forms; namespace Seguridad { class _DES { public byte[] StringToBytes(String cadena) { System.Text.ASCIIEncoding codificador = new System.Text.ASCIIEncoding(); return codificador.GetBytes(cadena); } /* public static byte[] btClave; public static byte[] btIV; */ public byte[] btClave; public byte[] btIV; SymmetricAlgorithm saCod; public string encriptar(string Mensaje) { /* string clave = "123456789012345678901234"; string iv = "12345678"; */ //btClave = Encoding.Default.GetBytes(clave); //btIV = Encoding.Default.GetBytes(iv); byte[] MsgOrig = Encoding.Default.GetBytes(Mensaje); try { saCod = SymmetricAlgorithm.Create("3DES"); saCod.Key = btClave; saCod.IV = btIV; ICryptoTransform ct = saCod.CreateEncryptor();
120
MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write); cs.Write(MsgOrig, 0, MsgOrig.Length); cs.FlushFinalBlock(); return Encoding.Default.GetString(ms.ToArray()); } catch (Exception ex) { MessageBox.Show(ex.Message); } return ""; } public string desencriptar(string Mensaje) { SymmetricAlgorithm saDecod; saDecod = SymmetricAlgorithm.Create("3DES"); byte[] MsgEncriptado = Encoding.Default.GetBytes(Mensaje); try { MemoryStream ms = new MemoryStream(MsgEncriptado); ICryptoTransform cto = saDecod.CreateDecryptor(btClave, btIV); MemoryStream mso = new MemoryStream(); CryptoStream cso = new CryptoStream(mso, cto, CryptoStreamMode.Write); cso.Write(ms.ToArray(), 0, ms.ToArray().Length); cso.FlushFinalBlock(); return Encoding.Default.GetString(mso.ToArray()); } catch (Exception ex) { MessageBox.Show(ex.Message); } return ""; } } }
121
BIBLIOGRAFIA
Copyright IBM Corporation 1998, 2002. “Guía del Usuario SAMETIME”. http://201.245.175.165/sametime/STHelp/H_ADDING_A_PARTICIPANT_NAME_TO_CONNECT_4611_OVER.html. (Documento Web). “Adición del nombre de un participante a la lista de contactos”. IBM 2002.
Copyright © 2002 - 2008 - Zona Gratuita .COM. “Criptografía”. http://www.zonagratuita.com/servicios/seguridad/criptografia.html. (Documento Web). “Sistemas de Cifrado Simétrico y Asimétrico”. 2002-2008.
Departamento de Arquitectura de Computadoras. “Fundamentos de Sistemas Distribuidos”.http://studies.ac.upc.edu/EPSC/FSD/FSD-ConceptosGenerales.pdf. “Conceptos Generales de Sistemas Distribuidos”. (Documento PDF). Universidad de Catalunya España 2005.
Derechos Reservados de Copyright 1999 - 2009 Masadelante.com. “¿Qué es una Red LAN.? http://www.masadelante.com/faqs/lan. “Definición de LAN”. (Documento Web). 2009 España.
Empresa IRCFAST. “Seguridad y Encriptación”. http://www.ircfast.com/lv/group/view/kl28177/IMsecure.htm. “Seguridad y Encriptación.” (Documento Web). República Dominicana 2001.
Enciclopedia Libre WIKIPEDIA. “Autenticación”. http://es.wikipedia.org/wiki/Autenticaci%C3%B3n. “Definición y Métodos de Autenticación”. (Documento Web). 19 de Septiembre del 2009.
Enciclopedia Libre WIKIPEDIA. “Base de Datos”. http://es.wikipedia.org/wiki/Base_de_datos. “Tipos de Bases de Datos”. (Documento Web). O2 de Octubre del 2009.
Enciclopedia Libre WIKIPEDIA. “Instituto Nacional de Estándares y Tecnología NIST”. http://es.wikipedia.org/wiki/Instituto_Nacional_de_Est%C3%A1ndares_y_Tecnolog%C3%ADa. “Instituto Nacional de Estándares y Tecnología”. (Documento Web). 15 de Junio del 2009.
Enciclopedia Libre WIKIPEDIA. “X.800”.http://es.wikipedia.org/wiki/X.800. “X.800”. (Documento Web). 17 de Septiembre del 2009.
Este documento intitulado « Introducción a la seguridad informática » de Kioskea (es.kioskea.net) esta puesto a deposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible. “Introducción a la Seguridad Informática”
122
.http://es.kioskea.net/. (Documento Web). “Como implementar una Política de Seguridad”. 16 de Octubre del 2008.
Hernández Emilio. “Cursos con Enfoque Productivo”. http: //www. ldc.usb.ve /~emilio /Portafolio/index.html. “Desarrollo innovador y evolutivo de software”. (Documento Web). Venezuela 2001.
Ing. Núñez Sandoval Alejandro. “Taller de Desarrollo de Políticas de Seguridad”. http://www.seguridad.unam.mx/eventos/admin-unam/politicas_seguridad.pdf. “Mecanismos Básicos de Seguridad para Redes de Computo.” (Documento PDF). 8 de Diciembre del 2005.
García Méndez Israel. “Apuntes de Administración de Bases de Datos.” http://www.monografias.com/trabajos19/administracion-base-datos/administracion-base-datos.shtml. (Documento Web). “Objetivos del Administrador de Bases de Datos.” 2002.
Licencia Creative Commons Compartir Igual 3.0. “Sistema Distribuido”. http://enciclopedia.us.es/index.php/Sistema_distribuido. “Definición de Sistema Distribuido”. (Documento Web). 18 de Mayo del 2008 España.
Marqués Andrés María Mercedes. “Planificación, diseño y administración de bases de datos.”http://www3.uji.es/~mmarques/f47/apun/node77.html. “Administración de datos y de la base de datos”. (Documento Web). 12 de Febrero del 2001.
Licencia de Revista GS1. “Boletín Informativo, GS1 Panamá”. http://www.gs1pa.org/boletin/2007/marzo/boletin-mar07-art2.html. (Documento Web). “Gestión de la cadena de suministro: importancia de los sistemas de información “.Marzo 2007, Año 8 No. 3
Microsoft Corporation. “Microsoft Exchange Server 2003” http://www.microsoft.com/spain/technet/recursos/articulos/exchange/introduccion.aspx. (Documento Web). Diseño de un sistema de mensajería de Exchange Server “. 2003”. Microsoft España 2009.
A. R. H Miguel. “Estudio sobre la Seguridad en Internet, Privacidad y Transacciones Comerciales”. http://www.geocities.com/CapeCanaveral/2566/seguri/sie7.htm. “Los Servicios de Seguridad”. (Documento Web). E.T.S.I.I. Universidad de Granada 1998
Muzquiz Pablo Ruiz.”Libro Abierto y Apuntes de Redes y Sistemas de Comunicación“. (PDF) 2004. http://sindominio.net/metabolik/alephandria/txt/RSC-0_6_0.pdf. 15 de Abril del 2004.
Hagens Ginoza Braden. “RFC EDITOR”. http://www.rfc-editor.org/. “Overview of RFC Document Series”. (Documento Web). 14 de Noviembre del 2008.
123
Rodríguez Enríquez Francisco. “Introducción a la Seguridad en Sistemas Informáticos”.http://delta.cs.cinvestav.mx/~francisco/ssi/intro.ppt. “Seguridad en Sistemas Informáticos”. (Documento PowerPoint).CINVESTAV-IPN. Depto. de Ingeniería Eléctrica . Sección de Computación.
Derechos reservados de IESPAÑA.COM. “El sitio de las Telecomunicaciones”. http://elsitiodetelecomunicaciones.iespana.es/modelo_osi.htm. “Modelo OSI”. (Documento Web). 12 de Mayo del 2002.
Villalón Huerta Antonio. “Seguridad en Unix”. http://www.ibiblio.org/pub/linux/docs/LuCaS/Manuales-LuCAS/doc-unixsec/unixsec-html/node310.html. (Documento Web). “Criptoanálisis”. Julio del 2002
Stanllings William.2004. Fundamentos de Seguridad en Redes, Aplicaciones y Estándares. Cruz García Laura y González Rodríguez Manuel, traductores. Pearson Prentice Hall. Madrid España.
Marroquín Willy. Crear una biblioteca de cifrado DES, Triple DES, RC2 y Rijndael en .Net”.http://www.willydev.net/descargas/prev/DeCifrado.PDF. (Documento PDF). “Aplicación de Cifrado DES con C#.” 2003.
Este documento intitulado « Protocolo TCP » de Kioskea (es.kioskea.net), esta puesto a disposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible. “Protocolo TCP”. http://es.kioskea.net/contents/internet/tcp.php3. (Documento Web). “Definición de TCP”. 16 de octubre de 2008.
Este documento intitulado « Protocolo IP » de Kioskea (es.kioskea.net), esta puesto a disposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible. “Protocolo IP”. http://es.kioskea.net/contents/internet/protip.php3. (Documento Web). “Definición de IP”. 16 de octubre de 2008