DUHK – ย่อมาจาก Don’t Use Hard-coded Keys เป็นช่องโหว่ที่ไม่ธรรมดาในการ implement cryptographic ทำให้ Attacker สามารถกู้ Encryption key ใน VPN Connection และ web browsing session ได้
DUHK เป็นช่องโหว่ที่ 3 ที่เกี่ยวกับการเข้ารหัส โดยก่อนหน้านี้ก็มีทั้ง ROCA และ KRACKs
ช่องโหว่นี้กระทบในผลิตภัณฑ์ของหลายๆเจ้าซึ่งมีทั้ง Fortinet, CISCO, TechGuard, ใครก็ตามที่ใช้ ANSI X9.31 RNG ซึ่งเป็น algorithm ในการสร้าง pseudorandom number ที่เก่ามากแล้ว ซึ่งเป็นตัวที่นำ hard code seed key มารวมกัน
ซึ่งก่อนที่ ANSI X9.31 RNG จะถูกนำออกจาก list ของ Federal Information Processing Standard (FIPS) ในช่วงเดือนมกราคม 2016 ตัว ANSI X9.31 RNG นั้นถูกนำไปใช้ใน cryptographic standards มากมายมานานนับหลายทศวรรษ
Pseudorandom number generators (PRNGs) ไม่ได้ทำการสร้าง random numbers แต่อย่างใด กลับกัน, มันเป็น algorithm ที่เอาไว้สร้าง bits based ที่เรียงต่อกันเริ่มจาก secret values ตั้งต้นที่เรียกว่า seed แลสถานะในตอนนั้น ซึ่งทำให้มันสร้าง bit ที่เรียงเหมือนเดิมตลอดเมื่อใช้ค่าตั้งต้นเดียวกัน
มี vendor หลายเจ้าที่เก็บ secret seed value แบบ hard-code (เขียนตรงๆ) ฝังเข้าไปใน source code ในอุปกรณ์ต่างๆ การทิ้งไว้อย่างนั้นจะทำให้เป็นช่องโหว่เมื่อมีการทำ reverse engineering กับ firmware
นักวิจัยทางด้านการเข้ารหัส, Shaanan Cohney, Nadia Heninger, และ Matthew Green — พบช่องโหว่ DUHK, ในการทำ ‘state recovery attack,’ ส่งผลให้เมื่อ man-in-the-middle ได้, ก็จะทำให้รู้ seed value ก็จะรู้ และเมื่อคอยสังเกตุ outputs. ก็จะทำให้สามารถทราบ current state value ได้
เมื่อค่าทั้งหมดอยู่ในมือของ Attacker จะทำให้ Attacker สามารถคำนวณ encyption key ได้ ทำให้ Attacker สามารถที่จะถอดรหัส data ที่ถูกเข้ารหัสได้
ทางนักวิจัยได้ทำการแสดงเดโมให้ดู โดยการทดสอบถอดรหัส traffic ของ FortiGate VPN gateway ที่ใช้ OS เป็น FortiOS version4
จากการตรวจสอบพบว่ามีเครื่องที่ใช้ FortiOS รุ่นที่มีช่องโหว่อยู่ประมาณ 23,000 เครื่องสามารถเข้าถึงได้จาก internet
list ด้านล่างเป็น list ที่พบว่ามีช่องโหว่

Source:: TheHackerNews