Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ideas clave
4.2. Autenticación
A fondo
Test
Esquema
Internet suponen un amplio porcentaje del total de las aplicaciones. Por otro lado, los
El tercer tipo de aplicaciones en auge son las aplicaciones móviles donde el cliente
que maneja.
Han de contemplarse todos los aspectos de seguridad que tienen y que están
relacionados con la arquitectura de la aplicación elegida. El ejemplo de la Figura 1 se
observa una arquitectura tradicional de n-capas en las que hay que diseñar e
protección de datos.
Diseño seguro
como:
En el vídeo OWASP Top Ten Proactive Controls veremos el proyecto Owasp Top
web.
Accede al vídeo:https://unir.cloud.panopto.eu/Panopto/Pages/Embed.aspx?
id=e57b8d2f-dd40-4703-995a-adc3011272bc
▸ Parametrización de consultas.
▸ Codificación de datos.
▸ Protección de datos.
▸ Utilización de frameworks.
vulnerabilidades y fortalezas.
aplicaciones web.
4.2. Autenticación
implementación segura de cada una de las fases. Por sus características las
aplicaciones web utilizan el protocolo HTTP con una serie de problemáticas que hay
▸ Autenticación digest–HTTP.
Autenticación basic–HTTP
cabecera de los mensajes HTTP. Cada petición con el método GET incluye las
La autenticación basic es muy insegura. Puede ser objeto de ataques Man In the
interceptador. Además, puede sufrir ataques de repetición una vez capturada una
petición mediante sniffering. Hay que proteger la comunicación con TLS para evitar
con autenticación básica responde con un mensaje HTTP como el de las figuras
siguientes.
Autenticación: digest–HTTP
pasos a otros parámetros que conoce el cliente, como: el número de petición, URL,
versión del parámetro response y lo compara con el enviado por el cliente: si son
código 401, en caso contrario. De esta forma, se ofrece protección frente a reenvío
(replay) pero el desafío NONCE debe ser aleatorio y debe caducar en el tiempo para
Al igual que con la autenticación basic, se debe emplear el protocolo TLS para
codificación Base64 fácilmente reversible, digest usa una función hash, aunque los
valores NONCE deben ser de un solo uso o tener un tiempo muy corto de
caducidad, para prevenir ataques de repetición.
Autenticación en dominio
servicio open ldap mediante métodos como NTLMv2 o KERBEROS. Son esquemas
comunes en Internet.
NTLMv2 es un protocolo que se basa en los mismos conceptos que digest, envía dos
Las dos respuestas difieren en el formato del desafío del cliente. La más corta utiliza
un valor aleatorio de 8 bytes para este desafío. Para verificar la respuesta el servidor
debe recibir como parte de ella el desafío del cliente. Para esta respuesta, más corta,
▸ El nombre de dominio.
▸ Datos.
La respuesta debe incluir una copia de este desafío del cliente y, por lo tanto, es de
NONCE que guarda para utilizar después. El atacante hace que el usuario se
usuario se conecta al servidor del atacante y este le envía al usuario los desafíos
alguno de los desafíos obtenidos en el paso uno, cuyas respuestas obtuvo en el paso
Figura 6. Autenticación NTLMv2. Ataque paso uno. Fuente: Fuente: Azubel y Ochoa, 2010.
Figura 7. Autenticación NTLMv2. Ataque paso dos. Fuente: Fuente: Azubel y Ochoa, 2010.
Figura 8. Autenticación NTLMv2. Ataque paso tres. Fuente: Azubel y Ochoa, 2010
El cliente se pone en contacto con el servicio KDC diciendo que es un usuario que se
valida en el dominio y solicita un ticket para obtener tickets (TGT). KDC emite el TGT
al cliente encriptando con el hash de contraseña del equipo del cliente. El cliente
solicita un ticket de servicio del KDC TGS mediante su TGT para autorización.
de solicitud-respuesta continúa.
La definición general del ataque Pass The Hash (PTH) es la que utiliza el hash del
usuario para conseguir suplantar al mismo. Llevado al campo de los tickets Kerberos
por el cual se obtiene un TGT, se puede ver que si un atacante consigue el hash de
acceder a los recursos del dominio a los que ese usuario tiene acceso sin conocer su
contraseña.
Pass The Ticket (PTT) trata de obtener un ticket de usuario y usarlo para obtener
acceso a los recursos para los que el usuario tenga permisos. Se lleva a cabo
podría fallar dado que cuenta con ciertas protecciones. Cuando se envía un ST a la
Además, el primer ticket enviado a la máquina del servicio (el del usuario legítimo la
ello, lo común es hacerse con un TGT que no cuenta con estas protecciones, aunque
sí se debe tener en cuenta que tiene un tiempo máximo de vida, normalmente diez
horas, tras las cuales el ticket caducará. Además, el TGT no está restringido a un
único servicio, sino que se puede utilizar para solicitar cualquier servicio al cual el
Kerberoasting
Trata de usar los ST para realizar cracking de las contraseñas de los usuarios offline.
cuenta de dominio a la que está ligado el servicio, por lo que, si un usuario solicita un
ST de un servicio que está ligado a otro, una vez obtenido el ST, se lo puede llevar a
otra máquina e intentar crackear la contraseña del usuario, que por lo general suele
estén ligadas a los servicios e incluso a la cuenta KRBTGT si se extrae el TGT, pero
El objetivo del ataque del Golden ticket es construir un TGT, para lo cual se necesita
el hash de la cuenta KRBTGT, ya que es el que se usa para cifrar dicho ticket. Una
vez obtenido este hash es posible construir un TGT con la caducidad que se desee y,
lo más importante, con los permisos que uno quiera, consiguiendo incluso privilegio
depende de dos cosas: la caducidad especificada y el hash NTLM con el que está
contraseña del usuario que se suplanta. El concepto del ataque Silver ticket es
similar, solo que esta vez el ticket que se construye es un ST y para ello lo que se
Permite accesos a múltiples sitios, válidos tanto para Intranets como para Internet.
autenticación.
por Openid-Connect.
Accede al vídeo:https://unir.cloud.panopto.eu/Panopto/Pages/Embed.aspx?
id=a2a199d3-c6df-46ad-9ab3-adc3010f172d
autenticar a sus usuarios a través de sitios web y aplicaciones sin tener que poseer y
conmigo?
tanto OpenID Connect como OAUTH2 usan el conceto Json Web Token (JWT) para
servidor.
El token JWT consta de tres partes separadas por puntos y codificadas en base64
El Header es la cabecera del token, que a su vez tiene otras dos partes: el tipo (en
Ejemplo:
eyJhbGci0iJIUzI1NiJ9
"alg":"HS256",
"typ":"JWT"
El Payload está compuesto por los llamados JWT Claims donde irán colocados los
▸ Iat: identifica la fecha de creación del token, válido por si queremos ponerle una
▸ Exp: identifica a la fecha de expiración del token. Podemos calcularla a partir del iat.
▸ Otros.
Estos atributos pueden variar, incluir información de roles, entre otras cosas. Por
ejemplo:
"exp": 1416471934,
"user_name": "user",
"scope": [
"read",
"write"
],
"authorities": [
"ROLE_ADMIN",
"ROLE_USER"
],
"jti": "9bc92a44-0b1a-4c5e-be70-da52075b9a84",
"client_id": "my-client-with-secret"
eyJleHAiOiAxNDE2NDcxOTM0LCJ1c2VyX25hbWUiOiAidXNlciIsInNjb3BlIjpbInJlYW
QiLCJ3cml0ZSJdLCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIiwiUk9MRV9VU0VSIl
0sImp0aSI6ICI5YmM5MmE0NC0wYjFhLTRjNWUtYmU3MC1kYTUyMDc1YjlhODQiL
CJjbGllbnRfaWQiOiJteS1jbGllbnQtd2l0aC1zZWNyZXQifQ
La firma Signature es la tercera y última parte del JSON Web Token. Está formada
con una clave secreta que debe estar almacenada en el backend (HMAC-SHA256).
En el ejemplo sería:
para que el cliente se ocupe de más tareas del protocolo. Otras técnicas de
Ataques al protocolo TLS del tipo Man In The Middle (MITM) (Generación de
diseñada para MITM de todas las conexiones TLS en una LAN y genera
dinámicamente certificados para los dominios a los que se tiene acceso sobre la
marcha. Los nuevos certificados se construyen sobre una cadena de certificados que
Se debe usar la última versión del protocolo TLS disponible para evitar importantes
obligatorio que hay que usar como factor adicional, además de otros métodos de
autenticación.
No hace uso de las cabeceras, está basada en formularios que utilizan método
al usuario una indicación de éxito junto con un ID de sesión, como puede ser una
Figura 12. Autenticación desde aplicación web. Fuente: Sullivan et al., 2012.
Figura 13. Autenticación desde aplicación web, respuesta después de autenticación válida desde la aplicación.
Fuente: elaboración propia.
del usuario). Hay que tener en cuenta que, aunque el método de autenticación sea
mecanismo. Este concepto debe tenerse muy en cuenta y debe ser un objetivo que
intervalos fijos basados en una semilla única para cada token. Además, requieren un
PIN.
▸ Algo que eres: huella dactilar, retina del ojo, cara, etc.
Ataques a la autenticación
Además del ataque de tipo Man In The Middle mediante ARP spooffing y proxy
(Scambray, 2011):
símbolos.
▸ HASH más SALT (append al hash contraseña). SALT: pieza de información que se
añade a la entrada de una función hash para combinarla con la password y añadir
dificultad de ataques contra el almacenamiento de hashes. Se suele almacenar
como prefijo o sufijo a la password. Debido a que la longitud de SALT es conocida,
no existe problema en la verificación de la password suministrada por el usuario.
(Mueller, 2016).
cada caso particular. El TLS con autenticación de cliente debe ser uno de los
autenticación.
https://www.ampliasecurity.com/research/NTLMWeakNonce-ekoparty2010-ar-
ampliasecurity.pdf
vincent.bernat. https://vincent.bernat.ch/en/blog/2011-ssl-dos-mitigation#putting-
more-work-on-the-client-side)%20(https://eprint.iacr.org/2006/212.pdf
[ i m a g e n ] . https://blog.kloud.com.au/2015/06/04/kerberos-web-application-
configuration/
Mueller, J. P. (2016). Security for web developers: using javascript, HTML and CSS.
O’Reilly Media.
McGraw‑Hill.
McGraw-Hill Education.
n_Standard_Project
Página de Cisecurity
las ganancias.
Owasp. (2022). NodeJS Security Cheat Sheet. OWASP Cheat Sheet Series.
https://cheatsheetseries.owasp.org/cheatsheets/Nodejs_Security_Cheat_Sheet.html
Esta lista de recomendaciones enumera las acciones que los desarrolladores pueden
tomar para crear aplicaciones Node.js seguras. Cada elemento tiene una breve
Página de CCN-CERT
existentes.
OpenID Connect 1.0 es una simple capa de identidad en la parte superior del
protocolo OAuth 2.0. Permite a los clientes verificar la identidad del usuario final
similar a REST. OpenID Connect permite a los clientes de todo tipo, incluidos los
A. Cifrados
B. En claro
C. Codificadas base-64
D. HASH MD5
A. Nonce
B. Response
C. HASH
A. TGT
B. TGS
C. TFS
D. AES
A. TGT
B. TGS
C. TFS
D. AES
repetición?
A. MD5.
B. CNONCE.
C. NONCE
D. Response.
B. Código de autorización
C. La a y la b
A. NTLM
B. KERBEROS
C. DIGEST
D. La a y la b
A. BASE64.
B. Tickects.
C. Token.
D. Assertion.
A. Repetición
B. Fuerza bruta
C. MITM
10. ¿Cuál podría ser una recomendación para una autenticación robusta?
B. Captcha
C. SALT