Skip to content

Commit 1863dea

Browse files
committed
Merge pull request #5406
5fdbe67 Add 0.10 release notes on improvement to signing security. (Gregory Maxwell)
2 parents 0286fe5 + 5fdbe67 commit 1863dea

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

doc/release-notes.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,32 @@ are done, it always returns an immediate error with code -28 to all calls.
9595
This new behaviour can be useful for clients to know that a server is already
9696
started and will be available soon (for instance, so that they do not
9797
have to start it themselves).
98+
99+
Improved signing security
100+
=========================
101+
102+
For 0.10 the security of signing against unusual attacks has been
103+
improved by making the signatures constant time and deterministic.
104+
105+
This change is a result of switching signing to use libsecp256k1
106+
instead of OpenSSL. Libsecp256k1 is a cryptographic library
107+
optimized for the curve Bitcoin uses which was created by Bitcoin
108+
Core developer Pieter Wuille.
109+
110+
There exist attacks[1] against most ECC implementations where an
111+
attacker on shared virtual machine hardware could extract a private
112+
key if they could cause a target to sign using the same key hundreds
113+
of times. While using shared hosts and reusing keys are inadvisable
114+
for other reasons, it's a better practice to avoid the exposure.
115+
116+
OpenSSL has code in their source repository for derandomization
117+
and reduction in timing leaks, and we've eagerly wanted to use
118+
it for a long time but this functionality has still not made its
119+
way into a released version of OpenSSL. Libsecp256k1 achieves
120+
significantly stronger protection: As far as we're aware this is
121+
the only deployed implementation of constant time signing for
122+
the curve Bitcoin uses and we have reason to believe that
123+
libsecp256k1 is better tested and more thoroughly reviewed
124+
than the implementation in OpenSSL.
125+
126+
[1] https://eprint.iacr.org/2014/161.pdf

0 commit comments

Comments
 (0)