OpenSSL

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
OpenSSL
Розробник(и) The OpenSSL Project
Стабільний випуск 1.0.1h (5 червня 2014; 196 днів тому)
Написано на C
Операційна система багато-платформова
Тип програмна бібліотека
Ліцензія Apache License 1.0 та 4 твердження BSD License
Сайт www.openssl.org

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 в державних проектах.

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

  • 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[4]

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

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

Шифри
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, Diffie–Hellman key exchange, Elliptic curve, GOST R 34.10-2001

Вразливість розширення heartbeat[ред.ред. код]

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

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

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

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

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

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

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

Виноски[ред.ред. код]

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