Configuration 我什么时候需要OpenSSL中的zlib?

Configuration 我什么时候需要OpenSSL中的zlib?,configuration,compilation,openssl,zlib,Configuration,Compilation,Openssl,Zlib,一些网站描述了使用zlib配置和制作OpenSSL,而我可以不用zlib 这意味着在某些情况下,zlib不是openSSL所必需的 有人告诉我OpenSSL在什么情况下进行压缩或解压缩吗 来自@JakeGould的答案很有用。 我想知道如何选择是否使用–z?答案是正确的。它与-z选项有关: 加密前使用zlib压缩或解压缩明文,或 解密后。仅当OpenSSL已编译时,此选项才存在 使用zlib或zlib动态选项 来自@JakeGould的答案很有用。我想知道如何选择是否使用–z 那很容易。压缩会泄

一些网站描述了使用zlib配置和制作OpenSSL,而我可以不用zlib

这意味着在某些情况下,zlib不是openSSL所必需的

有人告诉我OpenSSL在什么情况下进行压缩或解压缩吗

来自@JakeGould的答案很有用。 我想知道如何选择是否使用–z?

答案是正确的。它与
-z
选项有关:

加密前使用zlib压缩或解压缩明文,或 解密后。仅当OpenSSL已编译时,此选项才存在 使用zlib或zlib动态选项

来自@JakeGould的答案很有用。我想知道如何选择是否使用–z

那很容易。压缩会泄漏HTTPS和SPDY等协议中的信息,因此您不应该使用它。因为您不应该使用它,所以没有理由配置它。看Rizzo和Duong的犯罪攻击

还有另一个选项可以配置您可能感兴趣的代码:
no comp
。它独立于
zlib
禁用压缩


有人告诉我OpenSSL在什么情况下进行压缩或解压缩吗

默认情况下,除非在编译时或运行时禁用压缩,否则将启用压缩。如果压缩可用,则必须在运行时使用
SSL\u OP\u NO\u compression
上下文选项禁用它:

const SSL_METHOD* method = SSLv23_method();
if(method == NULL) handleFailure();

ctx = SSL_CTX_new(method);
if(ctx == NULL) handleFailure();

const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_COMPRESSION;
SSL_CTX_set_options(ctx, flags);

为了完整起见,Firefox不支持压缩。Firefox的configure过去是开箱即用的,因此浏览器不易受到压缩攻击。请参阅错误报告