Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Comprobar certificados

5 tareas · 40 min · Principiante

Un certificado vencido o autofirmado en un servicio publicado es de los hallazgos más repetidos y más fáciles de demostrar, y de los más fáciles de informar mal: una fecha mal leída o un huso horario ignorado cambian el estado del hallazgo. Durante la enumeración del encargo ficticio de Pesquera Rompeolas se guardó, solo para lectura, lo que presenta cada servicio TLS del alcance. En esta sala lees dos versiones de un script de Python que calcula los vencimientos y decides cuál produce una fecha que puedas poner en el informe.

0 de 5 · 0%

Objetivo de la sala

Un certificado vencido o autofirmado en un servicio publicado es de los hallazgos más repetidos y más fáciles de demostrar, y de los más fáciles de informar mal: una fecha mal leída o un huso horario ignorado cambian el estado del hallazgo. Durante la enumeración del encargo ficticio de Pesquera Rompeolas se guardó, solo para lectura, lo que presenta cada servicio TLS del alcance. En esta sala lees dos versiones de un script de Python que calcula los vencimientos y decides cuál produce una fecha que puedas poner en el informe.

Que un certificado esté «próximo a vencer» depende de qué día es hoy. Si el script lee el reloj del equipo, la misma exportación da resultados distintos al ejecutarla el día del trabajo, el día del informe y el día en que el cliente la repite para comprobar su arreglo. Un hallazgo que cambia solo por pasar el tiempo no es reproducible.

Por eso el script recibe la fecha de trabajo como argumento y la escribe en la primera línea de su salida. El criterio de aviso (aquí, 30 días o menos) también va escrito en el encargo y no en la cabeza de quien ejecuta.

Responde para continuar

Calculas vencimientos de certificados con un script. ¿Por qué la fecha de referencia se le pasa como argumento?

Ver pista de ayuda

Piensa en el cliente repitiendo la comprobación un mes después.

openssl x509 -noout -enddate imprime la fecha de fin de validez como notAfter=Oct 12 14:00:00 2026 GMT: mes con tres letras en inglés, día rellenado con un espacio cuando tiene una cifra (Jan 5), hora y la zona GMT. Un script que interpreta ese texto con el nombre de los meses del idioma del sistema funciona en un equipo configurado en inglés y falla —o peor, interpreta mal— en uno configurado en español, donde enero es «ene».

La defensa es leer las fechas con una configuración regional invariante (en PowerShell, [cultureinfo]::InvariantCulture) o con una biblioteca que no dependa del idioma, y probar el script con una fecha con día de una sola cifra.

Responde para continuar

Tu script lee fechas como Jan 5 08:00:00 2027 GMT y funciona en tu equipo en inglés. ¿Qué riesgo corre en el portátil de un compañero configurado en español?

Ver pista de ayuda

openssl escribe siempre el mes en el mismo idioma; lo que cambia es el equipo que lo interpreta.

Abre el laboratorio. certificados.txt guarda, para cada servicio, el sujeto, el emisor y las fechas. vencimientos_v1.py convierte las fechas, calcula los días que faltan respecto a la fecha de trabajo 2026-09-23 y marca el estado; salida_v1.txt es lo que imprimió, ordenado de lo más cercano a lo más lejano. Un día negativo es un certificado que ya venció.

Responde para continuar

¿Cuál es el nombre del sujeto (CN) del certificado que ya está vencido en la fecha de trabajo?

Ver pista de ayuda

Busca en salida_v1.txt el estado VENCIDO.

Como la fecha es un argumento, puedes preguntarte qué diría el informe otro día. El certificado del portal vence el 12 de octubre de 2026 a las 14:00 GMT. Cuenta los días completos que habrían faltado si la fecha de trabajo hubiera sido el 30 de septiembre de 2026, y comprueba con el criterio del encargo (30 días o menos) si seguiría marcándose como por vencer.

Responde para continuar

¿Cuántos días habrían faltado para el vencimiento del portal con fecha de trabajo 2026-09-30?

Ver pista de ayuda

Septiembre tiene 30 días; cuenta hasta el 30 de septiembre y luego hasta el 12 de octubre.

Cuando el emisor y el sujeto de un certificado son el mismo, está autofirmado: ninguna autoridad de confianza lo respalda y quien se conecta no tiene cómo comprobar que habla con el servicio que cree. El script lo marca en su salida con una palabra clave. Busca esa marca y dime a qué certificado se refiere.

Responde para continuar

¿Cuál es el nombre del sujeto (CN) del certificado marcado como autofirmado?

Ver pista de ayuda

Busca la palabra AUTOFIRMADO en salida_v1.txt.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad