VPN клиенті іске қосылғанда пайда болатын сұранысты қате оқу оңай. Бұл VPN тіркелгісінің құпиясөзі емес, туннельдің құпиясөзі емес, және оны енгізу қосылыстың қауіпсіз екенін дәлелдемейді. Ол жеке кілттің бір сақталған көрінісін ашады, сонда клиент кілт материалын оқып, оны аутентификация үшін пайдалана алады. Одан кейін болатынның бәрі басқа мәселе.

Іс жүзінде жауап шеттерде бұзылады: адамдар құпиясөз тіркесі жұмыс істеп тұрған туннельді қорғайды немесе оны өзгерту қазірдің өзінде ағып кеткен кілттің көшірмесін күшін жояды деп ойлайды. Екі болжам да сәтсіз, және екеуі де есептік жазба ашық қалып, оператор оны шешілді деп сенетіндей сәтсіз болады.

Бір диалог, бірнеше түрлі құпия

Жеке кілттің құпиясөз тіркесі файлды шешеді. Тіркелгі құпиясөзі сізді қызметке аутентификациялайды. PKCS#12 импорттық құпиясөзі кілт пен оның сертификатын қамтитын буманы шешеді, және ол кілттің өз құпиясөз тіркесімен бірдей жол емес болуы мүмкін. Бұл сұраныстар бірдей дерлік көрінуі мүмкін, және қай құпия қайда баратынын болжау кілттердің қате өріске қойылуына әкеледі.

Туннельдің өз шифрлауы төртінші нәрсе. Деректер арнасы қол алысу кезінде келісілген сессия кілттерін пайдаланады; жеке кілттің құпиясөз тіркесі жеке пакеттерді қорғауда ешқандай рөл атқармайды. Егер біреу кілт файлын оқи алса, ол құпиясөз тіркесін желіден тыс табуға тырыса алады, бірақ пакеттерді оқи алса, құпиясөз тіркесі маңызды емес.

Дискідегі шифрлау нені қамтиды

Шифрланған PEM кілті екі пішінде келеді, және тақырыпша қайсысы бар екенін айтады. Заманауи PKCS#8 пішіні -----BEGIN ENCRYPTED PRIVATE KEY------нен басталады; ескі OpenVPN параметрлерінде әлі кең таралған ескі PEM пішіні -----BEGIN RSA PRIVATE KEY------нен басталып, оның дәл астында Proc-Type: 4,ENCRYPTED және DEK-Info жолын алып жүреді. Файл жеке кілтті құпиясөз тіркесінен алынған кілт астында шифрлап сақтайды, әдетте көрсетілген қайталау саны немесе жұмыс коэффициенті бар құпиясөзге негізделген KDF арқылы. OpenSSL pkey құжаттамасы пішіндерді және оқу кезінде қолданылатын құпиясөз тіркесінің параметрлерін қамтиды.

Одан екі салдар шығады. Әлсіз құпиясөз тіркесіне KDF рұқсат ететін жылдамдықпен желіден тыс шабуыл жасауға болады, сондықтан файл шифрланған болса да файл рұқсаттары мен сақтық көшірмелерге қол жеткізу маңызды болып қалады. Ал құпиясөз тіркесінсіз тек файлды алған шабуылдаушы болжауға мәжбүр; файл мен құпиясөз тіркесін бірге алған адам кілтке ие, дәл ол ешқашан шифрланбағандай.

head -3 vpn.key
openssl pkey -in vpn.key -noout -pubout
openssl pkcs12 -in bundle.p12 -info -noout

head -3 тақырыпшаны және ескі файлда шифрлауды дәлелдейтін Proc-Type мен DEK-Info жолдарын көрсетеді; бір жол өзі ешбір бағытта дәлел емес. pkey жолы құпиясөз тіркесін сұрайды және тек ашық жартысын басып шығарады, бұл файл мен құпиясөз тіркесінің жұмыс істейтінін жеке кілтті ашпай-ақ дәлелдейді. Бұл тексеру үшін -text пайдаланбаңыз: ол жеке құрамдастарды, privateExponent, prime1, prime2 және қалғанын басып шығарады, және бұл шығыс ешқашан ешқайда қойылмауы керек, не билетте, не чатта, не журналда. PKCS#12 командасы бумада бөлек MAC немесе шифрлау құпиясөзі бар-жоғын да айтады, оны әріптеске бермес бұрын білген жөн.

