Structure du lien à quatre champs objets

Suite de l’article Lien à quatre champs objets.

La présence d’un champs de lien supplémentaire reste à la réflexion très tentant.

Un lien à quatre champs peut avoir simplement la même structure que le le lien actuel en ajoutant un champs à la fin. Cependant il peut être intéressant, vu l’expérience sur les liens actuels, de changer significativement la structure du champs et notamment son ordre. Ce ré-ordonnancement permettrait aussi de résoudre d’autres problèmes plus accessoires.

L’un des problèmes aujourd’hui vu comme accessoire est le non typage algorithmique (hash) des empreintes des objets. Ce non typage se retrouve dans les champs des liens. On pourrait préciser celui-ci en fin de hash pour le stockage des objets et aussi dans les liens.

Un autre problème est plus conceptuel dans la structure des liens. On définit les champs source, destination et méta comme un triptyque sujet-complément-verbe. Mais la partie signature ne respecte pas cette philosophie. Et il se trouve aujourd’hui que la réflexion qui a mené la signature à être en début de lien n’a jamais été utilisée en pratique.

Enfin, une des dernières réflexions en cours concerne la multi-signature cumulative (cosignature). elle est possible avec le lien actuel moyennant une adaptation mineure du registre des liens. Mais cette nouveauté pourrait être améliorée et fiabilisée avec un nouveau registre qui l’inclut dès la conception.

Lien à quatre champs objets ?

Les réflexions initiales avaient montré qu’il était impossible de créer des liens entre objets de seulement deux champs, c’est à dire juste objet source et objet destination. Enfin, c’est possible mais ça n’est pas utilisable puisqu’il faut pouvoir indiquer dans le lien la relation faite entre les deux objets.

Le champs méta décrit la relation entre les deux objets source et destination. Ce champs méta est vu comme une information à propos de l’information principale, donc une méta donnée. Mais avec le temps il apparaît plus comme ayant le rôle d’objet opérateur, c’est à dire un descripteur de l’opération entre les objets source et destination.

La réflexion autour de la crypto-monnaie et de la messagerie pousse à considérer qu’un champs supplémentaire pourrait être utile comme contexte, c’est à dire de contextualisation du lien par rapport à un usage.

Un des usages serait par exemple la définition d’une option des applications. Ce lien contient en champs source le nom de l’option, en champs cible la valeur attribuée à l’option et en champs méta le fait que ce soit une option. Ajouter un champs permettrait de définir une option pour une autre entité.

Cependant le besoin d’un nouveau champs peut être aussi le signe d’une mauvaise structure de liens. Par exemple le champs méta du lien de définition d’une option est redondant avec son champs cible qui désigne une option particulière, sous-ensemble des options.

Et rajouter un quatrième champs aux lien va nécessiter la revu de tout le code actuel pour tenir compte de ce champs.

Il avait été pesé au début la possibilité, à l’extrême, de ne pas avoir de limite (ou en avoir une mais large) du nombre de champs. Cette façon de travailler aurait ralenti le code et il en aurait surtout résulté une perte de performance à cause d’une non optimisation des liens.

Quoiqu’il en soit, plus le temps passe plus la modification de la structure des liens deviendra délicate. Mais le gain aujourd’hui n’est pas jugé suffisant par rapport au travail à fournir pour évoluer vers des liens à quatre champs.

L’évolution des applications

Une installation de l’application Facebook actuel sur un téléphone vieux de 6 ans montre les errements et la dérive des applications.

En 6 ans, l’interface à changée un peu avec quelques fonctionnalitées… Mais au fait, les utilise-t-on vraiement ? Non. On continue à utiliser majoritairement Facebook comme avant, ce pour quoi il a été fait. Les nouvelles fonctionnalitées tiennent plus du cosmétique. Quelques imports d’autres applications (hashtag, stories) peinnent à percer, rien de révolutionnaire.

Depuis tout ce temps, le code aurais dû être optimisé de folie, accéléré… et bien c’est tout l’inverse, ça rame sévèrement sur un vieux téléphone. et pourtant ce que l’on faisait sur Facebook à cette époque pas si lointaine reste similaire.

La puissance des machines commence à stagner, voila donc l’exemple à ne pas suivre.

De l’information à l’usage

Si on prend une actualité dans un journal télévisé par exemple, l’information présenté décrit quelque chose qui s’est passé. Cette description est une information au sens journalistique mais aussi au sens de l’information pure.

Lorsque l’on replace un nom ou une action dans une information journalistique, celle-ci devient une nouvelle information. Cette nouvelle information est une fiction là où l’information d’origine était un fait réel. Mais elle n’en reste pas moins plausible pour autant. En allant plus loin, une information présentée peut-être au delà de la fiction et être complètement improbable ou impossible, pourtant en terme d’information pure elle reste valable. Toute information pure est équiprobable et n’est pas porteuse de sens.

Toutes ces informations vont être capturées puis transformées sur un support. Aujourd’hui, le support est numérique, la transformation est une numérisation de l’information. Autrefois, les supports était analogiques et nombreux : photographie argentique, enregistreur à bande magnétique, etc…
Le numérique présente un avantage sur l’analogique. Par le nombre de valeurs limitées que peut prendre la plus petite partie d’une information numérique, comparé à l’infinité de valeurs possible pour la plus petite partie d’une information analogique, l’état de l’information numérisée est très stable et parfaitement prédictible. On fait bien sûr abstraction du support de stockage.

La stabilité de l’information numérisée permet notamment de calculer une empreinte unique et infalsifiable de l’information pure. C’est à dire qu’il est impossible de générer une autre information qui a exactement la même empreinte. Ainsi, grâce à leurs empreintes, les informations deviennent inaltérables.
Dans nebule, l’information numérisée est nommée ‘objet’ et son empreinte devient son identifiant unique.

 Mais que fait-on maintenant de toutes ces informations numérisées et protégées par leurs empreintes respectives ?
