Бир профилге ec, ed, ecdh, ecdsa, auth жана TLS шифрлеринин тизмесин катар коюңуз, ошондо файл алты позициялуу кубат жөндөгүчкө окшоп баштайт. Бирок андай эмес. Ар бир ат башка суроого жооп берет, ал эми алардын биринде айырмаланган эки профиль бири-биринен сөзсүз түрдө күчтүү же алсыз эмес. Аттарды аткарган ишине карата иреттөө болжол менен беш мүнөт алат жана адамдар иштеп жаткан конфигурацияга кылган жаман өзгөртүүлөрдүн көбүн алдын алат.

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

Эки тамга, эки башка суроо

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

ED ошол үй-бүлөнүн ичиндеги ийри сызыктын формасын сүрөттөйт. Twisted Edwards ийри сызыктары ылдамдык жана бир нече ишке ашыруу каталарына туруктуулук үчүн тандалган көрсөтүү, ал эми Ed25519 — адамдар адатта көздөгөн ат. Ийри сызык эллиптикалык ийри сызык криптографиясынын атаандашы эмес; ал эллиптикалык ийри сызыкты жазуунун бир жолу. ED-ни "жаңыраак, күчтүүрөөк EC" деп окуу — биринчи туура эмес бурулуш, ал эми андан кийинкинин баары ошол эле багытта туура эмес болууга жейт.

Кол коюу жана алмашуу — өзүнчө иштер

Үй-бүлө жөнүндөгү суроо чечилгенден кийин, калган аттар бири-бирин эч качан алмаштырбаган эки мамычага бөлүнөт. Бир мамыча кол коёт, экинчиси жалпы сырга макулдашат.

Name in the profileJob it doesWhat it is not
ecdsaSignature scheme using elliptic-curve keysNot a key-exchange method
eddsa, Ed25519Signature scheme for twisted Edwards curvesNot interchangeable with ECDSA
ecdh, X25519Ephemeral key agreementNot a signature and not a cipher
authHMAC digest for packet authenticationNot the data cipher

EdDSA да, ECDSA да кол коёт, бирок алар ар башка ачкыч форматтары бар ар башка схемалар, андыктан бири үчүн берилген сертификат экинчиси катары колдонулбайт. EdDSA ийри сызыктардын кичине жыйындысы үчүн аныкталган; P-256 алардын бири эмес, ошондуктан P-256 сертификаты ECDSA менен текшерилет жана эч качан Ed25519 менен эмес.

Алмашуу мамычасында EdDH деп аталган эквивалент жок. Curve25519 ачкычындагы эфемердик макулдашуу — X25519, жана бул белгилүү бир ийри сызык менен ECDH, дал P-256 учурдагыдай. Ed25519 катуу түрдө кол тамга схемасын билдирет, бирок эки ийри сызык байланыштуу болгондуктан ат алмашуу үчүн эркин колдонулат: кол коюу үчүн колдонулган Edwards формасы жана X25519 үчүн колдонулган Montgomery формасы бир эле негизги топту сүрөттөйт.

Эмне үчүн EC профилинде dh файлы жок

dh файлында акыркы талаанын Diffie-Hellman үчүн алдын ала түзүлгөн параметрлер бар, ал эми бул параметрлер чоң жөнөкөй сан менен генератор бир жерден келиши керек болгондуктан бар. Эллиптикалык ийри сызык алмашуусуна алар керек эмес: аталган ийри сызык — параметрлер жыйындысы, жана эки тарап тең аны мурунтан билет. EC профилинин директиваны өткөрүп жибере алышынын бүткүл себеби ушул.

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

TLS 1.3 ачкыч алмашууну аттан алып салды

TLS_AES_256_GCM_SHA384 менен TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 салыштырыңыз, кыска ат төмөндөө болуп көрүнөт. Бул кайра ат коюу, себеби структуралык: TLS 1.3 статикалык RSA менен акыркы талаанын Diffie-Hellman ачкыч алмашуусун алып салды, ошондуктан эфемердик эллиптикалык ийри сызык алмашуусу калган жалгыз PSK эмес вариант. Аны ар бир топтомдо атоо ошол эле фактыны он эки жолу кайталаган болмок.

Сертификаттын түрү аттан байланыштуу себеп менен жоголду. 1.3тө сертификат кол кармашуунун кол тамгасын текшерет, ачкыч макулдашуусун эмес, ошондуктан ал мындан ары топтомду тандабайт. Ошондуктан конфигурацияда 1.3 үчүн өзүнчө шифрлер тизмеси бар: топтомдор кайра аталып, кайра уюшулду, алсыздатылган жок.

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

auth пакеттерди текшерет, жүктү эмес

auth директивасы пакеттерди текшерген HMAC корутундусун тандайт, анын тарыхый демейки мааниси — SHA1. AEAD эмес маалымат шифри менен OpenVPN корутундуну шифрленген текст боюнча эсептеп, ага кошот, бул шифрла-анан-MAC тартиби толуктоо менен айла-амал жасоону практикалык эмес кылат.

Бул жердеги миф — auth маанисин SHA512ге көтөрүү туннелди бекемдейт деген. Бул шифрлоо күчүн жогорулатпайт, ал эми макулдашылган маалымат шифри AES-256-GCM сыяктуу AEAD режими болсо, корутунду маалымат пакеттерине такыр колдонулбайт. GCM теги аларды мурунтан текшерет, ал эми auth мааниси башкаруу каналынын HMACына жана дагы колдонулган AEAD эмес ар кандай шифрге калат.

Ошентип директива маанилүү, бирок файлдагы орду белгилегенден тарыраак жерде маанилүү. Кайсы шифр чындап макулдашылганын текшерүү анын такыр колдонуларын айтат.

Профилди мамыча боюнча окуңуз, даража боюнча эмес

Үч суроо катмарларды таза ажыратат, алардын ар бирине макулдашылган сессиянын башка бөлүгү жооп берет. Кайсы шифр пайдалуу жүктү коргойт? Кайсы тег же корутунду ар бир пакетке кепилдик берет, жана колдонулуп жаткан шифрге ал таптакыр керекпи? Кимдин сертификаты кол кармашууну жапты, жана башкаруу каналы кошумча tls-auth же tls-crypt менен корголгонбу?

EC же ED белгисинде эч нерсе ошол үчөөнүн эч бирин чечпейт, ал эми топтом аты жалгыз өзү да алардын эч бирин чечпейт. Макулдашылган натыйжа — жалгыз далил, ошондуктан сөздүктөн күч болжолдобой, аны окуңуз:

openssl x509 -in client.crt -noout -text | grep -E 'Signature Algorithm|Public Key Algorithm'
grep -i 'control channel' /var/log/openvpn.log

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

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