Gestion de programmes

Lors des expériences, il est apparut qu’il était assez facile de diffuser des programmes, dans notre cas des pages web en php, comme des objets à part entière.

Il faut deux choses.

La première c’est qu’il faut une page web de bootstrap (marche pied). C’est cette page qui va déterminer si il existe une page à afficher dans les objets, et la lancer. La page en question doit être un dérivé (lien F) de l’objet « nebule/objet/entite/webaccess/firstofall », et être de mime-type « application/x-php ».

Et il faut que le programme en question puisse se mettre à jour. Ce peut être fait en suivant les liens de mise à jour d’objet (lien U) du programme en question. On peut aussi suivre les nouveaux liens de l’objet « nebule/objet/entite/webaccess/firstofall » d’une autre entité. Ne reste plus qu’à téléchager le nouvel objet et mettre à jour sont propre objet « nebule/objet/entite/webaccess/firstofall ».

Continuer la lecture de Gestion de programmes

Premier lien entre deux entités

Pour les besoins de l’expérience 4, les deux entités suivantes ont été liées :
975571a8a470a6d975662e284f5ef1bd0396c06b31a2207b81bef2e24c5bf0c5
bca2c25e6564af173a65bf88b8bb1f91cb9c4f5e9ddaf96b8775206543be56c8

La première entité est gérée par un humain, la seconde par un robot. Ce robot à besoin de savoir à quel endroit il peut télécharger les objets et liens de l’autre entité.

Continuer la lecture de Premier lien entre deux entités

Implémentation de liens sécurisés

Une première implémentation en shell bash a été réalisée pour la lecture et l’écriture de lien sécurisés.

Ces liens sont dits sécurisés parce qu’ils sont signés par une entité, et donc leur intégrité et leur provenance peuvent être vérifiés. Si la signature est invalide, ils sont simplement ignorés.

Voir l’implémentation de référence en bash.

Exemple de résultats (empreintes tronquées à 16 caractères) :
sha256:03e7785a6-975571a8a470a6d9-20120914182239-L-975571a8a470a6d9-970bdb5df1e79592-93d4a5f3ef1fc5c8
sha256:2ec7df2b9
-975571a8a470a6d9-20120914182239-L-975571a8a470a6d9-7c512aaa1c5e3837-a6b4edb371e864e4
sha256:86d8d0f2f
-975571a8a470a6d9-20120914182240-F-6a4b7f1100b87044-975571a8a470a6d9
sha256:2c7911d50
-975571a8a470a6d9-20120914182240-L-975571a8a470a6d9-37d22e047bd0173f-703c4a9a2573f76a
sha256:90952b31d
-975571a8a470a6d9-20120914182241-L-975571a8a470a6d9-69eb5187e4469dfd-93d4a5f3ef1fc5c8
sha256:3ed5b8f4c
-975571a8a470a6d9-20120914182242-L-975571a8a470a6d9-6bf6ae23819cd0d1-0e87632cd46bd490
sha256:0626480c2
-975571a8a470a6d9-20120914182243-L-975571a8a470a6d9-4b9a7f50c0bb198c-911f9ec89c20f340
sha256:51b955e0b
-975571a8a470a6d9-20120914182243-L-975571a8a470a6d9-3514acf61732f662-5ef523ac47dae4aa
sha256:01bcc6d09
-975571a8a470a6d9-20120914182243-L-975571a8a470a6d9-8527a891e2241369-b5977b836b445eaf
sha256:58a62c5ab
-975571a8a470a6d9-20120914182243-L-975571a8a470a6d9-4ec9599fc203d176-dc80905e9df6dac2
sha256:bf51f9067
-975571a8a470a6d9-20120914182244-L-975571a8a470a6d9-785f3ec7eb32f30b-28cdd20eaf134a05
sha256:553af0cc7
-975571a8a470a6d9-20120914182244-L-975571a8a470a6d9-aea92132c4cbeb26-9d64d711a2a1123e
sha256:162bfc0c5
-975571a8a470a6d9-20120914182244-L-975571a8a470a6d9-caa1aedb2a6ce96b-c0f059214d078968

OpenSSL plutôt que GPG!

Suite aux problèmes pour exploiter gpg2, et après quelques essais avec openssl, décision est prise de basculer vers ce dernier.

Ci-dessous, quelques opérations de base nécessaires au bon fonctionnement de nebule, et notamment pour l’expérience 3.

Continuer la lecture de OpenSSL plutôt que GPG!

GPG ou OpenSSL?

Mes machines Linux disposent de différents algorithmes de hashage, de chiffrements symétriques et asymétriques. Mais l’utilisation de ces algorithmes n’est pas directement possible facilement (pour moi).

J’ai essayé pendant un certain temps de générer des entités avec des clés PGP (via gpg2). Mais je me heurte souvent à son manque de souplesse. C’est prévu pour chiffrer des fichiers et pas autre chose. On peut chiffre à la volé depuis la ligne de commande et via un pipe, mais la signature fait plusieurs lignes de texte en base-64, il est très difficile dans ce cas d’extraire la signature proprement dite en hexadécimal… et inversement de la ré-assembler pour la vérifier…

Bref, je me tourne aujourd’hui plutôt vers openssl qui permet à priori des manipulations cryptographiques de façon plus souple. Le format de stockage de clés qui me plaît le plus est le PEM.

