ECDSA Canonicalization
PHPECC is vulnerable to malleable ECDSA signature attacks.
Constant-Time Signer
When generating a new ECDSA signature, the GMPMath adapter was used. This class wraps the GNU Multiple Precision arithmetic library (GMP), which does not aim to provide constant-time implementations of algorithms.
An attacker capable of triggering many signatures and studying the time it takes to perform each operation would be able to leak the secret number, k
, and thereby learn the private key.
EcDH Timing Leaks
When calculating a shared secret using the EcDH
class, the scalar-point multiplication is based on the arithmetic defined by the Point
class.
Even though the library implements a Montgomery ladder, the add()
, mul()
, and getDouble()
methods on the Point
class are not constant-time. This means that your ECDH private keys are leaking information about each bit of your private key through a timing side-channel.
References
ECDSA Canonicalization
PHPECC is vulnerable to malleable ECDSA signature attacks.
Constant-Time Signer
When generating a new ECDSA signature, the GMPMath adapter was used. This class wraps the GNU Multiple Precision arithmetic library (GMP), which does not aim to provide constant-time implementations of algorithms.
An attacker capable of triggering many signatures and studying the time it takes to perform each operation would be able to leak the secret number,
k
, and thereby learn the private key.EcDH Timing Leaks
When calculating a shared secret using the
EcDH
class, the scalar-point multiplication is based on the arithmetic defined by thePoint
class.Even though the library implements a Montgomery ladder, the
add()
,mul()
, andgetDouble()
methods on thePoint
class are not constant-time. This means that your ECDH private keys are leaking information about each bit of your private key through a timing side-channel.References