Modèles de partage
Dans Secrecy, partager, c'est transmettre une clé. Une donnée n'étant lisible qu'avec sa clé de donnée, donner accès à quelqu'un revient toujours à lui rendre cette clé accessible — la seule question est avec quoi la clé est verrouillée. Il y a trois réponses, selon qui est l'autre partie et dans quel sens circulent les données.
| Partage | Lien | Anonyme | |
|---|---|---|---|
| L'autre partie | Un utilisateur ou un groupe | N'importe qui, sans compte | N'importe qui, sans compte |
| Sens | Sortant, de vous vers lui | Sortant, de vous vers lui | Entrant, de lui vers vous |
| La clé est verrouillée par | Sa clé publique | Un mot de passe que vous choisissez | Votre clé publique |
| Il lui faut | Une identité dans votre app | Le lien et le mot de passe | Rien — seulement votre clé publique |
| Mettre fin à l'accès | Arrêter le partage, par personne | Laisser le lien expirer, ou le supprimer | Sans objet : c'est vous qui détenez la donnée |
Partage
Un partage donne à une identité l'accès à un fichier ou à un dossier : un utilisateur de votre application, ou un groupe. Le SDK prend la clé de donnée et la verrouille à nouveau avec la clé publique du destinataire, qui l'ouvre ensuite avec sa propre clé privée, depuis son propre client. Partager avec un groupe verrouille la clé une seule fois, pour le groupe, et chaque membre peut l'ouvrir. Le destinataire est désigné par sa clé publique, et non par son identifiant : secrecyClient.app.userPublicKey permet de passer de l'un à l'autre, et renvoie la clé de l'utilisateur dans votre application.
Un partage porte aussi des droits : ce que le destinataire peut faire du nœud (lire, modifier, supprimer), et s'il peut à son tour le partager ou retirer des accès. L'accès peut être repris à tout moment.
Le mail fonctionne de la même façon : un mail est chiffré avec la clé publique de chaque destinataire. Un destinataire qui ne s'est pas encore connecté à votre application n'y a pas d'identité, donc pas de clé publique vers laquelle chiffrer : c'est pourquoi son mail est mis en attente jusqu'à ce qu'il le fasse.
Voir partager des fichiers et dossiers et arrêter un partage.
Lien
Un lien envoie des données à quelqu'un qui n'a pas de compte Secrecy, et dont vous ne pouvez donc pas utiliser la clé publique. La clé de donnée est alors verrouillée par un mot de passe que vous choisissez, et la clé verrouillée voyage avec le lien.
Le lien seul n'ouvre rien : le destinataire a aussi besoin du mot de passe, que vous lui transmettez par un canal séparé. Secrecy ne transmet jamais le mot de passe à votre place. Le destinataire télécharge et déchiffre la donnée dans son navigateur, avec une fonction autonome qui ne demande pas de client.
Un lien est révocable : donnez-lui une date d'expiration, ou supprimez-le pour couper l'accès immédiatement. Supprimer le lien laisse la donnée en place.
Voir transfert.
Anonyme
Le chiffrement anonyme est l'image inversée du lien : les données circulent vers vous, depuis quelqu'un qui n'a pas de compte. Vous publiez votre clé publique — celle de votre identité dans votre application ; le visiteur chiffre pour elle dans son propre navigateur, avec une fonction autonome, et seul votre client peut déchiffrer le résultat.
Le visiteur chiffre avec une paire de clés jetable, supprimée aussitôt : le texte chiffré ne porte donc aucune identité d'expéditeur, et le visiteur ne peut pas déchiffrer ce qu'il a envoyé. La donnée chiffrée est une simple suite d'octets que vous stockez, dans votre propre base de données par exemple.
Voir chiffrement anonyme.