B4-T8: PROTOCOLOS WEB, SSL/TLS Y CRIPTOGRAFÍA APLICADA

Los códigos HTTP y los verbos REST son preguntas de 1 punto casi garantizadas. La trampa clásica es 401 (Unauthorized = no autenticado) vs 403 (Forbidden = autenticado pero sin permisos). TLS 1.3 ha simplificado el handshake y eliminado algoritmos inseguros — preguntan qué se eliminó. Los formatos de firma electrónica de las AAPP (XAdES, CAdES, PAdES) son específicos del temario TAI.

1. HTTP — MÉTODOS/VERBOS

MétodoDescripciónIdempotenteBody
GETObtener un recurso. No debe modificar estado en el servidorNo
POSTCrear un nuevo recurso o enviar datos al servidorNo
PUTReemplazar completamente un recurso existente (o crearlo si no existe)
PATCHModificar parcialmente un recurso existenteNo*
DELETEEliminar un recursoOpcional
HEADComo GET pero solo devuelve cabeceras (sin body). Para verificar si recurso existeNo
OPTIONSDevuelve los métodos HTTP permitidos para un recurso (usado en CORS preflight)No
TRACEEcho de la petición recibida (diagnóstico). Deshabilitado por seguridad normalmenteNo
CONNECTEstablece un túnel TCP (usado por proxies para HTTPS)NoNo
Idempotente: ejecutar la misma petición N veces produce el mismo resultado que ejecutarla 1 vez. PUT es idempotente (siempre deja el recurso en el mismo estado). POST no (cada llamada puede crear un nuevo recurso).

2. HTTP — CÓDIGOS DE RESPUESTA

CLAVE EXAMEN: Los códigos HTTP aparecen en TODOS los exámenes. La pregunta trampa clásica: 401 = no autenticado (falta login). 403 = autenticado pero sin permisos (acceso denegado).

2.1 Rangos

RangoCategoríaSignificado
1xxInformationalPetición recibida, procesando
2xxSuccessPetición procesada correctamente
3xxRedirectionSe necesita acción adicional (redirección)
4xxClient ErrorError del cliente (petición incorrecta)
5xxServer ErrorError del servidor

2.2 Códigos que caen en examen

CódigoNombreSignificado
100ContinueEl servidor acepta la petición preliminar, el cliente puede enviar el body
101Switching ProtocolsEl servidor acepta cambiar de protocolo (ej. upgrade a WebSocket)
200OKPetición exitosa
201CreatedRecurso creado exitosamente (respuesta a POST)
204No ContentÉxito pero sin body en la respuesta (ej. DELETE exitoso)
301Moved PermanentlyRedirección permanente. Los buscadores actualizan la URL. El método puede cambiar a GET
302FoundRedirección temporal. Los buscadores NO actualizan. El método puede cambiar a GET
304Not ModifiedEl recurso no ha cambiado desde la última petición (usar caché local)
307Temporary RedirectComo 302 pero garantiza mantener el método HTTP original
308Permanent RedirectComo 301 pero garantiza mantener el método HTTP original
400Bad RequestPetición mal formada (sintaxis incorrecta, parámetros inválidos)
401UnauthorizedNo autenticado — falta o es inválida la credencial de acceso
403ForbiddenAutenticado pero sin permisos — el servidor entiende la petición pero la rechaza
404Not FoundRecurso no encontrado en la URL solicitada
405Method Not AllowedEl método HTTP no está permitido para ese recurso (ej. DELETE en recurso de solo lectura)
408Request TimeoutEl servidor cerró la conexión porque el cliente tardó demasiado
409ConflictConflicto con el estado actual del recurso (ej. edición concurrente)
413Payload Too LargeEl body de la petición excede el límite del servidor
415Unsupported Media TypeEl Content-Type enviado no es soportado
429Too Many RequestsRate limiting — demasiadas peticiones en poco tiempo
500Internal Server ErrorError genérico del servidor (excepción no controlada)
502Bad GatewayEl servidor proxy/gateway recibió una respuesta inválida del upstream
503Service UnavailableServidor temporalmente no disponible (mantenimiento, sobrecarga)
504Gateway TimeoutEl proxy/gateway no recibió respuesta a tiempo del upstream

3. HEADERS HTTP IMPORTANTES

HeaderTipoFunción
Content-TypeEntidadTipo MIME del body (application/json, text/html, multipart/form-data)
AuthorizationRequestCredenciales de autenticación (Bearer token, Basic base64)
Cache-ControlGeneralDirectivas de caché: no-cache, no-store, max-age=3600, public, private
ETagResponseIdentificador de versión del recurso. El cliente envía If-None-Match para validar caché
Set-Cookie / CookieResponse / RequestGestión de sesiones. Atributos: HttpOnly (no accesible por JS), Secure (solo HTTPS), SameSite
Access-Control-Allow-OriginResponse (CORS)Indica qué orígenes pueden acceder al recurso (* o dominio específico)
X-Frame-OptionsResponse (seguridad)Previene clickjacking: DENY, SAMEORIGIN
Content-Security-PolicyResponse (seguridad)Define fuentes permitidas de scripts, estilos, imágenes. Previene XSS
Strict-Transport-SecurityResponse (HSTS)Fuerza HTTPS. max-age=31536000; includeSubDomains
X-Content-Type-OptionsResponse (seguridad)nosniff — evita que el navegador interprete el contenido como un tipo diferente al declarado

4. VERSIONES DE HTTP

VersiónTransporteCaracterísticas principales
HTTP/1.0TCPUna conexión por petición. Sin keep-alive por defecto
HTTP/1.1TCPKeep-alive por defecto, pipelining (en la práctica poco usado), chunked transfer encoding, Host header obligatorio
HTTP/2TCP (con TLS en la práctica)Multiplexación (múltiples peticiones simultáneas en una conexión), compresión de cabeceras (HPACK), server push, binario (no texto). RFC 7540
HTTP/3QUIC (UDP)Elimina head-of-line blocking de TCP. Handshake 0-RTT. Migración de conexión. Compresión QPACK. RFC 9114
Head-of-line blocking: En HTTP/2 sobre TCP, si se pierde un paquete, todos los streams se bloquean. HTTP/3 con QUIC lo resuelve porque cada stream es independiente a nivel de transporte.

5. ARQUITECTURA DE INTERNET

5.1 DNS (Domain Name System)

ConceptoDescripción
Puerto53/UDP (consultas normales) y 53/TCP (transferencias de zona, respuestas >512 bytes)
FunciónTraduce nombres de dominio (www.ejemplo.es) a direcciones IP
JerarquíaRoot (.) → TLD (.es, .com, .org) → Dominio (ejemplo.es) → Subdominio (www.ejemplo.es)
Root servers13 direcciones anycast (A-M root servers) gestionados por ICANN y otros
Resolución recursivaEl resolver del ISP consulta root → TLD → servidor autoritativo hasta obtener la IP
Caché DNSLos registros se cachean según su TTL (Time To Live) para reducir consultas

5.2 Registros DNS principales

RegistroFunciónEjemplo
ANombre → IPv4ejemplo.es → 93.184.216.34
AAAANombre → IPv6ejemplo.es → 2001:db8::1
CNAMEAlias → otro nombrewww.ejemplo.es → ejemplo.es
MXServidor de correo del dominio (con prioridad)ejemplo.es → mail.ejemplo.es (pri 10)
NSServidor DNS autoritativo del dominioejemplo.es → ns1.ejemplo.es
SOAStart of Authority. Información administrativa de la zona (serial, refresh, retry, expire)Primer registro de cada zona
TXTTexto libre. Usado para SPF, DKIM, DMARC, verificación de dominio"v=spf1 include:_spf.google.com ~all"
PTRIP → nombre (DNS inverso)34.216.184.93 → ejemplo.es
SRVServicio + puerto + host. Localización de servicios_sip._tcp.ejemplo.es → sip.ejemplo.es:5060
CAACertificate Authority Authorization. Indica qué CAs pueden emitir certificados para el dominio0 issue "letsencrypt.org"

5.3 DNSSEC

DNSSEC (DNS Security Extensions) añade firmas digitales a las respuestas DNS para garantizar su autenticidad e integridad (evitar DNS spoofing/poisoning). NO cifra las consultas (para eso: DoH/DoT).

