Multi-entité et suppression d’objet

A l’origine, le projet nebule s’appliquait à des entités autonomes. C’est à dire que les entités fonctionnaient localement dans un environnement réservé et ne dépendaient pas d’une entité maître.
Cependant, ces deux points ne sont plus assurés. Le cas du projet sylabe montre que de multiples entités peuvent coexister sur un serveur et surtout dans le même environnement. Ce pourrait être le cas aussi dans une famille qui utilise le même ordinateur, et donc le même environnement. La sûreté de fonctionnement veut que les objets publiques soient partagés pour économiser des ressources, et que les objets protégés ne soient à aucun moment disponibles aux entités qui n’ont pas la clé de déchiffrement.
De plus, pour assurer des transferts anonymisés, il est nécessaire de créer des entités dédiées à ce rôle. Ces entités ne doivent pas avoir de lien avec la véritable entité d’un utilisateur. Mais cet utilisateur doit pouvoir gérer ces entités esclaves et notamment détenir les mots de passe de celles-ci. Il se crée donc une petite hiérarchie d’entités. Il reste à assurer la non-liaison entre l’entité maître et les entités esclaves. Il faut penser que ce lien peut être remonté par les liens de type l, f, u, k, et e… sauf à les chiffrer…
A voir.

Suite à la réflexion sur le nettoyage des liens, et suite, l’expérience de sylabe montre que la suppression des objets en environnement partagé n’est pas évident. En effet, si je décide de supprimer un objet et un certain nombre de liens affairant, que ce passe-t-il ?
Pour les liens, ce n’est pas grave puisque ce sont mes liens. Les autres entités sont sensées disposer de leurs propres liens.
Pour l’objet, peut-être qu’une autre entité s’en sert aussi. Le supprimer sans concertation n’est pas la bonne méthode. Demander une concertation est inimaginable, surtout si certaines entités effectivement disponibles sur un serveur ne sont en fait plus utilisées.
Il se pose une question sur l’appartenance de l’objet. On pourrait très bien supprimer un objet du serveur, si une autre entité en a besoin elle le synchronisera simplement ailleurs et du coup il réapparaîtra sur le serveur. C’est aussi potentiellement un déni de disponibilité si cet objet n’est présent que sur ce serveur ou si on arrive à demander simultanément la suppression sur tous les serveurs hébergeant cet objet. D’après la théorie, un objet n’appartient à personne contrairement aux liens.

La suppression d’un objet qui pose un vrai problème de sécurité ou de droit d’utilisation dans un pays peut être géré de façon exceptionnelle. L’entité à qui appartient le serveur peut se voir disposer du pouvoir de suppression améliorée d’objets sur son serveur ainsi que la possibilité de le placer en liste de bannissement. Il faut de toute façon mettre en place la gestion de la liste de bannissement de l’entité cerberus : nebule/danger.

PRISM off

Les révélations de Edward Snowden ont fait l’effet d’un ouragan… dans un verre d’eau. Tous les journaux se sont indignés. Beaucoup de gens se sont inquiétés. Quelques uns ont changé leurs pratiques. Peu ont fait quelque chose pour que la situation ne se reproduise pas.

Il ne faut pas se leurrer. Ce que fait la NSA est certes très avancé, mais d’autres pays sont sûrement proches dans la sophistication du dépouillement de la vie privée des gens, des entreprises et des gouvernements. La situation particulière des USA tient en sa concentration de grandes sociétés des technologies de l’information. Il y a aussi la grande concentration d’arrivée de câbles sous-marins. Sur ce dernier point, son alliance avec la Grande Bretagne (et peut-être d’autres) amplifie encore plus le pouvoir de journalisation de l’Internet détenu par la NSA. Mais d’autres pays sont à même de scruter une part non négligeable du réseau même si c’est dans une moindre mesure. Et pour l’accès aux données utilisateurs détenues par les sociétés des technologies de l’information, si c’est plus facile de simplement demander gentillement de poser un boîtier TAP dans une salle serveur (Google, Facebook, Twitter, Microsoft, Yahoo, Apple, etc), il est tout à fait envisageable de voler ces données à distance. Il faut dans tout les cas des moyens financiers et humains conséquents. Ces moyens sont à la porté d’une grande partie des états mais aussi de grands groupes industriels ou criminels.

La plupart des gens oublieront vite que la NSA peut s’intéresser à eux en dehors de tout cadre légal. Mais à ceux pour qui cela aura été un électrochoc, de nouvelles solutions sont en cours de développement pour palier à celles qui ont fermées préventivement (Lavabit et Silent Circle). Le mouvement de création de nouveaux outils semble d’assez faible ampleur. Il faut cependant compter que quand des développeurs mettront en place un nouveau système, ils penseront forcément à la NSA, c’est maintenant dans tous les esprits, dans l’air du temps. Rien ne sera plus comme avant.

On peut considérer que le projet nebule est maintenant dans ce mouvement même si il date d’avant les révélations de Edward Snowden.

Parmi la presse, il ressort plusieurs projets directement destinés à contrer la NSA et ses équivalents (liste non exhaustive) :

  1. Dark Mail Alliance : c’est un projet porté par les feux Lavabit et Silent Circle, donc des gens qui ont l’expérience et qui savent de quoi ils parlent.
  2. Bitmessage : c’est un projet, apparemment encore expérimental, de messagerie chiffrée, anonymisée et P2P. Il est porté par Jonathan Warren.
  3. Briar project : c’est un projet de Eleanor Saitta et Michael Rogers au sein de l’OpenITP. C’est ce qui s’approche le plus du projet nebule dans son concept.
  4. Cryptocat : c’est un logiciel de messagerie instantanée chiffrée créé par Nadim Kobeissi.
  5. Caliop : c’est un projet franco-français qui semble avancer en sous-marin et qui ne semble pas vouloir révolutionner ce qui existe.

CF : http://www.slate.fr/monde/79450/mission-reparer-votre-internet-casse-surveillance

Appartenance et/ou propriété – suite

Suite de Appartenance et/ou propriété.

En regardant le code de sylabe et notamment la façon dont on traduit les liens, on voit une énorme instruction switch pour trier les liens de type l. Ce tri est fait par rapport à l’objet méta. Les liens sans objet méta (càd égale à 0) apparaissent donc comme des exceptions qu’il faut gérer dans un autre sous switch.

D’un autre côté, les liens de type f sont triés plus naturellement par l’objet source. Cela n’a donc pas d’importance si l’objet méta est nul.

Donc, c’est un lien de type f qui sera maintenant à utiliser pour désigner un nÅ“ud. Cela devient un groupe à part entière.

Tous les liens de type l avec un objet méta nul sont marqués comme périmés. Il n’y a plus de moyen de désigner explicitement un objet comme ‘objet‘, ‘entité‘ ou ‘objet de suivi spécifique‘. Et il n’y a pas vraiment besoin.
Il est ajouté dans la documentation nebule v1.1 que les liens de type l ne devraient avoir ni un objet méta nul ni un objet destination nul.

Appartenance et/ou propriété

Il se pose un dilemme aujourd’hui dans la définition de ce qu’est un nÅ“ud. Non sur la nature de celui-ci mais plutôt sur la façon dont le nÅ“ud est désigné comme tel.

Le même genre de problème se pose aussi pour une entité mais de façon un peu plus simple.
Une entité est capable de signer, c’est donc avant tout une clé cryptographique asymétrique (RSA uniquement aujourd’hui dans nebule). C’est aussi plus spécifiquement la clé publique, celle que l’on diffuse, donc celle par laquelle on est connu et reconnu. Au delà de ses propriétés mathématiques internes, elle est reconnu par la forme de son contenu et plus généralement par son type mime : ‘application/x-pem-file‘. Malheureusement, le fichier PEM, qu’il contienne la clé publique ou la privée ou les deux, a toujours le même type mime. Il est impossible de distinguer l’une ou l’autre naturellement par le type mime, il faut regarder le contenu pour pouvoir prendre une décision sur la nature de la clé.
Cela paraît compliqué comme ça, mais le problème est finalement facile à résoudre. Pour savoir si c’est une entité, il suffit de regarder si l’objet a le bon type mime puis de lire la première ligne du fichier (moins de 30 caractères). On peut vouloir ajouter un lien pour dire explicitement que cet objet est une entité. Mais quel doit être ce lien? Un lien de type l pour attribuer un attribut à l’objet? Ou un lien de type f pour dire que l’objet fait parti (dérivé) du groupe des entités?

Il y a le même problème avec le nÅ“ud. Celui-ci n’a pas de type mime à proprement parler, ce peut être du texte comme une image. Il peut être tentant d’ajouter un lien pour définir explicitement un objet comme étant un nÅ“ud. Dans ce cas, la recherche des nÅ“uds est facilité puisqu’il suffit de regarder les liens vers l’objet ‘nebule/objet/noeud‘. On en revient cependant aux mêmes questions. Quel doit être ce lien? Un lien de type l pour attribuer un attribut à l’objet? Ou un lien de type f pour dire que l’objet fait parti (dérivé) du groupe des entités?
Il s’ajoute un autre problème. Nous n’avons pas besoin en théorie de ce lien pour caractériser un nÅ“ud. Il suffit que le nÅ“ud ai au moins un liens de type f pour lequel il est à la fois l’objet source et l’objet méta. Mais pour retrouver les nÅ“uds, cela oblige à parcourir tous les objets. Bref, ce n’est pas réalisable en pratique pour un usage commun. Nous devons donc ajouter un lien qui explicite la nature de nÅ“ud de l’objet.

Les deux type de liens sont équivalents pour résoudre ce problème. Le type l est plus simple. Le type f permet quand à lui de voir la notion de nÅ“ud comme un groupe. Est-ce qu’il y a un intérêt à gérer les nÅ“uds dans un groupe?
L’usage seul nous permettra de déterminer quel est le meilleur type de lien…