IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Le projet Tor envisage de remplacer sa base de code C par du Rust dans le cadre du projet Arti


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    Février 2017
    Messages
    1 837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Redacteur web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2017
    Messages : 1 837
    Points : 51 397
    Points
    51 397
    Par défaut Le projet Tor envisage de remplacer sa base de code C par du Rust dans le cadre du projet Arti
    Le projet Tor envisage de remplacer sa base de code C « complexe et fragile » par du Rust dans le cadre du projet Arti :
    Le langage C est-il adapté à la création d’applications sécurisées ?

    Le développement du système UNIX a débuté en 1969 et son code a fait l’objet de réécriture en langage C en 1972. Ça fait donc des années que ce langage fait ses preuves : c’est un niveau de performances proche de celui de l’assembleur, ce, tout offrant flexibilité et productivité. Pourtant, de plus en plus de gros acteurs de la filière technologique lui préfèrent le Rust. Motif : le langage de Mozilla offrirait en plus de meilleurs gages pour la sécurisation des logiciels. Qu’est-ce qu’il en est ?

    Le tableau langage C délaissé pour le Rust en raison de ses gages de sécurisation des logiciels prend un coup de neuf avec des développements en lien au projet Tor. L’équipe de projet envisage de remplacer sa base de code C par du Rust dans le cadre du projet Arti – une implémentation de l’ensemble des protocoles Tor en Rust.

    Elle explique à cet effet que : « Tor est disponible pour être utilisé, bien établi et bien analysé aujourd'hui et fonctionne avec la plupart des protocoles qui s’appuient sur TCP. Les performances et l'évolutivité de notre réseau se sont améliorées au fil du temps et nous disposons d'un écosystème d'outils pour contourner les différents régimes de censure dans le monde. Mais l'implémentation actuelle de Tor porte les signes de son âge. Tor est implémenté en C comme proxy réseau autonome. (Cela avait du sens en 2002, lorsque les langages multiplateformes performants étaient moins courants sur le terrain). Parce que Tor est un proxy autonome, il est difficile pour les tiers de l'intégrer : nous avons un "mode bibliothèque", mais le mode bibliothèque fait juste tourner le proxy dans un ensemble séparé de threads. Et parce que Tor est écrit en C, il est difficile d'avoir la même confiance dans la sécurité de sa mémoire que ce qui serait possible avec un langage qui offre de meilleurs gages de sécurisation de la mémoire. En outre, parce que le C est peu sûr et sujet aux erreurs, notre développement nécessite plus de temps et d'énergie qu'il ne le devrait. »

    À date, Arti est un simple proxy SOCKS. L’équipe de développement du projet travaille à établir une parité avec l’implémentation C en termes de fonctionnalités. L’objectif devrait être atteint dans deux ans avec trois développeurs à temps plein.

    Le langage C est-il adapté à la mise sur pied d’applications sécurisées ?

    Ces dernières années, des chercheurs en sécurité ne cessent de mettre le doigt sur ce qui serait l’une des plus grosses tares que le langage C traîne : les problèmes liés à la gestion de la mémoire – dépassements de mémoire tampon, allocations non libérées, accès à des zones mémoire invalides ou libérées, etc. D’après les chiffres du dictionnaire Common Vulnerabilities and Exposure (CVE), 15,9 % des 2288 vulnérabilités qui ont affecté le noyau Linux en 20 ans sont liées à des dépassements de mémoire tampon. Ces chiffres prennent un coup de neuf avec un plus récent état des lieux des vulnérabilités de l’utilitaire ligne de commande Curl utile pour récupérer le contenu d'une ressource accessible par un réseau informatique. De récents décomptes font état de ce qu’un peu plus de la moitié des failles de sécurité de Curl sont la résultante d’erreurs de programmation en langage C. En fait, la part cumulée de toutes les vulnérabilités de sécurité dues aux erreurs C au fil du temps (ligne bleue) était sous la barre des 50 % en 2012 pour repasser au-dessus en 2018. Depuis lors, elle y est demeurée.

    Nom : 1.png
Affichages : 110568
Taille : 64,4 Ko

    C’est la raison pour laquelle de plus en plus de grands acteurs de la filière technologique lui préfèrent le langage Rust de Mozilla. Dans le cadre d’une présentation de la conférence virtuelle AllThingsOpen à mi-parcours de l’année précédente, Ryan Levick – développeur qui travaille sur l’infrastructure cloud du géant technologique (Microsoft) – revient sur ces détails et coupe court : « Quels que soient les investissements que les entreprises de la filière du développement de logiciels peuvent mettre sur pied, le fait est que C++ [C] n’est pas par essence un langage fait pour la mise sur pied d’applications sécurisées. » En 2019, Alex Gaynor – un ex-contributeur de l’équipe sécurité du navigateur Firefox – émettait un avis similaire : « Le C++ moderne ne nous sauvera pas, car il est moins sécurisé que les nouveaux langages [Rust, Swift]). »

    L’une des approches envisageables est de multiplier les formations des programmeurs à l’écriture d’applications sécurisées en langage C. Une autre est de faire recours à l’analyse statique. Enfin, la piste des vérifications lors de l’exécution reste valable. Mais l’ingénieur de Microsoft est d’avis qu’aucune de ces solutions n’apporte une solution entière à l’absence d’orientation des langages C et C++ vers la sécurité dans leur conception. C’est pour cet ensemble de raisons que ce dernier estime que le langage Rust est la meilleure chance offerte à l’industrie informatique pour la mise sur pied d’applications sécurisées.


    Les initiatives allant dans le sens de faire un usage plus extensif du langage se multiplient donc chez la firme de Redmond. L’une des plus récentes et remarquées est Rust/WinRT – une projection du langage Rust pour les API Windows Runtime. De façon ramassée, l’annonce signifie que les développeurs peuvent créer des composants pour Windows en utilisant Rust. En parallèle, Microsoft pilote l’effort « Safe Systems Programming Languages » au travers duquel l’entreprise apporte plus d’éclaircissements sur son intérêt pour des langages de programmation comme Rust.

    Les initiatives allant dans le sens de faire un usage plus extensif du langage se multiplient donc chez la firme de Redmond. L’une des plus récentes et remarquées est Rust/WinRT – une projection du langage Rust pour les API Windows Runtime. De façon ramassée, l’annonce signifie que les développeurs peuvent créer des composants pour Windows en utilisant Rust. En parallèle, Microsoft pilote l’effort « Safe Systems Programming Languages » au travers duquel l’entreprise apporte plus d’éclaircissements sur son intérêt pour des langages de programmation comme Rust.

    Sur cinq années consécutives, Rust a obtenu la reconnaissance de « plus aimé » des développeurs habitués de la plateforme de questions-réponses sur des sujets liés à l’informatique – StackOverflow. Toutefois, ce dernier reste très utilisé dans le cadre de projets personnels. Les entreprises ne s’en servent pas. En toile de fond, on a un lot de raisons techniques susceptibles de justifier le positionnement des entreprises qui ne s’appuient pas sur Rust pour leurs projets : manque de bibliothèques, absence de prise en charge de plus d’ environnements de développement intégré, manque de documentation, etc. En effet, le manque de bibliothèques est l’une des raisons que certains développeurs soulignent comme un frein à la productivité.

    Après, Rust a désormais l’un des plus grands de l’histoire de l’informatique pour le pousser. Ce sont des ressources supplémentaires qui peuvent être allouées à l'amélioration et au développement du langage lui-même : du temps d'ingénierie, probablement des propositions et pistes d'amélioration. En sus, l’appui de Microsoft apparaît comme une étiquette qualité pour le langage de programmation. Cela devrait permettre de rehausser son niveau d’adoption en entreprise.

    Sources : forum zcash, zomg

    Et vous ?

    Le langage C est-il adapté à la mise sur pied d’applications sécurisées ?
    Êtes-vous en accord avec les griefs portés à l'endroit du langage C en matière de sécurité ? Le problème n'est-il pas plutôt celui de la qualité des développeurs ?
    Voyez-vous aussi la présence de Microsoft derrière ce langage comme une force ?
    Votre entreprise a-t-elle adopté le langage Rust ? Si oui, sur des projets de quelle taille ?
    Quels sont les ingrédients susceptibles de conduire à une adoption plus importante de Rust, mais qui lui font encore défaut de votre point de vue ?

    Voir aussi :

    L'équipe Microsoft Security Response Center recommande l'utilisation de Rust comme approche proactive pour un code plus sécurisé
    Quel langage pourrait remplacer C ? Après avoir comparé Go, Rust et D, le choix d'Andrei Alexandrescu se porte sur D
    C2Rust : un outil qui permet de faire la traduction et la refactorisation de votre code écrit en langage C vers le langage Rust
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    908
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 908
    Points : 2 815
    Points
    2 815
    Par défaut
    Êtes-vous en accord avec les griefs portés à l'endroit du langage C en matière de sécurité ? Le problème n'est-il pas plutôt celui de la qualité des développeurs ?
    Je vais faire mon capitaliste, le problème c'est la "monnaie".

    Comme on parle de développement libre, ici la "monnaie" c'est le temps que peuvent consacrer les développeurs.

    Oui on peut faire du C sécurisé, cependant c'est plus difficile et donc beaucoup plus consommateurs de temps ce qui ralenti le développement global pour rajouter des fonctions,...

    Le but des langage récents, c'est pas de pouvoirs faire des trucs qui étaient impossible en C, on peut tout faire en C, c'est de le faire de façon plus fiable, sécurisé, et rapide, en revanche chaque langage récent a ses contraintes qui faisait qu'ils n'étaient pas adaptés au systèmes mais plus à faire des applications, contrairement au Rust qui a été fait pour ça depuis le début.

  3. #3
    Membre expert
    Profil pro
    undef
    Inscrit en
    Février 2013
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : undef

    Informations forums :
    Inscription : Février 2013
    Messages : 957
    Points : 3 525
    Points
    3 525
    Par défaut
    Ce n'est pas le langage le problème, mais l'usure du programmeur devant continuellement travailler sur deux fichiers distincts .h et .c

  4. #4
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2014
    Messages : 605
    Points : 1 446
    Points
    1 446
    Par défaut
    "Rust a désormais l’un des plus grands de l’histoire de l’informatique pour le pousser." : ça veut dire quoi en [FONT=Verdana, Amiko, sans-serif]Français[/FONT] ?
    "
    De façon ramassé" : quel mot...C'est pas plutôt "De façon résumée" ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2014
    Messages : 605
    Points : 1 446
    Points
    1 446
    Par défaut
    Citation Envoyé par 23JFK Voir le message
    Ce n'est pas le langage le problème, mais l'usure du programmeur devant continuellement travailler sur deux fichiers distincts .h et .c
    Et aussi qu'il faut apprendre un nouveau langage, de nouvelles règles. C'est (un peu) comme passer du COBOL à Java : il faut en avoir les capacités. Même ainsi, la courbe d'apprentissage est longue.

  6. #6
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 423
    Points : 8 699
    Points
    8 699
    Billets dans le blog
    43
    Par défaut
    Après, Rust a désormais l’un des plus grands de l’histoire de l’informatique pour le pousser. Ce sont des ressources supplémentaires qui peuvent être allouées à l'amélioration et au développement du langage lui-même : du temps d'ingénierie, probablement des propositions et pistes d'amélioration. En sus, l’appui de Microsoft apparaît comme une étiquette qualité pour le langage de programmation.
    Le langage Rust va pouvoir décoller grâce à l'appui de la firme de Redmond. Celle-ci va professionnaliser la filière avec enfin des certifications Microsoft en Rust.
    Tutoriels et FAQ TypeScript

  7. #7
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 559
    Points : 15 484
    Points
    15 484
    Par défaut
    Citation Envoyé par 23JFK Voir le message
    Ce n'est pas le langage le problème, mais l'usure du programmeur devant continuellement travailler sur deux fichiers distincts .h et .c
    Les headers, ça fait partie du langage C. A moins que tu mettes tout dans tes fichier .c, mais ça risque de te poser assez vite des soucis.

    Citation Envoyé par TotoParis Voir le message
    Rust a désormais l’un des plus grands de l’histoire de l’informatique pour le pousser." : ça veut dire quoi en Français
    C'est du français correct même si c'est pas parfaitement clair au premier coup d’œil. Microsoft est bien l'un des plus grands de l'histoire de l'informatique, et depuis peu il pousse à l'adoption de Rust.

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/03/2021, 16h41
  2. Réponses: 7
    Dernier message: 24/03/2015, 13h32
  3. [AC-2013] remplacer le nom d'un formulaire par une variable dans un Public Sub
    Par GuyDuLac dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/10/2014, 17h23
  4. Réponses: 60
    Dernier message: 03/12/2010, 20h03
  5. Réponses: 6
    Dernier message: 06/01/2010, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo