10 votes

Dans quelle mesure le support de libressl est-il "officiel" dans High Sierra ?

J'essaie de porter un programme C basé sur OpenSSL de Linux à MacOS, et j'aimerais utiliser une bibliothèque pour TLS qui est officiellement supportée par le système d'exploitation, parce qu'alors le système d'exploitation maintient cette bibliothèque à jour et sécurisée sans aucun travail supplémentaire pour moi ou l'utilisateur de mon application.

Je pensais que LibreSSL était officiellement supporté par MacOS et j'ai déjà porté mon programme avec un backend LibreSSL, mais je ne suis pas sûr de l'état de LibreSSL dans MacOS. Existe-t-il une documentation officielle indiquant si les développeurs doivent considérer la bibliothèque LibreSSL comme dépréciée ou non ?

PS : J'ai cherché sur le site des développeurs d'Apple, mais la rubrique la documentation officielle d'Apple sur le cryptage des communications réseau ne mentionne ABSOLUMENT PAS LibreSSL (qui n'est pas la même chose qu'OpenSSL).

8voto

Charles Beattie Points 2637

MacOS a fourni openssl-0.9.8 (alors que le monde utilisait 1.0.2, et envisageait 1.1 et 1.1.1) jusqu'à la sortie de High Sierra. Maintenant, dans MacOS 10.13.5, c'est libressl-2.2.7, alors que la libressl actuelle est 2.7.4.

Il semble que LibreSSL, fourni par MacOS, ne soit pas livré avec des moteurs, et il n'est pas certain qu'il soit possible d'y ajouter un moteur. Cela signifie - pas d'openssl utilisant des clés sur des tokens matériels accessibles via PKCS#11, pas de RNG matériel accessible via PKCS#11 ou RDRAND, etc. MISE À JOUR : Il ne semble pas non plus avoir les fichiers include nécessaires pour compiler vos applications. Il semble donc que vous ne puissiez pas compiler votre logiciel avec MacOS LibreSSL même si vous le vouliez (vous pourriez peut-être le faire en téléchargeant LibreSSL-2.2.7 vous-même, etc. - mais je suis sûr que cela ne vaut pas la peine).

Comme je ne veux pas écrire de code qui s'exécute seulement sur Mac, je ne peux pas me permettre d'être coincé avec Apple Secure Transport ou autre.

Par conséquent, ma recommandation personnelle serait d'installer et de travailler avec un "vrai" openssl, en l'installant via Macports (comme je l'ai fait pour la "production" sur mes systèmes) ou Brew. Dans ce cas, les responsables des paquets suivront les mises à jour et les correctifs de sécurité pour vous, mais vous maintiendrez la compatibilité avec votre code Linux avec un minimum d'efforts.

5voto

Douglas Points 10417

Pour répondre à la question posée :

Dans quelle mesure la prise en charge de libreSSL dans High Sierra est-elle "officielle" ?

Il n'y a pas de soutien officiel. Apple met à disposition tous les Code source ouvert qu'il utilise dans MacOS/OS X. Depuis la dernière version de High Sierra (10.13.3) jusqu'à Lion 10.7.0, il n'y a aucune mention de libreSSL.

Il s'agit de pas pour dire qu'il ne fonctionnera pas si vous choisissez d'installer les bibliothèques. C'est qu'ils n'utilisent pas officiellement le code dans MacOS. Si vous arrivez à le faire fonctionner et que quelque chose se casse lors de la mise à jour de MacOS, ce sera à vous de le réparer.

Apple a supprimé * OpenSSL et utilise plutôt Crypto commun , ce qu'Apple développe.


* Déclassé, c'est-à-dire qui n'est plus développé mais qui n'a pas été supprimé. OpenSSL est toujours inclus pour des raisons de compatibilité ascendante, mais les développeurs sont informés qu'il n'y a plus de développement et qu'ils doivent commencer à passer à une technologie plus récente.

3voto

Jose Chavez Points 645

La seule bibliothèque TLS officiellement supportée par MacOS est Apple Secure Transport :

Transport sécurisé

Sécuriser les communications réseau à l'aide de mécanismes de sécurité normalisés au niveau de la couche transport.

L'API Security.SecureTransport vous donne accès à l'implémentation par Apple de Secure Sockets Layer version 3.0 (SSLv3), Transport Layer Security (TLS) versions 1.0 à 1.2, et Datagram Transport Layer Security (DTLS) version 1.0.

Cela signifie que LibreSSL n'est PAS pris en charge par Apple pour une utilisation en tant que bibliothèque TLS dans votre application.

Cela signifie qu'en tant que développeur responsable, vous devez soit

a) Utiliser Apple Secure Transport

b) Lier statiquement avec une bibliothèque, telle que LibreSSL, que vous prenez en charge vous-même.

ou

c) établir un lien dynamique avec une bibliothèque, telle que LibreSSL, dont vous indiquez clairement à l'utilisateur qu'il doit la prendre en charge lui-même, par exemple par l'intermédiaire de HomeBrew

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X