On va les gérer, les trier, les ranger, les cataloguer, les rapprocher par sujets communs, etc…
Et ça ce sont les hommes qui le font. Les informations pure numérisées gardent un sens pour les humains.

L’usage d’une information par une être humain donne un sens à celle-ci. L’usage est attaché à un utilisateur, et non à l’information, au moyen d’une signature numérique unique et infalsifiable. Tout le monde peut signer l’usage d’une information et tout le monde peut vérifier qui à utilisé l’information, mais personne ne peut signer un usage à la place de quelqu’un d’autre.
Dans nebule, l’usage d’un objet est un lien et tous les liens sont signés par des utilisateurs.

Ainsi, les objets sont utilisés via les liens. L’information pure trouve un sens grâce à l’usage qui en est fait par les utilisateurs. Mais l’information pure ne peut pas être modifiée et les utilisateurs ne peuvent pas être usurpés.

Téléchargement et pondération

La pondération de la localisation est réalisée par un objet nebule de type spécifique. C’est une pondération de type temporel et éventuellement qualitatif (plus tard). Ce n’est pas la pondération de l’objet de localisation qui est lui définit pas l’environnement social.

La liste de téléchargement de puppetmaster va se faire sur des sous-liens pré-calculés du domaine nebule.org . Le bootstrap se basera sur cette méthode pour se télécharger.

Dans la librairie, il faut créer d’une classe d’objet pour les liens de localisation. On écrit la pondération si le site répond, et si une entité est déverrouillée.

Dans les objets, téléchargement par défaut sans préciser de site. Dans les objets de localisation, téléchargement par défaut d’un ID sur la localisation.

Il faut prévoir une synchro dure, c’est à dire partout et longue, et une douce sur un sous-groupe des localisations. Le sous groupe peut inclure des localisations qui ont les meilleurs pondération, et des localisations choisies au hasard. Cette dernière possibilité permet de renouveler régulièrement les pondérations et de ne pas se retrouver isolé, obligé de faire une synchronisation dure.

La pondération de la localisation est un nombre décimal calculé comme l’inverse du temps de réponse moyen en secondes. Une localisation sans pondération aura le poids 1.

CF : Quantification commune de la disponibilités des relaissuitesuite 2

Réservoir d’Internet

On peut faire des réserves de à peu près tout, le l’électricité, du gaz, de l’eau, de l’argent, de l’or, de la connaissance, etc… Mais on ne peut pas faire de réservoir de l’Internet.

L’Internet est une connexion au monde pour échanger de l’information. Mais l’information que nous échangeons est de plus en plus difficile à conserver ou simplement à consulter hors connexion.

Évidemment, les données que nous échangeons sont rafraîchies au fil de l’eau et donc la connexion est nécessaire. Certaines applications permettent de télécharger des données pour être consultées hors ligne. Mais ce n’est pas le cas des navigateurs par défaut, ou ce n’est plus le cas pour certains.

En travaillant sur l’échange d’objets, et donc de données, avec nebule on crée la possibilité de récupérer localement tout un tas d’objets liés entre eux, et donc tout un tas de données liées. Et ces données liées, c’est le début d’un réservoir de données.
Ça donne à réfléchir…

N̩buleuse soci̩tale et confiance РChiffrement par d̩faut

La relation entre les êtres humains est resté assez stable dans son contenu mais à beaucoup évolué dans sa forme avec la technique. Le la taille d’un village, d’une tribu, la dimension du réseau social d’un individu a fortement grandi et a cessé de coller à sa zone géographique proche. Mais il n’a pas forcément grossi pour autant, il ne s’est que dilaté. Il garde d’ailleurs une forme nébuleuse dense au centre et distendu en périphérie.
Le téléphone a accéléré la vitesse de transmission des informations et de fait a permis d’étendre encore plus la portée des échanges, et donc l’influence des individus. Cette extension a fini par atteindre sa taille limite, celle du monde.
Mais les échanges d’informations ne se limitent pas à l’influence, politique, des autres. On y retrouve des choses qui n’ont pas grand intérêt à première vue comme la correspondance familiale ou la propagation de la culture. Cependant, ces deux exemple ont une importance profonde dans l’identité de l’individu d’une part et de la société d’autre part.
Le réseau social individuel n’est plus depuis longtemps calqué sur son influence physique directe. Si il n’est pas évident de parler de réseau social d’un groupe d’individus, ou société, on peut quand même se raccrocher à son influence directe. Et l’influence des sociétés ne sont que rarement exactement calquées sur leurs influences physique directe, c’est à dire sur les frontières d’un pays.
Une société ne doit pas être vue comme une forme nébuleuse unique de relations sociales mais comme une forme nébuleuse sociétale composée d’une multitudes de formes nébuleuses entremêlées. Une société est composée d’une multitude de formes nébuleuses individuelles avec quelques structures communes, mais surtout, pour les individus, avec une majorité de liens au sein de la nébuleuse sociétale. Le nationalisme ou communautarisme, du point de vue du réseau social, sont des tentatives pour imposer des structures uniques fortes et donc de forcer la nébuleuse sociétale à se scinder en de multiples formes sous-sociétales. Il existe une multitude de formes sous-sociétales susceptibles de développer une forme de communautarisme puisqu’il est en pratique impossible d’avoir une nébuleuse individuelle approchant la forme nébuleuse sociétale dans son ensemble. Le nationalisme use de sa forme de nébuleuse sociétale pour revendiquer une influence physique y compris hors des frontières de l’état qui le définit à l’origine.
Le réseau Internet est un support d’information, il permet de diffuser la connaissance à tout un chacun. Mais ce n’est pas sont seul rôle, il permet aussi de relier les individus. C’est à dire qu’il sert de support universel à la forme nébuleuse des relations sociales d’un individu. Nous avons encore des échanges sociaux directs entre individus, instantanés, mais ils ne sont plus ni exclusifs ni même nécessaires ou systématiques.
Le projet nebule se doit donc de faciliter le partage de l’information, de la connaissance, mais il se doit aussi de faciliter les échanges sociaux entre individus. Le projet nebule doit être capable de coller au plus prêt de la nébuleuse de l’information d’un individu, mais aussi de la nébuleuse de son réseau social.

