elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Comunicaciones
| |-+  Redes
| | |-+  Teoría Servicio HTTP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Teoría Servicio HTTP  (Leído 5,255 veces)
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Teoría Servicio HTTP
« en: 23 Enero 2011, 18:35 pm »

Este articulo forma parte del [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro.


SERVICIO HTTP


HTTP = es un protocolo de transferencia de Hipertexto usado en Internet para transferir datos entre un navegador y un servidor web.

Hay 2 versiones estandarizadas:
_ Versión 1.0
_ Versión 1.1

* Ha sido propuesta la versión 1.2 y se esta la estandarización.

HTTPS = es una versión segura de HTTP, es el resultado de aplicar SSL(Secure Socket Layer) o TLS a HTTP.

Actualmente HTTP permite enviar mensajes con encabezados que describen el contenido del propio mensaje mediante codificación MIME o IMT.
Los tipos MIME son unas especificaciones usadas para dar formato a mensajes no ASCII.
IANA es el organismo internacional que define los tipos MIME.

<text/html> <text/css> <video/mpeg>

Las situaciones en las cuales se usan los tipos MIME son las siguientes:
  • Para informar al navegador del tipo de datos que esta recibiendo del servidor. Se define usando: <content-type> dependiendo de si el navegador puede interpretarlo puede visualizar el documento (si se trata de <text/html>), llamar a una aplicación externa (<application/pdf> o preguntar al usuario que hacer (<image/x-fwf>).
  • Para permitir negociar el contenido: allow: application/zip
  • Para encapsular uno o mas objetos dentro del cuerpo del mensajes por medio de los MIME multipart (<multipart/formdata>, para enviar los datos de un formulario)

En Linux podemos hacer un cat/more al archivo /etc/mimes.types para ver algunos de los tipos MIME que existen.

Los URL (Localizadores Uniformes de Recursos)son secuencias de caracteres (ASCII) que se utilizan para localizar recursos en Internet (paginas web, sonidos, vídeos, imágenes, etc).

Los URN (Nombres Uniformes de Recursos) identifican a un recurso en Internet, pues no los localizan.

Los URI (Identificadores Uniformes de Recursos) identifican inequívocamente a un recurso.

En el esquema de abajo podéis ver una apreciación de estos últimos 3 conceptos.

Esquema://userinfo@dominio:Puerto/camino?Query#Fragmento
|_________________________________||_____________||__________|
                  URN                                       URL                  URI


Esquema = es el protocolo empleado para la comunicación: http, https, ftp.
UserInfo = son los datos para autentificacion del usuario: usuario@
Dominio = es el FQDN o la dirección IP donde se encuentra el recurso en Internet.
Puerto = es el protocolo de comunicacion que empleara el protocolo.
Camino = es la ruta donde se aloja el recurso dentro del servidor.
Query = son datos que se envían al servidor en modo consulta.
Fragmento = especifica una parte/posición dentro del recurso.


Servidor Web

- Http sigue el modelo cliente-servidor.
- Utiliza el puerto 80 o bien 443 si se trata de Https.
- Los servidores Web deben tener IP fija.

Los servidores suministran 2 tipos de paginas web HTML:
 1. Estática - el navegador interpreta los códigos Html y muestra imágenes, fuentes, formatos, etc.
 2. Dinámicas - permiten crear aplicaciones dentro de la misma pagina web permitiendo interactuar con el usuario y la pagina web se crea según las peticiones de ese usuario.


En ocasiones el lenguaje usado para crear la pagina web es interpretado por el navegador que visualiza la pagina (javascript o VisualBasic Script).
En otras ocasiones el servidor web es quien interpreta, genera y envía la pagina web generada al cliente web que la visualiza (PHP, ASP, JSP, Perl, Python, manejadores de bases de datos como MySQL, Oracle, SQL Server).

En este segundo caso se consiguen dos objetivos:
 1. Que no haga errores de interpretación de código.
 2. Que el usuario final no tenga acceso al código original de la pagina web y pueda plagiarla.

Una aplicación web dinámica se compone de 3 elementos:

------------------ -------------------
| Cliente | | Servidor |
------------------ -------------------
| Applets | | Aplicaciones |
| javascript | <--------> | CGI |
| vbscript | | Servidor Web |
| Html/Xml | | PHP, ASP |
----------------- -------------------

Vocabulario


- Applets = componentes de una aplicación que se ejecuta en el contexto de otro programa.
- CGI = estándar que permite la conexión de cualquier aplicación hecha en cualquier lenguaje para que pueda interactuar con el servidor web.
- Servlets = componentes que se ejecutan en los servidores web para generar contenidos dinámicos.
- JavaBeans = componente de software, utilizable para Java.

El protocolo HTTP no tiene histórico de sucesos de las conexiones, tras enviar la pagina solicitada libera la conexión.
Los históricos se gestionan por medio de cookies (son archivos de texto que el navegador almacena en el disco local a petición del servidor). Fueron propuestas por Netscape.

El Servidor envía: set-cookie:name = value
El Cliente enviara en las peticiones: Cookie:name = value


Hay varios software para servidores web:
NCSA: Httpd. En desuso desde 1998.
Apache: Es el lider en Internet. Facil de configurar y por sus prestaciones. Es antiguo y asociado a entornos Unix/Linux.
IIS: Desarrollado por Microsoft.
Cheeroke: Creado por Alvaro Lopez y mantenido por una comunidad de desarrolladores.
IPlanet Web Server: Creado por Sun Microsystems y Netscape, es de pago.

Cliente Web = es el navegador Web que permite visualizar paginas web interpretando código HTML e interactuar con la pagina web (Firefox, Internet Explorer, Chrome, etc).


Funcionamiento

 1. El usuario teclea en el cliente web la url de la pagina a consultar.
 2. El cliente http decodifica la información obteniendo el protocolo, la IP o el nombre del servidor web, puerto, etc.
 3. El cliente (navegador) conecta con el servidor web y le solicita la pagina web.
 4. El servidor envía la pagina web o devuelve el código de error correspondiente.
 5. Cliente interpreta los códigos html recibidos.
 6. La conexión se cierra.

Si el navegador solicita una pagina web con 2 imágenes, van a existir 3 conexiones:
 - La primera para el documento HTML.
 - La segunda para el envío de los archivos.


En la comunicación HTTP existen 2 tipos de mensajes:
 A) Petición o Solicitud (Request)
El formato es el siguiente: <método> <URI> <versión>
  • El método indica al servidor que hacer con el URI, pueden ser:
- HTTP 1.0:
 - GET = Obtiene información del servidor.
 - HEAD = Obtiene la cabecera de la pagina.
 - POST = Empleado para enviar información al servidor.
 - HTTP 1.1:
 - Los métodos del HTTP 1.0.
 - PUT = Envía un objeto al servidor.
 - DELETE = Solicita al servidor que borre el recurso indicado en el mensaje.
 - OPTIONS = Para negociar parámetros de la comunicación entre cliente y servidor.

  • URI - Indica al recurso de forma exacta en el servidor.
  • Version - Versión del protocolo HTTP.
B) Respuesta (Response)
Tiene el siguiente formato: <version> <codigo de estado> <texto explicativo>
Puede devolver:
 - Respuesta Positiva => HTTP 1.1 200 OK
 - Respuesta Negativa => HTTP 1.1 405 Method Not Allowed

