Il faut ramener le cloud à la maison
Le constat
Les 10 dernières années ont vu le grand public (ainsi que certains pouvoirs publics) s’intéresser de plus en plus à la protection des données personnelles.
Dans le même temps, quelques entreprises ont consolidé leurs positions de consortium contrôlant la vaste majorité des données personnelles et, on va dire, de l’algorithmique de présentation des publications des autres utilisateurs du web. El famoso GAFAM. Il y a d’un coté les états avide d’informations avec le pouvoir de la loi, de l’autre des entreprises avide d’informations avec le pouvoir de la publicité. Aucun de ces acteurs n’a à cœur les intérêts du citoyen lambda.
La montée en puissance des dictatures continue d’alimenter le débat sur la liberté d’expression et/ou l’anonymisation des communications. La guerre aussi, soit dit en passant. Bref, c’est la merde, toujours. Je vais pas faire la liste, n’étant pas journaliste.
Le dernier point que j’aimerai citer est le pan données de santés, où les quelques barrières légales s’effritent de jours en jours, malgré les quelques effort de l’UE sur le sujet.
D’un point de vue plus technique, citons d’article de Gilles Chehades sur l’état du mail (décentralisons SMTP pour le bien commun), l’article de l’équipe de l’application de messagerie Berty à propos de la guerre en Ukraine, David Madore sur le HTTPS et enfin Maitre Eolas sur l’interception des communications par l’état français et du bien qu’il pense de PGP. Finissons par un article expliquant pourquoi les femmes ont soudain supprimé en masse leurs applications de suivi de règles.
L’architecture même d’internet repose sur d’innombrables relais centraux hors de contrôle des utilisateurs. Historiquement explicable par le coût, c’est aujourd’hui un sujet qui est à peine remis en question. Cette situation arrange les gouvernements qui contrôlent l’infrastructure physique et les conglomérats privées qui contrôlent les datacenters.
Fun fact: Amazon, Microsoft, Google et Alibaba concentrent 71% des données mondiales ! Honnêtement j’étais pas prêt à ce nombre.
Si on récapitule. Il y a sur internet des tiers intéressé par:
- vos mails
- votre navigation
- vos idées politiques
- votre nationalité
- votre orientation sexuelle
- votre santé
- vos photos
- vos communications publique
- vos centres d’intérêt
- vos moyens de contacts
Pour celà, sont attaqués à différents niveaux OSI:
- l’infrastructure physique (Fibre, 4G, 5G)
- le transfert physique des télécommunications (IP)
- le routage (DNS)
- les habitudes de navigations (cookies)
- vos comptes (OAuth)
- le stockages des données (stockage ‘cloud’)
- vos communications (mails, chats)
- votre attention (algorithme de présentations)
Toujours est-il que le besoin de décentraliser et donner la main aux utilisateurs est toujours d’actualité. Un utilisateur lambda, aujourd’hui, il a besoin de quoi ?
Quand je parle d’utilisateur lambda, en fait j’essaie de pas me lancer dans un pamphlet politique sur le statut et les droits inaliénable d’un citoyen humain sur internet, mais enfonçons une porte ouverte: Un humain qui accède à internet, peu importe le lieu et le moyen, a droit à la sécurité et l’anonymité de son identité, de ses communications et de ses données.
Ah oui, j’ai oublié de préciser qu’aujourd’hui c’est un enfer de naviguer une société occidentale sans utiliser internet (que ce soit socialement ou pour accéder aux services de l’état #MaPrimeRenov, #PoleEmploi).
Bref, Jean-Michel Citoyen a besoin de stocker ses documents, d’avoir une boîte mail, de communiquer avec d’autres gens, de créer des comptes sur les réseaux sociaux, de parcourir le contenu qui l’intéresse et de partager son propre contenu.
Tout ça donc, sans ingérence d’une entreprise ou d’un gouvernement. Est-ce encore possible ?
La volonté
On a atteint aujourd’hui un point de la loi de Moore qui nous permet d’avoir des ordinateurs surpuissant qui ne consomme presque rien. L’open hardware se développe encore et toujours (cf HA certificate de watchy) On peut aujourd’hui imprimer des armes à feux , on peut sûrement imaginer de meilleures usages pour les imprimantes 3D.
Côté logiciel, le paysage repose désormais sur 30 ans de développement. Malgré la ré-invention constante de la roue, un chapeautage d’énormes sujets par des entreprises privées et une séparation presque imperméable des outils entre scientifiques et industrie. Ces dernières années, malgré le buzz déplorable autour de la blockchain, différentes techno ont suffisamment progressé pour se passer complètement du Web (cf IPFS).
Ce que je veux aujourd’hui, c’est me désengager au maximum de cette situation. Déjà pour moi-même, et pour essayer d’imaginer un projet open-source qui remplisse les besoins d’un citoyen lambda.
Petit aparté écologique
La concentration de ressources de calculs dans des datacenters (privé!) est une erreur écologique pour plusieurs raisons:
- Les ressources consommées sont très peu optimisée par les développeurs. D’une part parce qu’il est très difficiles d’estimer les resources nécessaires à chaque instant et de scale up et down l’infrastructure selon les besoins. D’autre part parce que le partage de responsabilité est distribuée, donc personne n’est responsable…
- Les datacenters génèrent énormément de CHALEUR. Déjà ça coûte un max de sous de gérer cette chaleur, ça consomme de l’électricité, mais surtout elle est générée à un endroit où on en a pas besoin. Cette
- La centralisation des ressources de calculs dans les mains d’entreprises privées, notamment dans un contexte de gestion propre de l’électricité, provoque une quantité de greenwashing infernale. La production d’électricité, comme celle des ressources de calculs (et de nourriture d’ailleurs) a vocation à être décentralisée.
Petit aparté pour les développeurs
Nous devons, moi le premier, repenser complètement notre façon d’architecturer nos applications pour remettre dans les mains des utilisateurs la gestion de l’identité, du stockage et du transit de données.
L’architecture client-serveur doit mourir, le lambda doit mourir, le on-demnd doit mourir, le serverless doit mourir.
On doit arrêter de penser uniquement en termes de SPoF et commencer à penser en termes de SPoC (Single Point of Control ?)
On doit travailler et développer des outils pour permettre le stockage local de données et la réconciliation pour avoir un état éventuellement constistant.
Le but
Qu’est-il possible d’imaginer si on colle un RaspberryPI dans chaque foyer ? Allons même plus loin, qu’est-il possible de faire si on colle un RaspberryPI avec une antenne radio dans chaque foyer ? Est-il possible de d’intégrer un ensemble de paquet open-source dans un système facile d’utilisation par Jean-Michel Citoyen ?
Concrètement je veux rapatrier toutes mes données, documents, photos, communication sur un ensemble d’applications open-source et un cloud décentralisé.
Personnellement, ça voudrait dire se débarrasser de:
- L’ensemble des applications et sites qui stockent mes informations chez eux
- L’ensemble des applications/objets qui utilisent un protocole propriétaire
- L’ensemble des logiciels propriétaires que j’utilise quotidiennement
- L’ensemble des applications open-source contrôlées par une entreprise privée
C’est à dire pour commencer:
- Windows
- Android
- 5 serveurs OVH
- Chrome
- Gmail
- Gdrive
- Gfit
- Gdoc
- Gphotos
- Gmusic
- Dashlane
- Discord
- Github
- Kindle
- Youtube
- Medium
Mais également l’ensemble des objets connectés :
- Ordinateur
- Téléphone
- Montre
- Liseuse
- Home assistant
- Tablette
- Télévision
Mais également l’ensemble des objets trademarked closed source :
- Voiture
- Frigidaire
- Congélateur
- Machine à laver
- Sèche linge
- Lave vaisselle
- Plaque induction
- Four
- Chauffe eau
- Aspirateur
- Panneau solaire
- Batterie
- Pile
- Tondeuse
- Sèche cheveux
- Chasse d’eau
- Grille pain
- Bouilloire
- Cafetière
- …
Le projet
Bon, euh, on se calme.
Le sujet ici, c’est un ensemble d’applications open-source qui permettent de redonner la maîtrise de ses données à chaque citoyen. Comme le but d’internet est de partager des informations nesspa, on veut également que ces cloud communiquent entre eux de manière décentralisée.
On voudrait donc un espèce de cloud décentralisé, qui puisse établir des identités et partager des données de proches en proches.
Je veux dire, on peut facilement imaginer une image arm64 qui tournerait en headless sur Raspberry et en graphique sur la plupart des téléphones Android actuel.
On pourrait appeler ça un Citizen Cloud, trust based peer to peer decentralized cluster.
Si je me concentre deux minutes, on voudrait comme composants:
- IAM
- OAuth
- PGP manager
- Password manager
- Web router
- TCP router
- Serveur SMTP
- Git
- Base de données time series
- Base de données distribuée éventuellement consistante
- Object store
- Blog engine
- Marketplace engine
Ensuite il faudrait redévelopper:
- des réseaux sociaux qui utilisent le Citizen Cloud pour gérer l’identité, les permissions et le stockage des données
- des messageries instantanées chiffrées
- et globalement des SDK pour tout les protocoles existant
Bon, on est pas sortis des ronces.
Hardware setup
- 1 ou 3 RaspberryPi
- 2 ou 3 disque dur
Network
Asymetric key choice
- ???
P2P plumbing
- ????
- IPFS
P2P Rendez-Vous
- ????
- libp2p
HTTP Gateway
- ????
Software
P2P trust based IAM
- ????
- ????
- smtpd
object store
- ????
- ceph
distributed relational database
- ????
- cockroachdb
eventually consistent relational database
- ????
File sharing
- ????
- syncthing
- ipfs + iam based solution
Time series
- ????
- prometheus
- grafana
Conclusion
On est loin d’un monde qui me convienne.
Tout étant dit, entre élever des chèvres dans le Larzac et le metaverse de Facebook, je crois qu’il peut exister un monde ou la technologie est au service de l’humain, et pas l’inverse.
Il y a du boulot pour setup une image stable de tout ce petit monde, et faire d’un “Citizen Cloud” une réalité, mais au moins le chemin est possible.
Rangez vos dystopies Cyberpunk et Post-Apo, faites place au Solarpunk.