Ракување што завршува со грешка изгледа како напад додека не ја погледнете пораката, и најчесто е аритметика: нема заеднички предлог, сертификатот е истечен или пакетот никогаш не пристигнал. Даунгрејд нападот е нешто конкретно: противникот ги турка двете страни кон послабо однесување отколку што би избрале, и остава различни докази. Третирањето на секој неуспех како злоба ве праќа да барате жртва што можеби не постои, додека третирањето на вистински даунгрејд како конфигурациска грешка го остава послабиот резултат на место. Двете грешки чинат различно, и само едната е евтина за исправка.

Што всушност менува даунгрејд нападот

Целта не е да се скрши шифрата и не е да се погоди клуч. Целта е да се влијае на преговорите така што двете страни ќе застанат на постара верзија или послаб алгоритам со кој напаѓачот може да се справи, или едната страна да поверува дека другата го поддржува само тоа.

Она што се менува е договорот, не автентикацијата. Ако напаѓачот може да го измени предлогот без да биде откриен, страните сѐ уште можат да го завршат ракувањето и сѐ уште да се автентицираат, но со параметри што напаѓачот ги претпочита. Затоа интересното прашање е дали самите преговори се покриени со заштита на интегритетот.

Зошто самите преговори мора да бидат автентицирани

TLS 1.3 ја прави таа заштита експлицитна. Клиентот што ја понудил поновата верзија може да открие сервер што тивко се повлекол, бидејќи случајната вредност на серверот носи фиксна шема кога преговара за 1.2 или пониско, и клиентот мора да прекине кога ќе го види тоа. Целиот транскрипт е исто така покриен со завршните пораки, па промената каде било во преговорите пропаѓа подоцна наместо да помине тивко.

Постарите верзии на протоколот имаа послаби приказни, и токму затоа правилата за враќање сѐ уште се важни. Крајната точка со TLS 1.0 во истата конфигурација не е даунгрејд напад; тоа е дозволен исход што вие избравте да го дозволите. Разликата е дали послабиот резултат дојде од заштитена одлука или од незаштитен пат врз кој посредник можел да влијае. Кога ќе го формулирате така, повеќето инциденти се сведуваат на конфигурациско прашање.

IKEv2 се однесува поинаку, но се потпира на истата идеја. Предлогот се носи во размена што подоцна ги автентицира двете страни, па средното куќиште што ги препишува алгоритмите ја крши автентикацијата наместо да ја насочува. Контролниот канал на OpenVPN ги штити своите преговори со TLS и потоа го користи тој канал за да се договори за шифрите на податочниот канал, и затоа линијата од дневникот на контролниот канал е интересната.

Конфигурираната компатибилност не е напад

Администраторот може намерно да дозволи постари избори за да поддржи документиран клиент, и таа одлука е видлива во конфигурацијата. Напаѓачот не може да ја создаде таа конфигурација; може само да искористи пат што му дозволува да влијае на предлогот.

Опасната поправка е онаа што го отстранува доказот за разликата. Вклучувањето на секоја стара опција, исклучувањето на проверката на сертификатот или прифаќањето на која било шифра за да исчезне грешката го проширува она со што крајната точка ќе се согласи и ги отстранува проверките што би пријавиле послаб резултат.

Ако мора да задржите една стара опција, наведете ја причината и клиентот во коментарот на конфигурацијата, потоа ограничете ја опцијата на профилот што ѝ е потребен. Исклучокот за компатибилност ограничен на еден слушател е проверлив; оној применет глобално е само послабо стандардно ниво што никој не се сеќава дека го избрал.

Прочитајте го неуспехот пред да именувате причина

Зачувајте ја точната низа на грешка, верзиите на клиентот и серверот и времето пред каква било промена. Потоа класифицирајте: дали страните не се согласиле за предлог, дали патот на пакетите пропаднал или една страна одбила параметар што порано го прифаќала?

Несовпаѓањето на предлог обично ги именува виновните верзии или алгоритми и пропаѓа на истото место секој пат. Проблемот со рутирање или MTU запира или истекува, и често варира според мрежата. Истечениот сертификат дава грешка при проверка, а не при преговори.

Ништо од тоа не е доказ за напаѓач. Доделувањето злонамерна причина при првиот неуспех е грешката, бидејќи ја крие детерминистичката грешка што утре повторно ќе пропадне.

Потврдете што всушност е избрано

По секоја исправка прочитајте го договорениот резултат наместо да верувате дека врската се кренала. Врската што успева затоа што проверката е отстранета е исходот што сакавте да го избегнете. Двете команди подолу ја покажуваат избраната верзија и шифра за крајна точка со TLS пред себе, плус линијата на контролниот канал од дневникот на сервер OpenVPN.

openssl s_client -connect 198.51.100.30:443 -servername vpn.example.net -brief </dev/null
grep -iE 'Control Channel|Data Channel' /var/log/openvpn.log | tail -5

Спорете го резултатот со конфигурацијата што ја имавте намера, не со она што сега се поврзува. Ако избраната верзија е постара од дозволениот минимум, профилот или списокот за враќање е местото каде треба да се погледне, и одговорот е да се поправи тој список, а не да се прогласи напад и да се изгради сѐ околу него одново.

Поврзани статии