OpenSSL
Тип | програмна бібліотека |
---|---|
Розробник | The OpenSSL Project |
Стабільний випуск | 1.1 (25 серпня 2016 ) |
Репозиторій | https://github.com/openssl/openssl, git://github.com/openssl/openssl.git |
Операційна система | багато-платформова |
Мова програмування | C |
Ліцензія | Apache License 1.0 та 4 твердження BSD License |
Вебсайт | www.openssl.org |
OpenSSL у Вікісховищі |
OpenSSL — відкритий програмний продукт, розроблений як універсальна бібліотека для криптографії, що використовує протоколи Secure Sockets Layer і Transport Layer Security. Використовується, зокрема, в бібліотеці cUrl для реалізації роботи за протоколом https. Доступна для більшості UNIX-подібних операційних систем (включаючи Solaris/OpenSolaris, Linux, Mac OS X, QNX4[1], QNX6 і чотирьох операційних систем BSD з відкритим початковим кодом), а також для OpenVMS і Microsoft Windows.
Історія
OpenSSL заснований на SSLeay, написаної Еріком Янгом (Eric A. Young) і Тімом Гадсоном (Tim Hudson), які неофіційно закінчили працювати над ним в грудні 1998 року, коли вони почали працювати в проєкті RSA Security.
Влітку 2012 проєкт OpenSSL отримав для версії бібліотеки 1.0 сертифікат відповідності стандарту безпеки FIPS 140-2, що визначає вимоги до криптографічних модулів, необхідні для їхнього використання в державних установах США.[2][3] Сертифікат виданий Американським інститутом стандартів і технологій (NIST) після проведення відповідного аудиту коду проєкту. Виданий сертифікат примітний тим, що він виданий на початковий код продукту, а не конкретну бінарну збірку, що розширює область використання OpenSSL в державних проєктах.
В січні 2018 року проєкт отримав нагороду Макса Левчіна (англ. The Levchin Prize) за істотне покращення якості початкового коду бібліотеки[4].
Дати виходу основних релізів
Версії, що більше не підтримуються
- OpenSSL 0.9.1c став доступним 23 грудня 1998.
- OpenSSL 0.9.2b став доступним 22 квітня 1999.
- OpenSSL 0.9.3 став доступним 25 травня 1999.
- OpenSSL 0.9.4 став доступним 9 вересня 1999.
- OpenSSL 0.9.5 став доступним 28 лютого 2000.
- OpenSSL 0.9.6 став доступним 25 вересня 2000.
- OpenSSL 0.9.7 став доступним 31 грудня 2002.
- OpenSSL 0.9.8 став доступним 5 липня 2005.
- OpenSSL 1.0.0 став доступним 29 березня 2010.[5]
- OpenSSL 1.0.1 став доступним 14 березня 2012.
Поточні версії
- OpenSSL 1.0.2 став доступним 22 січня 2015.
- OpenSSL 1.1.0 став доступним 25 серпня 2016.
- OpenSSL 1.1.1 має прев'ю релізи, опубліковані 29 травня та 19 червня 2018.[6]
Алгоритми
Реалізує наступні алгоритми шифрування:
- Шифри
- AES, Blowfish, Camellia, SEED, CAST-128, DES, IDEA, RC2, RC4, RC5, Triple DES, GOST 28147-89
- Криптографічні хеш-функції
- MD5, MD2, SHA-1, SHA-2, RIPEMD-160, MDC-2, GOST R 34.11-94
- Асиметричні алгоритми шифрування
- RSA, DSA, Протокол Діффі-Геллмана, Еліптична криптографія, GOST R 34.10-2001
Інциденти
Heartbbleed
У квітні 2014 дослідниками компаній Google і Codenomicon в OpenSSL була виявлена одна з найсерйозніших вразливостей (CVE-2014-0160)[7] в історії проєкту, яка зачіпає величезне число сайтів, серверних систем і клієнтських застосунків, що застосовують OpenSSL 1.0.1 для організації обміну даними через захищене з'єднання. Суть проблеми проявляється в можливості доступу до 64Кб пам'яті клієнтського або серверного процесу, з яким встановлено шифроване з'єднання.
Практична небезпека вразливості пов'язана з тим, що у схильній до витоку області пам'яті можуть розміщуватися закриті ключі або паролі доступу, які потенційно можуть бути отримані віддаленим зловмисником. У разі особливої атаки зловмисник може отримати вміст серверного ключа, що застосовується для організації шифрованого доступу до сервера, і потім організувати перехоплення захищеного трафіку (на транзитному вузлі). Також не виключений витік паролів, ідентифікаторів сесій і інших закритих даних клієнтських застосунків при спробі їх з'єднання з підконтрольними зловмисникам серверними системами.
Причиною проблеми є відсутність перевірки виходу за допустимі межі в коді реалізації TLS-розширення heartbeat (RFC 6520), що дозволяє віддаленій стороні ініціювати відправлення до 64Кб даних з області за межею поточного буфера. За деякими оцінками проблема охоплювала до половини серверних систем, які підтримували захищене з'єднання в Мережі, включаючи зібрані з OpenSSL 1.0.1 веб-сервери (Apache httpd, nginx), поштові сервери, XMPP-сервери, VPN-системи, шлюзи і приховані сервіси анонімної мережі Tor.[8] Пов'язана з атакою активність не фіксується в серверних логах, що утруднює виявлення фактів експлуатації уразливості.
На думку Брюса Шнаєра,[9] відомого експерта в області комп'ютерної безпеки, Heartbeat-уразливість в OpenSSL слід зарахувати до категорії катастрофічних вразливостей, рівень небезпеки якої становить 11 балів, якщо розглядати існуючу 10-бальну шкалу ступенів небезпеки з урахуванням того, що OpenSSL є найпоширенішою криптографічного бібліотекою в Мережі.
Завдяки широкому висвітленню проблеми за два дні з моменту її оприлюднення близько 1/3 всіх серверів встигли застосували оновлення з усуненням уразливості. Проте, за попередніми даними в Мережі ще залишалися уразливими близько 600 тисяч серверів. Але проблема далека від свого вирішення — незрозуміло, що робити з вбудованими та мобільними продуктами, схильними до вразливості, але такі що не передбачають можливість автоматичного оновлення прошивки.
В умовах можливості непомітного проведення атаки, без залишення слідів в балці, також чекає тривалий процес зміни SSL-сертифікатів, ключів шифрування і звичайних паролів, відсутність витоку яких неможливо гарантувати. Потенційно будь-який пароль і сертифікат міг потрапити в руки зловмисників, і незрозуміло, коли й де подібні витоки можуть проявитися.[10]
Примітки
- OpenSSL для QNX4 (російською). СВД Встраиваемые Системы. Архів оригіналу за 10 лютого 2012.
- OpenSSL and FIPS 140-2. Архів оригіналу за 2 липня 2012. Процитовано 3 липня 2012.
- OpenSSL 1.0 получил сертификат безопасности FIPS 140-2
- MATT CASWELL (10 січня 2018). OpenSSL Wins the Levchin Prize. OpenSSL Blog.
- OpenSSL version 1.0.0 released
- Changes between 1.1.0h and 1.1.1
- TLS heartbeat read overrun (CVE-2014-0160)
- В OpenSSL обнаружена критическая уязвимость, которая может привести к утечке закрытых ключей // opennet.ru 08.04.2014
- Heartbleed
- Heartbleed-уязвимость в OpenSSL могла эксплуатироваться с ноября прошлого года