Mini-Projecto Prático

Descrevem-se os projectos práticos da disciplina de Criptografia do Mestrado Integrado em Engenharia Biomédica. As componentes aplicacionais do trabalho deverão ser desenvolvidas em Java, fazendo uso da framework JCA/JCE. Os grupos são incentivados a fazerem uso dos programas de exemplo que tem vindo a ser desenvolvidos nas aulas teórico-práticas da disciplina. A data limite para a entrega do trabalho é 5 de Janeiro de 2009, devendo este ser enviado por email para o docente da disciplina, acompanhado por um relatório que documente as opções tomadas ao longo do seu desenvolvimento. A defesa do trabalho terá lugar no dia 9 de Janeiro de 2009, durante o horário lectivo da disciplina (10:00 - 13:00).


Projecto 1

O objectivo deste trabalho consiste em desenvolver uma aplicação de conversação (chat) segura. O cenário considerado é uma organização contendo um conjunto bem definido de utilizadores (e.g. departamento de uma empresa). Em termos da arquitectura do sistema, consideram-se as seguintes componentes:

  • Servidor: aplicação Java responsável por disponibilizar o serviço de chat;
  • Cliente: aplicação Java que possibilita o acesso dos utilizadores ao sistema;
  • CA: autoridade de certificação responsável pela emição dos certificados requeridos para o funcionamento das aplicações.
Em termos de funcionalidade, sugere-se:
  • A identidade dos utilizadores deverá ser assegurada por intermédio da utilização de certificados X509. A emissão dos certificados necessários é parte integrante do projecto. No entanto, não se impõe que essa componente seja realizada por uma aplicação Java desenvolvida especificamente para esse fim — pode-se fazer uso de ferramentas de domínio público como o openssl.
  • Um utilizador acede ao sistema através da aplicação cliente. Após apresentar as credenciais requeridas, terá acesso à “sala de conversação” onde poderá comunicar de forma segura com os utilizadores que se encontrem on-line.
  • (opcional) Construção de uma interface gráfica simples para os clientes.
  • (opcional) Um utilizador ligado ao sistema pode ainda solicitar uma conversação privada com um outro utilizador também disponível on-line. Nesse caso, e se o parceiro aceitar a comunicação, é estabelecida uma ligação segura entre eles.
  • (opcional) Deverá ser ainda possível a um utilizador enviar mensagens para serem lidas off-line por outros utilizadores. O servidor deverá assim gerir “caixas de correio” onde armazena as mensagens até que os destinatários se liguem ao sistema.

Em todas a comunicações estabelecidas deverão ser adoptados os requisitos de segurança sempre na perspectiva mais conservadora (e.g. um utilizador legítimo, se não estiver on-line, não deverá ser capaz de interceptar o conteúdo das mensagens trocadas na sala de conversação). A identificação clara dos requisitos de segurançaa, assim como escolhas fundamentada das técnicas criptográficas utilizadas, será dos aspectos mais valorizados na avaliação do trabalho.

Projecto 2

O objectivo deste projecto consiste em complementar o projecto desenvolvido no âmbito da disciplina de Sistemas Distribuídos para incorporar aspectos de segurança nos canais de comunicação envolvidos e no acesso aos recursos. Em particular, pretende-se

  • Utilizar o protocolo SSL em modo de autenticação mútua para os canais de comunicação:
    • Cliente(s) ↔ Servidor
    • Servidor ↔ motor de base de dados
  • A autenticação das várias entidades envolvidas deverá fazer uso de certificados X509. A emissão dos certificados necessários é parte integrante do projecto. No entanto, não se impõe que essa componente seja realizada por uma aplicação Java desenvolvida especificamente para esse fim — pode-se fazer uso de ferramentas de domínio público como o openssl.
  • (opcional) Construção de uma interface gráfica simples baseada em applets.
  • (opcional) Configuração de um servidor Web (onde se disponibiliza a applet) cujo controlo de acessos é regulado pelos mesmos certificados da aplicação.
  • (opcional) Avaliar como é que o(s) mecanismo(s) de autenticação do motor de base de dados se podem associar à autenticação com certificados X509 utilizados na comunicação X509.

Em todas a comunicações estabelecidas deverão ser adoptados os requisitos de segurança sempre na perspectiva mais conservadora. A identificação clara dos requisitos de segurançaa, assim como escolhas fundamentada das técnicas criptográficas utilizadas, será dos aspectos mais valorizados na avaliação do trabalho.