sincronizando um chaveiro do GNOME em dispositivos com o Ubuntu One

6

Eu escrevi um aplicativo que cria e usa seu próprio chaveiro. Eu gostaria de ter esse chaveiro com atributos de segredos e todos sincronizar via U1 para que as mesmas senhas estejam disponíveis em todos os dispositivos Linux.

  1. Como você determina se o U1 está configurado em um sistema de usuários?
  2. O U1 fornece alguma opção para sincronizar o chaveiro de usuários? Se não, qual seria a abordagem programática preferida?
  3. Quais considerações especiais ao usar o U1 devem ser levadas em conta para garantir a segurança? Existe algum, ou isso é algo mais deixado para o desenvolvedor que está conectando com o U1?

link

Estou procurando documentação oficial ou ponteiros que abordem as perguntas acima.

    
por Jim Pharis 22.02.2012 / 23:10

2 respostas

4

OK. Seu keyring (s) são armazenados em $ HOME / .gnome2 / keyrings.

Assim, a maneira óbvia de sincronizar seus keyrings em máquinas é ... apenas marque essa pasta como uma pasta sincronizada com o U1. Nenhuma API necessária!

Isso, é claro, sincronizará todos seus keyrings, o que eu acredito que você não queira fazer. Então, o próximo passo é este:

  1. crie seu chaveiro, que estará em seu próprio arquivo, ~/.gnome2/keyrings/yourkeyring.keyring
  2. Crie uma pasta em algum lugar para seu aplicativo - ~/.local/share/yourapp/keyrings maybe
  3. mova ~/.gnome2/keyrings/yourkeyring.keyring para ~/.local/share/yourapp/keyrings
  4. coloque um symlink em ~/.gnome2/keyrings/ apontando para ~/.local/share/yourapp/keyrings/yourkeyring.keyring
  5. Marque ~/.local/share/yourapp/keyrings como uma pasta sincronizada com o Ubuntu One.

Isso deve fazer o que você quiser! Conforme observado pelo RAOF, o arquivo do conjunto de chaves é criptografado, portanto, sincronizá-lo com o U1 não representa risco de segurança. Nenhuma API necessária.

Se você quiser fazer isso programaticamente - ou seja, seu aplicativo tem a caixa de seleção "Sincronizar meu chaveiro do aplicativo", que ativa e desativa esse recurso -, você precisará, é claro, para detectar o U1 e levar o usuário a se inscrever se quiser sincronizar, mas ainda não tem uma conta do U1. Para isso, use, do Python, ubuntuone.platform.tools.SyncDaemonTool que lhe dá controle total sobre o syncdaemon do Ubuntu One.

    
por sil 28.02.2012 / 12:18
2

Não posso dar uma resposta completa - não estou familiarizado com todas as partes disso. Algumas dessas respostas dependem dos detalhes atuais da implementação do Keyring do GNOME, portanto podem mudar (mas não mudaram por vários anos).

O UbuntuOne não tem (atualmente?) algum suporte específico para sincronizar chaveiros, infelizmente.

Se você estiver criando um chaveiro no chaveiro do GNOME, ele será armazenado em ~/.gnome2/keyrings/your_keyring_name.keyring . Se você está certo em confiar em detalhes de implementação de um keyring do GNOME, isso reduz o problema para "como eu posso sincronizar um único arquivo com o U1".

Aqui, posso apontar você para um post de blog de Stuart Langridge onde ele fala sobre quase exatamente esse problema. Particularmente, há uma API para arquivos U1 que tem ligações python . Deveria ser razoavelmente fácil adaptar seu Salve no Ubuntu One script para fazer o que você procura.

Não deve haver nada de especial que você precise fazer, em termos de segurança. Os arquivos são privados por padrão, portanto não são acessíveis a usuários aleatórios da Internet, e os arquivos de chaveiro são criptografados com a senha com a qual você os criou.

    
por RAOF 28.02.2012 / 05:43