DUHK attack targets the old vulnerability that resides in the pseudorandom number generator called ANSI X9.31. It is an algorithm widely used to generate cryptographic keys that secure VPN connections and web browsing sessions.
ANSI X9.31 PRNG is a pseudorandom number generator algorithm design that was incorporated into different structures cryptographic standards and listed as recommended RNG for FIPS certification for decades.
DUHK attack allows hackers to recover encryption keys and to decrypt the encrypted web traffic.This vulnerability hits devices utilizing ANSI X9.31 Random Number Generator (RNG) in combination with a hard-coded seed key. This cryptographic attack followed by Factorization Attack and KRACK Attack.
Researchers wrote We performed a systematic study of publicly available FIPS 140-2 certifications for hundreds of products that implemented the ANSI X9.31 random number generator, and found twelve whose certification documents use of static hard-coded keys in the source code, leaving them vulnerable to an attacker who can learn this key from the source code or binary.
DUHK was developed by researchers at the University of Pennsylvania and Johns Hopkins University: Shaanan Cohney, Nadia Heninger, and Matthew D. Green.
Devices Vulnerable to DUHK Attack
For demonstration, researchers developed a full passive decryption attack against FortiGate VPN gateway products using FortiOS version 4 and they were able to recover the random number generator state for 21% of HTTPS hosts serving a default Fortinet product certificate.
Researchers used ZMap to perform Internet-wide scans on port 443 for HTTPS and port 500 to measure the population of vulnerable Fortinet devices and they found 23,000 devices are running a vulnerable version of FortiOS.
FortiGate devices with FortiOS 4.3.0 to FortiOS 4.3.18 are vulnerable to DUHK attacks and Fortigate fixed it by implementing CTR_DRBG from FortiOS 4.3.19, 5.0.(CVE-2016-8492).
Researchers provided a list of the Hardware and software products that are vulnerable to DUHK.
AM I Vulnerable?
X9.31 RNG was removed FIPS list of approved RNGs in 2016. If your product was certified after 2016 then you are not vulnerable.
The x9.31 vulnerability is symmetric, and any implementation that stores a fixed secret key in code or hardware is vulnerable to passive exploitation by an attacker who can recover the key through reverse engineering.