Métodos de Estado:
 - 1xx -> Informativos.
 - 2xx -> Éxito.
 - 3xx -> Redireccion de la solicitud.
 - 4xx -> Errores debidos al cliente.
 - 5xx -> Errores debidos al servidor.


Servidor Web Seguro

SSL -> HTTPS

SSL: trabaja con dos tipos de criptografía:
 - Simétrica: durante la transmisión de datos.
 - Asimétrica: en la fase de autentificacion.

SSL proporciona:
 - Confidencialidad.
 - Integridad del Mensaje.
 - Autentificacion del Servidor.
 - Autentificacion del Cliente.


Proceso de Negociación
 1. El cliente se conecta al servidor.
 2. Se inicia la fase de saludo HandShake, en la que el cliente envía un mensaje llamado "Client Hello".
 3. El servidor responde con un mensaje "Server Hello".
 4. Servidor envía un mensaje "Certificate" en el cual envía un certificado X509 que contiene la clave publica del servidor.
 5. Opcionalmente el servidor puede requerir la autentificacion al cliente en un mensaje llamado "Certificate Request".
 6. Cliente autentica al servidor un envía un mensaje "Certificate Verify".
 7. El cliente genera la clave de sesión y la envía codificada con la clave publica del servidor en un mensaje "Key Exchange".
 8. Opcionalmente, el cliente envía su certificado en un mensaje "Certificate".
 9. Cliente y Servidor determinan una clave de sesión.
 10. El cliente y el servidor intercambian mensajes "Change Cipher Spec" para indicar al otro que desde ese momento se emplea la clave acordada.
 11. Termina la fase del saludo y el servidor envía el mensaje "Finished".
 12. Comienza la fase de Comunicación.

Últimamente se esta implementando un nuevo protocolo de seguridad, llamado TLS que esta sustituyendo al SSL (versión 3).


« Última modificación: 23 Enero 2011, 18:42 pm por madpitbull_99 » En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Taller]Instalación/Configuración y Teoría de Servicios en Red
Redes
madpitbull_99 4 40,370 Último mensaje 6 Mayo 2016, 05:34 am
por Janc91
Teoría FTP
Redes
madpitbull_99 1 4,942 Último mensaje 17 Abril 2011, 20:33 pm
por fuenteRea
Teoría Servicio de Correo Electrónico
Redes
madpitbull_99 1 5,536 Último mensaje 25 Junio 2011, 04:55 am
por d3xf4ult
Nuevo servicio de Firefox en ES --DNS crypted en HTTP-- « 1 2 »
Dudas Generales
TickTack 14 9,182 Último mensaje 23 Julio 2021, 02:06 am
por TickTack
Explotar servicio http en WS2012
Hacking
menkar 0 4,282 Último mensaje 28 Septiembre 2023, 14:18 pm
por menkar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines