Eleições via internet com certificado digital

17 respostas
R

Bom galera o que acontece é o seguinte no meu tcc to querendo fazer uma aplicaçao de eleições via internet e eu tenho que aplicar o conceito de assinatura digital para garantir a segurança das informaçoes do eleitor e tudo mais e tal ?

To pensando em fazer em jsf so que eu nao sei como eh que a parte da assinatura digital vai entrar, como é que eu vou encriptar os dados assim que o eleitor apertar no botao submit do formulario ?

Alguem ai pode dar uma ajuda?

Desde já grato!!

17 Respostas

D

Eu acho que java possui um applet para que usuário coloque o seu certificado, mas de toda
forma seu sistema deverá valida dados dele, como validade e dependendo da cadeia de certificado que
vá adotar validar se o mesmo não consta na lista de revogação.

Acho que applet devolve para o servidor o conteúdo assinado.

E

Rafael Mathias:
Bom galera o que acontece é o seguinte no meu tcc to querendo fazer uma aplicaçao de eleições via internet e eu tenho que aplicar o conceito de assinatura digital para garantir a segurança das informaçoes do eleitor e tudo mais e tal ?

To pensando em fazer em jsf so que eu nao sei como eh que a parte da assinatura digital vai entrar, como é que eu vou encriptar os dados assim que o eleitor apertar no botao submit do formulario ?

Alguem ai pode dar uma ajuda?

Desde já grato!!

O modo clássico de usar certificados digitais em sites Web é o usado no site da Receita Federal. O usuário instala um certificado no browser (ou então usa um smartcard) e então as informações são criptografadas usando-se SSL (o site, obviamente, é HTTPS).

A informação do certificado do usuário é recebida em um dos headers da requisição Web.

Não é preciso usar applets, nem nada.

Isso é tão manjado que caiu até em questão de concurso público, veja a resposta a uma das questões aqui:
http://www.cesgranrio.org.br/eventos/concursos/bacen0109_analista/pdf/padrao_resposta_analista_area_1.pdf - veja a resposta à questão 1.

Para mais informações:
http://www.iti.gov.br/twiki/bin/view/Main/WebHome

R

Eu cheguei a pensar nisso so que queria que a minha aplicaçao fosse como os sites de banco hoje em dia!!

Mesmo assim muito obrigado Daniel.F

Alguem tem mais alguma ideia!??

D

entanglement ,

Você sabe se é possível assinar uma arquivo com o certificado apenas com as informações do header do browser?

E

Os sites de banco são mais frágeis (embora façam muito barulho a respeito da segurança) que o site da Receita Federal.

É que eles não fazem isso porque exigiria a implantação de uma infraestrutura de certificação digital que é bem mais cara que aqueles programas que eles dizem que são soluções moderníssimas de segurança, mas na verdade estão lá só para transferir a culpa ao cliente. Veja a quantidade de fraudes que ainda ocorrem nos sites dos bancos.

E

Daniel.F:
entanglement ,

Você sabe se é possível assinar uma arquivo com o certificado apenas com as informações do header do browser?

Bom, assinar arquivos digitalmente irá requerer um programa separado (para evitar problemas, eu recomendaria não uma applet, que tem muitos problemas de deployment, mas uma aplicação Java Web Start).
A informação de header do browser serve para identificar o usuário logado, que é o suficiente para votação digital - em votação digital, é suficiente identificar o usuário; não é preciso fazê-lo assinar nada separadamente. Em termos criptográficos, a conexão SSL já requer uma assinatura digital para funcionar se você habilitar o modo “Client Certificate” no web server.

R

Entao como tu mesmo falou entanglement usar da forma como falastes ficaria muito caro, ate porque é um tcc to vendo que o jeito e usar applet mesmo… =/

E

Rafael, já vi que você não fez sua lição de casa quanto à teoria de votação digital.

Você precisa pesquisar um pouco mais, porque você está na verdade fazendo como o governo brasileiro (identificando cada usuário que está votando e provavelmente associando cada usuário ao voto, o que é algo condenável (embora eu não possa provar ou desprovar isso) se estiver acontecendo). Isso quer dizer que o votante não tem o sigilo de seu voto preservado.

