Situación
Estoy desarrollando una aplicación C multiplataforma que usa OpenSSL. Me gustaría lanzarlo para al menos los siguientes sistemas operativos:
- Windows 7+
- MacOS High Sierra
- Debian 8+
- Ubuntu 14.04+
- Fedora 27+
- Centos 7+
- Arch Linux
Hasta ahora, he tenido una línea de código que prepara un objeto SSL_CTX como este:
SSL_CTX_set_cipher_list(ctx->ctx, CIPHERS);
donde CIPHERS
se ha establecido en "HIGH:MED:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4"
Sin embargo, me di cuenta de que estándares de empaque de Fedora requieren que elimine esta línea o use el valor especial PROFILE=SYSTEM
para CIPHERS
:
Aplicaciones OpenSSL: ... asegúrese de que no haya una lista de cifrado predeterminada especificada, o que la lista predeterminada esté establecida como "PERFIL = SISTEMA". *
Esto me hizo sentir incómodo acerca de cómo estaba configurando la lista de cifrado anteriormente.
Pregunta
¿Es necesario o incluso deseable llamar a SSL_CTX_set_cipher_list()
?
Si no es necesario / deseable, ¿debería establecer los cifrados predeterminados cuando compilo OpenSSL para Windows y MacOS, o confiar en los valores predeterminados también?
Si es necesario / deseable, ¿dónde encontraría otros valores específicos del SO para CIPHERS
, en la forma en que PROFILE=SYSTEM
parece ser específico de Fedora?
Más contexto
Mi aplicación actualmente solo se conecta a mi servidor, donde verifico la lista de cifrado con La lista sugerida de Mozilla para "Compatibilidad moderna" y usando herramientas como ssllabs.com y htbridge.com , y mi servidor está configurado para usar la preferencia del servidor por el cifrado.
Técnicamente, dado que mi aplicación solo habla con mi servidor en el momento, supongo que podría hacer que la lista de cifrado del cliente sea tan estricta como un solo cifrado. Sin embargo, parece una mejor idea configurarlo en una lista más aceptada, idealmente a la par con el conjunto de "Compatibilidad moderna" de Mozilla.
* La guía de Fedora tiene más detalles, pero eso es lo que se reduce a mí.