Suivre

Le système , revenir à du simple et sûr pour distribuer l'information en ligne ? (Le Web est trop complexe et offre trop de possibilités de pistage.)

bortzmeyer.org/gemini.html

(J'attends maintenant que Framasoft crée un FramaGemini...)

@bortzmeyer Simple et sûr quand tu vois qu’ils ont une incompréhension quasi-total de X.509 et de TLS, j’ai un gros doute quand même 🤣

@aeris J'aime ton sens de la nuance. « incompréhension quasi-total de X.509 et de TLS  » juste parce que des gens publient de l'auto-signé ?

@bortzmeyer « This greatly reduces TLS overhead on the network (only one cert needs to be sent, not a whole chain) and lowers the barrier to entry for setting up a Gemini site (no need to pay a CA or setup a Let's Encrypt cron job, just make a cert and go). » J’ai du mal à compter le nombre d’incompréhensions sur X.509 et TLS dans cette simple phrase… 🤷

@aeris Ah, OK, le TOFU. Justement, dans ce cas, on n'utilise pas le modèle de validation de X.509, juste son format. Comme avec DANE et je ne pense pas que DANE ne comprenne pas X.509.

@bortzmeyer Ce n’est pas TOFU que je critique ici mais les justifications foireuses de pourquoi pas X.509/TLS classiques.

@bortzmeyer Quand tu démarres un projet avec des clients de facto custom, les 2 arguments donnés pour virer X.509 et TLS sont absolument et absurdement faux.

@bortzmeyer Un client TLS standard basé sur X.509 version X25519 partout limite très très fortement l’overhead (certificats et clefs ridiculement petites), et comme on est tout neuf, intégrer du ACME auto nativement règle aussi le problème de LE.

@bortzmeyer Tout comme rejeter a priori l’usage de chaîne de certification, c’est découvrir dans 2 ans qu’on est vachement emmerder pour foutre nos clefs privées critiques dans des HSM et d’en limiter l’usage courant via des signatures intermédiaires.

@aeris ACME est un protocole très compliqué et cela ne me semble pas une bonne idée que de l'intégrer dans le serveur Gemini. Plutôt faire ça à l'extérieur, comme je l'ai fait pour mon propre serveur.

@bortzmeyer Ce n’est pas si compliqué, et je suis aussi partisan de le gérer à l’extérieur, mais en tout cas leurs arguments ne tiennent pas dans le cas où on peut écrire plus ou moins tout ce qu’on veut dans le code d’un nouveau projet.

@bortzmeyer En parlant de déléguer l'obtention de certificats à un service tiers… As-tu un avis sur le fait de confier la terminaison TLS de tous les services du serveur à un démon ?

@emersion Si ce démon est contrôlé par le/la même admin que les services du serveur, avec les mêmes principes (logiciel libre), je ne vois pas de problème politique ou technique.

@bortzmeyer Excellent. J'ai expérimenté avec cette idée et je me demandais pourquoi elle est si peu utilisée. Je vais juste en conclure qu'elle est moins triviale à mettre en place qu'un cron :P

@emersion
Ça se fait assez souvent pour le web avec du reverse proxy à base de nginx ou haproxy mais c'est beaucoup plus rare pour d'autres types de service.
@bortzmeyer

@aeris @bortzmeyer

Pour ma pars, j'utilise LE pour mes sites web, donc je réutilise le certificat pour mon serveur gemini.
Maintenant mon petit utilitaire de client gemini en node fonctionne sans désactiver mettre NODE_TLS_REJECT_UNAUTHORIZED à 0.

Peut être que le site officiel de gemini devrait en faire autant…

@aeris @bortzmeyer

Woupsie. un client tls qui ce repose sur les autorité de certification va faire la tronche.

Après on va pas ce le cacher, c'est compliqué à comprendre pour le commun des mortels le fonctionnement de TLS, avec ces chaines de certificat d'autorité et tout.
Et quand on veux un truc qui juste marche c'est chiant.

Je rappel que le blocage des certificat autosigné dans le navigateur ce fait seulement depuis quelques années.
J'ai commencé https en auto-certifié et ça passait.

@Purexo @bortzmeyer Ça n’a jamais passé, il y a toujours eu une erreur. Moins anxiogène qu’aujourd’hui mais une erreur quand même.

@Purexo @bortzmeyer Et attention aussi avec s_client qui par défaut ne vérifie absolument rien du certificat en face. Tout répondra toujours OK même sur les trucs les plus creepy

@aeris @bortzmeyer
C'était vraiment juste pour illustrer la synthèse de la chaine de certificat.
J'y penserai le jours ou j'aurais besoin de vraiment vérifier le certificat avec openssl.

@bortzmeyer @aeris on vient d'avoir une discussion sur le sujet et je maintient aussi que juger un protocole avec un an d'existence est risqué, ça peut mal tourner comme trés bien réussir, et si des gens trouvent ça mal sécurisé il s'en trouvera bien certains pour corriger cela, ou non …

@codeurimpulsif @bortzmeyer Sauf que là on parle de concept tellement bas niveau que tout gemini risque d’être à revoir. Parce qu’on ne rentre pas de la sécurité avec un chausse-pied une fois le truc déjà lancé…

@aeris @bortzmeyer ça tombe bien car il n'est pas encore "vu" tout court, les specifications peuvent encore bouger et avec l'engouement qu'est en train de succiter le projet ça pourrait bien partir dans le bon sens, on reviens dans un an pour en juger ? 😉

@codeurimpulsif @bortzmeyer On peut lui laisser sa chance, mais la probabilité que ça arrive à un truc correct à la fin avec un tel départ est plus proche de ε que d’autre chose.

@aeris @codeurimpulsif @bortzmeyer la dite probabilité serait probablement plus élevée si tu leur expliquais plutôt que juste râler sur masto 😉

@aeris @codeurimpulsif @bortzmeyer (je sais c'est plus difficile, ça m'arrive plus souvent qu'à mon tour)

@mmu_man @codeurimpulsif @bortzmeyer La snakeoil crypto, c’est un peu comme les fake news : au bout d’un moment tu en as un poil marre de passer 10h à débunker un truc qui a été écris en 10s, et de devoir ensuite passer 10 autres h à expliquer. Et finir par maintenir le projet tout seul parce que les autres ne souhaitent de toute façon pas faire de crypto.

@mmu_man @codeurimpulsif @bortzmeyer Sachant en plus que gemini ne réglera pas les problèmes qu’il dit pouvoir régler. HTTP/HTML, c’est ce qu’on en a fait qui fait que ça en est devenu de la merde. Gemini prendra le même chemin si ça perce un jour.

@mmu_man @codeurimpulsif @bortzmeyer Si on veut une « bonne » alternative au web moderne, ce n’est pas un nouveau protocole ou format qu’il faut écrire, mais « juste » prendre un Firefox, lui virer JS et restreindre un peu HTTP et on devrait avoir un truc vachement bien.

@aeris @mmu_man @codeurimpulsif La FAQ de Gemini explique très bien pourquoi cette voie n'a pas été choisie.

@aeris @mmu_man @codeurimpulsif @bortzmeyer Tu deverais lire gemini://gemini.circumlunar.space/~solderpunk/gemlog/why-not-just-use-a-subset-of-http-and-html.gmi

Qui explique pourquoi justement faire un subset de HTTP/HTML ça fonctionne juste pas dans la réalité.

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Leur explication me semble vaseuses. Distinguer un site d’un autre se fait simplement en changeant le scheme qui n’a jamais été obligatoirement lié à son protocole d’en dessous.

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Et dire « on ne peut pas virer toutes les features moisies » ben si ça s’appelle virer JS de HTTP et/ou faire un client HTTP custom (basé sur le scheme gemeni://)

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Et on voit de toute façon bien avec le web « moderne » que tu n’arriveras de toute façon jamais à bloquer le tracking, ils en arrivent aujourd’hui à des choses absolument imblocables dès lors que ton contenu… est un contenu… 😭

@aeris @lanodan @mmu_man @bortzmeyer rn tous cas on peut dire que ce protocole fait déjà couler beaucoup d'encre… heu de pixels pardon 😄

@codeurimpulsif @aeris @lanodan @mmu_man Absolument, et c'est pour ça que j'ai écrit un article, pour ne pas être le dernier à parler de Gemini sur mon blog.

@bortzmeyer

Je viens de le lire, on dirait gopher avec du tls 😉
@aeris @mmu_man @bortzmeyer @codeurimpulsif
HTTP faudrait virer au moins:
- ETags (tu le fais comment dans ton firefox de manière propre ça? 😛)
- Cookies

Faudrait virer le principe de fonctionnement de faire encore et toujours des requêtes à gogo (scroll infini, rafraichissement automatique, …) du Web. Gemini casse le truc des multi-requêtes par design.

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Je ne dis pas que HTTP ne permet pas le tracking, je dis juste que c’est plus ou moins le cadet de nos soucis actuellement.

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Et que cookie ou etag se réimplémentent server-side dès lors que tu as un seul entête à contenu déterminable server side. aka à mon avis n’importe quel protocole.

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Si j’ai pas de cookie ou d’etag à dispo, je passe par les URL générées dynamiquement contenant tout ce que j’ai besoin.

@aeris @mmu_man @bortzmeyer @codeurimpulsif Le tracking par URL, bien que possible dans gemini c'est quelque chose d'hyper visible et on aurait un seul truc genre CleanLinks dans les navigateus, youpi.

Pendant ce temps sur le web:
- Tu veux de HTTPS partout? Prend cette collection gigantesque de regex.
- Tu veux pas de requêtes additionnelles? Euuh, bah en fait non. AdBlock/uMatrix c'est bien gentil mais c'est mettre de la chantilly sur de la merde.

@lanodan @mmu_man @bortzmeyer @codeurimpulsif Bien visible non. Il suffit de randomiser le nom des paramètres.
Et pour HTTPS partout ou µBlock/µMatrix, je ne vois pas en quoi gemini ne verrait pas surgir le problème si le truc se met à fonctionner.

Déplier
@aeris @bortzmeyer @codeurimpulsif @mmu_man Faudrait transformer Firefox en un netsurf/dillo et encore tu y serait sans doute pas. Et ce genre de navigateur tu as globalement pas accès au Web.

@aeris @mmu_man @codeurimpulsif Là, tu n'as pas lu la spec, et les moyens utilisés pour que le protocole n'évolue pas.

@aeris @mmu_man @codeurimpulsif Empêcher un format d'évoluer est difficile mais un protocole, on peut.

@bortzmeyer @mmu_man @codeurimpulsif HTTP n’a quasiment pas évolué et pourtant le web si. Ce n’est donc pas le protocole le problème mais le format.

@bortzmeyer @mmu_man @codeurimpulsif Je veux dire par là qu’on peut faire tout aussi pire en terme de vie privée & cie avec HTTP/1.0 qu’avec HTTP/2.0.

@bortzmeyer @mmu_man @codeurimpulsif C’est l’évolution de HTML/JS/CSS qui a permis les dérives du moment, HTTP/1.0-1.1/2.0 n’a fait qu’apporter des perfs, du support de SNI ou d’autres trucs de ce style. Ça ne permet ni plus ni moins de tracking, ou en tout cas à l’extrême marge.

@bortzmeyer @mmu_man @codeurimpulsif Même sans cookie et user-agent, tu pourrais faire quasiment les mêmes trucs horribles qu’aujourd’hui…

@bortzmeyer @mmu_man @codeurimpulsif Et les cookies sont juste des en-têtes dorénavant normalisées. À partir du moment où ton protocole autorise les entêtes custom, tu peux les réimplémenter.

@bortzmeyer @mmu_man @codeurimpulsif J’aurais même tendance à dire qu’à partir du moment où ton protocole supporte/permet l’authentification, tu peux réimplémenter les cookies.

Déplier
Inscrivez-vous pour prendre part à la conversation
Mastodon - Gougère Network

Le réseau social de l'avenir : Pas d'annonces, pas de surveillance institutionnelle, conception éthique et décentralisation ! Possédez vos données avec Mastodon !