JMixNetJMixNet é uma implementação em Java das chamadas Rede de Mistura de Chaum (em inglês MixNet). Ela é uma rede de comunicação anônima, projetada para prover anonimato em transferências de dados entre usuários da Internet. Esta implementação tem alta latência, e pode ser integrada em qualquer sistema que tenha requisitos de anonimato. A JMixNet está sendo desenvolvida pelo Laboratório de Segurança em Computação (www.labsec.ufsc.br) da Universidade Federal de Santa Catarina (www.ufsc.br). DescriçãoA JMixNet utiliza a linguagem Java para implementar uma rede de comunicação anônima. Para isto,
estão sendo usados alguns pacotes: Java NIO, Java SSL, e a Java Reflection API. Este projeto não
utiliza banco de dados, e pode ser utilizado em qualquer SO que suporte o Java 1.4. DesenvolvimentoAtualmente o projeto pode apenas enviar mensagens anônimas, principalmente para uso em sistemas de votação digital. Há um protótipo operacional, cujo código fonte pode ser obtido para executar a rede de mistura. Como executarO primeiro passo para executar a rede de mistura é estabelecer uma PKI simples, na qual cada servidor deve ter um certificado assinado pela Autoridade Certificadora da JMixNet. O nome comum ( campo CN) do certificado deve ser o endereço IP do servidor. Para criar a Autoridade Certificadora da JMixNet você deve:
Para gerar os certificados de servidor (repita estes passos para cada servidor) você deve:
O próximo passo é definir o arquivo de configuração da JMixNet (jmixnet.cfg).
Este arquivo deve conter ao menos uma propriedade, a cadeia (chain) de servidores: Para executar a rede você precisa iniciar os servidores em ordem reversa, ou seja, iniciar o primeiro servidor, então o anterior, e assim por diante. O primeiro servidor da cadeia será o último a ser iniciado. Como arquivo keystore padrão, a JMixNet usa o nome "JMixNetServer.keystore", e "jmixnet" como senha padrão do keystore. Para definir valores diferentes você pode usar as propriedades de configuração keyStoreLocation e keyStorePassword no arquivo de configuração. Como o Java não dispões de muitos algoritmos criptográficos implementados no Cryptographic Service Provider padrão, nós sugerimos o uso de um provedor alternativo. Nós estamos usando o provedor do grupo Legion of The Bouncy Castle.
|