dimanche 21 juin 2009

Freenet 0.7.5 est enfin là, contre toute attente !


Freenet est un réseau anonyme et chiffré qui est basé sur Internet. Il a été créé par Ian Clarke, est distribué sous licence GPL et est maintenu par beaucoup de développeurs bénévoles ainsi qu'un développeur à plein temps, payé grâce aux donations. Le but principal est de prôner la liberté d'expression et de rendre toute censure impossible. C'est pourquoi, par exemple, il est impossible de supprimer du contenu de Freenet une fois qu'il a été inséré dans le réseau. De même, chaque noeud (un noeud est un ordinateur faisant tourner Freenet) n'a aucun moyen de savoir ce qui transite et ce qui est stocké dans le disque dur.

De façon plus pratique, Freenet permet d'insérer des Freesites, un ensemble de pages xHTML formant un site anonyme ou non, d'effectuer du partage de fichiers, de consulter des groupes de discussion et de s'envoyer des Freemails (système d'e-mail basé sur le réseau Freenet).

Freenet est surtout connu pour avoir soulevé de nombreux débats éthiques, du fait de l'absence totale de censure. Cependant, si vous tenez à conserver un réseau où vous serez sûr que personne ne pourra vous enlever votre liberté d'expression, alors Freenet devrait vous intéresser, surtout avec les projets de loi récents visant à filtrer Internet en France (LOPPSI). Le réseau est vraiment conçu pour ça, les développeurs eux-mêmes ne pouvant arrêter le réseau, même sous pression juridique.




Un historique proche relativement chargé


Il y a quelques mois, ce projet a bien failli ne pas continuer d'exister, et ceci pour plusieurs raisons.

Tout d'abord, le bénévole chargé de l'administration du serveur principal hébergeant le serveur SVN a décidé qu'il ne pouvait plus continuer. Or, personne d'autre n'avait les compétences nécessaires et la confiance nécessaire pour le remplacer. Pour pallier cela, les sources ont été déplacées sur GitHub. Ce choix est discutable, GitHub pourrait facilement décider d'arrêter d'héberger les sources de Freenet à cause de problèmes légaux ! Finalement, git permet assez facilement de s'adapter à ce cas de situation et donc cette éventualité ne causerait pas la mort du projet.

Vu que le projet n'est alimenté en argent que par les dons et qu'un développeur est payé à plein temps, l'argent a commencé à manquer de façon très sérieuse. C'est aussi pour cette raison que le serveur principal a été coupé suite à l'abandon du bénévole chargé de son administration, il représentait un coût non négligeable. Pour donner un indice, le projet a survécu avec moins de 1000$ en réserve pendant plusieurs mois.

Finalement, à la surprise de tous, Google a versé une importante donation de 18 000$ au projet au début du mois de mai. La survie du projet n'est donc plus un problème à moyen terme. Pour rappel, Google a joué un rôle important pour le projet, notamment grâce aux Google Summer of Code (GSoC).

Les nouveautés de la version 0.7.5


La version précédente, 0.7, datait de mai 2008. Mais cela ne veut pas dire qu'aucune nouveauté n'est apparue depuis plus d'un an. Le fonctionnement de Freenet est un peu particulier au niveau des versions. Le noeud se met à jour lui-même (en général de façon automatique) via le réseau Freenet ; le numéro de version est donc une notation symbolique pour mettre en évidence les nouveautés des précédents builds. Les développeurs n'attendent pas de date précise pour ajouter de nouvelles fonctions, ils le font lorsqu'ils jugent de façon arbitraire qu'il y en a eu suffisamment pour changer le numéro de version.

Depuis la version 0.7, de très grosses nouveautés ont été implémentées. Voici un résumé non exhaustif des plus significatives.

Résultat de plus d'un an de travail acharné, l'intégration de db4o (Database for Objects) a permis d'augmenter très grandement la performance et de réduire les ressources utilisées par le noeud. Il est par exemple possible de télécharger plusieurs gigaoctets de fichiers sans pour autant observer une augmentation de la quantité de mémoire vive utilisée. Un noeud typique consommera maintenant entre 100 et 250 mégaoctets de mémoire vive, pas plus. Grâce à db4o, on peut maintenant faire des petits serveurs dédiés Freenet en réutilisant du vieux matériel, ou bien avec du matériel miniature. Cela laisse de belles perspectives pour l'avenir : Freenet sur de l'embarqué.

L'interface web de Freenet (FProxy) a été améliorée afin de la rendre beaucoup plus accessible aux néophytes. De nouveaux installeurs ont été mis au point afin de rendre l'installation plus simple, et de renforcer la compatibilité avec Windows Vista.

Enfin, la majorité du système de plugins a été refondue en profondeur. Cela permettra par exemple d'avoir des dépendances inter-plugins, ou encore leur mise à jour automatique. C'est une modification peu importante pour l'utilisateur, mais c'est une brique nécessaire à l'achèvement de la prochaine "grosse" version de Freenet, la 0.8.

Qu'attendre à court/moyen terme ?


Freenet 0.8 comportera Freetalk/WoT, un nouveau système officiel pour communiquer avec les autres utilisateurs. Annoncé depuis longtemps comme révolutionnaire, tout le monde l'attend avec impatience. Étant donné que Freenet est un réseau entièrement décentralisé, ce système se basera sur une technique de "Toile de confiance" (Web of Trust). En gros, vous devez noter votre confiance envers les autres utilisateurs, afin de rendre impossible toute tentative de spam. Les autres utilisateurs vous notent également. Il paraît évident que les identités ayant de très mauvaises notes seront ignorées des autres, et ne pourront donc plus communiquer. C'est un système de filtrage décentralisé et « démocratique » en quelque sorte : chacun a son mot à dire, et le système se régule de lui-même.

Un nouveau type de clé sera aussi créé : les MHKs (Multiple not Duplicated Hash Key) serviront à partager de gros fichiers plus efficacement qu'à l'heure actuelle. Le fonctionnement est complexe, mais globalement, les blocs d'index seront insérés avec plus de redondance afin d'éviter la perte prématurée de données.

Enfin, les noeuds pourront aussi partager leur bloom filter avec leurs voisins immédiats. Cela signifie que votre noeud "saura" ce que stocke chacun de ses voisins, ce qui représentera un gain important de performances. En revanche, l'implémentation d'un tel système est très délicate, et il faudra donc être patient.

Le mot final

Cette avancée symbolique de Freenet a bien sûr pour but d'attirer plus d'utilisateurs, mais aussi de faire connaître Freenet aux internautes du monde entier : Freenet est indétectable de l'extérieur si utilisé en mode Darknet (en se connectant uniquement à des amis à proximité de confiance), et il faut donc au moins savoir que des solutions existent pour pallier la tendance qu'ont les gouvernements à filtrer le web, ou à envisager de le faire, tout au moins. Freenet est tout de même utilisable si on ne connaît personne qui l'utilise : le mode Opennet vous connectera à des inconnus (la seule différence par rapport au Darknet, c'est qu'on peut savoir que vous utilisez Freenet. Mais comme il n'est pas encore illégal en France, ça ne pose aucun problème).

Enfin, Freenet étant développé entièrement en Java, il est compatible avec n'importe quel système d'exploitation disposant d'une JVM version 1.5 au minimum. Cela inclut Windows, Mac OS, GNU/Linux, FreeBSD, Solaris, ...

Si ce sujet vous plaît et que vous souhaitez aller plus loin :
Freenetproject, le site officiel
Théorie des Small World Networks
Filtrage du web en France, peut-être pour bientôt
En savoir plus sur db4o

Aucun commentaire: