tag:linuxfr.org,2005:/users/kabouinLinuxFr.org : les contenus de Kabouin2021-04-16T18:30:08+02:00/favicon.pngtag:linuxfr.org,2005:Diary/397152021-04-16T09:12:43+02:002021-04-16T09:12:43+02:00OpenSSL : Fedora en mode YOLOLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Salut l'ami,</p>
<p>Pour ce premier journal, je me suis permis un titre un brin provocateur, mais après tout, c'est vendredi, et on se doit d'être bleu métal.</p>
<p>Il y a quelques jour, en recompilant mon projet suite à une mise à jour de Qt dont il dépend, j'ai obtenu avec stupeur l'erreur suivante :</p>
<pre><code>/usr/bin/ld: /usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
/usr/bin/ld: /usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/bin/ld: /usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/bin/ld: /usr/lib64/libk5crypto.so.3: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
</code></pre>
<p>Étonnamment, mes collègues s'étant occupés du bump de Qt n'ont pas eu le moindre souci.</p>
<p>Après investigation, il s'avère que la mise à jour de la lib <code>QtNetwork</code> ajoute une dépendance sur cette <code>libk5crypto.so</code> (il s'agit de Kerberos). Dans notre projet, nous construisons et fournissons nos libs OpenSSL, notamment pour ne pas avoir de soucis de compatibilité sur les distros trop anciennes.</p>
<p>Donc, notre projet link avec notre lib OpenSSL, et la lib kerberos de Fedora, qui ne sont pas binary-compatible, car la lib kerberos dépend d'openssl shippée par Fedora. Pour le "semver", on repassera, car au final la version 1.1.1k de Fedora n'est pas compatible avec notre OpenSSL 1.1.1d.</p>
<p>Quelques recherches plus tard, je ne suis <a href="https://github.com/openssl/openssl/issues/11471">pas le seul</a> à avoir rencontrer ce problème, et il s'avère spécifique à Fedora.</p>
<p>Bon, la raison est plutôt simple, Fedora a décidé de <a href="https://src.fedoraproject.org/rpms/openssl//blob/rawhide/f/openssl-1.1.1-evp-kdf.patch">backporter</a> EVP_KDF dans ses libs. Cette feature est pourtant prévue pour OpenSSL 3 : <a href="https://wiki.openssl.org/index.php/EVP_Key_Derivation">https://wiki.openssl.org/index.php/EVP_Key_Derivation</a></p>
<blockquote>
<p>OpenSSL 3.0 additionally provides Single Step KDF, SSH KDF, PBKDF2, Scrypt, HKDF, ANSI X9.42 KDF, ANSI X9.63 KDF and TLS1 PRF KDF by way of EVP_KDF.</p>
</blockquote>
<p>On peut lire également sur cette page :</p>
<blockquote>
<p>If compatibility with OpenSSL 1.1.1 is required then a limited set of KDFs can be used via EVP_PKEY_derive.</p>
</blockquote>
<p>Je me demande bien quelles sont les raisons qui font que sur Fedora, les mainteneurs aient malgré eu besoin de backporter ça, alors qu'une autre solution est préconisée par OpenSSL. Je suis preneur si tu as des infos là dessus.</p>
<p>Mais ce n'est pas tout, j'ai été un peu effaré de lire ce ticket du bugtracker Redhat : <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1829790">https://bugzilla.redhat.com/show_bug.cgi?id=1829790</a></p>
<p>On y lit notamment les critiques des mainteneurs sur le fait qu'un logiciel fournisse ses propres libs :</p>
<blockquote>
<p>this means those products are using most probably outdated libraries w/o getting CVE bugfixes when the system gets them.<br>
I would open a bug report upstream to stop doing this stupdi library interposing on all systems and do it only where the proper library version is missing (arguably they do this to handle RHEL/CentOS 6 which are stuck on openssl 1.0.2).</p>
</blockquote>
<p>Et aussi :</p>
<blockquote>
<p>There is nothing to be fixed on Fedora side.</p>
</blockquote>
<p>Alors certes, on peut se poser la question du bien-fondé de packager des libs OpenSSL dans un logiciel Linux en 2021. Par contre cette attitude arrogante de la part des mainteneurs Fedora me parait bien osée : ils backportent une feature d'OpenSSL qui est actuellement en version alpha, donc probablement pas ou peu auditée au niveau sécu. Tout en présumant de l'incapacité des autres à maintenir du OpenSSL à jour. Bref.</p>
<p>Je terminerai sur une citation de ce bon vieux Linux, qui me parait appropriée:</p>
<blockquote>
<p>We make binaries for Windows and OSX, we basically don't make binaries for Linux. Why? Because making binaries for Linux desktop applications is a major fucking pain in the ass.</p>
</blockquote>
<p>Et toi l'ami, qu'en penses-tu ?</p>
<div><a href="https://linuxfr.org/users/kabouin/journaux/openssl-fedora-en-mode-yolo.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/123979/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/kabouin/journaux/openssl-fedora-en-mode-yolo#comments">ouvrir dans le navigateur</a>
</p>
Kabouinhttps://linuxfr.org/nodes/123979/comments.atom