Examen de SPI1 - I*38 - 7 de Junio de 2005

Cada pregunta puntúa un punto. Para superar el examen debes obtener al menos cinco puntos, de los cuales al menos tres debes obtenerlos de las seis primeras preguntas. Consultar solución en http://spi1.nisu.org/exSPI1J05
  1. Intento mandar un mensaje cifrado a un amigo y Mozilla me dice que no puedo. ¿Por qué puede ser? ¿Como podría resolverlo? Cita todas las razones y soluciones.
    Resp: Puede ser porque no tengo el certificado de cifrado de mi amigo. O porque yo mismo no tengo un certificado de cifrado, pues es necesario para que mozilla guarde una copia cifrada del mail que yo pueda leer cuando quiera. Esta es la razón con un 90% de probabilidad. Puede haber otras, como que tengo el certificado pero no es de una CA de confianza (mozilla no los admite normalmente, pero puede darse el caso), o que es de una longitud de llave que mozilla no admite, pero esto yas es mucho suponer. Para resolver el caso probable basta con obtener el cert de mi amigo, por ejemplo pidiéndole que me envie un mail firmado.
  2. Estoy configurando un directorio servido por un "apache web server". Cargo la página inicial y se ve perfectamente. Creo un fichero .htaccess con el fin de intentar limitar el aceso y por más directivas que pruebo no consigo acceder desde ningún ordenador (me dice "acceso denegado"). ¿Qué es lo que va mal?
    Resp: Si la página se veía y ahora no se ve, la culpa es del .htaccess . Si en el .htaccess pongo cualquier cosa y no me dice "eror de configuración" sino "acceso denegado", pues está claro que lo que pasa es que no puede leer el .htaccess .
  3. He copiado un archivo pkcs12 en un floppy, con nombres distintos hasta llenar el floppy, con lo que tengo unas 200 copias del mismo en el floppy. No tengo otra copia de la llave privada que va en el pkcs12. El floppy se me cae y lo atropella un coche. Como físicamente esta bastante entero, lo pongo en el ordenador y me gira correctamente, pero no hay forma de que reconozca el sistema de archivos. ¿Qué puedo hacer para recuperar el pkcs12?
    Resp: Si no reconoce el sistema de archivos es porque sectores críticos están dañados, pero otros pueden estar bien. Estimo que el tamaño de un pkcs12 puede ser por ejemplo 6K, es decir 12 sectores. Entonces trato de formar tantos grupos contiguos de 12 sectores como pueda y miro a ver si uno de ellos es el pkcs12. Tengo que tener en cuenta que al leer se producuirán errores de lectura que debo de saltar. La detección del pkcs12 correcto se puede hacer simplemente abriéndolo, pues implica una verificación de hash. Además afortunadamente la información extra es ignorada. Todo a nuestro favor, así podemos hacer un script que sería algo como (escrito de cabeza sin probar):
    export lapass="la password"
    for ((i=0; i<1440-12; i++))
      if dd ibs=512 skip=$i count=12 if=/dev/fd0 conv=noerr | openssl pkcs12 -passin env:lapass; then
        echo Sector: $i
        break
      fi
    done
    
    Nota: al corregir no espero encontrarme un script, me basta con una explicación suficientemente razonada.
  4. Dado un certificado en un archivo PEM, ¿cómo puedo saber que está correctamente firmado por una autoridad certificadora de mi confianza?. Explica el proceso teórico y algún método práctico.
    Resp: El proceso teórico para verificar la correción de la firma es: primero miro qué CA es quien lo firma en el campo "issuer". Si es una CA de mi confianza, cojo su certificado y con la llave pública "descifro la firma" del certificado, y luego compruebo el hash. En la práctica, si está en formato PEM me basta con usar "openssl verify -CA fichero_con_la_CA fichero_PEM"
  5. Unos expertos han conseguido generar dos textos cuyo md5 es el mismo. ¿Significa que la función md5 ya no sirve como función hash?. Si la respuesta es que sigue sirviendo, entonces ¿que debería conseguir un experto para demostrar que ya no es válida?
    Resp: Estos expertos han demostrado gran ingenio, pero ya sabíamos que podía haber dos textos con el mismo md5, ellos lo han mostrado. La función sigue siendo fiable si dado un texto cualquiera y su md5, nadie es capaz de encontrar otro texto con el mismo md5, si un experto pudiera hacer esto, el md5 sería una función inútil.
  6. Supón que llevas tu certificado (que te identifica legalmente) y tu llave privada en un dispositivo de seguridad, del que por ningún medio se puede extraer la llave privada. Introduces el dispositivo en un ordenador de poca confianza y haces uso de él. ¿Qué riesgos de seguridad (respecto a tu identidad) estás corriendo?.
    Resp: Puede ser que un código malicioso esté firmando documentos sin mi consentimiento. Normalmente estos dispositivos requieren una contraseña, que también puede ser espiada. Si encima me dejara el dispositivo olvidado, los supuestos atacantes tendrían el dispositivo y la contraseña, es decir, una suplantación total de mi identidad.
  7. La empresa X cree realizar copias de seguridad pero se le ha roto el disco duro de uno de sus sistemas y descubren que no tiene copias de seguridad del mismo. Explica los procedimientos administrativos que deben emplearse para que no sucedan cosas como esa.
    Resp: La afirmación "descubren que no tiene copias" es muy vaga e invita a exponer diversas razones. Una puede ser que la copia ha desaparecido (robo, destrucción). Otra es que no se verificó (y se realizó incorrectemnte). Las medidas administrativas necesarias serían diseñar una política de copias seguridad, pero sobre todo auditar que se aplica.
  8. Recibo un correo electrónico cifrado, pero el lector de correo me dice que el cifrado es incorrecto. Enumera todas las razones que pueden provocar este error.
    Resp: Obviamente el lector tiene capacidad de descifrado, si no, el error sería otro. Las razones fundamentales pueden ser dos:
    1. El mensaje está corrupto y da un error al descifrar.
    2. No dispongo de la llave privada que se requiere para descifrarlo (el mensaje quizá no iba ditigido a mí, o la he perdido).
  9. Explica las diferencias (prácticas y de seguridad) entre realizar una copia de seguridad de tus archivos en un disco duro diferente de tu ordenador y realizarla en el disco duro del ordenador de una amigo via internet.
    Resp: La seguridad son varios elementos.
    1. Confidencialidad: si cifro los datos en el caso internet, la confidencialidad es la misma.
    2. Autenticidad: en el caso del disco duro no hay problema, en el caso internet debo autenticar debidamente el ordenador de mi amigo, luego me es fácil autenticar la copia: si la he cifrado y la puedo descifrar se que es la mía.
    3. Integridad: en casa puedo controlar la salud de mi disco, en casa de mi amigo deberé verificar las copias periódicamente.
    4. Disponibilidad: es el aspecto que mas cambia. En primer lugar si la frecuencia de las copias la planifico muy alta y son muchos datos y la línea de internet es lenta, ni siquiera podré hacer las copias, tengo que tenerlo en cuenta. Si mi amigo apaga el ordenador, o pierdo su amistad, se acaba la disponibilidad. En cambio, en mi casa si hay un desastre físico, tipo robo o incendio, la disponibilidad será cero, mientras que es improbable que roben o incendien la casa de mi amigo al mismo tiempo que la mía.
  10. ¿Por qué si RC4, o DES son seguros con llaves de menos de 256 bits, necesito 1024 para alcanzar seguridad con RSA?
    Resp: Pues porque nada tienen que ver los algoritmos entre sí. El tamaño de llave que puede considerarse seguro se obtiene experimentalmente atacando por fuerza bruta e interpolando el coste. La longitud resultante será consecuencia de la naturaleza del ataque, normalmente ligado a la naturaleza del algoritmo.