B4-T8_HTTP-SSL/TLS Flashcards
¿Cómo se denominan dentro de internet a las grandes redes con cobertura internacional?
tier-1
¿Qué identificación tiene que tener toda RED de un ISP, sea del nivel que sea, dentro de internet?
Un numero de sistema autónomo (AS).
Los asigna la IANA/RIR.
¿Cuáles son los 2 organismos reguladores principales de internet?
*IANA/ICANN => RIR (RIPE: EUROPA)
*IETF => RFC
¿Qué es una Red de Distribución de Contenido (CDN)?
Cuando una empresa tiene saturados sus servidores y necesita mayor ancho de banda, contrata una CDN.
Que es una red paralela o superpuesta a la de la empresa de servidores donde se copian los datos de los servidores de la empresa maximizando el ancho de banda.
AKAMAI y CLOUDFARE son las más conocidas.
¿Cuál es la diferencia entre HTTP 1.1 y HTTP 2?
Que HTTP/2 ya no es modo CARÁCTER, sino BINARIO, por lo cual, es + optimizado.
NOTA: al ser binario, tiene una trama (frame).
¿Cómo se suele denominar al tráfico (con coste) entre una red de tier-2 y una de tier-1?
Tránsito o acuerdos de tránsito (tráfico vertical, hacia arriba)
Para que los ISP usen lo menos posible el tráfico de tránsito (coste) hacia redes de niveles superiores en internet, ¿qué solución se ha diseñado?
Se les denomina acuerdos de peering. Pueden ser:
* privados (entre iguales => free)
* públicos (se realiza a través de un IXP o punto de acceso neutro => gastos comunes de mantenimiento)
¿Qué es un nodo IXP?
Es una estructura física (mini CPD) a través de la cual los proveedores de internet (ISP) intercambian el tráfico de internet entre sus redes, para evitar acuerdos de TRÁNSITO (cuestan dinero)=> reduce la porción de tráfico de un ISP que debe ser entregado hacia su proveedor -> lo que reduce el coste promedio por bit de entrega de su servicio.
*VENTAJA: reduce coste (sólo mantenimiento), latencia y ancho de banda => aumentando la velocidad.
Ej: es donde se conectan las plataformas tipo NETFLIX.
NOTA: IXP, tiene mucha tecnológica de fibra a nivel de “switching” (capa 2: ENLACE).
¿En qué se diferencian un CPD de un IXP?
El CPD (Centro de Proceso de Datos) es un edificio o sala de gran tamaño usada para mantener en él una gran cantidad de equipamiento informático y servidores. Y, puede alojar algún IXP que no vaya independiente.
En cambio, el IXP (punto de intercambio de Internet) es una infraestructura física a través de la cual diferentes ISP conectan sus redes por medio de SWITCH (Nivel 2: enlace).
Nombre 3 organizaciones españoles que gestionen IXP:
*CATNIX
*DE-CIX
*ESPANIX (sin animo de lucro): es el + importante de España y el 2º de Europa.
¿Qué relación hay entre una URL y una URI?
Que la URL es un tipo de URI en la que la primera parte (esquema) puede ser:
* http / https
* file
* mailto
* ftp
* news
* etc.
¿Cómo se clasifican los protocolos de enrutamiento en internet?
*Interiores => IGP: protocolos usados DENTRO de un AS: RIP, OSPF y EIGRP.
*Exteriores => EGP: protocolos usados ENTRE sistemas autónomos (AS): BGP es el + conocido.
¿En qué 3 grandes redes se divide la arquitectura de internet?
*TIER-1: BlackBone (columna vertebral) o CARRIER (transportadora de internet)=> para intercambio de tráfico masivo de ámbito MUNDIAL: para formar parte de las T-1 existen varios requisitos, como x ejemplo el alcance mundial.
*TIER-2: paises o ciertas zonas geográficas.
*TIER-3: ISP => proveen internet al usuario final.
¿Qué tipos de acuerdos existen para el tráfico de internet?
1.CON COSTE: acuerdos de TRÁNSITO, se dan a nivel vertical.
2.SIN COSTE:
2.1.Peering PRIVADOS: entre iguales => redes T-1 entre sí, no lleva cargo económico porque no tienen que acceder a una red superior que los una.
2.2.Peering PÚBLICOS: IXP => evitan tráfico de Tránsito y comunican cualquier TIER. Su único coste es de mantenimiento en función del ancho de banda del enlace que adquieran (es donde se enganchan los CDN)
¿Qué verbos HTTP son SEGUROS e INDEMPOTENTES?
*GET: es para CONSULTA=> es decir, si hago un “get” de una imagen me devuelve la imagen (recurso) sin modificación.
*HEAD: no obtiene el recurso, sino las CABECERAS de ese recurso pesado.
*OPTION: para preguntar que métodos SOPORTA la URL antes de ejecutar dichos métodos. Ej: saber si se le puede hacer un GET o un POST antes de hacerlo.
*TRACE (=rastro): te devuelve el MISMO valor mandado con “Trace”.
MNEMOTECNIA: GHOT
¿El protocolo HTTP mantiene estado entre peticiones?
No, es STATLESS, es decir no tiene memoria para las distintas peticiones => cada petición es el estado incial, NO hay una que se distinga de la anterior (las cookies de sesión son un invento para paliar este hecho)
¿Qué verbos de HTTP no son idempotentes?
*POST: envía datos a una URL y lo que haga con dichos datos no lo sabemos => no podemos inferir en el comportamiento de una URL que invoque POST.
*PATCH: modificaciones “parciales” de un recurso (Ej: dar de alta la factura nº 1) si no existe la creará y si existe la actualiza.
*CONNECT: Para establecer un túnel a través de un proxy.
¿Qué tipos de verbos se utilizan en HTTP?
*SEGUROS: son READ-ONLY = no modifican el recurso: GET, HEAD, OPTION y TRACE => los verbos o métodos SEGUROS también son INDEMPOTENTES.
*INDEMPOTENTES: cuando ejecutas el verbo el efecto siempre es el mismo: son los verbos SEGUROS, más DELETE (borrar recurso) y PUT (poner recurso en una URL: crea o reemplaza).
*NO IDEMPOTENTES: NO repiten resultados: POST, PATH y CONNECT.
¿Qué es una URI (Identificador de Recurso Uniforme)?
Es un esquema o formato de cadena formado por un esquema URL (HTTP/HTTPS, File, Mailto, …) y el otro trozo de la cadena URN.
1.La URL (Localizador de Recurso Uniforme): son para LOCALIZAR, tipo FS (empiezan por http://, https://, mailto,..)
- La URN (Nombre Uniforme de Recurso) para IDENTIFICAR los recursos (empieza por “urn”).
Ej: urn: isbn:44-abc-126: identifica a un libro por su ISBN (identificador de titulo)
¿Cuál es el funcionamiento básico de HTTP?
Cuando hacemos una petición HTTP, nuestro navegador manda al servidor web (que es la entidad que va a responder a nuestra petición) unas cabeceras con el formato: un verbo + /url + versión del protocolo que estemos usando (HTTP 1.1) y una linea en blanco (donde iría el cuerpo si lo hubiera).
FORMATO de las CABECERAS HTTP: User Agent »_space;—–ENVÍA—–> HTTP Server (Verbo+URL+versión HTTP+linea en blanco o cuerpo).
NOTA: en estas cabeceras se indica el destino, lenguaje que se acepta, codificación que se acepta, formato de imágenes que se acepta, body, …
EJEMPLOS:
Host:www.Madrid.es
Accept: image/gif
Accpet: Enconding: gzip
[linea en blanco para body]
NOTA2: el servidor responde con otra cabecera con sus requisitos e intentan llegar a un acuerdo.
*Cabecera REQUEST (petición) y cabecera RESPONSE (respuesta).
¿Qué son las extensiones de WebDAV?
Un conjunto de verbos HTTP nuevos para “tratar” el espacio de url’s como si fuera un sistema ficheros (algo así como un FTP).
*MKCOL: crear directorios.
*MOVE: mover un recurso de una URI a otra.
*COPY
*SEARCH
*UNLOCK
¿Qué quiere decir que el protocolo HTTP 1.1 sea orientado a carácter?
Que lo que transmite son mensajes de caracteres o texto que viajan por internet, es decir NO hay PDU ni trama alguna.
NOTA: mismo funcionamiento que POP, FTP y SMTP.
¿En qué se diferencian FTP y SMTP?
Con FTP el usuario puede enviar y recibir archivos desde y hacia el ordenador, mientras que SMTP se utiliza para entregar el correo al buzón de correo del usuario configurado en el servidor de correo electrónico.
¿Qué significa en una petición HTTP la cabecera Connection: keep-alive?
No queremos que se cierre la conexión TCP subyacente (optimización)
¿Para qué sirve la cabecera Accept-Encoding en una petición HTTP?
Para decirle al servidor que aceptamos que nos envíe la información comprimida con gzip por ej.
¿Para qué sirve la cabecera LOCATION en una respuesta (RESPONSE) HTTP?
Para informarle al navegador que haga una redirección a una nueva URL.
EJEMPLO1:
Si pedimos un recurso que estuviera en otra URl.
EJEMPLO2:
cuando una página nos pide una calve, nos redirecciona a la página para introducir la clave y luego vuelve a la original.
SINTAXIS DE ESTA CABECERA QUE NOS ENVÍA EL SERVIDOR:
Location: url
¿Para qué sirve la cabecera WWW-Authenticate: Basic en una respuesta HTTP?
Para decirle al navegador que para acceder a ese recurso necesita credenciales.
Este mostrará una ventana automáticamente al usuario para que introduzca el usuario y la contraseña.
¿Con que cabecera el servidor le envía una cookie al navegador para que la registre?
Set-Cookie
¿Cuál es la cabecera que el servidor envía al navegador indicándole desde que dominios permite peticiones cruzadas (política CORS)?
Access-Control-Allow-Origin: * (todos los dominios)
NOTA: al permitir las peticiones desde cualquier servidor se eliminaría la política CORS => ya que esta POLÍTICA DE SEGURIDAD sirve para controlar que cuando descarguemos un determinado código JS no se pueda conectar con otro servidor, por medio de estas cabeceras que sirven para preguntar si podemos o no hacer peticiones CRUZADAS.
Explica el funcionamiento de la POLÍTICA de SEGURIDAD “CORS”?
El recurso que no es ORIGEN pregunta a este con el método OPTION si puedo o no hacer ciertas cosas sobre él (si se puede hacer GET, DELETE, POST, …). Si el Origen responde con un “*” permitiría TODO tipo de peticiones cruzadas.
EJEMPLO CON MÉTODO “GET”:
1º PETICIÓN => Acces - Control - Request-Method: GET
2º RESPONSE => Acces-Control_Allow-Origin: *
->quiere decir que cualquiera puede usar el método GET. Es decir, con el “*” (donde deberían de ir los servidores aceptados) no se filtra NADA con CORS.
¿Cuáles son las 4 cabeceras que componen las políticas de seguridad de HTTP?
1ª AUTORIZATION: con la palabra reservada BASIC o JWT.
2ª CORS: nos protege de otros dominios (páginas) de el que le estamos haciendo la petición => el navegador cortaría las petición NO aceptadas.
a) ACCES-CONTROL-REQUEST-METHOD: ???
b) ACCES-CONTRO-ALLOW-ORIGIN: ???
3ª Técnica HSTS (HTTP Strict Transport Security): (forzar canal HTTPS) permite a un sitio web indicar a los navegadores que sólo se debe comunicar con HTTPS.
4ª Técnica CSP (Content Security Policy = política de seguridad del contenido): RESTRINGIR desde que FUENTE (“self” = uno mismo, se refiere al propio sevidor) se pueden descargar ciertos recursos: imágenes, script, csds, ….
*CSP ES LA TÉCNICA QUE + PROTEGE ANTE ATAQUES DE TERCEROS.
¿Pará que sirve la herramienta JWT (JSON Web Token)?
Basada en JSON para crear un token que sirva para enviar datos entre aplicaciones y garantizar que sean válidos y seguros.
¿Cuál es la técnica o política de seguridad HTTP que + protege ante ataques de terceros?
CSP: La cabecera se llama:
“Content-Security-Policy”: script-src; style-src; image-src
El servidor te indica de que FUENTES debes descargar esas directivas-src indicadas en la cabecera separadas por “;” al navegador.
DIRECTIVE EXAMPLE
script-src script-src’self’ js.example.com;
style-src style-src’self’ css.example.com;
image-src image-src’self’ img.example.com;
=> NO dejar entrar ningún recurso que NO venga de esas FUENTES DE CONFIANZA.
*Con ‘self’ nos referimos al servidor.
¿Con que cabecera de respuesta provocamos que el navegador nos de la opción de guardar un determinado recurso como adjunto?
Content-Disposition: attachment; filename=informe.pdf
*Con esta cabecera (RESPONSE) el servidor nos informa de que nos envía un adjunto.
¿Con que cabecera de petición (REQUEST) le decimos al servidor que solo queremos que nos devuelva unos determinados bytes del recurso solicitado?
Range: bytes=500-720
EJEMPLO: cuando solicitemos un video pesado, podemos pedir al servidor que nos envíe en ciertas partes y no tener que descargarlo todo de una vez.
Si un mismo servidor web (ej. Apache) está sirviendo páginas de 4 dominios distintos, ¿cuándo le hacen una petición HTTP como sabe de qué dominio se trata?
Cabecera => Host: www.?????.es
Si al hacer una petición a un recurso nos devuelven un código 301, ¿qué quiere decir?
Que el recurso se ha movido de localización (de forma permanente)
¿Qué indicamos con las cabeceras “contents” de la petición (REQUEST)?
Se refieren al body:
*Content-Type: texto plano, JSON, …=> informa del tipo de contenido del body que le enviamos.
*Content-Lenght: tamaño del body
Enumera algunas de las cabeceras que envía nuestro navegador (REQUEST/petición) cuando entramos en una página web:
*Cache-Control: no-cache => controla lo que es o no cacheable (que se almacena en cache para recuperarlo mas tarde)
*Accept: text/html => le decimos al servidor que tipos MIME aceptamos.
*Accept-Charset: utf-8 => le decimos el conjunto de caracteres que soporta nuestro navegador.
¿En qué 5 grupos están organizadas las RESPUESTAS del protocolo HTTP?
*Informativos: son los códigos “100” => NO SE USAN.
*Éxito: los “200” indican que la petición ha ido bien.
*Redirecciones: los “300”
*Problemas con la solicitud (mal realizada): son los “400”.
*Error: los 500 indican error o problema al procesar la solicitud en el servidor => dada una petición del cliente buena se produce algún fallo en el servidor, es decir, es un ERROR DE SERVIDOR.
NMEMOTECNIA: I-E-R-P-E
Expón algunos de los códigos “200” de respuesta HTTP:
*Éxito: los “200” indican que la petición ha ido bien.
200: OK típico 201: CREATED => se ha creado un nuevo recurso 202: ACCEPTED => para peticiones ASÍNCRONAS, pues indica que ha recibido tú petición. pero NO la tiene procesada.
Expón algunos de los códigos “300” de respuesta HTTP:
*Redirecciones:
301: se ha movido de forma permanente.
302: se ha movido de forma temporal.
304: indica que no se ha modificado desde la última petición (request) => así sabríamos que si no se ha modificado tendríamos la última versión disponible en la cache almacenada.
Expón algunos de los códigos “400” de respuesta HTTP:
*Problemas con la solicitud (mal realizada): son los “400”.
400: BAD REQUEST (petición mal construida a nivel HTTP)
401: NO AUTORIZADO / REQUIRE ATORIZ. DEL CLIENTE: no estas autorizado, pero te pide autorización sacando la ventana para ello => pero si introduces “usuario” y “contraseña” que no tengan acceso TE DARÁ EL ERROR 403.
403: PROHIBIDO => no tienes permiso o no te conoce.
404: NOT FOUND => cuando pides un recurso “url” que NO EXISTE.
405: MÉTODO NO PERMITIDO => es dcir, has hecho un GET sobre un recurso que no se podía.
413: REQUEST MUY GRANDE => es decir, enviamos demasiada información, por ejemplo al adjuntar un fichero, y sobrepasamos el límite estipulado en el servidor web.