10 votos

¿Cómo de "oficial" es el soporte de libressl en High Sierra?

Estoy intentando portar un programa en C basado en OpenSSL de Linux a MacOS, y me gustaría utilizar una librería para TLS que esté oficialmente soportada por el SO, porque así el SO mantiene esa librería actualizada y segura sin ningún trabajo extra para mí o para el usuario de mi aplicación.

Pensaba que LibreSSL estaba oficialmente soportado en MacOS y ya he portado mi programa tienen un backend LibreSSL, pero no estoy seguro del estado de LibreSSL dentro de MacOS. ¿Existe alguna documentación oficial que indique si los desarrolladores deben tratar la biblioteca LibreSSL como deprimida o no?

PD: He buscado en el sitio de desarrolladores de Apple, pero el documentación oficial de Apple sobre el cifrado de la comunicación en red no menciona ABSOLUTAMENTE a LibreSSL (que no es lo mismo que OpenSSL).

0 votos

Por favor, céntrate en un tema por pregunta/post, siempre puedes hacer varias preguntas en paralelo (asumiendo que la pregunta 2 no depende de la respuesta a la pregunta 1). Sin embargo, las preguntas sobre "por qué Apple hace esto y aquello" siempre están fuera de lugar.

0 votos

Además, no estoy seguro de si " Si utiliza OpenSSL en sus aplicaciones públicas, debe proporcionar su propia copia de las bibliotecas OpenSSL, preferiblemente como parte de su paquete de aplicaciones Las bibliotecas OpenSSL que proporciona OS X están obsoletas" (de la documentación que has enlazado, el énfasis es mío) responde básicamente a tu pregunta.

0 votos

@patrix Esta es una pregunta. La pregunta es: "¿Cómo es de oficial el soporte de libressl? Está ahí en el título. Lo editaré para que quede más claro lo que estoy preguntando.

8voto

Charles Beattie Puntos 2637

MacOS proporcionaba openssl-0.9.8 (cuando el mundo usaba 1.0.2, y contemplaba 1.1 y 1.1.1) hasta el lanzamiento de High Sierra. Ahora en MacOS 10.13.5 es libressl-2.2.7, mientras que la actual libressl es 2.7.4.

Parece que LibreSSL proporcionado por MacOS no viene con ningún motor, y no está claro si es posible incluso añadirle un motor. Eso significa que no hay openssl que utilice claves en tokens de hardware accesibles a través de PKCS#11, no hay RNG de hardware accesible a través de PKCS#11 o RDRAND, etc. ACTUALIZACIÓN: Tampoco parece tener los archivos de inclusión necesarios para compilar sus aplicaciones. Así que parece que no puedes compilar tu software contra LibreSSL de MacOS incluso si quisieras (bueno, podrías ser capaz de hacerlo descargando LibreSSL-2.2.7 tú mismo, etc. - pero estoy muy seguro de que no vale la pena la molestia).

Como no quiero escribir código que se ejecute sólo en Mac, no puedo permitirme el lujo de quedarme con Apple Secure Transport o algo así.

Por lo tanto, mi recomendación personal sería instalar y trabajar con un openssl "real", instalándolo a través de Macports (como hice para el material de "producción" en mis sistemas) o Brew. En ese caso, los mantenedores del paquete seguirían las actualizaciones y correcciones de seguridad por ti, pero tú mantienes la compatibilidad con tu código Linux con un esfuerzo mínimo.

0 votos

Oye, ¡gracias por la investigación detallada! Por ahora he terminado por seguir con mi backend openssl, pero como no puedo pedir a todos mis usuarios que instalen openssl por separado, estoy enlazando estáticamente las librerías openssl a mi binario, como sugiere la documentación depricada de OpenSSL en Mac que he enlazado. No es lo ideal, pero quizás algún día escriba un backend de SecureTransport.

0 votos

Enlazar OpenSSL estáticamente es lo que hace OpenSC github.com/OpenSC/OpenSC.git está haciendo, con bastante éxito.

