My profile picture

Research, Build, Resist.

Gemini, une alternative viable Ă  HTTP ?

Hey 👋, aujourd'hui on parle du protocole Gemini, Gemini est un protocole alternatif Ă  HTTP ou Gopher pour ne citer qu'eux, crĂ©Ă© en Juin 2019 avec pour objectif d'ĂȘtre beaucoup plus lĂ©ger qu'HTTP, et de mieux respecter la vie privĂ©e des utilisateurs, en effet, avec Gemini, pas de JS, de cookies ou de eTag, le tracking des utilisateurs est quasi impossible. Gemini n'a pas Ă©tĂ© crĂ©Ă© pour concurrencer HTTP mais bien pour offrir une alternative plus lĂ©gĂšre et sĂ©curisĂ©e aux utilisateurs. Ce protocole embarque d'office le protocole TLS, il n'y a donc contrairement Ă  HTTP pas la possibilitĂ© d'avoir des communications en clair. Ce protocole est basĂ© en partie sur HTTP 0.9 et essentiellement textuel, mais des images peuvent aussi ĂȘtre intĂ©grĂ©.

Une requĂȘte Gemini est trĂšs simple, le client demande un fichier sur le serveur cible, le serveur rĂ©pond avec un code d'erreur (ici, 20 = OK), le type de fichier, le plus souvent text/gemini et pour finir envoie le fichier. C'est plus simple que TCP avant-hier n'est-ce pas ? 😅 Voici donc une requĂȘte standard sur Gemini. C reprĂ©sente le client et S le serveur.

C: gemini://gemini.circumlunar.space/docs/faq.gmi
S: 20 text/gemini
S: # Hey !
S: This is a website running under Gemini :D

J'ai volontairement omis toute la partie correspondant Ă  TLS dans l'exemple de requĂȘte ci-dessus car TLS fera l'objet d'un article plus complet dans peu de temps.

Afin de se rendre indépendant de CA externes qui, comme on l'a vu sont un SPOF (single point of failure, point unique de défaillance) qui, si il se trouve compromit, pourrait délivrer des certificats frauduleux Gemini s'appuie sur le principe de TOFU, Trust on first use, c'est un méchanisme aussi utilisé par SSH par exemple, pour faire confiance à un certificat, le logiciel s'appuie simplement sur le certificat qu'il a croisé pour la premiÚre fois sur ce site. Cette façon de fonctionner est décriée par certains préférant un fonctionnement avec CA. Cependant, des mécanismes comme DANE couplé à DNSSEC existent et permettent de rendre relativement sécurisé Gemini.