Статьи

Створення фальшивих SSL сертифікатів або новорічний подарунок для фішерів

Ми виявили уразливість в Internet Public Key Infrastructure (PKI), що використовується для видачі цифрових сертифікатів для Web сайтів. Як приклад ми продемонстрували частину атаки і успішно створили фальшивий CA сертифікат, якому довіряють всі сучасні браузери. Сертифікат дозволяє нам видати себе за будь-який сайт в інтернеті, який використовує HTTPS, включаючи сайти банків і online магазинів.

Валерій Марчук
www.SecurityLab.ru

Подробиці конференція 25C3 (25th Chaos Communication Congress) в Берліні. Одним з найгучніших доповідей на конференції стала доповідь Олександра Сотірова (Alexander Sotirov), Марка Стівенса (Marc Stevens) і Джекоба Аппельбаум (Jacob Appelbaum) - MD5 considered harmful today: Creating a rogue CA certificate. У цій статті я коротко опишу суть уразливості і постараюся відповісти на можливі запитання.

«Ми виявили уразливість в Internet Public Key Infrastructure (PKI), що використовується для видачі цифрових сертифікатів для Web сайтів. Як приклад ми продемонстрували частину атаки і успішно створили фальшивий CA сертифікат, якому довіряють всі сучасні браузери. Сертифікат дозволяє нам видати себе за будь-який сайт в інтернеті, який використовує HTTPS, включаючи сайти банків і online магазинів »[1].

суть уразливості

Багато центри сертифікації досі використовують MD5 хеш-кодування для перевірки достовірності сертифікатів. З 2004 року достовірно відомо, що MD5 хеш-кодування є слабкими з криптографічного точки зору. Зловмисник може створити фальшивий сертифікат-посередник центру сертифікації (CA), і з його допомогою, підписати будь-яку кількість сертифікатів, наприклад, для Web серверів, які будуть вважатися довіреними для Конєва сертифікатів - тих, які знаходяться в «довіреному списку» в вашому браузері. Олександру Сотірову, Марку Стивенсу і Джекобу Аппельбаум вдалося створити фальшивий сертифікат, який видає себе за справжній сертифікат від RapidSSL. Для генерації фальшивого сертифіката було зроблено 4 покупки дійсних сертифікатів у RapidSSL, і використовувався кластер з 200 станцій Sony PlayStation 3 для колізійної атаки. В основі атаки лежить метод виявлення колізій в MD5 хешах. В даний момент атака вважається складно реалізовується, але продемонстрованої на практиці.
Дослідники зібрали 30 000 сертифікатів для Web серверів, 9 000 з яких були підписані MD5, 97% сертифікатів належали RapidSSL.

вплив вразливості

Зловмисник може провести атаку типу «людина посередині», видати себе за довірений хост і перехопити потенційно важливі дані. Для виконання необхідних підрахунків зловмисники можу використовувати ботнет середніх розмірів і отримати необхідні результати в досить короткі терміни.

уразливі протоколи

Уразливість поширюється на всі протоколи, що використовують SSL:

SSH НЕ вразливий до цієї атаки.

Компанії, що випускають вразливі сертифікати

  • RapidSSL
    C = US, O = Equifax Secure Inc., CN = Equifax Secure Global eBusiness CA-1
  • FreeSSL (Безкоштовні тимчасові сертифікати, пропоновані RapidSSL)
    C = US, ST = UT, L = Salt Lake City, O = The USERTRUST Network, OU = http: //www.usertrust.com, CN = UTN-USERFirst-Network Applications
  • TC TrustCenter AG
    C = DE, ST = Hamburg, L = Hamburg, O = TC TrustCenter for Security in Data Networks GmbH, OU = TC TrustCenter Class 3 CA/[email protected]
  • RSA Data Security
    C = US, O = RSA Data Security, Inc., OU = Secure Server Certification Authority
  • Thawte
    C = ZA, ST = Western Cape, L = Cape Town, O = Thawte Consulting cc, OU = Certification Services Division, CN = Thawte Premium Server CA/[email protected]
  • verisign.co.jp
    O = VeriSign Trust Network, OU = VeriSign, Inc., OU = VeriSign International Server CA - Class 3, OU = www.verisign.com / CPS Incorp.by Ref. LIABILITY LTD. (C) 97 VeriSign

сценарій атаки

Атакуючий запитує легітимний сертифікат для Web сайту у комерційного центру сертифікації (CA), якому довіряють браузери. Оскільки запит є легітимним, CA підписує сертифікат і видає його зловмисникові. Для атаки використовується CA, який використовує алгоритм MD5 для генерації підписів для сертифікатів. Другий сертифікат - сертифікат посередника центру сертифікації, який можна використовувати для видачі сертифікатів для інших сайтів. Оскільки MD5 хеш-кодування обох сертифікатів - дійсного і фальшивого - однакові, цифровий підпис, отримана від комерційного CA, може бути просто скопійована в фальшивий CA сертифікат, який буде залишатися дійсним.