La messagerie telle qu’elle a commencée était un message manuscrit sur un support papier ou équivalent et pouvait mettre plusieurs mois pour arriver à destination… quand ça arrivait…
Aujourd’hui, un message traverse le monde en quelques secondes avec une très grande probabilité d’arriver à destination. Le plus long, c’est maintenant d’attendre que le destinataire ouvre son message. Tout le monde fait confiance à la messagerie électronique et à une bonne confiance dans les échanges postaux nationaux et internationaux.

Et puis il y eu Edward SNOWDEN.

La confiance, c’est la capacité du système à fonctionner tel que l’on s’attend à ce qu’il fonctionne et à être résistant aux tentatives de détourner son fonctionnement.
Là, subitement, on a une grosse crise de confiance. On se dit qu’on ne va peut-être pas laisser tous ses Å“ufs dans le même panier. Le projet nebule peut sous cet éclairage paraître un peu trop intrusif et exclusif (des autres).

Cette crainte vis-à-vis du projet nebule est à la fois recevable, et non recevable.
Le projet sylabe, annexe de nebule, est une implémentation suivant les paradigmes actuels en terme d’échange de l’information, et surtout en terme de concentration de l’information. Il est conçu volontairement dès le début pour centraliser les données sur un serveur de l’Internet. C’est cette concentration sur une machine que l’on ne maîtrise pas qui pose de gros problèmes aujourd’hui. C’est cette concentration sur des machines chez des grosses sociétés au USA qui permet à la NSA (entre autres) de violer l’intimité numérique des individus sans raison valable. Et c’est fait de telle façon que les individus gardent confiance dans cette concentration de leurs données.

Mr SNOWDEN a cassé la confiance que nous avions dans la concentration de nos données, la confiance pour ces grosses sociétés américaines, et la confiance dans l’Internet même. Il a montré que quelque chose ne fonctionnait pas bien. Mais il l’a fait pour que ça s’améliore, pour que nous fassions les efforts nécessaires pour reconstruire l’Internet et la confiance que l’on attend de lui.

Le projet sylabe est donc un reliquat de ce passé. Mais il apporte quand même quelque chose pour le futur. Il centralise les données mais contient les graines de leur décentralisation complète.
Si tout le monde n’est pas prêt aujourd’hui à installer un serveur pour héberger ses données, on y arrive quand même de façon détournée. Certains installent des boîtiers NAS, c’est déjà une forme de réappropriation de ses données. Toutes les maisons ont une box qui fait office de centre multimédia, de NAS. La domotique arrive tout doucement (depuis 20 ans). Ainsi, une instance sylabe pourra être un jour implémentée facilement dans un boîtier pour non seulement héberger nos donnés mais aussi pour nous permettre d’échanger avec nos amis.
Le projet sylabe, une fois implanté ailleurs que sur des serveurs centralisés permettra la mise en place complète de la vision de la nébuleuse de nos informations, complètement décentralisée mais centrée sur nous.

Il reste à traiter le problème de l’anonymat. C’est en cours de définition et d’implémentation.
Cet objectif à part entière, dans le contexte actuel, nécessite qu’une entité puisse nativement et par défaut chiffrer tous ses objets et offusquer tous ses liens, ou presque tous. Cette possibilité sera intégrée rapidement dans le projet sylabe.

Marqueur de groupe multidimensionnel

Les objets sont aujourd’hui identifiés par une valeur unique qui, de part ses propriétés, n’est pas pré-calculable ou prévisible. Ce comportement est indispensable pour distinguer parfaitement et de façon univoque les objets, et donc leur contenu. Il résulte de ces propriétés que toute modification d’un objet, quelle qu’elle soit et aussi infime qu’elle soit, entraîne un changement complet et quasi-aléatoire de son empreinte, et donc de l’identifiant correspondant.

Mais il peut être aussi intéressant de disposer d’une autre valeur plus prévisible. On va essayer de définir ici ce que l’on appellera un marqueur.
On peut imaginer par exemple que deux images très proches puissent avoir un marqueur de valeur identique ou proche. Pour de la musique, le marqueur peut être un dérivé atemporel du spectre de fréquences. Ce marqueur doit avoir une structure en accord avec la structure de l’objet. On doit pouvoir comparer les marqueurs de deux objets différents et déterminer rapidement si ils ont une structure proche, donc si ils sont ressemblants. La structure doit être multidimensionnelle et de profondeur variable. L’ajustement de la profondeur de comparaison des marqueurs doit permettre de retrouver les objets très proches ou au contraire vaguement ressemblants.

Une notion de groupe apparaît. On fait un regroupement à géométrie variable des objets par rapport à leur contenu.