Registro DNSSECFunción
RRSIGFirma digital de un conjunto de registros
DNSKEYClave pública usada para verificar las firmas RRSIG
DSDelegation Signer: hash de la clave del hijo, almacenada en la zona padre (cadena de confianza)
NSEC/NSEC3Prueba autenticada de inexistencia de un registro

5.4 DNS privado: DoH y DoT

ProtocoloPuertoDescripción
DoT (DNS over TLS)853/TCPCifra las consultas DNS con TLS. Puerto dedicado, fácil de filtrar
DoH (DNS over HTTPS)443/TCPConsultas DNS dentro de HTTPS. Difícil de distinguir del tráfico web normal

6. SSL/TLS

6.1 Versiones

VersiónAñoEstado
SSL 2.01995Inseguro — prohibido
SSL 3.01996Inseguro — prohibido (POODLE)
TLS 1.01999Deprecado (RFC 8996)
TLS 1.12006Deprecado (RFC 8996)
TLS 1.22008Aceptable — configurar solo cipher suites seguras
TLS 1.32018Recomendado — RFC 8446. Más rápido y seguro

6.2 TLS 1.2 vs TLS 1.3

AspectoTLS 1.2TLS 1.3
Handshake2-RTT (2 ida y vuelta)1-RTT (1 ida y vuelta). 0-RTT en reconexiones
Intercambio de clavesRSA, DHE, ECDHE (configurable)Solo ECDHE o DHE (RSA estático eliminado)
Cifrado simétricoAES-CBC, AES-GCM, RC4, 3DESSolo AEAD: AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305
Forward secrecySolo con DHE/ECDHE (configurable)Siempre (obligatorio)
Algoritmos eliminados en 1.3RSA key exchange, RC4, 3DES, SHA-1, MD5, CBC mode, compresión
Cifrado del handshakeSolo tras finalizarCifrado desde el mensaje ServerHello
CLAVE EXAMEN: La gran mejora de TLS 1.3: handshake de 1-RTT (más rápido), perfect forward secrecy obligatorio (solo ephemeral DH/ECDHE), eliminación de algoritmos inseguros (RSA key exchange, RC4, 3DES, SHA-1, CBC).

6.3 Handshake TLS 1.3 simplificado

PasoMensajeDescripción
1ClientHelloCliente envía: versiones TLS soportadas, cipher suites, clave pública ECDHE (key_share)
2ServerHelloServidor responde: cipher suite elegida, su clave pública ECDHE. A partir de aquí todo va cifrado
3Encrypted Extensions + Certificate + CertificateVerify + FinishedServidor envía certificado, firma, y finaliza su parte
4FinishedCliente verifica certificado y envía su Finished. Conexión establecida en 1-RTT

6.4 Cipher suite TLS 1.3

En TLS 1.3, las cipher suites se simplificaron a solo 5 (todas AEAD):

Cipher SuiteCifradoHash
TLS_AES_128_GCM_SHA256AES-128-GCMSHA-256
TLS_AES_256_GCM_SHA384AES-256-GCMSHA-384
TLS_CHACHA20_POLY1305_SHA256ChaCha20-Poly1305SHA-256
TLS_AES_128_CCM_SHA256AES-128-CCMSHA-256
TLS_AES_128_CCM_8_SHA256AES-128-CCM-8SHA-256

7. CERTIFICADOS X.509 Y PKI

7.1 Certificado X.509v3 — Campos principales

CampoDescripción
VersionVersión del formato (v3 = 2)
Serial NumberIdentificador único asignado por la CA
IssuerDN de la CA emisora
ValidityNot Before / Not After (periodo de validez)
SubjectDN del titular del certificado
Subject Public Key InfoClave pública del titular + algoritmo (RSA, ECDSA)
Extensions (v3)Extensiones: Subject Alternative Name (SAN), Key Usage, Extended Key Usage, CRL Distribution Points, Authority Key Identifier
Signature AlgorithmAlgoritmo usado por la CA para firmar (ej. SHA256withRSA)
SignatureFirma digital de la CA sobre todo el certificado

7.2 Tipos de certificado por validación

