OpenSSL

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
OpenSSL
OpenSSL logo.png
Тип програмна бібліотека
Розробник The OpenSSL Project
Стабільний випуск 1.1 (серпня 25, 2016; 2 роки тому (2016-08-25))
Версії 1.1.1 (11 вересня 2018)[1]
Репозиторій github.com/openssl/openssl
Операційна система багато-платформова
Написано на 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[2], QNX6 і чотирьох операційних систем BSD з відкритим сирцевим кодом), а також для OpenVMS і Microsoft Windows.

Історія[ред. | ред. код]

OpenSSL заснований на SSLeay, написаної Еріком Янгом (Eric A. Young) і Тімом Гадсоном (Tim Hudson), які неофіційно закінчили працювати над ним в грудні 1998 року, коли вони почали працювати в проекті RSA Security.

Влітку 2012 проект OpenSSL отримав для версії бібліотеки 1.0 сертифікат відповідності стандарту безпеки FIPS 140-2, що визначає вимоги до криптографічних модулів, необхідні для їхнього використання в державних установах США.[3][4] Сертифікат виданий Американським інститутом стандартів і технологій (NIST) після проведення відповідного аудиту коду проекту. Виданий сертифікат примітний тим, що він виданий на сирцеві тексти продукту, а не конкретну бінарну збірку, що розширює область використання OpenSSL в державних проектах.

В січні 2018 року проект отримав нагороду Макса Левчіна (англ. The Levchin Prize) за істотне покращення якості сирцевого коду бібліотеки[5].

Дати виходу основних релізів[ред. | ред. код]

Версії, що більше не підтримуються[ред. | ред. код]

  • 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.[6]
  • 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.[7]

Алгоритми[ред. | ред. код]

Реалізує наступні алгоритми шифрування:

Шифри
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[ред. | ред. код]

Докладніше: Heartbleed

У квітні 2014 дослідниками компаній Google і Codenomicon в OpenSSL була виявлена ​​одна з найсерйозніших вразливостей (CVE-2014-0160)[8] в історії проекту, яка зачіпає величезне число сайтів, серверних систем і клієнтських застосунків, що застосовують OpenSSL 1.0.1 для організації обміну даними через захищене з'єднання. Суть проблеми проявляється в можливості доступу до 64Кб пам'яті клієнтського або серверного процесу, з яким встановлено шифроване з'єднання.

Практична небезпека вразливості пов'язана з тим, що у схильній до витоку області пам'яті можуть розміщуватися закриті ключі або паролі доступу, які потенційно можуть бути отримані віддаленим зловмисником. У разі особливої атаки зловмисник може отримати вміст серверного ключа, що застосовується для організації шифрованого доступу до сервера, і потім організувати перехоплення захищеного трафіку (на транзитному вузлі). Також не виключений витік паролів, ідентифікаторів сесій і інших закритих даних клієнтських застосунків при спробі їх з'єднання з підконтрольними зловмисникам серверними системами.

Причиною проблеми є відсутність перевірки виходу за допустимі межі в коді реалізації TLS-розширення heartbeat (RFC 6520), що дозволяє віддаленій стороні ініціювати відправлення до 64Кб даних з області за межею поточного буфера. За деякими оцінками проблема охоплювала до половини серверних систем, які підтримували захищене з'єднання в Мережі, включаючи зібрані з OpenSSL 1.0.1 веб-сервери (Apache httpd, nginx), поштові сервери, XMPP-сервери, VPN-системи, шлюзи і приховані сервіси анонімної мережі Tor.[9] Пов'язана з атакою активність не фіксується в серверних логах, що утруднює виявлення фактів експлуатації уразливості.

На думку Брюса Шнаєра,[10] відомого експерта в області комп'ютерної безпеки, Heartbeat-уразливість в OpenSSL слід зарахувати до категорії катастрофічних вразливостей, рівень небезпеки якої становить 11 балів, якщо розглядати існуючу 10-бальну шкалу ступенів небезпеки з урахуванням того, що OpenSSL є найпоширенішою криптографічного бібліотекою в Мережі.

Завдяки широкому висвітленню проблеми за два дні з моменту її оприлюднення близько 1/3 всіх серверів встигли застосували оновлення з усуненням уразливості. Проте, за попередніми даними в Мережі ще залишалися уразливими близько 600 тисяч серверів. Але проблема далека від свого вирішення — незрозуміло, що робити з вбудованими та мобільними продуктами, схильними до вразливості, але такі що не передбачають можливість автоматичного оновлення прошивки.

В умовах можливості непомітного проведення атаки, без залишення слідів в балці, також чекає тривалий процес зміни SSL-сертифікатів, ключів шифрування і звичайних паролів, відсутність витоку яких неможливо гарантувати. Потенційно будь-який пароль і сертифікат міг потрапити в руки зловмисників, і незрозуміло, коли й де подібні витоки можуть проявитися.[11]

Примітки[ред. | ред. код]

Посилання[ред. | ред. код]