Modes de traitement

Le projet nebule en lui-même donne un cadre stricte dans la forme des objets et des liens. Mais il ne donne que des orientations sur le traitement, c’est à dire l’interprétation, de ces objets et surtout de leurs liens.

Il existe aujourd’hui trois stratégies dans le traitement des objets et des liens.

Le mode ouvert

C’est la façon la plus simple d’utiliser les objets et les liens puis qu’aucune vérification n’est réalisée.

Cela implique pour commencer que les empreintes des objets ne sont pas vérifiées. Ces empreintes sont donc de pures URI avec un faible attachement au contenu des objets qu’elles référencent. Cette considération entre en conflit avec l’un des fondements du projet nebule puisque l’empreinte est strictement attaché à un objet, son contenu en fait, et que toute modification de cet objet entraîne implicitement la création d’un nouvel objet avec une empreinte propre.

Les liens ne sont pas vérifiés, ce qui veut dire que leur provenance, n’étant pas assurée, ne peut pas être non plus utilisée. Ainsi, les liens sont vus sont leur forme la plus réduite, c’est à dire la forme équivalente RDF avec la date et l’action.

Le traitement s’en trouve extrêmement accéléré. Il est pas contre impossible d’établir un échange digne de ce nom ne serait-ce qu’entre deux entités. Les notions de propriétés public et privée n’ont pas de fondement dans ce cas. On ne peut envisager ce fonctionnement que sur un périmètre restreint d’un centre de calcul et dédié à une tâche unique. On peut tout au plus envisager une passerelle vers le monde extérieur qui vérifierait scrupuleusement les entrées et signerait les sorties.

Ce mode de traitement n’est pas recommandé dans le cadre du projet nebule.

Le mode social

La prise en compte du côté social implique que l’on tienne compte de l’émetteur des liens, et donc de la validité de ceux-ci. A l’opposé du mode ouvert, cette façon de procéder est la plus complexe et la plus lente. Mais c’est aussi la plus intéressante.

Chaque objet et chaque lien utilisé est scrupuleusement vérifié. Comme nous sommes dans un environnement social, c’est à dire avec de multiples entités, nous devons procéder à un tri des liens en fonction de leur provenance. Les objets sont vérifiés mais leur usage dépend exclusivement de leurs liens, et donc notamment des émetteurs de ces liens.

Lorsque deux actions sont contradictoires, il faut tenir compte de l’environnement sociale et plus seulement du facteur temporel. Il y a des différences dans la confiance que l’on accorde aux autres entités, et donc dans les liens quelles génèrent. Le tri des liens est réalisé suivant une pondération qui reflète la relation avec les entités émettrices. C’est une pondération en tout point sociale et est attachée aux entités.

L’offuscation de liens permet de cacher ou de tromper une entité sur la vraie pondération qu’on lui accorde. Mais il fait garder à l’esprit que plus elle est discordante plus elle a de chance d’être découverte ou au minimum de provoquer de la confusion.

Une pondération peut aussi être envisageable sur les objets. Cela permet en augmentant la pondération de réduire proportionnellement l’influence des autres entités sur un objet précis.

Enfin, une pondération peut être réalisée sur le type de lien et éventuellement en fonction d’un des objets référencés par un lien.

Ici, pour le projet nebule, clairement tout est quasiment à faire. La pondération des entités n’est pas encore formalisée. La pondération des objets et théorique. Et la pondération sur le type de lien n’est qu’une prévision par rapport aux modèles actuels.

Le traitement des objets et des liens, déjà ralentis par les vérifications de base, est encore plus complexe du faire des calculs de pondérations, et donc plus lent encore.

Ce mode de traitement est celui adopté par la librairie nebule de référence en php. Par extension, c’est aussi le mode de traitement utilisé dans le projet sylabe.

Le mode strict

La prise en compte du côté social est partielle, elle a même une forme exclusive. On se situe à mi chemin entre le mode ouvert et le mode social en terme de complexité.