O correto, em termos teóricos, é você apenas conceder acesso ao votante (até aí o certificado digital está OK), ver se ele já votou (até aí também está OK), mas você tem de criar um mecanismo que permita manter o sigilo do votante (e aí você precisa pesquisar um pouco mais). Esse mecanismo de você registrar o voto sem associá-lo ao votante é que é um pouco complexo de entender.

R

Realemente entanglement eu me expresso mal na verdade quando eu falo assinatura digital me refiro a certificado digital como dissestes realmente nao é necessario que o eleitor assine nada. Foi um engano meu ao escrever assinatura!!

E

Não é caro nem complicado coisa nenhuma. Eu digo que é caro para um banco, no sentido que ele precisa criar uma autoridade certificadora, e no Brasil manter isso é muito caro porque o governo exige que ela seja mantida dentro de uma sala-cofre (já visitei uma sala dessas, eu digo que é impressionante) e que várias outras coisas sejam feitas. Além disso, o help desk para isso não é trivial.

Mas no seu caso (em que não há valores monetários envolvidos) sai de graça.

Usando um software como o EJBCA, você pode emitir um certificado para cada votante, que é de graça, porque esse software é opensource.

Basta o votante entrar numa página Web (talvez com uma senha que você tenha passado para ele via email, digamos) e nessa página ele pode receber o certificado e pô-lo dentro do browser.

http://www.ejbca.org/

O Applet eu acho que é mais complicado.

E

Vou dar um exemplo. Digamos que sua base não tenha uma chave estrangeira que relacione o votante ao voto.
Até aí parece que o sigilo está preservado.
Entretanto, se você registrar a o horário em que cada votante fez seu voto, e cada voto também tiver seu horário registrado, aí de forma indireta você pode correlacionar o votante ao seu voto. Mesmo se não registrar o horário, mas a sequência de inserção dos registros de voto e da presença dos votantes conseguir ser obtida, você consegue de alguma forma relacionar as coisas.
Isso é uma malandragem que pode ser feita e passa batida em uma auditoria mais ingênua.

R

Humm… vou dar uma olhada no software que vc mencionou entanglement, eu comecei agora a pesquisar sobre o assunto e ainda nao estou muito familiarizado de como sao feitos os softwares que utilizam tal tecnologia…

Mas realmente muito obrigado, foi de grande ajuda!!

Qualquer coisa volto a postar aqui!!

=]

E

Ou seja,

http://www.ejbca.org/userguide.html#Create%20User%20certificates

R

entanglement cara tem como tu me add no msn pra conversarmos mellhor??

E

Não tenho msn (por incrível que pareça.). De qualquer maneira, acho que as coisas que são importantes para você devem ser importantes para todos.

R

entanglement o funcionamento da ejbca é mais ou menso assim? ele cria tipo autoridade certificadora que vai gerar os certificados com as chaves publicas e privadas, esse certificado é entao instalado no browser, mas como isso eh feito ?

Tens algum material que mostre do começo como tudo funciona ??

Obrigado!!

E

O EJBCA é um software que você instala como uma aplicação web (requer o JBoss 4.2 ou superior), e serve, entre outras coisas, para emitir certificados, conforme você mesmo disse.

O material é o próprio site, que é muito bem explicado (problemas com a língua inglesa favor consultar o Google Translator :slight_smile: ), mas se você instalar o EJBCA e seguir o tutorial vai ver direitinho como é que, acessando uma das páginas do EJBCA, é possível solicitar e instalar um certificado no browser.

O processo é exatamente o mesmo que é feito por uma autoridade certificadora como a Verisign ou a Certisign: o cliente entra no site, preenche um formulário, submete uma requisição (que será avaliada por um administrador do site), e depois retorna ao site quando o administrador disser que o certificado está aprovado e pronto para ser baixado. (Obviamente você tem a opção de emitir automaticamente, o que deve ser feito apenas para testes internos, já que a segurança nesse caso é zero - imagine uma mesma pessoa solicitando 1000 certificados, o que é possível no modo automático: ela poderia votar 1000 vezes).

Criado 21 de outubro de 2010
Ultima resposta 22 de out. de 2010
Respostas 17
Participantes 3