Откриена е уште една ранливост во OpenSSL криптографската библиотека. Ранливоста ќе им дозволи на напаѓачите да декриптираат и модифицираат сообраќај кој е заштитен со TLS (Transport Layer Security) протоколот, најчесто користениот метод за енкриптирање на сообраќајот меѓу корисниците и серверите.
OpenSSL фондацијата потврди дека била информирана за пропустот и издаде упатство за решавање на проблемот. Непрофитниот енкрипцискиот сервис е користен од мнозинството на SSL сервери на Интернет. OpenSSL е истиот софтвер кој беше погоден од “Heartbleed”, багот способен да ги преземе енкрипциските клучеви кои компаниите ги користат за да ги заштитат корисниците.
Ранливоста, формално обележана како CVE-2014-0224 им дозволува на малициозни посреднички јазли да пресретнат енкриптирани податоци и да ги декриптираат, при тоа форсирајќи ги SSL клиентите да користат слаби клучеви. Напаѓачите можат дури и да ги модифицираат податоците пред тие да бидат испратени до нивната дестинација.
Постои ризик од манипулирање и експлоатирање на содржините и автентикациските информации на енриптираните комуникации преку веб сурфање, email и VPN кога софтверот ги користи афектираните верзии на OpenSSL.
За да напаѓач го искористи овој пропуст, мора да бидат исполнети следниве услови:
- Мора да бидат ранливи и клиентот и серверот. Сите верзии на OpenSSL се ранливи на корисничката страна, додека пак само верзија 1.0.1 и 1.0.2-bеta1 се ранливи на страна на серверите. Нападот е возможен само ако двете страни користат ранлива верзија на ОpenSSL.
- Постоење на Man-in-the-Middle напаѓач: Напаѓач способен за пресретнување и модифицирање на пакетите.
Како функционира нападот?
SSL/TLS сесиите се иницираат со ClientHello и ServerHello пораките за “ракување” испратени од соодветната страна. Овој дел од протоколот се користи за да се преговараат атрибутите на сесијата, како верзија на пртоколот која ќе се користи, енкрипциски протокол, енкрипциски клучеви, Мessage Authentication Code (MAC) и иницијализациски вектори (IV), како и екстензиите кои се поддржани.
Од различни причини, клиентот и серверот може да одлучат да ги модифицираат стратегиите на шифрирање на конекцијата за време на фазата на ракување. Тоа може да се направи со ChangeChiperSpec (CCS) барањето. CCS се состои од еден единствен пакет кој се испраќа од двете страни (клиентот и серверот) и известува за новодоговорените спецификации и клучеви.
Според стандардите, CCS пораката се испраќа за време на “ракувањето” откако се договорени сигурносните параметри, но пред да биде испратена верифицирана порака за крај. Ова не беше случај кај OpenSSL па CCS барањето можеше да се прифати пред да бидат договорени сигурносните параметри. Очекувано е ова да резултира во десинхронизација на двете страни. Обично тоа треба да е причина за терминирање на конекцијата.
За да може да го искористи ова Мan-in-the-middle напаѓач го прави следново:
- Чека нова TLS конекција проследена со ClientHello/ServerHello пораките.
- Испраќа CCS пакет во двете насоки кој предизвикува OpenSSL кодот да искористи zero length pre-master таен клуч. Пакетот се испраќа до двете страни на конекцијата. Клучевите кои се користат во сесијата се изведуваат од тој клуч па и тие ја имаат неговата слабост.
- Повторно се преговараат параметрите.
- Напаѓачот сега е во можност да ги декриптира па дури и модифицира пакетите кои се пренесуваат.
ОpenSSL го совлада овој недостаток преку промена на начинот на кој се справува со CCS пакетите и тајните клучеви. Веќе не е можно да се користат master клучеви со нулта должина, а CCS пакетите не може да се примат пред да биде испратен клучот.
Најлесното решение за да се осигурате од оваа закана е да се осигурате дека ја користите најновата верзија на OpenSSL и да ги рестартирате сите сервиси кои користат OpenSSL.
Според блог постот објавен од Masashi Kikuchi, јапонскиот истражувач кој ја откри оваа закана, багот постои во софтверот уште од неговото прво објавување во 1998 година.
Извор: OpenSSL