aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2015-10-16 17:39:43 -0400
committerJack Lloyd <[email protected]>2015-10-16 17:39:43 -0400
commitea07110c86c7ae2601e71dd3c1134873ccfd721f (patch)
tree1ccbb775a624d8a977f21a37b2d60a619fc0824f /doc
parentf257cb324614adb5f9266ca185ab2bfeb64b1dd4 (diff)
Make PKCS #1 and OAEP decoding constant time to avoid oracle attacks
via timing channels. Add annotations for checking constant-time code using ctgrind to PKCS #1 and OAEP, as well as IDEA and Curve25519 which were already written as constant time code.
Diffstat (limited to 'doc')
-rw-r--r--doc/news.rst17
1 files changed, 17 insertions, 0 deletions
diff --git a/doc/news.rst b/doc/news.rst
index 9eddabd5c..00a102427 100644
--- a/doc/news.rst
+++ b/doc/news.rst
@@ -4,6 +4,23 @@ Release Notes
Version 1.11.22, Not Yet Released
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+* The routines for decoding PKCS #1 encryption and OAEP blocks have been
+ rewritten to run without secret indexes or branches. These cryptographic
+ operations are vulnerable to oracle attacks, including via side channels such
+ as timing or cache-based analysis. In theory it would be possible to attack
+ the previous implementations using such a side channel, which could allow
+ an attacker to mount a plaintext recovery attack.
+
+ By writing the code such that it does not depend on secret inputs for branch
+ or memory indexes, such a side channel would be much less likely to exist.
+
+* Add support for using ctgrind (https://github.com/agl/ctgrind) to test that
+ sections of code do not use secret inputs to decide branches or memory indexes.
+ The testing relies on dynamic checking using valgrind.
+
+ So far PKCS #1 decoding, OAEP decoding, IDEA, and Curve25519 have been notated
+ and confirmed to be constant time.
+
* Public key operations can now be used with specified providers by passing an
additional parameter to the constructor of the PK operation.