On va voir jusqu’où on peut aller… Continuer la lecture de GPG ou OpenSSL?

Tracé de graphes objets/liens, mise en pratique 4

Les couleurs sont cette fois-ci directement dépendantes des objets qu’elles représentes. Les 6 premiers chiffres hexadécimales sont directement utilisés comme code couleur RVB.

Manque toujours le réarrangement des objets.

Exemple pour l’objet d8f74db1ba545040eb60a52b477cdd55958cc518ed788d05db92a89b16efde07 (une entité) :


(Lien)

Continuer la lecture de Tracé de graphes objets/liens, mise en pratique 4

Début de l’expérience 4

L’expérience 4 est lancée sans attendre la fin de l’expérience 3.

Introduction

Une des possibilités que permet le relai est de partager l’information via d’autres machines, un peu à la manière du P2P.

Mais c’est aussi un bon moyen de créer une sauvegarde d’objets, et de gérer ceux-ci.

Cette expérience vise à créer une base de relai automatisé.

Tracé de graphes objets/liens, mise en pratique 1

Suite aux réflexions du post du 06/08, voici les premières expérimentations.

Cette expérience ce fait sur un objet en ne tenant compte que des objets directement liés (niveau 1).

L’image résultant de l’objet c296a1b21db92be313bfd62e31192af5, générée automatiquement :

Continuer la lecture de Tracé de graphes objets/liens, mise en pratique 1

Début de l’expérience 3

L’expérience 3 est lancée.

Introduction

Cette nouvelle expérience doit permettre de gérer des objets privés, c’est à dire chiffrés.

Aujourd’hui, il est difficile d’exploiter des fichiers chiffrés sans devoir au préalable les déchiffrer. La messagerie est mieux logée puisque avec des certificats ou des clés PGP il est possible de lire mais aussi d’écrire nativement des messages.

En attendant de pouvoir nativement lire et écrire des objets chiffrés, il faut exploiter plusieurs capacités des liens. Il faut commencer par gérer la création d’un objet non chiffré (L), le mettre à jours vers sa version chiffrée (U) et supprimer le fichier en clair (D).

La suppression de l’objet en clair ne signifie pas la suppression de ses liens. Ainsi, si celui-ci est récupéré ailleurs, étant déjà marqué d’un lien de suppression, il sera automatiquement supprimé de nouveau. Les liens étant publics, la suppression va se propager entre entités de confiance.

Fin de l’expérience 2

L’expérience 2 est terminé. Elle restera néanmoins comme base d’objets et de liens pour la suite.

Conclusions de l’expérience :

Premier constat, déjà vu avec la première expérience, le nombre de fichiers tient bien dans un répertoire sans provoquer de ralentissement notoire. L’affichage est plus lent parce que le résultat passe par le réseau, mais la consultation d’un fichier particulier n’est pas visiblement plus lente. Par contre, difficile de traiter dans un shell bash une boucle avec autant de fichiers. La commande rm * ne marche plus avec une erreur disant qu’il y a trop d’arguments. Il faut la relancé avec moins de fichiers, par exemple rm a* .

La représentation sous forme de texte des liens est le minimum. Ca fait un peu un effet Matrix avec tous ces chiffres. Mais si on peut naviguer d’un objet à un autre, ce n’est pas très lisible et il faut la pratiquer pour s’y retrouver. Difficile de savoir du premier coup d’œil où on est ou quel est le type d’objet.

Certains objets ont une très grande quantité de liens. C’est impossible à afficher. Est-ce vraiment utile d’avoir un affichage complet de ceux-ci justement? N’est-il pas préférable dans certains cas de n’afficher que les derniers? Voir de n’afficher par défaut que sur certains critères? Ceci oblige à mettre en place une consultation des objets plus fine.
Dans cette expérience, tous les objets ont été liés sur une courte période de temps, de l’ordre de quelques heures. Mais en fait, les objets manipulés ont été créés sur plusieurs années. Ne faut-il pas donner par défaut les liens sur une période de temps défini, et de permettre de récupérer des liens sur des périodes de temps plus grandes moyennant une plus grande latence?

Quel valeur donner à un objet?
Peut-on se baser sur le nombre de liens, auquel cas des objets, comme 77d626eb24d2bae8391953237c40f058 qui contient « mime-type », deviennent des super stars? Or cet objet par exemple est (presque) toujours un objet méta et n’est donc jamais source d’un lien.

Et le plus important : ça marche !

Tracé de graphes objets/liens, le début

La deuxième expérience monte le manque de représentation graphique des objets et liens générés.

Suite à la publication d’un projet personnel de Ruslan Enikeev, je me suis intéressé à son travail sur The Internet map :

Continuer la lecture de Tracé de graphes objets/liens, le début

Expérience sur les objets

Je lance une petite expérience de :
– génération d’objets à partir de fichiers existants ;
Рg̩n̩ration de metas pour les objets en fonction de leur environnement ;
– manipulation d’objets en fonction de leurs metas par une application.

La description complète de l’expérience se passe ici :
Wiki – Galerie_photo_publique
Cette description évoluera au fil de l’expérience. Celle-ci sera terminé lorsque la conclusion sera rédigée.

Cette expérience n’intègre pas de partie cryptographique.