Journal Baroud pour NSS dans Chrom(ium)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Évalué à 4. Dernière modification le 05 mai 2019 à 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  (site web personnel) . É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  (site web personnel) . É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  (site web personnel) . Évalué à 2.

      • [^] # 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  (site web personnel) . É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  (site web personnel) . Évalué à 1. Dernière modification le 11 mai 2019 à 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 à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.