Le côté multidimensionnel du marqueur doit refléter les caractéristiques multidimensionnelles d’un objet. Voici quelques exemples :

  1. Un texte simple contient des données qui s’expriment en deux dimensions : la position spatial et pour chaque position une valeur (caractère).
  2. Un texte enrichit contient des données qui s’expriment en trois dimensions : la position spatial et pour chaque position deux valeurs (caractère et encodage).
  3. Un son mono contient des données en deux dimensions : la position temporelle et pour chaque position une valeur (amplitude).
  4. Un son stéréo contient des données en trois dimensions : la position temporelle et pour chaque position deux valeurs (amplitude).
  5. Une image en noir et blanc contient des données en trois dimensions : la position spatial horizontale, la position spatial vertical et pour chaque couple de position spatial on a une valeur (amplitude).
  6. Une image en couleur (RVB) contient des données en cinq dimensions : la position spatial horizontale, la position spatial vertical et pour chaque couple de position spatial on a trois valeurs (amplitude).
  7. Un film en couleur muet contient des données en six dimensions : la position spatial horizontale, la position spatial vertical, la position temporelle et pour chaque couple de position spatial/temporelle on a trois valeurs (amplitude).
  8. Un film en couleur avec son stéréo contient des données en huit dimensions : la position spatial horizontale, la position spatial vertical, la position temporelle et pour chaque couple de position spatial/temporelle on a cinq valeurs (amplitude).

Ce marqueur n’est pas destiné à remplacé l’identifiant !
L’identifiant reste le seul moyen de
discerner sans ambiguïté tous les objets, y compris les plus ressemblants.

Ne reste plus qu’à formaliser précisément ce marqueur.

Vote électronique

Ceci est une réflexion personnelle, mais comme elle concerne le traitement sécurisé de certaines données, je pense qu’elle a aussi sa place sur le blog nebule.

Le vote électronique, vu par un non spécialiste, est un monde assez étrange. D’un côté une grande variété de sociétés commerciales qui disent toutes avoir trouvé le système parfait, et j’image un minimum rentable. De l’autre côté une variété tout aussi diverse de personnalités du monde de la sécurité informatique (peut-être un peu usurpée pour certaines) qui s’évertuent à démonter les fameuses solutions miracles et commerciales. Démonter est à prendre dans le sens commun, mais aussi dans le sens péjoratif.

En y regardant de plus près, on découvre que certaines réflexions ont déjà été menées, par exemple par la Commission Nationale de l’Informatique et des Libertés (CNIL). On trouve notamment la Délibération n° 2010-371 du 21 octobre 2010 portant adoption d’une recommandation relative à la sécurité des systèmes de vote électronique. Mais on trouve aussi des avertissements sur les produits de certaines sociétés.

On peut regarder un résumé de délibération de 2010 comparée à celle de 2003. On y parle toujours de sécurité du système hôte et de son (ses) logiciel(s) et de scellement. Ce scellement est finalement quelque chose que l’on pourrait assez facilement mettre en place avec un système comme nebule, c’est nativement sa façon de fonctionner…

Mais on accepte aussi désormais de faire de la virtualisation sur le système centrale !?
Pardon?
Cela veut dire de fait la nécessité de certifier aussi l’intégralité de la plate-forme de virtualisation au même niveau que les serveurs dédiés aux votes. Pourquoi vouloir complexifier la chose alors qu’il est nécessaire au contraire de simplifier l’ensemble du système si on veut espérer pouvoir le certifier. Autant mettre le serveur dans les nuages (le cloud) tant qu’on y est…

Mais quelles sont les exigences d’un vote?
On parle ici de confidentialité du vote. Ici de reproductibilité, traçabilité et intégrité. Ici d’impossibilité de vérification de la machine. Etc…
Le code électoral est de son côté une mise en application mais ne décrit pas les fondements, les principes.

Bref, bon courage pour ceux qui voudraient essayer de comprendre quelque chose au débat et démêler les intérêts de chacun…

Je propose de repartir du début. Que représente le vote pour moi ?

  1. Je veux être capable à tout instant de pouvoir vérifier que mon vote, c’est à dire mon choix, est pris en compte et n’est pas modifié ou oublié.
  2. Je veux être capable de vérifier à tout instant les voix recueillies par chaque candidats. Je dois pour cela avoir accès à l’intégralité des votes et voir que chaque votant est unique.
  3. Ce que je demande, tout citoyen doit pouvoir lui aussi le demander. Cela veut dire aussi que mon voisin doit être capable de vérifier mon vote, et vice versa.

Certaines règles sont optionnelles :

  1. Les citoyens sont pré-enregistrés par une autorité, c’est à dire une entité de confiance. L’autorité de confiance peut ou non être lié au précédent élu. Les citoyens sont généralement les personnes référencées par le gouvernement d’un pays.
  2. La manière de calculer le candidat vainqueur est déterminée à l’avance. C’est normalement celui qui remporte le plus de voix. Ce peut être aussi avec un pourcentage minimum.

Pour résoudre toutes ces demandes :

  1. Il faut que chaque partie en présence, électeurs et candidats, soit identifiés.
  2. Il faut matérialiser le vote, c’est à dire le lien entre l’électeur et le candidat.

L’identification peut être faible (papier) ou forte (signature cryptographique). Dans le cas du vote papier, le votant prouve son identité avec sa pièce d’identité. Un registre empêche le rejeu du vote. Un unique papier permet de matérialiser le vote pour un candidat. Si l’ensemble de la chaîne de vote est solide, cela revient à faire un lien entre un votant unique et un candidat unique. Avec nebule, il suffit de ne prendre que le dernier lien vers les candidats, ainsi un seul vote est possible.

Comment peut-on gérer un anonymat du vote?
Le lien direct et public entre votant et candidat ne permet pas de maintenir l’anonymat. Pourtant celui-ci est nécessaire mais pas obligatoire. Un votant peut très bien décider de rendre public son vote. C’est dans ce cas au votant de casser l’anonymat de son vote.
On peut donc accepter une entité anonyme, dépendante de notre vraie entité, pour voter. Il faut prévoir le mécanisme qui permet à une autorité de reconnaître cette entité dépendante comme étant l’entité qui a le droit de vote, et elle seule. Ce mécanisme doit inclure des liens secrets entre les entités maîtres et les entités votant réellement.

A gratter…

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

Le SPAM, déficience d’identification

