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 анықтамалығы жасау пішіндері мен кілт материалы бөлімдерін құжаттайды, бұл форум жазбасынан көшірілген пәрменнен жақсырақ дереккөз.

Қатысты мақалалар