Нижче наведена схематична діаграма того, як повинні працювати сертифікати для Web сайтів і опис:

  1. Центр сертифікації випускає свій кореневий сертифікат і передає його через виробників браузерів клієнтам. Ці кореневі сертифікати знаходяться в «довіреному списку» на системі користувача. Це означає, що всі сертифікати, видані цим CA, за замовчуванням будуть довіреними для користувача.
  2. Компанія, яка бажає захистити користувачів свого сайту, набуває сертифікат для Web сайту в центрі сертифікації. Цей сертифікат підписується CA і гарантує ідентичність Web сайту для користувача.
  3. Коли користувач бажає відвідати захищений Web сайт, браузер запитує у Web сервера сертифікат. Якщо підпис буде підтверджена сертифікатом CA в списку довірених сертифікатів, сайт буде завантажений в браузер і обмін даними між сайтом і браузером буде відбуватися з використанням шифрування.

Наступна діаграма демонструє сценарій атаки з підміною існуючого Web сайту.

  1. Легітимний сертифікат для Web сайту купується у комерційного CA (блакитний сертифікат на діаграмі)
  2. Створюється фальшивий CA сертифікат (чорний на діаграмі). Він містить ту ж саму підпис, що і сертифікат, виданий для Web сайту, тому, браузер вважає, що цей сертифікат був виданий дійсним CA.
  3. За допомогою фальшивого CA, зловмисник створює і підписується новий сертифікат для Web сайту (червоний на діаграмі) з новим публічним ключем. Створюється копія довіреної сайту, розміщується на Web сервері з фальшивим сертифікатом.
  4. Коли користувач відвідує захищений сайт, браузер здійснює пошук Web сайту. Існують різні способи, за допомогою яких зловмисник може перенаправити користувача на спеціально сформований Web сайт. Цей Web сайт надасть користувач фальшивий сертифікат, спільно з фальшивим CA сертифікатом. Справжність фальшивого сертифіката для Web сайту підтверджується фальшивим CA сертифікатом, який, в свою чергу, буде підтверджений Конєвим CA сертифікатом. Браузер погодиться прийняти такий сертифікат і користувач нічого не помітить.

вектори атаки

Зловмисник може здійснити атаку типу «людина посередині» і перехопити трафік цільового користувача. Можливі вектори атак:

Атака по локальній мережі:

  • Небезпечні бездротові мережі
  • ARP спуфинг
  • Автоматичне виявлення проксі серверів

Віддалена атака:

  • DNS спуфинг
  • компрометація маршрутизатора

Наскільки небезпечна ця вразливість?

Існуюча проблема дозволяє створити ідеальні фішингові сайти з дійсними SSL сертифікатами. Зловмисник зможе обдурити навіть професіонала, вибравши правдоподібне ім'я для центру сертифікації. Маючи можливість зробити атаку «людина посередині», зловмисник зможе, непомітно для користувача, перенаправити трафік на спеціально сформований сервер і отримати доступ до потенційно важливих даних. Власники сайтів, які використовують SSL сертифікати, ніяк не зможуть захистити своїх клієнтів. Навіть якщо сертифікат для Web сайту підписаний алгоритмом SHA1, зловмисник все одно може використовувати фальшивий MD5 сертифікат.

Які існують засоби захисту?

Насправді користувачі не можуть зробити багато чого. Проблема полягає не в браузерах і не в SSL - а в центрах сертифікації.

  • В якості тимчасового рішення рекомендується максимально обмежити кількість центрів сертифікації, яким ви довіряєте, і виключити зі списку довірених центри сертифікації, перераховані вище.
  • Всі подробиці уразливості не розголошені, тому ймовірність подібної атаки зменшується.
  • Сертифікат, який використовувався для демонстрації уразливості, є простроченим.
  • Компанії можуть налаштувати OSCP сервер і відкликати потенційно небезпечні сертифікати. Увага, фальшивий сертифікат може містити некоректні дані про CRL і такий сертифікат буде проблемно відкликати.

посилання

  1. http://www.win.tue.nl/hashclash/rogue-ca/
  2. http://www.phreedom.org/research/rogue-ca/md5-collisions-1.0.ppt
  3. http://www.microsoft.com/technet/security/advisory/961509.mspx
  4. http://blog.mozilla.com/security/2008/12/30/md5-weaknesses-could-lead-to-certificate-forgery/
  5. http://blogs.technet.com/swi/archive/2008/12/30/information-regarding-md5-collisions-problem.aspx

Які існують засоби захисту?

Новости