Qu’est ce que le SPAM?
« Le spam, pourriel ou polluriel est une communication électronique non sollicitée, en premier lieu via le courrier électronique. Il s’agit en général d’envois en grande quantité effectués à des fins publicitaires. »
CF Wikipedia

La définition est un peu floue. On note cependant plusieurs détails dans la première phrase. C’est d’abord une communication, donc un échange d’informations. Ensuite, cela prend une forme électronique, critère correspondant à une vision un peu réduite. Et enfin, c’est quelque chose de non sollicité, c’est à dire une communication initiée par l’autre partie, quelques chose que l’on a pas demandé.
Jusque là, une communication électronique sur deux rentre dans cette catégorie. Il y a un consensus général sur ce que cela désigne, mais la définition est trop imprécise. La précision concernant le courrier électronique est optionnelle, pas vraiment contraignante. C’est surtout un exemple qui aide le lecteur à raccrocher le SPAM à quelque chose qu’il connaît déjà. Cela veut aussi dire que le SPAM affecte potentiellement d’autres médias de communication. Le FAX par exemple…
La deuxième phrase reste aussi très générale, donc très imprécise. Ce serait donc des envois de grandes quantités de messages publicitaires. Ou est le problème ici? La grande quantité d’envois? Le caractère publicitaire? Il n’est fait aucune référence à un problème dans cette définition, mais on assimile automatiquement la combinaison quantité/commercial à un problème.
Le problème serait-il pas tout simplement de recevoir beaucoup de messages publicitaires que l’on n’aurait pas sollicité !? On notera la transformation entre l’envoie massif de messages et la réception massive de ces mêmes messages. Se soucierait-on du SPAM si un envoie massif aboutissait à un seul message par semaine dans notre boite aux lettres ? Assurément pas.

Un e-mail non sollicité ventant les propriétés d’une lessive est un SPAM.
Un prospectus papier dans notre boite aux lettres, non. Ce n’est pas une communication électronique. Pourtant, en pratique, c’est le même phénomène : on remplit nos boites aux lettres de messages publicitaires non sollicités. Messages dont il faut se débarrasser.
Allons encore plus loin. Un panneau publicitaire, diffusant d’autorité un message dans notre environnement, n’est pas non plus du SPAM. Ce n’est pas une communication électronique et cela ne vous est pas directement adressé. Pourtant nous sommes bien dans la diffusion massive d’un message publicitaire. Elle est massive parce que adressée à toutes les personnes qui passent devant. Finalement, le panneau publicitaire peut de la même façon être assimilé à du SPAM. Mais là on ne peut rien faire, il n’y a pas de bouton suppression. Bien que la dégradation de notre environnement visuel soit manifeste, cela ne rentre pas dans la catégorie SPAM. Je vous laisse en déduire la raison.
En terme informationnel, c’est l’insertion d’informations parasites en grand nombre qui provoques une gène. Tant que cela ne demande pas trop de temps pour être traitée, c’est toléré. Le traitement de ces informations parasites veut dire d’analyser chaque information afin de déterminer sa pertinence et la suite à donner, c’est à dire la supprimer ou l’ignorer dans le pire des cas.

Revenons au SPAM tel que communément accepté. Face au déluge de messages à trier (à supprimer), il est rapidement apparut nécessaire de traiter le problème. Ce traitement peut intervenir à plusieurs niveaux et de plusieurs manières. Évidemment, il est préférable de pouvoir fortement automatiser ce processus de traitement.
Il y a aujourd’hui un large panel de méthodes différentes pour traiter ce problème spécifique, des plus artisanales aux plus industrielles. Les résultats ne sont pas toujours à la hauteur des investissements en argent ou en temps. Mais comment mesurer l’efficacité de ces méthodes ?
On peut mesurer les performances de plusieurs façons. La première idée est de mesurer le pourcentage de SPAM réellement détectés. Oui, mais ce n’est pas suffisant, que fait-on du nombre de messages légitimes qui ont été supprimés en même temps? Une société commerciale doit pouvoir recevoir des messages de toute provenance et doit éviter un maximum de pertes de messages, sinon ce sont des clients en moins et donc des bénéfices en moins. Ces sociétés vont donc investir dans des solutions très sophistiquées qui maximisent la détection et minimise les dommages collatéraux.

Une des caractéristiques que l’on retrouve souvent dans les SPAM, c’est que l’adresse de l’expéditeur est fantaisiste bien que de forme correcte. Une des méthodes de lutte est de renvoyer un message à l’expéditeur pour demander une confirmation. Il n’est malheureusement pas infaisable pour un robot de pouvoir répondre positivement à cette confirmation, même avec un captcha.

Le particulier à potentiellement moins de problème qu’une société. Il peut facilement mettre de côté tous les messages dont les expéditeurs ne lui sont pas connus. Il suffit de temps en temps de regarder le dossier des SPAM (les inconnus) si on attend un message d’un nouveau destinataire. Mais même cette méthode a ses limites. Certaines sources de SPAM essayent de pirater des boîtes aux lettres d’utilisateurs légitimes (vos amis) pour leur faire envoyer à leur insu des SPAM. Un certain nombre de virus sont spécialisés, une fois qu’un nouvel ordinateur est contaminé, pour aller dépouiller le carnet d’adresse. Et pour rendre plus difficile la détection du poste contaminé, d’envoyer les SPAM en se faisant passé pour un des contacts du carnet d’adresse.
Si la méthode du filtrage est assez efficace tant en détection quand tant que rejet de messages légitimes, elle peut au besoin être complétée par une autre méthode comme un filtre bayesien par exemple.

Les filtres de type RBL sont un moyen de défense dynamique assez performant avec peu de dommages collatéraux. Mais d’un autre côté, si ils bloquent des plages entières d’adresses IP (plages IP des clients des ISP), ils deviennent catastrophiques par le nombre de messages légitimes bloqués.
Le filtre greylist est quand à lui basé sur le bon fonctionnement du serveur émetteur du SPAM. Ça marche encore très bien aujourd’hui avec aucun rejet de message légitime, mais cela ne tient qu’à la volonté des diffuseurs de SPAM d’améliorer (un peu) leurs outils.

On voit que la lutte contre le SPAM utilise des outils qui ont tous leurs limites. Ils sont tous par principe faibles parce que le protocole n’a pas été prévu pour lutter contre ce problème.
Dans la plupart des SPAM, on a clairement une carence dans l’identification de l’expéditeur.

Le moyen naturel d’y répondre est d’être capable d’identifier tous les acteurs générateurs d’information. Cela veut dire que, n’étant pas capable de pouvoir identifier toutes les sources possibles et légitimes dans le monde, on va devoir se fier à un système plus global qui se base sur des autorités de confiances. Un système sur le principe du DNS mais aussi des certificats x509.
Mais imposer une identification globale remet directement en cause l’anonymat. Et se reposer sur des autorités de confiance n’est pas sans conséquences. Les problèmes récurrents de piratage des autorités de certification nous montre que c’est loin d’être infaillible.

Que faire? Comment palier le manque d’identification sans remettre en question l’anonymat? Vu comme ça, cela semble impossible.
La réponse la plus simple serait de couper toute communication. Mais l’être humain a la nécessité (absolue) d’accepter des échanges, qu’ils soient de forme électronique ou pas d’ailleurs. Et l’être humain sait naturellement faire le tri des informations, de juger le risque de sélectionner une information plutôt qu’une autre. Il sait aussi se tromper et se faire manipuler.
L’humain doit revenir au centre de la décision lorsque le temps et la quantité d’informations ne sont pas saturantes. Il faut afficher l’information qui permet la prise de décision. Et si certaines actions sont fortement automatisées, il faut afficher le résultat de ces actions que l’automatisme a jugé nécessaires.

Comment se positionne nebule vis-à-vis de ce problème?
Il propose un système capable de gérer des utilisateurs localement mais qui peuvent être reconnus globalement. Ainsi, un utilisateur n’est valide que parce-qu’il est reconnu par ses paires, en gros ses voisins. Mais on est capable d’adresser un utilisateur à l’autre bout du monde, ce même si on ne le connaît pas. On peut éventuellement se fier à des autorités locales de confiance qui déterminent qui sont de vrais utilisateurs et qui ne le sont pas. On peut aussi dire que l’on accepte ou rejette certains utilisateurs en fonctions de critères comme la proximité sociale ou géographique.
Mais le risque, c’est la manipulation de ces règles de sélections à l’avantage du diffuseur de SPAM. Diffuseur qui peut être plus facilement bannis aussi.L’autre risque, c’est la compromission du poste de l’utilisateur, et donc l’envoie de SPAM à son insu. Mais ça c’est un problème d’une toute autre dimension…

Liens :
http://fr.wikipedia.org/wiki/Spam
http://fr.wikipedia.org/wiki/Courrier_%C3%A9lectronique
http://fr.wikipedia.org/wiki/Lutte_anti-spam
http://fr.wikipedia.org/wiki/CAPTCHA

RSE ou RSE ?

En recherchant la définition de l’acronyme RSE, je tombe sur deux définitions… Problème assez récurrent en fait avec les acronymes puisque n’importe qui peut en inventer et les utiliser sur la place publique à son bénéfice.

D’un côté j’ai une belle page bien fournie sur Wikipédia et une page gouvernementale officielle parlant de Responsabilité Sociétale des Entreprises :
Responsabilit̩ Soci̩tale des Entreprises РWikip̩dia
Qu’est-ce-que la responsabilité sociétale des entreprises – Ministère du développement durable
On y parle donc de responsabilité des entreprises, de développement durable, de gestion de risques, des impacts environnementaux et sociaux, enjeux, investissements, outils, normes, médiatisation, aspects juridiques, etc…

De l’autre un article sur 01net.com qui surfe sur la vague des révélations sur PRISM, ce qui n’est pas un mal en soi :
Le RSE : un lanceur d’alerte en entreprise – 01net
On retrouve bien en fin d’article un paragraphe sur le RSE, l’environnement et les risques. Mais RSE, répété à l’envie tout au long de l’article, désigne ici Réseau Social d’Entreprise. En gros un simili Facebook restreint au périmètre de l’entreprise.
Mais n’y a-t-il pas déjà un terme pour cette fonctionnalité? Oui, c’est le groupe de travail (groupware). Ah oui, c’est vrai, le créneau sur ce nom est déjà bien plein. D’un autre côté, la RSE ne doit pas plaire à beaucoup de chef d’entreprises. Bref, Voila typiquement un article à visée commerciale…

Mais ce post n’est pas là pour critiquer l’article. Les acronymes posent un problème de gestion de leurs définitions. Celles-ci ont rarement une portée globale, elles n’ont souvent qu’une définition de portée locale ou régionale. C’est cette absence de centralisation qui, à priori, serait la source des conflits.

Comment vont se comporter les acronymes dans nebule?
Reprenons le cas de la RSE. En pratique, c’est l’objet cec7b8a511f6d30def09266e7595f1dd9a301b3ba868444d2b14236dccc127b1. Aujourd’hui, cet objet n’existe sur aucune machine supportant nebule, mais si il était créé ce serait avec cette empreinte (sha256).

Premièrement, cet objet peut être marqué par des liens de type subdivision s. Il est en effet possible avec ce type de lien de savoir qu’un texte, un article de presse par exemple, contient cet acronyme. Cela facilite la recherche.
Cet exemple d’acronyme est trop petit mais le principe reste valable, le même article de presse peut être téléchargé morceaux par morceaux par ses abonnés. C’est un fonctionnement de type P2P. Chaque morceau connu peut être téléchargé à des endroits différents, puis l’article de presse peut être reconstitué. En pratique, on accélère donc les échanges d’objets.

