Journal Baroud pour NSS dans Chrom(ium)

Posté par (page perso) . Licence CC by-sa.
16
5
mai
2019

Hello nal,

Je viens de consacrer un temps beaucoup trop important au backport de NSS dans Chromium 58.

NSS, historiquement "Netscape Security Services", c'est la bibliothèque de sécurité concurrente d'OpenSSL ; utilisée notamment par Firefox, Curl et Git (quand on fait un git clone https://[…] par exemple).

Cela fait longtemps (~4 ans) que les devs Chromium ont switché vers BoringSSL, leur fork auto-hébergé d'OpenSSL. Là j'ai remis l'ancien système, ça marchote, mais il commence à manquer des fonctionnalités et surtout l'effort devient de plus en plus important.

Le patch est gigantesque : en plus de ça et ça, il faut encore balancer ces arborescences de fichiers et .

Je me doute que cela n'en intéressera pas des masses ici.
Pour ceux qui le seront, j'abandonne probablement le truc pour la prochaine version, une fois que j'aurai pigé comment compiler avec la version système d'OpenSSL -ce sera moins lourd.
À toutes fins utiles…

  • # Intérêt ?

    Posté par . Évalué à 8.

    Quel est l'intérêt exact d'utiliser NSS au lieu de BoringSSL ?

    • [^] # Re: Intérêt ?

      Posté par (page perso) . Évalué à 4. Dernière modification le 05/05/19 à 10:48.

      La réponse générale sera la même que pour :
      "Quel est l'intérêt exact d'utiliser OpenSSL au lieu de BoringSSL ?"

      C'est une bibliothèque connue et à l'API standard, réutilisable sur de nombreux systèmes.
      C'est surtout utile si tu veux relier Chromium, entier ou en parties, à cette brique standard.
      Cela n'a aucun intérêt si tu te contentes de builder le Chromium "d'un bloc" proposé par le projet.

      Le choix historique de l'implé NSS vient juste du fait qu'à l'époque, elle était presque standard alors que la OpenSSL/BoringSSL l'était beaucoup moins = moins d'effort.

    • [^] # Re: Intérêt ?

      Posté par . Évalué à 6.

      NSS avait un meilleur support des token PKCS11 (typiquement un module USB qui contient la clé privée d'un certificat client, et la seule manière de l'utiliser est par des appels de fonctions PKCS11).

      Mais peut-être que OpenSSL et BoringSSL ont progressé récemment dans ce domaine.

    • [^] # Re: Intérêt ?

      Posté par . Évalué à 3.

      Perso j'ai déjà vue comme argument :
      - Certification FIPS
      - Keystore plus évolué (pas juste une liste de CAs balancé à un endroit, mais store système + user, avec clés persos & co ; cf. le support PKCS11 évoqué plus haut, en gros NSS se soucie bien de l'authentification SSL client), mais sans documentation (de mémoire)

  • # Convergence ?

    Posté par (page perso) . Évalué à 3.

    Gz Tarnyko !

    Tu peux tjr envoyer ton patch (in progress) pour avoir du feedback d'upstream

    Pense tu qu'une (Re-)convergence est elle désirable ou envisageable ?

    Good luck

    gpg:0x467094BC

    • [^] # Re: Convergence ?

      Posté par (page perso) . Évalué à 2.

      Hey Rzr,

      Ils ont sué pour se débarrasser de NSS, je ne pense pas qu'ils voudront le remettre.

      Ici, on est en face d'un effort dicté par des considérations totalement détachées d'upstream. Si totalement désintéressées, presque christiques.

      • [^] # Re: Convergence ?

        Posté par (page perso) . Évalué à 2.

        • [^] # Re: Convergence ?

          Posté par (page perso) . Évalué à 1. Dernière modification le 06/05/19 à 08:56.

          Je m'abstiens de poster des tickets côté NSS depuis ça.
          ;)

          • [^] # Re: Convergence ?

            Posté par (page perso) . Évalué à 2.

            wtc bosse plus sur nss depuis un moment, faut pinger les gens pour que ca avance :)

            • [^] # Re: Convergence ?

              Posté par (page perso) . Évalué à 1.

              Bah sur Tinder p.ex., quand je relance ça marche jamais.

            • [^] # Re: Convergence ?

              Posté par (page perso) . Évalué à 2.

              Ah, tu as fait bouger l'ancêtre… je viens de commenter (et fermer).
              Sans plaisanter maintenant : en général je poste 1-2 tickets sur un projet, si ça gigote pas je n'y touche plus. Mais là je te remercie, ça a dû changer ; je réessaierai si besoin.

              • [^] # Re: Convergence ?

                Posté par (page perso) . Évalué à 4.

                Un projet comme Firefox a des centaines de nouveaux bugs par jour, on peut pas tout faire…
                Faut pas hésiter à insister/relancer.

      • [^] # Re: Convergence ?

        Posté par . Évalué à 2.

        Ici, on est en face d'un effort dicté par des considérations totalement détachées d'upstream. Si totalement désintéressées, presque christiques.

        Par curiosité, c'est quoi ta motivation ?

        • [^] # Re: Convergence ?

          Posté par (page perso) . Évalué à 2.

          Cela s'inscrit dans un effort plus large nommé Chromium-Lite.

          En gros une version allégée, plus modulaire, qui builde avec une toolchain standard
          et se lie avec des bibliothèques systeme (libicui18n.so, libsqlite3.so, libnss3.so…) plutôt que d'être entièrement auto-contenue.
          Il y a déjà eu une release, je bosse sur la deuxième.

          • [^] # Re: Convergence ?

            Posté par . Évalué à 3.

            Merci. Ça me semble un projet « dans le bon sens », mais bon vu l'upstream, ça fait projet à rebours qui n'a jamais aucune chance d'être mergé de toutes façons… C'est quoi l'objectif « à long terme » ? Ou alors il n'y en a pas, c'est juste pour le beau geste ? Bravo en tous cas pour ce travail, même si je ne suis pas un fan de Google et n'utilise pas Chromium.

            • [^] # Re: Convergence ?

              Posté par (page perso) . Évalué à 1. Dernière modification le 11/05/19 à 14:24.

              ça fait projet à rebours qui n'a jamais aucune chance d'être mergé de toutes façons…

              Effectivement. Pas un gros souci personnellement.

              Ou alors il n'y en a pas, c'est juste pour le beau geste ?

              Oulà… tout de suite les grands mots ;).
              Pour toi et moi, ça permet de le builder sur une machine moyen de gamme, et en moins de 6 heures ;-).
              À titre perso, savoir builder Chromium, me permet de savoir comment il marche. Et ça c'est génial.
              À d'autres titres, c'est une compétence extrêmement rare qui ouvre plein de possibilités.
              Chromium-Lite n'est que la partie visible d'autres projets plus ciblés.

              Merci beaucoup !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.