Skip to topic | Skip to bottom
www.postcogito.org
          ...sine propero notiones
Kiko
Você está aqui: Kiko > SoftwareEUtilitarios > ProgramaShareSec Imprimível | fim do tópico


Start of topic | Skip to actions
English Version

O Programa ShareSec

Reparte um segredo gerado pelo computador ou escolhido pelo usuário em m partes das quais n serão posteriormente necessárias para reavê-lo. Útil como contingência quando o dono primário do segredo fica indisponível.

Cenário de Uso

Imagine que seus empregados, preocupados com a segurança como são, cifram todo material sensível em seus computadores. Na noite anterior a uma importante licitação, o cara que preparou a proposta é atropelado por um caminhão. Os médicos dizem que ele vai viver, mas não vai acordar nem tão cedo. Você poderia perder a licitação porque seu esquema de cifragem é tão seguro que você não tem como destravar os arquivos do moribundo.

Com efeito, essa é uma das razões pelas quais muitas empresas não usam criptografia -- ela é segura demais: tanto que não provê, naturalmente e por si própria, um plano B para situações como essa.

O programa sharesec provê uma solução para esse caso na forma de uma "caução compartilhada de chaves": quando você inventa ou gera uma frase-senha, ela é dividida em várias partes que você distribui entre as pessoas em que você mais ou menos confia. Se você ficar indisponível, uma certa quantidade delas pode concordar em usar suas partições para reconstruir sua frase-senha.

No nosso exemplo, seu empregado teria diligentemente repartido a chave de criptografia e entregue as partições para, digamos, seu chefe e colegas de trabalho. Ao ouvirem a má notícia, alguns deles decidiriam, por acordo mútuo, que a situação é séria o bastante para requerer a reconstrução da chave, de forma a obterem acesso aos arquivos e poderem participar da licitação.

Por que não simplesmente fazer com que o empregado desse uma cópia da frase-senha dele para o patrão? Porque isso o capacitaria a ler os dados do empregado a qualquer momento, sem informar nem pedir licença a ninguém -- um chamariz para abusos. Repartindo a frase-senha em vários pedaços, precisa-se de quorum mínimo para isso.

O sharesec resolve dois outros problemas:

  • Para evitar que os usuários escolham senhas fracas, o sharesec incorpora um gerador aleatório de senhas. Ele representa a senha como várias palavras curtas para torná-las menos difíceis de decorar e digitar. Quando usado em modo interativo, o programa mostra várias sugestões e permite que o usuário escolha aquela que ache mais fácil de lembrar.
  • O sharesec pode emitir seus resultados já na forma de mensagens cifradas pelo PGP para os respectivos detentores de partições. Dessa forma, depois que o usuário tiver escolhido sua frase-senha, nenhuma informação sensível aparece na tela.

Exemplos de Uso

Gerando e repartindo um segredo em três partições cifradas

Imagine que o Sr. Fulano de Tal acaba de entrar na empresa e é hora de preparar seu volume cifrado. Para gerar a frase-senha, ele executa o sharesec na máquina dele, como mostrado no exemplo abaixo, onde especificamos que a frase-senha seja partida em três partições e que sejam necessários pelo menos dois para reconstruí-la.

$ sharesec -t 2 -n 3 -w johndoe -g diceware::pt-br -i -r kiko,evandro,lincoln

Choose: below we have 6 passphrase suggestions (more if you think of columns
------- instead of just rows). Choose one you find the easiest to memorize:

   1: dois raio cola bege nino pong
   2: urso lima zeca peca cole suga
   3: eram aura mero crua irei caca
   4: popa nora homo puxe povo pios
   5: tutu teor nono quis pule nada
   6: asas emas tesa bela sova roca

 Tip: take your time. Don't try to choose in a hurry.

-- Press ENTER when ready to practice or any other key for more suggestions --

Attempt 1/3 -- New passphrase: [     OK    ] (... o usuário digita corretamente uma das senhas acima ...)

Attempt 2/3 -- New passphrase: [     OK    ] (... de novo ...)

Attempt 3/3 -- New passphrase: [     OK    ] (... outra vez ...)

Using a 232 bit security level.
Using '/home/kiko/.gnupg/pubring.gpg'
-----BEGIN PGP MESSAGE-----
Version: sharesec-0.8.1
Comment: fulano-1/3 to kiko on 2007-04-03

wcFOA1QoVsH6jef9EAgA4FTIcaQpfELdWMOzqSxXv3zCORI/M7nTIv83pWVwATaF
4FKHeqNTrY0elZokMZQm8IaP7SttieUeottYAVZgbvW8bJpPBgzlTpHclfwvyyt+
4Y3wb3d/CqHmvbdWQY5TJtl85BjmQfs788RoR4lNnUgARtROhBlXmuE00812UEp+
skccfuHW1KkQf5ugcTKnMKYAFEIH9ku8m+nROjO6gkrQTnLhKs34/wxNBnLNEiaU
2QVWfACdNtNzsz5FSW1pE1uk7F8gZi/j8kk/F2Lhq+l2WxLI+KDoFgO4/GJG9Ar9
po5FcrUlYg9tkwxNNIxQUg0qFE6rnoa/fcdAdiSxUggA0rL/Bmo3TPFZQyIHdyGl
+6hUupPGePYX1jsnCkBT800RpSDVSo2CrgnB4/oRo4hWYzg9YQBBlZIZrC743s/J
vKVDp5CQcRWhr9tKWFb9L8qhVo6enEuwMhRx8Qk4nA1BN/NnxilpvwugbIX3cuNp
k3YyxBWMDX/dqP6CEH2yPeAbRqEPU/ukz/LWvSXdzZukGpGfHwnRHeHhbEHCVLxZ
3mrEwyaG1PJWSdiNt75BloLZ/SQJMW3D25NqP9Fu8D7rkO0+cQhhBCWKowLL0qWf
GXvu+wFMjtCfc3Vu1NWH4ZBFGt63M3tFDMRRuh1jgqQlkxoVPYOOikOm1CUk4Pxx
JMlXJLCAQNUbmcJNDp2Qyeq8esBs0aEOWh698zLG/UyIJms7XFarxM+L1rr7P3UU
7fgaZnO+fWP3wAcl8EdVaWWXSGuwrPyIKSimf0VGn1otcGhSEdc72ejm
=hQBu
-----END PGP MESSAGE-----

-----BEGIN PGP MESSAGE-----
Version: sharesec-0.8.1
Comment: fulano-2/3 to evandro on 2007-04-03

wcFOA9623ev/bXs/EAf7BssYgLjEfBxcgBxV1xZje+5TsjcgFEaqub64BxpAPpSc
KsPKIm/MMbZAAz7Jc4MYiZCO2tP4XyLsVWExB/HXKI45oqfwluw2hFAKhxqGO72a
2INqaOT86ezi9MW1tX7ToGNgjvZGqq/3PjwCLgWJw+MB4jRctEkR9xGWq+sgg1Uk
0UPN7SpkChN3OoO+aH2oIxze4PQmgO4/vQ8xbEPwjxYfF7t20TC41gR8o5IJVT0L
vdrt6lvi4Bl9+p4asJenoVG1vhYYMEK0IXkhY+DL8AmMjJMk4666bMoLx+zurkf0
c1DFLfdiqTAx/e9eU7iIcFjDHX5Tx59si4luf72Z8ggA2hlDjAqrg5AmivG8f1Gi
ITcI7bfM9PLEdaXMx/BCST74G/OUmpNkXh0eSne/eRVOVqM1/eXzIQV++3v/or/C
81f3DGo1zvIgqjNmuzgVCkghcFOpfrnQM9p/Z/j19qb7IzTI1ENeFQPmJ9t4Uv9y
hBLm3AGHXhpR3uh9vfJ8ISFgAmQrr4cV3bJWjxHU/YYIBnK/7SbzdSST2Pyq3/HT
ew1ZCLh54O9NMKXUBP9jlzzI39BibMp7aWHMfgbjX9BkWo0xOoJyhN8gMmZJLD19
B8e2alfGJzTMhFx52qTMOANYj+V9G9qXobjCiAFCg9bHzajJua9qZVVmCK7l3RrZ
n8lXgvWCx8tIN9OZtZ4XraYiAYEQGS0J/KNpRK6gi8UA5eW1wswno9Bg4ypZSFtV
554417K8bpycp0z0HfiytC3jihQaSINGl/6IICvoR8Z1ayRyhVaFht9v
=f673
-----END PGP MESSAGE-----

-----BEGIN PGP MESSAGE-----
Version: sharesec-0.8.1
Comment: fulano-3/3 to lincoln on 2007-04-03

wcFOA2YpBGrW72eAEAf/VuejnAe5bWfbbkMb9qtWfOKrYs3lPOZCrKpQwLzMBIBG
BWQQ+kv9WscZy8SXQDO4uOlUuHEOLdAf2nwXpL3+JNSOqdJcfIR6kFb3nMCXIIEN
v+5xzv+jKnR1yGwutiR92G/p3jTKxRR4dnY3YGeo7l/0ULFTSkYwYV78KVuXsvZL
zSt3up/c/YGyFlZpOAmYPGvklkiWsswXSMwPcFO3yXq0/BKBTBzTBB8wCYoAqFoj
5V44CHmLmV+DDLDeoGLTxUtviUMgAujaIf8SYwiVgMZXvTVq1GImuzW9YNrOCJ1r
dUjNVhVSY1imBCywgECdZvkdCROlsffeX0dIvy/WXgf/aYL1E5Sq4QkWWGXMPfWa
Oe860uHQLp6bvAlEaaCHKczfH0TgRRMeo/DxsCh6V6BdUq2byO4Efa3ZPiNXGFBv
iTnqWStxo1NQOwcdSLx3ln98+Agsp+VysVPdeKaX75q3UubeA39RVzYYI5kFjXEK
kTZSJV32AjdGD6ahBXZun4cumRPHG3ebC1bLC+dhuDpw/BA+awpdAzPCHy22MKsT
FqnOitD6nJ6JP6s92bLJmcuXJSGUHhOEub/Vyg6CqO+I3K9n16bk6Smtjz8/804Z
2hBnfJn+FqF88YiOkRyiH8ZchZssB6bGOtf0jd80ND6ml7aabUQVX4s2h/Lp3k0M
8slXZ8duBuYWGWXKazEevXhUqG2FSZCNTcIILy454iEidSmDkmDpYYyf4IN9roNd
nL3bg9mblD5DRoycVX8QGnJsKy57w0OBNwhrZhcrRONBs6YFVZY1IMZn
=fcfj
-----END PGP MESSAGE-----

Ele então envia essas mensagens PGP via correio eletrônico para cada detentor.

Reavendo a frase-senha

Agora suponha que o Fulano está de férias na Chapada Diamantina, bem longe da cobertura celular e de qualquer tipo de conectividade. O departamento comercial então avisa que precisam urgente de um arquivo dele. Após convencerem a mim e algum outro detentor (Evandro, digamos) que não tem outro jeito, nós concordamos em recombinar nossas partições. Eu uso o meu PGP para decifrar a mensagem endereçada a mim, reavendo a partição; e Evandro faz o mesmo. Depois é só inserir as partições no sharesec, tal como mostrado abaixo:

# sharesec -t 2
Enter 2 shares separated by newlines:
Share [1/2]: fulano-1/3-A299108721C5EA509BCA6E99CFE441BB752DAD5C9D48262ABD11718E87
    (... aqui o programa limpa a tela para que um detentor não veja a partição do outro ...)
Share [2/2]: fulano-2/3-3D699AAFE2518628145915445A2474A1F8BFA7BCF9B4BA80985383FDD3 
Resulting secret: dois raio cola bege nino pong

Outros Recursos

O sharesec também pode gerar frase-senha em batch ou aceitar segredos da sua própria escolha vindos da entrada padrão. Além disso, ele pode gerar partições sem cifrá-las.

Possíveis Próximos Passos

Os binários são muito maiores do que precisariam ser. O algoritmo de particionamento de segredos usa a GNU MP, ao passo que a parte de cifragem PGP usa a CryptLib, de sorte que acabamos com duas bibliotecas de aritmética de precisão arbitrária distintas. Talvez uma abordagem muito melhor fosse reescrever o programa inteiro para usar apenas ou a GMP ou a CryptLib. Ou poderíamos escrever uma biblioteca de cifragem PGP minimalista usando a OpenSSL e reescrever o particionamento de segredos para também usar a OpenSSL. (Tom Zerucha escreveu uma PGP baseada no OpenSSL, mas eu não consegui colocá-la para funcionar... mas talvez tenha sido porque eu não me esforcei muito, uma vez que fazer cifragem PGP com a CryptLib me pareceu tão mais fácil).

Mas eu duvido muito que eu tenha tempo para fazer nada disso. Feia como está, a solução atual funciona suficientemente bem para mim.

Créditos

O sharesec é baseado no utilitário ssss-0.5 original escrito por B. Poettering. Visite a página dele:

O sharesec e o ssss são compatíveis; você pode gerar as partições com um e reconstrui-las com o outro e vice-versa.

O sharesec usa o CryptLib Encryption Toolkit do Peter Gutmann.

Licença e Downloads

O sharesec é disponibilizado sob a GNU GPL v2.

Para Saber Mais


topo


Você está aqui: Kiko > SoftwareEUtilitarios > ProgramaShareSec

topo

Creative Commons License   O conteúdo deste site está disponibilizado nos termos de uma Licença Creative Commons, exceto onde dito em contrário.
  The content of this site is made available under the terms of a Creative Commons License, except where otherwise noted.