TipoValidaciónIndicador navegador
DV (Domain Validation)Solo verifica que el solicitante controla el dominioCandado
OV (Organization Validation)Verifica dominio + datos de la organizaciónCandado + datos org en certificado
EV (Extended Validation)Verificación exhaustiva: dominio + organización + representante legalCandado (barra verde eliminada en navegadores modernos)
WildcardVálido para *.dominio.com (todos los subdominios de un nivel)Candado
SAN / Multi-domainUn certificado para múltiples dominios (via Subject Alternative Name)Candado

7.3 Let's Encrypt y ACME

ConceptoDescripción
Let's EncryptCA gratuita y automatizada. Emite certificados DV con validez de 90 días. Usa protocolo ACME
ACMEAutomatic Certificate Management Environment (RFC 8555). Protocolo para automatizar emisión y renovación de certificados. Cliente más usado: Certbot

8. FIRMA ELECTRÓNICA EN LAS AAPP

CLAVE EXAMEN: Los formatos de firma electrónica de las AAPP españolas (XAdES, CAdES, PAdES) son específicos del temario TAI. Saber qué formato aplica según el tipo de documento.

8.1 Formatos de firma avanzada

FormatoBasado enUsoNiveles
XAdESXMLFirma de documentos XML, facturas electrónicas, trámites web. El más usado en AAPP-BES, -T, -C, -X, -XL, -A
CAdESCMS/PKCS#7Firma de cualquier tipo de fichero binario (genérico)-BES, -T, -C, -X, -XL, -A
PAdESPDFFirma embebida en documentos PDF. Visible e invisible-BES, -T, -LTV

8.2 Niveles de firma

NivelAñadeGarantiza
-BES (Basic Electronic Signature)Firma básica + certificado del firmanteIntegridad + autenticidad
-T (Timestamp)Sello de tiempo de una TSA (Time Stamp Authority)+ Momento exacto de la firma (no repudio temporal)
-C / -X / -XLReferencias y valores de certificados + CRLs/OCSP+ Validación a largo plazo (incluso si la CA desaparece)
-A (Archival)Sellos de tiempo adicionales periódicos+ Preservación indefinida (archivo a largo plazo)

8.3 Herramientas de firma de las AAPP

HerramientaFunción
@firmaPlataforma de firma electrónica de la SGAD. Permite crear y verificar firmas en formatos XAdES, CAdES, PAdES
AutoFirmaAplicación de escritorio para firma electrónica del ciudadano. Soporta DNIe, certificados FNMT. Descarga desde PAe
FIReFirma en la nube (Cl@ve Firma). Permite firmar desde navegador sin instalar software local
VALIDeServicio de validación de firmas y certificados electrónicos
TS@Servicio de sellado de tiempo (TSA) de la SGAD

9. ESTÁNDARES PKCS

PKCSNombreDescripción
PKCS#1RSA Cryptography StandardDefine el formato de cifrado y firma RSA
PKCS#7Cryptographic Message SyntaxFormato de datos firmados/cifrados. Base de CAdES y S/MIME. Extensión .p7b, .p7c
PKCS#8Private Key InfoFormato de clave privada (soporta múltiples algoritmos)
PKCS#10Certification RequestFormato de solicitud de certificado (CSR — Certificate Signing Request)
PKCS#11Cryptographic Token InterfaceAPI para acceder a hardware criptográfico (tarjetas inteligentes, HSM, DNIe)
PKCS#12Personal Information ExchangeAlmacena clave privada + certificado en un solo archivo protegido por contraseña. Extensión .p12, .pfx


FUENTES PÚBLICAS

Este resumen ha sido elaborado íntegramente a partir de fuentes de dominio público. No se ha utilizado material con copyright de terceros ni material de preparadores.
FuenteTipoReferencia
RFC 9110 — HTTP SemanticsEstándarIETF
RFC 8446 — TLS 1.3EstándarIETF
NIST FIPS 197 — AESEstándarNIST
RFC 5280 / X.509 — Certificados digitalesEstándarIETF / ITU-T

¿Quieres practicar este tema con tests?

MIMIR tiene más de 5.000 preguntas verificadas, simulacros con penalización real y chat IA que resuelve tus dudas sobre este tema.

Abrir MIMIR gratis →