mirror of
https://github.com/OpenVPN/openvpn.git
synced 2026-02-18 18:19:42 -05:00
Mbed TLS 3: Remove prediction resistance option
The option --use-prediction-resistance causes the random number generator to be reseeded for every call. This is excessive. This commit removes that option. Github: closes OpenVPN/openvpn#964 Change-Id: I6298795f140c2c62252638f9e0cd6df19cb3d7ed Signed-off-by: Max Fillinger <maximilian.fillinger@sentyron.com> Acked-by: Frank Lichtenheld <frank@lichtenheld.com> Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1530 Message-Id: <20260216151033.16585-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35658.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
70ab9347f8
commit
880bd69254
8 changed files with 5 additions and 69 deletions
|
|
@ -462,16 +462,6 @@ which mode OpenVPN is configured as.
|
|||
success/failure via :code:`auth_control_file` when using deferred auth
|
||||
method and pending authentication via :code:`auth_pending_file`.
|
||||
|
||||
--use-prediction-resistance
|
||||
Enable prediction resistance on mbed TLS's RNG.
|
||||
|
||||
Enabling prediction resistance causes the RNG to reseed in each call for
|
||||
random. Reseeding this often can quickly deplete the kernel entropy
|
||||
pool.
|
||||
|
||||
If you need this option, please consider running a daemon that adds
|
||||
entropy to the kernel pool.
|
||||
|
||||
--user user
|
||||
Change the user ID of the OpenVPN process to ``user`` after
|
||||
initialization, dropping privileges in the process. This option is
|
||||
|
|
|
|||
|
|
@ -65,3 +65,8 @@ longer supported
|
|||
Removed in OpenVPN 2.7. OpenVPN will always use ovpn-dco as the default
|
||||
driver on Windows. It will fall back to tap-windows6 if options are used
|
||||
that are incompatible with ovpn-dco.
|
||||
|
||||
--use-prediction-resistance
|
||||
Removed in OpenVPN 2.8. This option caused the Mbed TLS 3 random number
|
||||
generator to be reseeded on every call. It has been removed because this
|
||||
is excessive.
|
||||
|
|
|
|||
|
|
@ -366,16 +366,6 @@ rand_ctx_get(void)
|
|||
return &cd_ctx;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
void
|
||||
rand_ctx_enable_prediction_resistance(void)
|
||||
{
|
||||
mbedtls_ctr_drbg_context *cd_ctx = rand_ctx_get();
|
||||
|
||||
mbedtls_ctr_drbg_set_prediction_resistance(cd_ctx, 1);
|
||||
}
|
||||
#endif /* ENABLE_PREDICTION_RESISTANCE */
|
||||
|
||||
int
|
||||
rand_bytes(uint8_t *output, int len)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -89,14 +89,6 @@ typedef mbedtls_operation_t crypto_operation_t;
|
|||
*/
|
||||
mbedtls_ctr_drbg_context *rand_ctx_get(void);
|
||||
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
/**
|
||||
* Enable prediction resistance on the random number generator.
|
||||
*/
|
||||
void rand_ctx_enable_prediction_resistance(void);
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Log the supplied mbed TLS error, prefixed by supplied prefix.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -2989,13 +2989,6 @@ init_crypto_pre(struct context *c, const unsigned int flags)
|
|||
packet_id_persist_load(&c->c1.pid_persist, c->options.packet_id_file);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
if (c->options.use_prediction_resistance)
|
||||
{
|
||||
rand_ctx_enable_prediction_resistance();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -565,10 +565,6 @@ static const char usage_message[] =
|
|||
" using file.\n"
|
||||
"--test-crypto : Run a self-test of crypto features enabled.\n"
|
||||
" For debugging only.\n"
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
"--use-prediction-resistance: Enable prediction resistance on the random\n"
|
||||
" number generator.\n"
|
||||
#endif
|
||||
"\n"
|
||||
"TLS Key Negotiation Options:\n"
|
||||
"(These options are meaningful only for TLS-mode)\n"
|
||||
|
|
@ -871,9 +867,6 @@ init_options(struct options *o, const bool init_gc)
|
|||
o->replay_window = DEFAULT_SEQ_BACKTRACK;
|
||||
o->replay_time = DEFAULT_TIME_BACKTRACK;
|
||||
o->key_direction = KEY_DIRECTION_BIDIRECTIONAL;
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
o->use_prediction_resistance = false;
|
||||
#endif
|
||||
o->tls_timeout = 2;
|
||||
o->renegotiate_bytes = -1;
|
||||
o->renegotiate_seconds = 3600;
|
||||
|
|
@ -1840,9 +1833,6 @@ show_settings(const struct options *o)
|
|||
SHOW_INT(replay_time);
|
||||
SHOW_STR(packet_id_file);
|
||||
SHOW_BOOL(test_crypto);
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
SHOW_BOOL(use_prediction_resistance);
|
||||
#endif
|
||||
|
||||
SHOW_BOOL(tls_server);
|
||||
SHOW_BOOL(tls_client);
|
||||
|
|
@ -4475,13 +4465,6 @@ options_string(const struct options *o, const struct frame *frame, struct tuntap
|
|||
{
|
||||
buf_printf(&out, ",secret");
|
||||
}
|
||||
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
if (o->use_prediction_resistance)
|
||||
{
|
||||
buf_printf(&out, ",use-prediction-resistance");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -8542,13 +8525,6 @@ add_option(struct options *options, char *p[], bool is_inline, const char *file,
|
|||
options->providers.names[j] = p[j];
|
||||
}
|
||||
}
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
else if (streq(p[0], "use-prediction-resistance") && !p[1])
|
||||
{
|
||||
VERIFY_PERMISSION(OPT_P_GENERAL);
|
||||
options->use_prediction_resistance = true;
|
||||
}
|
||||
#endif
|
||||
else if (streq(p[0], "show-tls") && !p[1])
|
||||
{
|
||||
VERIFY_PERMISSION(OPT_P_GENERAL);
|
||||
|
|
|
|||
|
|
@ -584,9 +584,6 @@ struct options
|
|||
int replay_time;
|
||||
const char *packet_id_file;
|
||||
bool test_crypto;
|
||||
#ifdef ENABLE_PREDICTION_RESISTANCE
|
||||
bool use_prediction_resistance;
|
||||
#endif
|
||||
|
||||
/* TLS (control channel) parms */
|
||||
bool tls_server;
|
||||
|
|
|
|||
|
|
@ -474,13 +474,6 @@ socket_defined(const socket_descriptor_t sd)
|
|||
#define PORT_SHARE 0
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_CRYPTO_MBEDTLS
|
||||
#include <mbedtls/version.h>
|
||||
#if MBEDTLS_VERSION_NUMBER < 0x04000000
|
||||
#define ENABLE_PREDICTION_RESISTANCE
|
||||
#endif /* MBEDTLS_VERSION_NUMBER < 0x04000000 */
|
||||
#endif /* ENABLE_CRYPTO_MBEDTLS */
|
||||
|
||||
/*
|
||||
* Do we support Unix domain sockets?
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue