web-dev-qa-db-fra.com

synchronisation d'un trousseau de clés GNOME sur plusieurs périphériques avec Ubuntu One

J'ai écrit une application qui crée et utilise son propre trousseau de clés. Je voudrais avoir ce trousseau de clés avec des attributs secrets et tout synchroniser via U1 afin que les mêmes mots de passe soient disponibles sur tous les périphériques Linux.

  1. Comment déterminez-vous si U1 est configuré sur un système utilisateur?
  2. U1 fournit-il une option pour la synchronisation du trousseau d'utilisateurs? Sinon, quelle serait l'approche programmatique préférée?
  3. Quelles sont les considérations spéciales à prendre en compte lors de l’utilisation de U1 pour assurer la sécurité? Y at-il, ou est-ce quelque chose de plus laissé au développeur lié à U1?

http://binbrain.github.com/OpenSesame/

Je cherche des documents officiels ou des indications sur les questions ci-dessus.

6
Jim Pharis

D'ACCORD. Votre/vos porte-clés sont stockés dans $ HOME/.gnome2/porte-clés.

Ainsi, le moyen évident de synchroniser vos trousseaux de clés sur plusieurs ordinateurs est ... il suffit de marquer ce dossier comme un dossier synchronisé avec U1. Aucune API requise!

Cela va, bien sûr, synchroniser tous vos trousseaux de clés, ce que je ne pense pas que vous souhaitiez faire. Donc, la prochaine étape est la suivante:

  1. créez votre trousseau de clés, qui sera dans son propre fichier, ~/.gnome2/keyrings/yourkeyring.keyring
  2. Créez un dossier quelque part pour votre application - ~/.local/share/yourapp/keyrings peut-être
  3. déplacez ~/.gnome2/keyrings/yourkeyring.keyring vers ~/.local/share/yourapp/keyrings
  4. placer un lien symbolique dans ~/.gnome2/keyrings/ pointant vers ~/.local/share/yourapp/keyrings/yourkeyring.keyring
  5. Marquez ~/.local/share/yourapp/keyrings comme un dossier synchronisé avec Ubuntu One.

Cela devrait faire ce que vous voulez! Comme indiqué par RAOF, le fichier de clés est chiffré. Par conséquent, sa synchronisation sur U1 ne présente aucun risque pour la sécurité. Aucune API requise.

Si vous voulez faire cela par programme - votre application dispose d'une case à cocher "Synchroniser le trousseau de mon application" qui active et désactive cette fonctionnalité - vous devrez bien entendu détecter U1 , et guider l'utilisateur lors de l'inscription s'il souhaite se synchroniser mais qu'il n'a pas encore de compte U1. Pour cela, utilisez, depuis Python, ubuntuone.platform.tools.SyncDaemonTool, qui vous donne le contrôle total sur Ubuntu One Syncdaemon.

5
sil

Je ne peux pas donner une réponse complète - je ne connais pas tous les aspects de cette question. Une partie de cette réponse dépend des détails de la mise en œuvre actuelle de GNOME Keyring, elle peut donc changer (mais pas depuis un certain nombre d'années).

UbuntuOne n’a pas (actuellement?) De support spécifique pour la synchronisation des trousseaux de clés, malheureusement.

Si vous créez un trousseau de clés dans le trousseau GNOME, il est stocké dans ~/.gnome2/keyrings/your_keyring_name.keyring. Si vous acceptez de vous fier aux détails de l'implémentation du trousseau GNOME, cela réduit le problème à "comment synchroniser un seul fichier avec U1".

Ici, je peux vous indiquer n blog de Stuart Langridge où il parle presque exactement de ce problème. En particulier, il y a un API pour les fichiers U1 qui a liaisons python . Il doit être assez facile d'adapter son script Enregistrer dans Ubuntu One pour faire ce que vous voulez.

Vous ne devriez rien faire de particulier à faire, du point de vue de la sécurité. Les fichiers sont privés par défaut, ils ne sont donc pas facilement accessibles par des utilisateurs Internet aléatoires, et les fichiers de clés sont chiffrés avec le mot de passe avec lequel vous l'avez créé.

2
RAOF