Source
Mockingbird Shares | Ключ, який дорівнює 4Є старий комікс xkcd, де функція getRandomNumber(...
24 Views/Reach
2026-10-22 13:16
Message №2999
Ключ, який дорівнює 4
Є старий комікс xkcd, де функція getRandomNumber() просто повертає 4, з коментарем, шо число вибрали чесним киданням кубика. Ми думали, шо це жарт.
Проте індійський центр сертифікації eMudhra, який флексить шістдесятьма мільйонами виданих сертифікатів, довів цей прикол до проду. Один з приватних ключів їхніх проміжних CA виявився числом 4. Інші були трохи кращі: 56, 115, 237 і тд, менші за 256, хоча там мало б стояти випадкове число на 384 біти.
Ви це точно знаєте, але інші читачі може і ні: проміжний CA (або Certification Authority) підписує сертифікати. Хто має його приватний ключ, той може випустити валідний сертифікат на будь-який домен, хоч гугл, хоч ваш банк.
Красти ключ для цього не треба, бо його можна порахувати з публічного сертифіката. Рахується швидко, бо він маленький 🙂
17 жовтня один чувак це виявив і запостив в спеціальну групу для розробників браузерів повідомлення, підписане скомпрометованими ключами. Браузери сертифікати заблокували.
В цілому звучить так, що палені сертифікати не працюватимуть, якщо ходити на ресурси з браузерів. Проте curl та його друзі - реалізації HTTP клієнтів у Python, Node, Go і Java на CT (Certificate Transparency, публічний журнал усіх виданих сертифікатів) не дивляться, відкликання частина з них не перевіряє взагалі, і під час перевірки вони без палева прийняли підроблений сертифікат на API Stripe.
Чого воно так сталось? Вендор каже, шо це human factor. В скрипт випуску ключів попала помилка, яка генерувала слабкі ключі, а потім переплутали лупу і пупу та якось випустили їх в прод.
На моєму маку вбудовані /usr/bin/curl і /usr/bin/python3 (macOS 26.5) відкрили тестовий сайт з цим ланцюжком і повернули 200, без жодного попередження, бо використовують власний /etc/ssl/cert.pem, а апдейт браузера їх не обходить.
Тож якщо у вас на серверах крутяться скрипти, які ходять в API по HTTPS, оновіть ca-certificates, certifi і рантайми, список версій є на сторінці дослідника. Браузер ключ 4 не надурить, а от cron-джобу, яку два роки ніхто не чіпав, цілком.
Є старий комікс xkcd, де функція getRandomNumber() просто повертає 4, з коментарем, шо число вибрали чесним киданням кубика. Ми думали, шо це жарт.
Проте індійський центр сертифікації eMudhra, який флексить шістдесятьма мільйонами виданих сертифікатів, довів цей прикол до проду. Один з приватних ключів їхніх проміжних CA виявився числом 4. Інші були трохи кращі: 56, 115, 237 і тд, менші за 256, хоча там мало б стояти випадкове число на 384 біти.
Ви це точно знаєте, але інші читачі може і ні: проміжний CA (або Certification Authority) підписує сертифікати. Хто має його приватний ключ, той може випустити валідний сертифікат на будь-який домен, хоч гугл, хоч ваш банк.
Красти ключ для цього не треба, бо його можна порахувати з публічного сертифіката. Рахується швидко, бо він маленький 🙂
17 жовтня один чувак це виявив і запостив в спеціальну групу для розробників браузерів повідомлення, підписане скомпрометованими ключами. Браузери сертифікати заблокували.
В цілому звучить так, що палені сертифікати не працюватимуть, якщо ходити на ресурси з браузерів. Проте curl та його друзі - реалізації HTTP клієнтів у Python, Node, Go і Java на CT (Certificate Transparency, публічний журнал усіх виданих сертифікатів) не дивляться, відкликання частина з них не перевіряє взагалі, і під час перевірки вони без палева прийняли підроблений сертифікат на API Stripe.
Чого воно так сталось? Вендор каже, шо це human factor. В скрипт випуску ключів попала помилка, яка генерувала слабкі ключі, а потім переплутали лупу і пупу та якось випустили їх в прод.
На моєму маку вбудовані /usr/bin/curl і /usr/bin/python3 (macOS 26.5) відкрили тестовий сайт з цим ланцюжком і повернули 200, без жодного попередження, бо використовують власний /etc/ssl/cert.pem, а апдейт браузера їх не обходить.
Тож якщо у вас на серверах крутяться скрипти, які ходять в API по HTTPS, оновіть ca-certificates, certifi і рантайми, список версій є на сторінці дослідника. Браузер ключ 4 не надурить, а от cron-джобу, яку два роки ніхто не чіпав, цілком.