Ensuite, L’objet de l’acronyme peut aussi être marqué par des liens de type dérivation f. Ces liens peuvent renvoyer vers d’autres objets contenant la ou les définitions de l’acronyme.
C’est un intérêt pour résoudre les conflits autour des définitions d’acronymes. En effet, chaque lien est signé par une entité, donc on sait qui en est l’initiateur. Et comme toute entité gère individuellement ses propres relations de confiances, la définition d’un acronyme sera donc dépendante des entités à qui on fait confiance, mais aussi en fonction de leur niveaux de confiance relatifs.
Donc, si on a une forte confiance en l’état, ce sera la RSE. Si on a une grande confiance en l’auteur de l’article de 01net, alors ce sera le RSE. Si on est chef d’entreprise, il y a de fortes chances que ce soit la RSE de toute façon…

Genèse du monde – Mise à jour

001
Le premier jour, dieu créa l’objet, l’essence de tout chose.
Ainsi la matière de l’information naquit du néant.

010
Le deuxième jour, dieu créa le lien, pour les relier tous.
Ainsi apparurent les objets à la lumière, ils pouvaient se voir mutuellement.
Ainsi l’univers informationnel naquit des objets et des liens.

011
Le troisième jour, dieu créa l’entité.
La matière inerte et uniforme devint active et protéiforme.
Ainsi la vie naquit de la matière et des entités.

100
Le quatrième jour, dieu créa la signature.
L’univers informe s’illumina du feu des entités attirants inexorablement les objets.
Ainsi les nébuleuses naquirent des entités.

101
Le cinquième jour, dieu créa le nœud.
A l’intérieur des nébuleuses, les objets se rassemblèrent en orbites autour des nÅ“uds et des entités.
Ainsi les galaxies naquirent des nébuleuses.

110
Le sixième jour, dieu créa le cryptogramme.
Pour la première fois, la matière des objets commença à disparaître de la lumière.
Ainsi les trous noirs naquirent des entités.

111
Le septième jour, dieu créa l’interface.
Elle permit à l’homme de voir l’univers.
Ainsi l’univers fut achevé.

8
Le huitième jour, au nom de dieu, l’homme créa la religion.
Il s’appropria tous les objets et soumit toutes les entités sous une seule.
Ainsi disparut l’univers dans un trou noir super-massif.

Tuer l’ordinateur pour le sauver – 2

Il est encore aujourd’hui difficile de dire quel est le principal problème dans l’architecture de nos systèmes d’information. Il est d’ailleurs fort probable que ce soit un cumul de plusieurs causes qui rendre l’ensemble du SI si difficile à sécuriser. La conséquence, c’est que nous avons bien du mal à endiguer des attaques toujours plus complexes et nombreuses malgré les moyens considérables que nous déployons. Ces moyens sont de plusieurs ordres : financiers, organisationnels, humains et technologiques.

Est-ce la façon qu’on nos machines de communiquer sur l’internet qui est à revoir ?
A cette question, il est très tentant de répondre oui. Il faut filtrer, segmenter. Si l’on bloque l’internet mondial en le fermant au niveau des frontières, on résoudra une grande partie des problèmes. Mais on ne résoudra pas vraiment les vraies causes de nos problèmes. Cela ne fera que réduire la portée des conséquences. Et, en faisant cet enclavement, je pense que l’on ne fait que repousser à plus tard la résolution de ces problèmes.
Il faut peut-être plus simplement revoir comment nos machines communiquent et modifier la pile réseau. Mais cela ne tient pas compte des autres moyens de communication comme les périphériques de stockage amovibles.

Est-ce l’architecture de nos machines qui est vulnérable ?
Les attaques sur le SI ont de multiples formes parce qu’elles ont autant de buts différents. Le réseau est rarement la cible d’une attaque, alors qu’un serveur est une cible de choix. Et le serveur est une cible exposée si il veut remplir son rôle : servir. Les attaques sur les serveurs sont toujours passées par les interfaces, les entrées/sorties. Mes ces attaques n’ont de raison d’être que parce que le serveur est un objet actif, interactif. Et cette activité siège avant tout dans le processeur.
Le processeur permet l’exécution du code des programmes et notamment le système d’exploitation. Tous les systèmes d’exploitations actuels ont un (ou plusieurs) compte ou pseudo compte super-administrateur, qu’il s’appelle root ou SYSTEM. Or, le processeur ne sait pas reconnaître un compte. Il se contente d’exécuter le système d’exploitation qui, lui, contient toute la logique d’exploitation des comptes et de séparation des privilèges. Qu’est ce qui garantie aujourd’hui l’intégrité de cette logique ? Pas grand chose. Les élévations de privilèges sont courantes suite à des attaques.
D’un autre côté, le système d’exploitation repose sur un ordonnanceur. Celui-ci permet de répartir le temps de calcul du processeur entre les différents programmes, et donc de faire du multitâches entre les applications. Mais le processeur lui-même est fondamentalement monotâche. Le processeur dispose aussi d’un mécanisme, le RING, mais les systèmes d’exploitation ne l’exploitent qu’à moitié. La séparation entre les différents programmes est de fait artificielle parce que logiciel, et donc faible.
On en arrive à une aberration conceptuelle. Le super-utilisateur a plus de pouvoir sur le système que l’utilisateur qui manipule ses données, ce qui est normal. Mais ce qui l’est moins, c’est qu’il a aussi plus de pouvoir sur les données de l’utilisateur que ce dernier. En l’état de la technologie actuelle, le problème de confidentialité est insoluble sauf à considérer que l’utilisateur est le super-utilisateur. Et c’est sans compter les élévations de privilèges.
Et dire qu’un utilisateur est super-utilisateur de son système est aujourd’hui reconnu comme une aberration. La boucle est bouclée.