Кілт жүктелгеннен кейін ол нені қорғауды тоқтатады

Ашу сол процесс үшін бір бағытты оқиға. Клиент KDF-тен кілтті сұрайды, файлды шешеді және жеке кілтті қажет болғанша жадыда ұстайды. Сол сәттен бастап құпиясөз тіркесі жұмыс істеп тұрған сессия туралы ештеңені қорғамайды: процесс жадын да, ядро дампын да, клиентке тіркелген жөндеу сессиясын да, кілт пайдаланылып жатқанда алынған машинаның сақтық көшірмесін де емес.

Бұл құпиясөз тіркесі бар SSH кілтінің немесе құпиясөз менеджерінің ашық қоймасының шекарасымен бірдей. Ол тыныштықтағы файлды ұрлау құнын арттырады және сіздің пайдаланушыңыз ретінде жұмыс істейтін зиянды бағдарламаға, клиенттен қол қоюды сұрайтын рұқсат етілген қосымшаға немесе жадты оқи алатын әкімшіге қарсы ештеңе істемейді. Оны бір қабат ретінде қарастырыңыз, кілтті ашық қалдыруды қауіпсіз ететін бақылау ретінде емес.

Сұраныс неге қайта-қайта оралады

Әр қайта қосылғанда қайта сұрайтын клиент міндетті түрде бұзылған емес. Кейбір клиенттер құпиясөз тіркесін сессия үшін кэштейді, кейбіреулері оны OS кілттер шынжырында сақтайды, ал кейбіреулерін оны беретін көмекшіге бағыттауға болады, сондықтан алатын мінез-құлық клиент пен оның конфигурациясына байланысты, кілт файлына емес.

Егер қайталанатын сұраныс нақты шағым болса, кілттен шифрлауды алып тастамас бұрын клиенттің кэштеу және аутентификация параметрлерін қарап шығыңыз. Құпиясөз тіркесін алып тастау қорғалған файлды ашық мәтінді кілтке айналдырады, және қайта қосылу сіздегі жалғыз тыныштық бақылауының құнына тынышталады. Жақсырақ жауап әдетте қолдау көрсетілетін тіркелгі деректері қоймасы, онда өзіңіз қолданатын файл рұқсаттары болады.

Жоғалту мен әшкерелеу бірдей жөндеу емес

Жоғалған құпиясөз тіркесін сертификаттан қалпына келтіру мүмкін емес. Сертификат атауды кілтке байланыстыратын ашық материал; онда жеке кілтке қайту жолы да, құпиясөз тіркесі туралы ешқандай нұсқау да жоқ. Практикалық нұсқалар — кілттің рұқсат етілген сақтық көшірмесі немесе оператордың әдеттегі процесі арқылы берілген жаңа сәйкестік. Құпиясөз тіркесін 'қалпына келтіруді' ұсынған кез келген адам оны болжауды ұсынады.

Әшкерелеу басқа жауапты қажет етеді. Сол кілтті жаңа құпиясөз тіркесімен қайта шифрлау кілт материалын өзгеріссіз қалдырады, сондықтан басқа жерде ашылған көшірме әлі де жұмыс істейді. Жөндеу — тіркелгі деректерін қайтарып алу немесе ауыстыру: жаңа кілт пен сертификат шығарыңыз, таратыңыз және ескісін серіктесте зейнеткерлікке шығарыңыз. Бұл болғанша, файл құпиясөзін өзгерту үй шаруасы, шектеу емес. Ескі файлды сақтық көшірмелерден тыс тек жаңа сәйкестіктің жұмыс істейтіні расталғаннан кейін ұстаңыз және оны қай сериялық нөмір немесе саусақ ізі ауыстырғанын жазып қойыңыз.

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