Эки профиль бир шлюздо сыналат, бири шифрлөө менен, экинчиси ансыз, жана шифрленген баяу эмес. Кээде ал тезирээк, бул адатта сыноо туура жүргүзүлдүбү деген узун талашка алып келет. Жыйынтык ишенимдүү, анткени пакеттин баасы конфигурациядагы криптографиялык сөздөрдүн саны эмес. Ал — ишке ашыруу аткарган операциялардын жыйындысы, анын колундагы аппараттык камсыздоодо, өзү тандаган буфер жайгашуусу боюнча.

Симптом: баяу — шифрленген профиль эмес

Тарыхый сыноо AEAD шифрин «шифрлөөсүз» режим менен салыштырат дейли, ал дагы эле ар бир пакет үчүн өзүнчө аутентификация кодун эсептейт. Экинчи профиль пайдалуу жүктүн мазмунун жашырат, бирок пакеттик хэшти сактайт, жана ошол хэш үчүн ылдамдаткычы жок процессордо ал жеңиши керек болгон интеграцияланган курулушка караганда кымбат турушу мүмкүн.

Конфигурациядагы белги «шифрлөө» дейт, жана белги — көпчүлүк салыштыруулар көңүл бурган нерсенин баары. Пакеттин жолу башка нерсени айтат: бир профиль процессордо буйруктары бар бириктирилген операцияны аткарат, экинчиси буйруктары жок өзүнчө операцияны аткарат. Конфигурация файлын гана окуу бул айырманы эч качан ачпайт, анткени эки жазуу тең бир сапка окшош. Жыйынтыкты келишилген режим жана анын артындагы код жолу гана түшүндүрөт.

Бул — толук түшүндүрмө, жана ал кайсы примитив универсалдуу түрдө тезирээк деген эч кандай ырастоону талап кылбайт. Экөө тең тез болушу мүмкүн, экөө тең баяу болушу мүмкүн, ал эми тартип машинага жана кодго жараша.

Белгилерди эмес, операцияларды санаңыз

AEAD курулушу, RFC 5116 сүрөттөгөндөй, ишке ашырууга шифртекстти жана тегди чогуу кайтарган бир интерфейс берет. AES-GCM — бир мисал: эсептегич режиминдеги шифрлөө Galois аутентификатору менен айкалышкан. Интерфейс бүтүндүктү бекер кылбайт; ал айкалышты жакшы аныкталган кылат, жана дал ошол ишке ашырууга жупту бир бирдик катары оптималдаштырууга мүмкүндук берет.

Separate authentication path:
  payload -> independent HMAC -> framed packet

AEAD path:
  payload -> authenticated encryption with tag -> framed packet

Булар — иштетүүнүн эскиздери, конфигурация кеңеши эмес. Биринчисинде купуялуулук жок, бирок ал дагы эле процессорду аутентификацияга корот, жана дал ошондуктан «шифрлөөнү өчүр» «криптографиялык ишти өчүр» дегендин синоними эмес.

Экинчиси арзаныраак болушу мүмкүн, анткени процессорлор эки жарым үчүн тең буйруктарды берет: AES раунддары жана Galois талаасы колдонгон ташымасыз көбөйтүү. Китканалар көз карандысыз буферлерди параллелдүү иштетет, бул буйруктарды эстутумду күтүүнүн ордуна иш менен камсыз кылат.

Келишилген режим чындыгында эмнени мүмкүн кылат

Community OpenVPN менен AEAD дайын шифри auth опциясынын өзүнүн өзүнчө дайын каналынын HMACын мындан ары кошпой турганын билдирет. Шифрлөө опциясынын маалымдамасы ошол камтылышты сүрөттөйт, жана тексттик файлда окшош көрүнгөн эки конфигурациянын пакеттик иште айырмаланышынын себеби да ушул.

Каалоолор тизмесин эмес, келишилген режимди окуңуз. Уруксат берилген шифрлердин тизмеси жана TLS пакетинин аталышы пайдалуу жүктө кайсы операциялар жүрөрүн айтпайт, ал эми эски cipher сабы учурдагы байланыш эмнени тандаганын сүрөттөбөшү мүмкүн.

openvpn --show-ciphers | head -20
sudo grep -E 'cipher|auth' /etc/openvpn/server.conf

Биринчи буйрук бинардык колдогон шифрлерди тизмелейт, бул мүмкүнчүлүктөр тизмеси, келишилген жыйынтык эмес. Экинчиси сервер чындыгында эмнени сураарын көрсөтөт. Байланыш журналы — акыркы тандоону ырастоочу жай, анткени кардар сервер уруксат берген, бирок эч ким ойлобогон нерсеге түшүп калышы мүмкүн.

Чындыгында аткарган жүктү өлчөңүз

Криптографиялык микроөлчөө примитивди өзүнүн шарттарында өлчөйт. VPN өткөрүү буферлерди да көчүрөт, агындыларды же үзгүлтүктөрдү пландайт, саясатты текшерет жана тармактан өтөт. Ушул бөлүктөр көп учурда үстөмдүк кылат, ошондуктан тезирээк примитив ар дайым тезирээк туннель бербейт.

openssl speed -evp aes-256-gcm
openssl speed -evp sha1

Бул эки буйрук сизге алдыңыздагы машинадагы примитивдердин одоно жергиликтүү салыштыруусун берет жана микроөлчөө экендиги жөнүндө чынчыл. Алар туннелиңиздин өткөрүү жөндөмү жөнүндө эч нерсе айтпайт, жана эч качан ошондой цитата келтирилбеши керек.

Андан кийин маанилүү жүктү өлчөңүз, калганын туруктуу кармап: ошол эле акыркы чекит, ошол эле пакет өлчөмдөрү, ошол эле транспорт, ошол эле кысуу саясаты. Эгер профиль өзгөрүүсү транспортту же иштетүү ордун да өзгөртсө, жыйынтык ошол топтомду сүрөттөйт, криптографияны эмес.

Максатты да көз алдыңызда кармаңыз. Бош криптографиялык кубаттуулугу бар дайын жолу дагы эле кечигүү менен чектелиши мүмкүн, анткени колдонмо барып-келүүлөрдү күтөт, ал эми массалык кубаттуулуктун утушу сүйлөгөч протоколду оңдобойт. Колдоого алынган жана саясат менен бекитилген конфигурацияны бүтүндөй өлчөңүз, жана «аз куту болсо, тезирээк болушу керек» дегенди анын эмне гипотеза экениндей кабыл алыңыз. Пайдалуу суроо — шифрлөө бир нерсеге турабы, жокпу, эмес, баа сиз үчүн чындап маанилүү өлчөөдө көрүнөбү, жокпу.

Тектеш макалалар