clase 03 protocolos y servicios de red
TRANSCRIPT
Clase 03: Protocolos y Clase 03: Protocolos y Servicios de RedServicios de Red
Curso: Internet y Desarrollo IntranetCurso: Internet y Desarrollo Intranet
Profesor: Jaime Valenzuela A.Profesor: Jaime Valenzuela A.
HTTPHTTP
HHiperiperTText ext TTransfer ransfer PProtocol es una componente clave rotocol es una componente clave de Internetde Internet
Mecanismo universal para recuperar información desde Mecanismo universal para recuperar información desde el Webel Web
Basado en un protocolo de respuesta confiableBasado en un protocolo de respuesta confiable Cliente pide una información, Servidor respondeCliente pide una información, Servidor responde Objetivos fundamental de diseñoObjetivos fundamental de diseño
Liviano: Ocupar la menor cantidad de recursosLiviano: Ocupar la menor cantidad de recursos Rápido: Facilitar la recuperación rápida de informaciónRápido: Facilitar la recuperación rápida de información
HTTPHTTP
Primera versión 0.9Primera versión 0.9 Solo método GETSolo método GET No entregaba códigos de errorNo entregaba códigos de error Tenía solo documentos de textoTenía solo documentos de texto Un cliente no enviaba información al servidorUn cliente no enviaba información al servidor
Versión 1.0Versión 1.0 Comienza desarrollo en 1992, es liberado en 1996Comienza desarrollo en 1992, es liberado en 1996 Se generó documentación de lo desarrolladoSe generó documentación de lo desarrollado Gran avance respecto del 0.9Gran avance respecto del 0.9
HTTP 1.0HTTP 1.0
Concepto de “tipo de medio” (MIME)Concepto de “tipo de medio” (MIME) Servidor puede responder con información sobre la Servidor puede responder con información sobre la
entidad (por ejemplo el tipo)entidad (por ejemplo el tipo) Versátil formato general de mensaje con una línea inicial
y un número variable de líneas con campos de encabezado que pueden ser usados para transferir información entre el cliente y el servidor
Aparece el método POST para enviar datos desde el Aparece el método POST para enviar datos desde el cliente al servidorcliente al servidor
HTTP 1.0HTTP 1.0
Se incorpora autenticación básicaSe incorpora autenticación básica Se mantiene principio de 1 pedido 1 respuesta Se mantiene principio de 1 pedido 1 respuesta
(servidor cierra la conexión después de (servidor cierra la conexión después de responder)responder)
HTTP 1.1HTTP 1.1
El protocolo anterior presentaba algunas El protocolo anterior presentaba algunas limitaciones importanteslimitaciones importantes Una transacción por conexión y lentitud en establecer Una transacción por conexión y lentitud en establecer
TCPTCP Modelo primitivo de cachéModelo primitivo de caché Mecanismo de autenticación débilMecanismo de autenticación débil No soportaba transferencia parcial de entidadesNo soportaba transferencia parcial de entidades
Versión 1.1 (1997) incorpora incorpora modelo Versión 1.1 (1997) incorpora incorpora modelo de conexión persistente.de conexión persistente.
HTTP 1.1HTTP 1.1
Soporte de header host para host virtualesSoporte de header host para host virtuales Nuevos métodos: DELETE, OPTIONS, PUT, TRACENuevos métodos: DELETE, OPTIONS, PUT, TRACE Transferencia parcial de entidadesTransferencia parcial de entidades Negociación de contenidosNegociación de contenidos Codificación en trozos (recursos que no se conoce su Codificación en trozos (recursos que no se conoce su
tamaño)tamaño) Sistema de caché mejoradoSistema de caché mejorado Esquema más seguro de autenticaciónEsquema más seguro de autenticación
Web cliente-servidorWeb cliente-servidor
Cliente pide información al Proxy
Servidor responde
Proxy pide información a Servidor
Proxy responde a Cliente
Proxy: Hace peticiones a nombre de los clientesGateway: Similar a proxy pero el cliente no sabe de su existenciaTunnel: Intermediario ciego entre el cliente y servidor
Estructura del mensajeEstructura del mensaje
Tanto el mensaje de pedido (request) como el de respuesta (response) comparten la misma estructura básica: Una línea de comienzo
# start-line # request-line # status-line
Un conjunto de encabezados (puede no haber ninguno) -> headers generales (tanto para pedido como respuesta) Ej: Date de la entidad Ej: Content-type de pedido Ej: Accept de respuesta Ej: Server
una línea en blanco (vacía) el cuerpo del mensaje (la entidad misma y es opcional) -> body
Solicitud (Request)Solicitud (Request)
La Solicitud (Request) comienza con línea de pedido que especifica el método request-line (method request-URI HTTP-version CRLF) headers crlf message-body
Ejemplos: GET /index.html HTTP/1.1 ... servidor devuelve la página index.html
GET /index.html HTTP/1.1 If-Modified-since: Wed, 25 Sep 1999 08:25:30 GMT ... servidor devuelve un status 304 (no se ha modificado) sin el recurso
RespuestaRespuesta
La respuesta comienza con una línea de statusLa respuesta comienza con una línea de status Status-line (Status-line (HTTP-version status-code reason-phrase CRLF)) HeadersHeaders CrlfCrlf Message-bodyMessage-body
EjemplosEjemplos Status 1xx - solicitud recibida y en proceso (código provisional) Status 2xx - exitoso Status 3xx - redirección (el cliente debe tomar alguna acción como enviar
solicitud a otro servidor) Status 4xx - error del cliente (sintáctico, solicitud sin autorización, URI
inexistente, etc) Status 5xx - error del servidor (solicitud OK pero el servidor no puede
completarla
Ejemplo de solicitud y respuestaEjemplo de solicitud y respuesta
SolicitudSolicitud
RespuestaRespuesta
GET /~ad/index.html HTTP/1.0User-Agent: Mozilla/2.01 (X11; I; IRIX 5.2 IP7)Accept: image/gif, image/x-bitmap, image/jpeg, */*/* a blank line */HTTP/1.0
200 Document followsMIME-Version: 1.0Server: CERN/3.0Date: Wednesday 10-Apr-96 03:59:47 GMTContent-type: text/htmlContent-length: 2168Last-Modified: Friday 06-Oct-95 07:16:52 GMT/* a blank line */<html><head>: /* HTML text of the Web page */:</html>
HTTPS: Conceptos básicosHTTPS: Conceptos básicos
Texto Cifrado mensaje encriptado (texto plano que ha sido modificado para
volverlo ilegible) Algoritmo Criptográfico
operación matemática usada para convertir texto plano en texto cifrado y vice-versa
Clave utilizada para encriptar o desencriptar los mensajes (sólo quienes
conocen la clave puede desencriptar el mensaje) La seguridad del sistema depende del secreto de la clave
(no es necesario mantener en secreto el algoritmo)
Como hackear mensajes cifrados
Criptoanálisis criptógrafos expertos analizan texto buscando patrones
para reconstruir el mensaje original. Un buen algoritmo no genera muchos patrones (resistentes al criptoanálisis)
Fuerza Bruta adivinar la clave probando todas las claves posibles
(usando computadores muy rápidos) Explotar los alrededores
robar archivos de claves, sobornar personas, reemplazar el software utilizado para encriptar, etc.
Criptografía simétricaCriptografía simétrica
Se usa la misma clave para encriptar y desencriptar remitente y destinatario deben estar de acuerdo en la clave de
antemano algoritmos mas usados :
DES - data encryption standard (clave de 56 bits) La encriptación de cada bloque depende del contenido del bloque previo
Triple-DES, DESX, GDES, RDES - variaciones del DES que permiten disminuir el riesgo a ataques de fuerza bruta
RC2, RC4, RC5 - largo de clave variable de hasta 2048 bits RC2 y RC4 de 40 bits son usados en browsers y servidores Web
IDEA - international data encryption algorithm (usado por PGP pretty good privacy)
Blowfish - disponible en muchos productos de encriptación comerciales y gratuitos (clave de largo variable sobre 448 bits)
Criptografía asimétrica o de llave Criptografía asimétrica o de llave públicapública
Problemas de Criptografía Simétrica En internet las partes necesitan comunicarse sin conocerse
previamente Se necesitan comunicaciones de múltiples vías (mucha gente se
comunica con un servidor) si entregamos la clave del servidor todos podrían conocerla
Una vez que se divulga la clave todos los mensajes que han sido encriptados con ella se tornan inseguros
Criptografía Asimétrica las claves vienen en pares (una para encriptar y otra para
desencriptar) todos poseen un único par de claves
clave pública está disponible para todo el mundo y es usada para encriptar cualquier mensaje que deba ser enviado a su dueño
clave privada sólo la conoce su dueño y es usada para desencriptar los mensajes encriptados con la clave pública
Algoritmos de clave públicaAlgoritmos de clave pública
RSA ampliamente implementado Largo de clave entre 512 y 1024 bits Base de software de e-mail y web seguros
ElGamal Poco difundido Largo de claves entre 512 y 1024
Mientras más larga la clave más tiempo toma desencriptar (fuerza bruta)
Principal limitación de criptografía de clave pública es la velocidad
Firma ElectrónicaFirma Electrónica
Criptografía asimétrica es más lenta pero más conveniente Implementación más rápida de RSA es 1000 veces más lenta que un
algoritmo simétrico típico Poco práctico para mensajes grandes
En la práctica se combinan ambos esquemas en el concepto conocido como sobre digital (más adelante …)
Criptografía asimétrica resulta muy útil para crear firmas digitales infalsificables
Cómo funciona la firma digital Se crea una declaración de identidad corta Se codifica con la clave privada creando una firma encriptada Agregar la firma encriptada al mensaje y encriptar todo con la clave
pública del receptor Enviar el mensaje
DHCP (Dynamic Host Configuration DHCP (Dynamic Host Configuration Protocol) Protocol)
Lista de opciones configurables:Lista de opciones configurables: Dirección del servidor Dirección del servidor DNSDNS Nombre DNS Nombre DNS Puerta de enlacePuerta de enlace de la dirección IP de la dirección IP Máscara de subredMáscara de subred MTUMTU ( (Unidad de Transferencia MáximaUnidad de Transferencia Máxima según siglas en según siglas en
inglés) para la interfaz inglés) para la interfaz Servidores Servidores NTPNTP ( (Protocolo de Tiempo de RedProtocolo de Tiempo de Red según siglas en según siglas en
inglés) inglés) Servidor Servidor TFTPTFTP trafico trafico UDPUDP (puerto 69) (puerto 69) Nombre del servidor Nombre del servidor WINSWINS