Эмне үчүн openssl rand tls-crypt күткөн ачкычты жарата албайт
OpenSSL туш келди байттарды чыгарат; tls-crypt структураланган статикалык ачкыч файлын талап кылат, ал эми tls-crypt-v2 сервер гана ороп алган ачкычты талап кылат. openvpn --genkey колдонуңуз.
OpenSSL мурунтан эле орнотулган, хостто энтропия бар, жана аны менен ачкыч жасоо айкын кыска жол болуп көрүнөт. Чыгаруу туш келди жана жашыруун жана толугу менен пайдасыз болот, ал эми ийгиликсиздик ачкыч форматын эске салган нерсенин ордуна башкаруу каналынын катасы катары келет. Ушул адаштыруу кымбат бөлүк, анткени ал адамдарды өз шифрлерин текшерүүгө жиберет. VPN окуган нерсе – белгилүү бир файл структурасы, эркин байт блогу эмес, жана өзгөчөлүктүн бир вариантын серверден тышкары такыр жасоого болбойт.
Дисктеги файл чындыгында эмне болушу керек
OpenVPN статикалык ачкыч файлы текст. Ал эмне экенин жарыялаган комментарий сабы менен башталат, туруктуу кенендиктеги саптарда hex маалыматтарын алып жүрөт жана бардыгы 256 байт ачкыч материалын түзөт. OpenVPN аны башкаруу каналынын жалпы сыры катары окуйт, сертификат катары эмес, сырсөз фразасы катары эмес жана TLS китепканасы тааный турган нерсе катары эмес.
Ошол эле объект түрү башкаруу каналынын эки өзгөчөлүгүнө тең кызмат кылат. tls-auth менен ар бир тарапка багыт да керек, ошондо бир тараптын пакеттери өзүнө кайтарылып чагылдырылбайт. tls-crypt менен бир жалпы сыр башкаруу каналын эки багытта тең шифрлейт жана аутентификациялайт, бул кол алышууну жашырат жана ошол эле учурда коргойт.
Булардын эч бири жашыруун билим эмес, жана формат негизги маселе эмес. Негизги маселе – файл окурман күткөнгө так туура келиши керек: аталыш, саптын кенендиги, акыркы жаңы сап жана жалпы узундук. Бир сапка четтеп кеткен файл таштанды катары жүктөлөт же такыр ийгиликсиз болот. Ошондуктан эки тарапты байт-байт салыштыруу мыйзамдуу биринчи тест болуп саналат жана эки конфигурация файлынын кайсынысын болбосун окуудан тезирээк.
Бирин жасоонун колдоого алынган жолу
Жөнөкөй статикалык ачкычты аны колдоно турган курал менен жасаңыз, анан эки учурдан ага шилтеме жасаңыз:
openvpn --genkey secret /etc/openvpn/tc-shared.key
tls-crypt /etc/openvpn/tc-shared.key
Опциянын жазылышы убакыт өткөн сайын өзгөрдү: 2.4 доорунун эски орнотуулары файл атынын алдында өзүнчө желеги бар форманы колдонгон, ал эми азыркы куруулар кыскасын кабыл алат. Кандай болбосун, натыйжа файл ошол эле объект түрү, ошондуктан текшерүү эки тараптын тең бирдей байттары барбы-жокпу.
Экинчи муун сырткы генератор ойлоп таба албаган структураны кошот. Сервер ачкычы бир жолу түзүлөт, жана ар бир кардар андан алынган оролгон ачкычты алат:
openvpn --genkey tls-crypt-v2-server /etc/openvpn/tc-v2-server.key
openvpn --genkey tls-crypt-v2-client /etc/openvpn/laptop1.key --tls-crypt-v2 /etc/openvpn/tc-v2-server.key
Кардар алган нерсе сервердин өз ачкычынын көчүрмөсү эмес. Бул сервер гана ача алган метаберилиштерди алып жүргөн оролгон объект, жана ушул ороо түрткү болуп, түзмөк үчүн файлды башка эч бир түзмөккө тийбестен жокко чыгарууга болот. Сервер ачкычын серверде сактаңыз жана аны ошол түзмөк боюнча ишенимдин тамыры катары караңыз.
Кол менен жасалган байттар кайда бузулат
Туура аталыштын астында 256 туш келди байтты hex катары басып чыгаруу теориялык жактан жүктөлө турган статикалык ачкыч файлын берет. Бул дагы эле жаман идея. Ар бир форматтоо деталы жүктөө учурунда ийгиликсиз болгон материалды жасоо мүмкүнчүлүгүнө айланат же, андан жаманы, эки тарапты аутентификация ийгиликсиздиги катары гана көрүнгөн ар кандай маанилер менен калтырат.
v2 варианты менен окшош эч нерсе мүмкүн эмес. Оролгон кардар ачкычы сервер ачкычы процессинин чыгаруусу катары гана болот, жана сервер аны ачуу үчүн керектүү материалды сактайт. Туш келди блок четке кагылат же жөн эле чечилбейт, жана эки билдирүүнүн бири да туш келдилик жөнүндө айтпайт.
Версия шайкештиги ушунун баарынын үстүндө турат. Биринчи муунга эки учурда тең аны колдогон чыгарылыш керек, ал эми экинчисине дагы жаңыраак чыгарылыш керек. Өзгөчөлүк пайда болгонго чейин курулган кардар оролгон материалды гана кабыл алган сервер менен кол алышууну бүтүрө албайт, жана анын билдирген ийгиликсиздиги версияга эмес, башкаруу каналына көрсөтөт.
Баарын тышка чыгарып таштабастан айландыруу
Бир жалпы сырды айландыруу – бул координация көнүгүүсү, техникалык эмес. Сервер мурункусун артка тартканга чейин ар бир кардардын колунда алмаштыруу файлы болушу керек, жана эски маанини али кармаган ар кандай машина ошол замат ийгиликсиз болот. Бул айландырууну жумуш күнүнүн ортосунда баштабаңыз.
v2 жайгаштыруусу менен айландыруу түзмөк боюнча: бир машинага жаңы оролгон ачкыч бериңиз жана эскисин ошол машина үчүн гана ардактуу эс алууга чыгарыңыз. Ар бир кардар аны колдогон чыгарылышта болгондо өтүү үчүн негизги далил ушул.
Файл уруксаттары ошол эле сүйлөшүүгө таандык. Ачкыч кызматты иштеткен эсеп үчүн гана окула турган болушу керек жана ал коргогон профилдер менен бир репозиторийде жашабашы керек. OpenVPN 2.6 маалымдамасы жасоо формаларын жана ачкыч материалы бөлүмдөрүн документтештирет, бул форум жазуусунан көчүрүлгөн буйруктан жакшыраак булак.