Examen de SPI - I*38 - Junio 2009

!!!
  1. Tomo una cierta cantidad de información aleatoria (de una fuente real de entropía) y la cifro con un algoritmo tipo César (256 claves posibles). ¿Cómo lo descifrarías por fuerza bruta?. %%% No podría descifrarlo de ninguna forma, pues para descifrar algo sin la clave necesito tener alguna pista de lo que voy a encontrar, si es totalmente aleatorio no sé lo que busco. %%%
  2. ¿Por qué los objetos PKCS#10 (certificate request) son objetos firmados? %%% Por lo mismo que cualquier objeto firmado, para demostrar que se posee cierta llave privada. En este caso en particular para demostrar que se posee la llave privada asociada a la pública contenida en el objeto. %%%
  3. Dada una imagen con patrones claramente repetitivos que quedaría mal cifrada con un cifrador por bloques en modo ECB, ¿qué sucederá (y por qué) si la imagen que voy a cifrar está en formato PNG o GIF y no la convierto a ningún tipo bitmap antes de aplicar el cifrado? %%% Estaré cifrando un archivo comprimido, sin patrones reptitivos, con lo que quedará bien cifrado. %%%
  4. Compara los procedimientos de emisión de certificados a ciudadanos en soporte "soft" (sin dispositivo seguro) de la GVA y la FNMT. Explica breve pero claramente las ventajas e inconvenientes que le ves a uno y a otro. %%% Los certificados de la GVA se obtienen en un solo paso: en el punto de registro, tras la identificación, se generan las llaves y los certificados y se nos entregan. Los de la FNMT son en varios pasos: 1 generación de llaves y petición, 2 identificación y validación, 3 descarga tras la firma. La ventaja de la GVA es obvia: la comodidad para el usuario, el inconveniente es que debemos de confiar que la CA no se queda copia de las llaves. %%%
  5. Solicitas con Firefox un certificado tipo email a Verisign y cuando lo has obtenido lo exportas a un archivo en formato PKCS#12. Enumera todas las contraseñas que entran en juego en todo el procedimiento y explica brevemente por qué son necesarias. %%% Firefox, al generar la llave privada, normalmente la gurada portegida con una "contraseña maestra", que nos solicitará (si no la tiene pedirá crearla). Si no nos pide esta contraseña deberíamos comprobar la configuración de Firefox porque vale la pena usarla. Después Verisign tb nos envía un token que es realmente una contraseña de validación del email. Obtenido el certificado, al exportar nos vuelve a solicitar la "contraseña maestra" de Firefox para copiar la llave privada y nos pide que nos inventemos una contraseña para el fichero PKCS#12. %%%
  6. La aplicación webmail de la UJI, denominada Horde, permite borrar el buzón de entrada con una URL del tipo https://webmail.uji.es/horde/imp/mailbox.php?indices%5B%5D=1&page=1&actionID=159&targetMbox=&newMbox=0&flag=. Explica cómo harías para borrarle dicho buzón a un usuario de la UJI. ¿Dónde está realmente el problema? Cita posibles remedios. %%% Si en cualquier página que yo sepa que un usuario de la UJI va a entrar, pongo <img src="esa_url">, si el usuario está autenticado en Horde le borrará el buzón. Es un problema de Horde, que admite comandos dramáticos invocados por GET. En la UJI el problema es más grave porque un usuario autenticado en un servicio lo está en todos. Si la imagen la pongo en un sitio donde se requere autenticación, como en el aula virtual, seguro que consigo borrar el buzón.
    Pero el problema no es del sistema de la UJI, sino de Horde. La solución sería obviamente cambiar de webmail. Si se pudiera modificar Horde fácilmente, se podría requerir POST (tal y como recomienda la especificación del protocolo HTTP) o mejor, exigir que en la mencionada URL (y en todas) se tenga que pasar un parámetro único que nadie podrá adivinar previamente y meterlo en una URL como esa. %%%
  7. Explica el ataque man in the middle y su solución en el ámbito del RSA y el SSL. %%% En este ataque el atacante que ha interceptado la comunicación del cliente con un servidor le hace creer al cliente que comunica con el servidor original pero envía una llave pública falsa, la del atacante, de la cual tiene la llave privada y es el atacante quien, a modo de proxy, dialoga realmente con el servidor auténtico, retrasmitiendo toda la conversación.
    Éste es un ataque al RSA, que resuelve el SSL, ya que SSL usa el modelo x509 donde la llave pública va dentro de un certificado, que (esperemos) el atacante no puede obtener firmado por una CA de la confianza del cliente. %%%
  8. Al recibir un correo SMIME cifrado, ¿cómo sabe el cliente de correo qué llave privada debe emplear para descifrar el correo?. Piensa que puede ir a varios destinatarios. %%% Por cada destinatario, el PKCS#7 lleva un descriptor que indica el DN del issuer del certificado cuya llave se usó para cifrar y también el número de serie, ambos identifican unívocamente al certificado. El cliente recorre la lista de destinatarios y si es el propietario de alguno de los certificados enumerados, toma la llave privada correspondiente para descifrar. %%%
  9. ¿Qué utilidad tienen los archivos ejecutables Un*x con el bit setuid activo?. ¿Cuando son peligrosos? Tomando, por ejemplo, el caso del archivo /usr/bin/passwd, describe un modelo que podría sustituir al uso de archivos con setuid. %%% Permiten que un usuario pueda ejecutar un programa con los permisos de acceso de su propietario. Esto permite, típicamente, que un usuario le dé permisos a otro para modificar sus ficheros de forma controlada vía el programa con setuid. Si el usuario propietario es el root, los ejecutables son peligrosos si tienen bugs de seguridad, pues quien los ejecuta podría ganar acceso pleno al sistema.
    Pueden ser sustituidos por un esquema cliente-servidor. Por ejemplo en el cambio de password, un servidor del root estaría escuchando peticiones de cambiod e password y el cliente simplemente se conectaría al servidor. El inconveniente de este esquema es simplemente el consumo de memoria, que hoy en día puede considerarse minimalista. %%%
  10. Realizas copias de seguridad en un dispositivo físico fiable. Una vez realizadas, ¿dónde guardarías tal dispositivo?. Razona la respuesta, considerando diversas alternativas y teniendo en cuenta las posibles amenazas/vulnerabilidades del sistema. %%% Guardaré las copias más recientes en un área suficientemente cercana del sistema para que sea operativa una recuperación de datos, pero suficientemente aislada para que algún tipo de incidente (incendio, robo) no afecte al mismo tiempo a las copias y al sistema. Típicamente las copias suele almacenarse en armarios inífugos. Las copias anteriores las guardaré fuera del edificio, en otra ubicación geográfica, de modo que aún en caso de una pérdida integral por las mismas causas (robo, incendio, vandalismo) siempre disponga de una copia aunque no esté 100% actualizada.
    Obviamente lo mejor sería tener 2 copias una en el inífugo local y otra en otra ubicación, pero si sólo hago una copia periódicamente, aplicar el procedimiento anterior sería razonable. %%%
Nota: Usa el lenguaje con precisión, las imprecisiones e inexactitudes restan valor a tus respuestas.