Dep LSI - UJI

Seguridad y protección de la información II

Curso 2006 - 2007

by Manuel Mollar
mm at nisu.org

Contenido.

  1. Objetivos.
  2. Evaluación.
  3. Temario.
    1. Infraestructuras de clave pública.
    2. Librerías y arquitecturas criptográficas.
    3. Protocolos criptográficos.
  4. Organización.
  5. Prácticas.
    1. AC de certificados personales - dos sesiones.
    2. AC sólo email - ocho sesiones.
  6. Trabajos.
    1. Continuación AC.
    2. Firma ciega.
    3. Compartición de secretos.
    4. Lanzar una moneda.
    5. Clauer - javascript.
    6. SMIME.
  7. Bibliografía.

Objetivos.

La asignatura es continuación de la II38, Seguridad y protección de la información I. Por tanto, es imposible cursarla sin los conocimientos adquiridos en ella. La asignatura pretende profundizar en las PKI, presentar problemas avanzados de criptografía, y dotar al alumno de práctica en la programación de sistemas criptográficos.
Es una asignatura de aprendizaje de conceptos, pero sobre todo de programación. Para cursarla se requiere práctica en la programación en C y en algún lenguaje de scripting adecuado para entornos Web (php, python, etc.). El desconocimiento de los mismos hacen que sea totalmente imposible la realización de las prácticas y trabajos que se proponen.

Evaluación.

La asignatura puede superarse mediante la correcta terminación de las prácticas y trabajos que aquí se explican. En ningún caso debe entenderse esto como una formadeaprobar sin esfuerzo: aunque los trabajos no son difíciles de realizar, requieren dedicar tiempo. Alternativamente atodo ello, puede superarse realizando un examen escrito de carácter práctico.

Temario.

  1. Infraestructuras de clave pública.

    1. Repaso del modelo x509.
    2. Autoridades de certificación x509.
      1. Declaración de prácticas de certificación (CPS).
      2. Tipos de certificados habituales.
      3. Modelos de expedición de certificados.
    3. Dispositivos criptográficos. El clauer.

  2. Librerías y arquitecturas criptográficas.

    1. OpenSSL.
      1. Openssl desde línea do comandos. El fichero de configuración.
      2. Programación.
    2. CryptoAPI.
      1. Arquitectura.
      2. CSP y Cert. Store Provider.
      3. Programación.
      4. Capicom.
    3. Pkcs#11.

  3. Protocolos criptográficos.

    1. Firma ciega de Chaum.
    2. Lanzar una moneda.
    3. Compartición de secretos.
    4. Dinero electrónico.
    5. Voto telemático.

Organización.

Los bloques 1 y 2 se explicarán simultáneamente, cada uno en una hora de la semana.

Prácticas.

Se realizarán en el ordenador al.nisu.org, gestionado por mí, pues la universidad no nos provee de los medios adecuados para realizarlas.
  1. AC de certificados personales - dos sesiones.

    Esta práctica debe realizarse exclusivamente en horario de clase, durante las sesiones indicadas.
    Se trata de crear una AC que emita certificados personales, previa identificación del interesado, que deberá aportar un CSR en formato pkcs#10 PEM. En la primera sesión, se trata de generar un certificado raíz para firmar certificados personales y debe de redactarse un CPS que incluya sólo los apartados de
    • Tipo de certificados, explicando claramente lo que se certifica y lo que contiene el certificado.
    • Procedimiento de identificación del susbcriptor.
    En la segunda sessión, el profesor será subscriptor de la AC con varios CSR y la AC deberá decidir si emite el/los ceertificados, a la vista del CSR y de la identificación. Si son necesarias correciones al CPS, podrán realizarse en la segunda sesión, al final de la cual, la práctica quedará acabada.

  2. AC sólo email - ocho sesiones.

    Esta práctica podrá realizarse en horario de clase o por libre.
    El objetivo es realizar una AC similar a la de Verisign Class1 free. Deberá:
    • Establecerse una CPS mínima.
    • Realizarse completamente, dos alternativas:
      • La operativa completa se realiza vía mail. Deberán contruirse scripts en el cliente y en el servidor, de modo que el cliente, mediante un script, genera la petición, y, cuando el servidor le devuelve el certificado, mediante otro script, genera un pkcs12.
      • La operativa se realiza vía web y mail. Deberá soportar los navegadores de la familia Mozilla e Internet Explorer.
    • Ser segura, con el cumplimiento de los distintos objetivos de la seguridad.
    • Ser utilizable. Cualquier usuario que sepa lo que hace deberá poder emplearla.
    • Soportar la petición de certificados mediante dispositivos, por ejemplo el clauer.
    • Opcionalmente, realizar la firma en diferido (recomendable si se opta por realizar el trabajo de las AC).
    Una vez finalizada, el profesor la revisará y propondrá correciones, que deberán realizarse (aunque sea en las sesiones siguientes) para que la práctica se dé por concluida.

Trabajos.

Se iniciarán en las 5 sesiones de prácticas restantes y se terminarán por libre. Los trabajos se entregarán con la debida documantación. Fechas límite de entrega:
  • Convocatoria de Febrero: 1 de Marzo.
  • Convocatoria de Septiembre: 10 de Julio.
Pueden sugerirse temas al profesor. Los temas inicialmente propuestos son:
  1. Continuación AC.

    La AC de sólo email podrá extnderse de diversas formas:
    • Incluir certificados SSL express, cuya emisión se autoriza por un email al/del propietario del dominio de segundo orden (que figura en el whois) al que pertenece el servidor subscriptor.
    • Extender la AC de las prácticas para que permita certificados personales y hacerlo según los modos descritos en http://clauer.nisu.org/clCA.

  2. Firma ciega.

    Implementar la firma ciega de Chaum. Deberá implementarse un cliente y un servidor. El cliente remitirá cualquier tipo de mensaje y el servidor lo devolverá firmado. Puede realizarse mediante openssl o cryptoapi.

  3. Compartición de secretos.

    Implementar el método de Shamir (LaGrange) para conseguir un esquema m,n que permita compartir cualquier mensaje. Puede realizarse mediante openssl o cryptoapi.

  4. Lanzar una moneda.

    Implementar dos de los sistemas de lanzar una moneda. La comunicación entre ambos participantes deberá ser mediante SSL. Puede realizarse mediante openssl o cryptoapi.

  5. Clauer - javascript.

    Hacer que estén disponibles en javascript para Mozilla funciones de interacción con el clauer, similares a las disponibles en Internet Explorer. Este trabajo se desarrollará en colaboración con elequipo dedesarrollo del clauer.

  6. SMIME.

    Construye una página web que permita enviar correo SMIME firmado desde cualquier navegador moderno:
    1. Si es firefox usará las funciones internas de Firefox.
    2. Si es explorer usará CAPICOM si está instalado.
    3. Resto de navegadores, usando java y uji-cryptoapplet.

Bibliografía.

  • Bruce Schneier
    Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C
    John Wiley & Sons, Inc.
  • Justo Carracedo Gallardo
    Seguridad en redes telemáticas
  • Microsoft Corporation
    Microsoft CryptoAPI v. 2: Application Programmer’s Guide and Reference
    Microsoft Press, 1996
  • Alunmos cursos anteriores

Temas relacionados.

Select Style - Legal