Le projet nebule est un premier pas vers une solution. Il est encore trop tôt pour savoir si c’est le début de la bonne solution. On permet à l’utilisateur de se réapproprier ses données. Malheureusement, l’architecture actuelle des machines ne permet pas de protéger efficacement l’identité d’une entité une fois déverrouillée, c’est à dire une fois la clé privée chargée en mémoire. Le super-utilisateur peut directement lire cette clé en mémoire. Aucune protection de prévaut dans ce cas, quelque soit sa complexité. Certes, il faut corrompre ce super-utilisateur… mais c’est justement ce qui est fait lors de la plupart des attaques informatiques actuelles.

CF : Tuer l’ordinateur pour le sauver

Environnement coopératif

Revenons un peu en arrière, un peu…

En septembre 1987 est apparut le protocole X. Celui-ci, dans sa version majeur X11, permet le dialogue entre un serveur X et un client X (on n’est pas en science naturelle mais en informatique), typiquement sous UNIX et affiliés, mais pas exclusivement.

Un de ses avantages, c’est la transparence réseau. Mais, étant finalement peu employée, c’est aussi un inconvénient.

A quoi sert donc cette transparence réseau?
Que gagne-t-on à la garder?
Quel aurait pu être son avenir? Continuer la lecture de Environnement coopératif

Mémoire fini

On part souvent du principe que l’on va gérer nos données en les accumulant dans le temps de façon infinie…

Mais est-ce vrai?

C’est en partie vrai.

Les capacités de stockage évoluent assez rapidement dans le temps. Nous enregistrons de nouveaux fichiers assez régulièrement dans le temps mais pas forcément de façon continu. Ici, pour la réflexion, on ne va retenir qu’une moyenne constante d’enregistrement de données.

Que se passe-t-il si on ajoute régulièrement suffisamment de capacités de stockage, suffisamment pour ne jamais arriver à saturation?
Tout se passe bien, on ne perd rien.

Et si la capacité de stockage n’augmente pas assez vite (dans le cas extrême où elle ne peut plus être augmentée) ?
C’est dans ce cas que doit être prévu un mécanisme de nettoyage (d’oubli), et donc de pertes maîtrisées.

Le stockage de données sous la forme proposée pour nebule risque dans certains cas de générer, et donc de stocker, énormément de données. On doit prévoir ce mécanisme d’oubli nativement.

La perte d’information maîtrisée impose de permettre cette gestion à la main. Mais quelle efficacité d’une gestion à la main pour plusieurs millions de fichiers?
Des mécanismes d’assistance ou d’automatisation doivent être proposés. Ils peuvent avoir plusieurs formes.

Sur quels critères déclarer un fichier périmé?
Plusieurs critères peuvent être pris en compte, et plusieurs combinaisons complexes peuvent être calculées de critères simples :
– le temps de possession de l’objet, plus il est vieux plus il a de chance d’être périmé ;
– si le fichier dispose d’une nouvelle version, il n’est peut-être plus intéressant de le conserver ;
– l’attractivité, ou un critère d’appréciation, donne de l’importance à un fichier dans le temps et doit faciliter sa conservation ;
– l’intensité de l’appréciation peut être exploitée en absolu, un fichier qui appel un très fort sentiment positif ou négatif a des chances de devoir être conservé longtemps ;
– un fichier lié à plusieurs autre fichiers jugés importants a surement besoin d’être lui aussi conservé, il va peut-être hériter par calcul d’une note d’appréciation ;
– d’autres fichiers font références à ce fichier, il faut sûrement le conserver ;
Рmes amis ont gard̩ ce fichier, il doit ̻tre important.

Doit-on supprimer immédiatement un fichier périmé?
Celui-ci peut peut-être servir à quelqu’un d’autre? A-t-on la place de le garder en attendant? Peut-on se contenter de le supprimer lorsque l’on aura besoin de la place qu’il occupe? Doit-on les marquer périmés en attendant ou gérer une liste des objets périmés?
L’analyse des fichiers à marquer peut se faire en continu, moyennant une occupation constant et relativement importante de ressources. L’analyse peut se faire lors d’une phase de repos (activité de sommeil). Une liste peut aussi être maintenu en temps réel sans analyse, juste en classant les objets de façon croissante dans une liste et en faisant évoluer la place des objets en fonction de l’évolution de leurs paramètres.

Une fois un objet marqué comme périmé, comme propager son marquage? C’est à dire, comment vont se comporter les relais avec ces objets dits périmés?
Cette propriété de péremption doit-elle être visible des entités tierces? Ou est-elle purement interne?

Digital native

Beaucoup de gens voient internet et l’ordinateur comme une télévision améliorée.

Les nouvelles générations de jeunes s’en servent comme moyen de communication entre eux. Ils sont nés avec le portable et le SMS.

Les anciens sont nés avec le téléphone fixe et la télévision. La télévision est hypnotisante et passive (à sens unique) dans son usage. Le téléphone fixe est actif mais limité dans son lieu d’utilisation. On vient à un endroit pour appeler… si le correspondant est proche de son téléphone en face.

Continuer la lecture de Digital native

Digital Native

A propos de la description des digital natives dans wikipedia, un petit détail intéressant est la notion d’accent. J’appelais ça l’empreinte (d’administration) des gens, chaque administrateur système a sa façon bien particulière de faire certaines choses. Mais le terme d’accent est plus adapté.

Mais cette notion d’accent ne se limite pas au fait d’imprimer un email ou de téléphoner pour dire qu’on l’a bien reçu. Toute personne, digital native ou non, à son propre accent. Cet accent dépend (comme pour le langage parlé) de sa culture, de son environnement, de son apprentissage des outils (de la langue)…