Chaque objet et chaque lien utilisé est scrupuleusement vérifié. Contrairement au mode social, la prise en compte des entités n’est pas globale mais au contraire exclusive. On ne reconnaît que les liens de certaines entités précises. Afin de simplifier encore plus le traitement, il n’y a pas de priorisation ou de pondération dans l’exploitation des liens. Si plus d’une entité est reconnu, toutes ont le même poids et donc le même pouvoir de décision dans l’utilisation des objets. On attend ici des décisions rapides, fiables et reproductibles dans un environnement large mais avec un groupe très restreint d’objets et de liens à prendre en compte. Tout le reste est ignoré.

C’est un fonctionnement de type paranoïaque. Les notions de propriétés publique et privé sont assurées mais les échanges avec d’autres entités sont très limités et potentiellement conflictuels parce que non pondérés, non régulés. Ce fonctionnement est tout indiqué pour gérer la sécurisation de certains outils informatiques comme le déploiement de code.

Le cas le plus représentatif est par exemple la reconnaissance des entités puppetmaster, bachue et cerberus dans la validation de la librairie nebule de référence en php mais aussi du code du projet sylabe.

Ce mode de traitement est utilisé par le bootstrap en php et la librairie nebule de référence en bash. Le bootstrap ne reconnaît que les objets de bachue ou de l’autorité locale moyennant un bannissement de cerberus et sous la supervision de puppetmaster.

Liens d’émotions

La mise en place des émotions sur les objets appelle plusieurs questions.

Catégories

Vu le nombre d’émotions gérées, il va devenir nécessaire de les segmenter en catégories. On peut maintenir la catégorie ‘émotions‘ qui regroupe tout ressentit humain, plutôt subjectif. On peut ajouter une nouvelle catégorie ‘avis‘ pour tout ce qui est plus objectif.

Pondération

Une réflexion qui commence à dater un peu sera la mise en place d’une pondération aux objets. Cette réflexion concerne avant tout la possibilité d’oublier progressivement dans le temps les objets avec le moins d’importance. L’oublie peut être réalisé automatiquement à partir d’un certain seuil. Le seuil peut progressivement augmenter dans le temps jusqu’à un seuil maximum au dessus duquel les objets concernés seront conservés, sauf suppression volontaire.

Cette pondération peut être bien sûr utilisable en permanence pour trier l’affichage des objets.

La mise en place des émotions est le bon moment pour introduire la mise en place de la pondération. Il ne reste plus qu’à en définir les modalités.

Chiffrement

Une autre réflexion qui date un peu mais prend progressivement de l’importance, c’est la possibilité de chiffrer les liens. Le but est d’offusquer que l’on ne souhaite pas rendre publics tout en permettant leur bonne transmission aux destinataires légitimes.
Il y a plusieurs manières d’offusquer les liens :

  1. La première est de créer un objet de liens, objets que l’on chiffre ensuite vers son destinataire. Cette méthode, si elle est assez bonne en terme de performance de déchiffrement, nécessite cependant que tous les liens offusqués soient consultés en même temps que tout les liens normaux d’un quelconque objet, pour savoir si un lien secret ne le concerne pas spécifiquement. On obtient de fait un ou plusieurs objets de liens chiffrés attachés à son entité. L’inconvénient, c’est qu’il est impossible de transmettre un lien particulier à une autre entité sans devoir recréer un nouvel objet de liens chiffré.
  2. La seconde méthode est de faire du chiffrement de lien à la volée. C’est à dire qu’un lien a offusquer est chiffré et reste présent individuellement au milieu des autres liens. Cependant, ce lien va contenir un partie chiffrée, partie qui ne correspond donc pas à un objet réel, ce qui est en contradiction avec la forme actuelle des liens. L’avantage, les liens chiffrés voyagent naturellement avec les autres liens. L’inconvénient, le lien chiffré ne peut être rattaché qu’à un seul objet et à une entité. Le lien avant chiffrement fait référence à trois objets, on perd donc avec le lien chiffré la référence aux deux autres objets. Cela veut dire que le lien chiffré est valable si on consulte l’objet source, mais n’est plus reconnu si on consulte l’objet destination. Cet inconvénient risque de perturber la résolution inverse d’un arbre de mise à jour par exemple.
  3. La troisième méthode est d’exporter la partie chiffrée dans un objet en tant que tel. Cette méthode a l’avantage de profiter du mécanisme de chiffrement déjà implémenté pour les objets. Liens et objets sont transmis naturellement vers un destinataire du lien. Et on retrouve l’inconvénient de la deuxième méthode. En plus, on complexifie l’analyse des liens d’un objet puisqu’il faut aller consulter d’autres objets pendant le processus de lecture des liens, et donc d’autres liens…

