🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónCuándo usar una librería de alto nivel
5 tareas · 35 min · Principiante
Escribir cifrado a mano con primitivas sueltas obliga a acertar en cada decisión: algoritmo, modo, vector, integridad, orden de las operaciones, comparación y clave. Una librería de alto nivel toma casi todas esas decisiones por ti y las toma bien. Casi todas: la clave sigue siendo tuya. Nómina Hatogrande escribió su propia clase de cifrado en 2022 y hoy tiene una propuesta para reemplazarla. Te piden revisarla antes de aprobarla.
Objetivo de la sala
Escribir cifrado a mano con primitivas sueltas obliga a acertar en cada decisión: algoritmo, modo, vector, integridad, orden de las operaciones, comparación y clave. Una librería de alto nivel toma casi todas esas decisiones por ti y las toma bien. Casi todas: la clave sigue siendo tuya. Nómina Hatogrande escribió su propia clase de cifrado en 2022 y hoy tiene una propuesta para reemplazarla. Te piden revisarla antes de aprobarla.Una función de cifrado de alto nivel recibe el mensaje, la clave y, como mucho, un nonce, y devuelve algo que ya trae todo lo necesario. Elige un algoritmo autenticado, fija los tamaños, calcula la etiqueta, y al abrir comprueba la etiqueta antes de devolver un solo byte. libsodium, que PHP incluye como extensión, ofrece una «caja secreta» de ese tipo con un nonce lo bastante largo como para generarlo al azar en cada mensaje sin temer repeticiones.
Lo que no decide es de dónde sale la clave, dónde se guarda, quién la puede leer ni cuándo se rota. Una librería bien elegida elimina los errores de las salas anteriores; la gestión de la clave sigue siendo un problema del equipo.
Responde para continuar
Un equipo reemplaza su cifrado casero por una función de alto nivel de una librería reconocida. ¿Qué queda por revisar?
Ver pista de ayuda
Separa lo que entra a la función de lo que la función hace por dentro.
Abre el laboratorio y lee CifraPropia.php. Antes de mirar el algoritmo, mira la clave: de dónde sale, quién más tiene ese archivo y qué pasa si hay que cambiarla. Una clave escrita en el código está en cada copia del repositorio, en cada rama, en el servidor de integración continua y en el historial para siempre. MITRE lo clasifica como CWE-321, uso de una clave criptográfica embebida.
Responde para continuar
¿De qué constante sale la clave de la clase casera? Escribe su nombre tal como aparece en el código.
Ver pista de ayuda
Está declarada al principio de la clase como privada.
Ahora lee la clase entera con lo aprendido en el módulo: cómo se forma el vector, sobre qué se calcula la integridad, con qué clave y en qué orden se descifra y se comprueba. Encontrarás varios fallos de las salas anteriores en treinta líneas. Después abre propuesta-pr-418.txt, que reemplaza todo eso por libsodium.
Responde para continuar
¿Qué función de libsodium usa la propuesta para cifrar? Escríbela sin paréntesis.
Ver pista de ayuda
Es la llamada que aparece en el return del método cifrar de la versión nueva.
La descripción de la propuesta es correcta en lo que dice: la librería elige el algoritmo, genera el nonce y verifica antes de devolver. Fíjate en lo que no dice, y en las líneas que no cambian.
Responde para continuar
¿Qué debe pedir la revisión antes de aprobar la propuesta?
Ver pista de ayuda
Busca qué línea de la clase original sigue igual en la versión nueva.
La propuesta deja lo ya cifrado como está y lo sigue leyendo con el código viejo. Para planear la migración hace falta saber cuántas piezas de la aplicación guardan datos con la clase. Usa usos.txt y cuenta archivos, no líneas: un archivo que cifra y descifra cuenta una vez. Las pruebas no guardan datos de nadie.
Responde para continuar
¿Cuántos archivos de la aplicación, sin contar las pruebas, usan hoy la clase casera?
Ver pista de ayuda
Agrupa las líneas por la ruta del archivo antes de contar.
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
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.