0 votos

La etiqueta 2.2.7 de LibreSSL (en github) tiene 3 años. ¿Es realmente el openssl por defecto proporcionado en MacOS hoy en día? Eso no tiene sentido para mí :-/... No estoy seguro de entender que openssl es proporcionado por el sistema en mi High Sierra...

5voto

Douglas Puntos 10417

Para responder a la pregunta formulada:

¿Cómo de "oficial" es el soporte de libreSSL en High Sierra?

No hay soporte oficial. Apple pone a disposición todos los Código abierto que utiliza en MacOS/OS X. Desde la última versión de High Sierra (10.13.3) hasta Lion 10.7.0, no se menciona libreSSL.

Esto es no para decir que no funcionará si decide instalar las bibliotecas. Es que no usan oficialmente el código en MacOS. Si consigues que funcione y algo se rompe al actualizar MacOS, será cosa tuya arreglarlo.

Apple ha eliminado * OpenSSL y en su lugar utiliza Criptografía común algo que Apple desarrolla.


* Deprecated, es decir, que ya no se desarrolla, pero no se elimina. OpenSSL sigue incluyéndose por compatibilidad con versiones anteriores, pero se notifica a los desarrolladores que ya no hay desarrollo y que deben empezar a pasarse a la nueva tecnología.

0 votos

Gracias. Esta fue la única respuesta que realmente utilizó la documentación oficial y actualizada para responder a la pregunta

0 votos

@rexroni Por desgracia, aunque es una respuesta directa, también es incorrecta. Common Crypto no soporta TLS en absoluto, por lo que no es un sustituto de LibreSSL para el soporte de TLS. Si mira la parte superior de la página enlazada, también dice que esta página ya no se actualiza. Si echas un vistazo a mi respuesta a tu pregunta, que fue publicada unos meses antes, he enlazado la documentación oficial y actualizada, que todavía se está actualizando - y que es para el soporte real de TLS que Apple anima a los desarrolladores a utilizar - a saber, Secure Transport.

0 votos

@jksoegaard esta pregunta nunca ha sido sobre si se apoya o no el Transporte Seguro o incluso se prefiere. Ambos estamos de acuerdo en eso. Esta pregunta era sobre cómo tratar la biblioteca libreSSL y tu respuesta no se refería a libreSSL en absoluto pero esta respuesta sí.

3voto

Jose Chavez Puntos 645

La única biblioteca TLS oficialmente soportada en MacOS es Transporte seguro de Apple :

Transporte seguro

Asegurar la comunicación de la red utilizando mecanismos de seguridad de la capa de transporte estandarizados.

La API Security.SecureTransport le da acceso a la implementación de Apple de la versión 3.0 de Secure Sockets Layer (SSLv3), las versiones 1.0 a 1.2 de Transport Layer Security (TLS) y la versión 1.0 de Datagram Transport Layer Security (DTLS).

Esto significa que LibreSSL NO está soportado por Apple para su uso como biblioteca TLS en su aplicación.

Esto significa que, como desarrollador responsable, deberías

a) Utilizar Apple Secure Transport

b) Enlazar estáticamente con una biblioteca, como LibreSSL, que usted mismo soporte

o

c) Enlazar dinámicamente con una librería, como LibreSSL, que indique claramente al usuario que necesita apoyarse en, por ejemplo, HomeBrew

0 votos

Gracias por responder. Esta es definitivamente una alternativa que estoy considerando, pero esto no es realmente una respuesta a la pregunta, que es acerca de cómo tratar la biblioteca LibreSSL.

0 votos

Lo que digo es que Apple admite el Transporte Seguro para lo que estás haciendo. No es LibreSSL.

1 votos

Pero, ¿cómo se puede realmente conozca que LibreSSL no está soportado? La evidencia de que "X está soportado" no es la misma que la evidencia de que "Y NO está soportado", particularmente en el caso de que Apple soporte otras múltiples APIs SSL, como la API CFNetwork y el sistema de carga de URLs.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X