La mise en place du chiffrement des liens va créer de fait une nouvelle version de nebule, la v1.2.

Ajout d’émotions sur des objets – suite

La suite de l’article : Ajout de sentiments sur des objets.

Nouvelle liste :

Contenu de l’objet ID objet Traduction
‘nebule/emotion/jaime’ eab748b4860d0046295503983e62dd0e228f3019c109a1b92fa08ff4f8e043e8 j’aime
‘nebule/emotion/jaimepas’ c8e99ab10169cca804e55601d7d36a142258516f98f66f050d6e6a48064b42f1 j’aime pas
‘nebule/emotion/daccord’ cd4ea3d3d8f5a883a183c70c6220f4e940aec30dc141c3bd9d6fd4bef71e48ad d’accord
‘nebule/emotion/pasdaccord’ 8a802c8da6a1d2bca6e5be6322db836e1eeab6373018b63c2f5363a33c0dc6b1 pas d’accord
‘nebule/emotion/content’ 4b0a16021e81fecb6d0826fcae528887366b13bfa3827ea5f516666e76255dab content
‘nebule/emotion/mecontent’ 6fc3cdf3045a102e4a3673bd275aa0d0c6755286fc7837bbb4b8014d47911c42 mécontent
‘nebule/emotion/ange’ 711e9834572990f90047119d60b99face50244c821503e8f3144afc45e4cd878 ange
‘nebule/emotion/demon’ eaea6bee6100be666b33c20f1ed0b27db45ccaac1f9e5a68ace68699a0eca9c5 démon
‘nebule/emotion/fache’ 3fb8db4d9e2c34f8b8ce7ab6189e17699d5a5348537847cbbdc91b13c2795ea5 fâché
‘nebule/emotion/joyeux’ 8fa02c09df434482d8e03cf640f9e38cc9192112b55254952f7ad5f332189c65 joyeux
‘nebule/emotion/cool’ 851aa3262613f15ab8529d5bd0c5ae9731e6f3c13977bf2b3e4bdb3881e8c4fc cool
‘nebule/emotion/malade’ 53715f876e7b1b99f3fd30fc2844fbbf0095c330517f85768c34a26d66eccdca malade
‘nebule/emotion/triste’ e8067acdc2bff25f753e16a47c21389445cad3116720eca7d96c0a94a127af75 triste
‘nebule/emotion/pleur’ 1d012502a87bff5319df1144fd34c4b7fbe5419e3661473c438654bec5aa923e pleur
‘nebule/emotion/embarrasse’ 1067be04d13efe1bce40b048d07cecedadce3cb93f9381a6dd6518561879ffa4 embarrassé
‘nebule/emotion/mortderire’ f4743808f03680cdbe93a0833747dedcc752b05bc345f6d40a7cfa770ad1515c mort de rire
‘nebule/emotion/sourire’ 3ac0bc7722ecd3577ea4f0900da73394dcd6ed89026ecc060238ffed20b692c0 sourire
‘nebule/emotion/indifferent’ fdd5af2d8cc900cfe4bdac1abc933923702dea8979ad129d6e5c91d0692fba08 indifférent
‘nebule/emotion/compatissant’ d07d249218d792894c6a29db2855ec74f3fa683c00e69f18f54c6e1f9f4f4f7c compatissant
‘nebule/emotion/surpris’ 7a082524fa239b988a6c08965cacc9744f0abdb47abed7fc05a9dccc29fec546 surpris
‘nebule/emotion/fatigue’ fc92036c0ba4fcb08e17c8feb169bfd85894651fa159bbba7a7e64caacc17ffa fatigué
‘nebule/emotion/clindoeil’ fb873b7364936f83e030f9014b3da16b8ebf3200a2041bd6f4aad5d3f93c63f9 clin d’Å“il
‘nebule/emotion/neutre’ b3943ed3e25a53bde4878908b2561c8714934a06124ce353ff053a6d55b971dd neutre
‘nebule/emotion/interesse’ 37bb4b6e73bade8ab63a9789c2e55fcd339c22324b0fdb73dbfe769f85067c30 intéressé
‘nebule/emotion/inquiet’ d70ee42f7297111aea7e0e92208d1a412534686b09126bd23553c4063026b733 inquiet
‘nebule/emotion/serein’ 3c01125b5301086b96a10268e0f8b6bbb1f61cc945a92af27071da0ef38812e2 serein
‘nebule/emotion/bon’ 4cc7d070932882316f41c2ff58718d78774d645615adc66f58f935726ed3d409 bon
‘nebule/emotion/mauvais’ a71eb2608c0fc1db599b0dd1966292fd7e875b9c066cbc475c1053abc7ac53b7 mauvais
‘nebule/emotion/beau’ e23e9897df93819b956dfc07e9af5e9969ff61ddcd342a6f9f6ba2b3de0783b1 beau
‘nebule/emotion/moche’ 63a9951625e6fd14f5e292b298b0d67876436837957a32e598f84851010fac0b moche
‘nebule/emotion/genial’ cdde23dc18a991125b18123842cff9931031595f03ed5d7c1c1bf4b93298b0fd génial
‘nebule/emotion/moyen’ bdc7d8160007fbca505c8cfa55822a9add89e595d9b999c37d205af618bb3fa1 moyen
‘nebule/emotion/nul’ 1c36d371280ae42fa065578f669bb74a22c000d1305717f115b2a87de49b41ec nul
‘nebule/emotion/heureux’ 87de40c16dff7c52192cfb98c2f7106eeb4efdb335665186775cae670df2358e heureux
‘nebule/emotion/inutile’ 802095dac6cdb18afe5269d481c357713d3fc1aaff907ee6d92de43bc44fb68f inutile
‘nebule/emotion/ambigue’ 117668a5eec9ef7b7a99ae1cddf22517cc8ca4cfb7d51c3db65a2ba5c22f1f10 ambiguë
‘nebule/emotion/clair’ 219a6c19d80e37c79b03a6e54ce479439b9415cdc33aa55a11672f86d6bf3b8f clair
‘nebule/emotion/vrai’ 44330b908390c34345301483a3f43917e85f2f62de8e409c9e5828621a10f719 vrai
‘nebule/emotion/faux’ f3ae0599a4a369171c0994421b2c353f23cb18c26235688d90e20f15c1821973 faux
‘nebule/emotion/complet’ 1b479bc5638c27c63e4016312df686689d5fec6ecdbbd4a6778118d4b6dfbaf0 complet
‘nebule/emotion/incomplet’ 7a926b54998f4fa06974045052bcdce906ce7d87df425f2ebd92a3bc1e511872 incomplet
‘nebule/emotion/incomprehensible’ 8d394acebf91abd1bafa8dec2aa9b411ab0fbe844cdc2cec1428c3fcab1d1c67 incompréhensible
‘nebule/emotion/important’ 793423a90c4b116aa01fbba3d5a214d00d1df3c8171aa0d927f2f9111f245b66 important
‘nebule/emotion/perime’ 8626a44d629629c787eab9833505503a0b20309574e0b0c1a0c15a1b3d3f8b80 périmé

