wolfSSL’s Effective Timing Resistance

In cryptography and encryption, timing can be an unconsidered element of the security for various operations. However, if an encryption library is built without considering timing or the possible attacks that a malicious agent could execute with timing attacks, then that encryption library could be vulnerable to multiple different attacks that have occurred or can occur. An actual timing attack requires the agent to precisely time the logical operations performed by a CPU or other device, and by measuring these times is able to construct the sensitive data that was used to perform these operations. These kinds of attacks are even practical against well known, generally secure algorithms including RSA, DSA, and other signature algorithms.

When it comes to the wolfCrypt crypto engine, there are features in place by default to protect against timing attacks. Although these features are enabled by default, to ensure that wolfSSL's timing resistance is enabled, users can either enable it through wolfSSL's configure script or manually define the relevant preprocessor defines. The option "--enable-harden" can be passed to configure to enable both timing resistance and RSA blinding. Macros that can be manually defined are listed below:

ECC_TIMING_RESISTANT /* define to enable timing resistance in ECC */
TFM_TIMING_RESISTANT /* define to enable timing resistance in underlying
                        fastmath math library */

More information on timing attacks can be found here: https://en.wikipedia.org/wiki/Timing_attack

For more information about the wolfSSL embedded SSL/TLS library or other security features offered, please contact facts@wolfssl.com.  wolfSSL also supports TLS 1.3!