Le code de sylabe est à jour.

Ajout de sentiments sur des objets

Les derniers développements de sylabe on permit de réactualiser l’ajout de marques tel que j’aime, j’aime pas et bien plus encore.
CF : Blog sylabe – Avancement
Ces marques sont regroupées sous le terme de sentiments. Ils sont matérialisés par des liens de type l de l’objet vers le sentiment (un autre objet) et le méta ‘nebule/objet/sentiment‘.

Ces sentiments ont une signification purement humaine. Le code de nebule ne l’interprète pas et n’en tient pas compte. Mais ces sentiments ont chacun des objets dédiés qui eux ont tout intérêt à être communs à toutes les applications. Ils doivent être propagés quoi qu’il arrive comme tout liens. C’est la raison pour laquelle ils seront définis au niveau de nebule.

Leur affichage sera spécifiquement traduit pour être plus lisible et tenir compte de la langue d’affichage. Continuer la lecture de Ajout de sentiments sur des objets

Renouveler son entité

Pour l’instant, les entités sont figées. Mais il faudra prévoir de changer leurs mots de passes et de les migrer vers de nouvelles entités au besoin.

Le changement de mot de passe nécessite de régénérer l’objet de clé privé qui change. Il faut évidemment préalablement déverrouiller l’entité, donc sa clé privée. Une fois le mot de passe changé, il faut lier la nouvelle clé privée à la clé publique puis supprimer le lien de l’ancienne clé privé. Il faut marquer à supprimer l’objet de l’ancienne clé privée.

Dans le cas d’une migration d’entité, c’est un peu plus complexe. Ce besoin répondra souvent suite à un problème de compromission ou de corruption d’entité.
Il faut générer une nouvelle entité autonome. Faire un lien de mise à jour de l’ancienne entité vers la nouvelle. Dans la mesure du possible, ce lien de mise à jour doit être signé à la fois par l’ancienne et la nouvelle entité. Puis l’objet de la clé privée de l’ancienne entité doit être marqué à supprimer à la fois par l’ancienne et la nouvelle entité.
Si l’entité avait été corrompue, c’est à dire qu’il était impossible de la déverrouiller, c’est un vrai problème. Dans ce cas, les liens de mise à jour d’entité et de suppression de clé privée ne pourront être signés par l’ancienne entité. rien ne permet de distinguer une opération légitime suite à un problème d’une tentative de détournement par une autre entité. Il peut tout au plus être possible de regarder si l’entité génère de l’activité, donc qu’elle n’est pas corrompue.
En cas de compromission de l’entité, on peut faire une mise à jour vers une nouvelle entité. Mais celui qui a volé la clé privée de l’entité peut le faire aussi de son côté. Il est difficile dans ce cas de déterminer qui est la véritable nouvelle identité et pas une usurpation… Peut-être le côté sociale, comportemental, d’une entité peut nous aider à posteriori?

Individu, sociabilité, universalité

L’affaire PRISM révélée par Edward Snowden n’en finit pas de provoquer des secousses numériques autour de la NSA, des grosses sociétés américaines et de la vie privée des citoyens/sociétés.

On entend parler régulièrement de la possibilité de créer de multiples chemins de communications entre individus. Ici multiple est à comprendre dans le sens où chaque connexion passe par un certain nombre de serveurs différents et ce de façon anonyme pour les serveurs. Ceci dans le but de garantir l’anonymat de l’internaute.

Il existe TOR pour la navigation. Ce pourrait être le cas avec la messagerie (Caliop ?). Mais est-ce une solutions suffisante?
Le journal Lemonde a publié un article sur un internet décentralisé pour des usages centralisés (cf lien). Rien que le titre suffit à exprimer tout le paradoxe de notre utilisation de l’internet…

Un autre problème s’ajoute, l’anonymisation est aussi utilisée par des criminels. Tout en sachant que les criminels d’un pays/communauté sont parfois les héros d’un autre. Comment distinguer l’utilisation légitime, ce qui est bien ou pas? Vaste débat.
Un outil ayant uniquement une structure globale mélange les usages légitimes et réprouvés, quel qu’en soit leur acceptation. Un outil qui respecte une structuration régionale ou locale est plus à même de coller à l’acceptation de certains usages, ou à leur régulation. Il est aussi capable de suivre l’évolution des mÅ“urs et usages tout en permettant des échanges globaux.

Le projet nebule peut-il apporter quelque chose? Je pense que oui, quelque chose de nouveau surtout. Aujourd’hui, tous les efforts portent sur des tentatives de sécuriser les serveurs centraux, les relais intermédiaires, les chemins empruntés et les protocoles. Cette nouvelle chose que propose nebule est de penser directement au niveau de la donnée, de gérer sa confidentialité et ses échanges.

La structure locale de nebule est de taille variable. L’individu est la base. Il met en place naturellement des échanges dits sociaux proches jusqu’à une organisation de la taille d’un pays. Il est aussi capable d’exploiter de façon universelle des informations quelles qu’en soient leurs localisations.

Liens :
Lemonde – Bitcoin, BitTorrent, TOR : un internet décentralisé pour des usages centralisés
http://fr.wikipedia.org/wiki/PRISM_%28programme_de_surveillance%29
http://fr.wikipedia.org/wiki/Tor_%28r%C3%A9seau%29
https://www.torproject.org/
http://www.caliop.net/