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

Сертификат сенім қоймасы емес

Сервер ұсынатын файл ашық кілтті, субъект атауын, шығарушы атауын, жарамдылық күндерін және кеңейтімдерді алып жүреді. Өзі қол қойған дегеніміз субъект пен шығарушы бір субъект екенін және қолтаңба сертификаттың өз кілтімен тексерілетінін білдіреді. Бұл анықтамада ешнәрсе байланыстың әлсіз екенін айтпайды және ешнәрсе клиенттің оны қабылдайтынын айтпайды.

Қабылдау басқа жерден келеді: клиентті бағыттайтын CA файлы, қолмен салыстыратын саусақ ізі немесе клиент оқитын қоймада әлдеқашан тұрған тамыр. Орналастыру мүлдем сау болуы мүмкін, бірақ оның сертификаты әр ашық сынақтан құлайды. openssl verify жүйелік бумаға қарсы белгісіз шығарушыны хабарлайды, және бұл хабарлама ақау емес, дұрыс.

OpenVPN-ның ca опциясы қолданбамен шектелген сенімнің ең айқын жағдайы. Бұл файл клиент қабылдайтын якорьлерді атайды және бір жеке CA немесе шағын орналастыруда сервердің өзіндік өзі қол қойған сертификатын қамтуы мүмкін. 2.6 нұсқасы CA файлын таратудың орнына SHA-256 саусақ ізін бекіту үшін --peer-fingerprint-ні де қабылдайды. WireGuard одан әрі тұр: онда сертификаттар мүлдем жоқ, тек әр серіктес үшін статикалық ашық кілт, сондықтан өзі қол қою сұрағы оған қолданылмайды.

Сенімді қайда орнататыныңыз оны кім мұраға алатынын анықтайды

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

Debian немесе Ubuntu-да /usr/local/share/ca-certificates/ ішіне файл салу және update-ca-certificates іске қосу жүйелік буманы өзгертеді. Windows-та certutil -addstore -f Root машина қоймасына жазады және көтерілген пәрмен жолын қажет етеді, ал -user қосу оның орнына ағымдағы пайдаланушының қоймасын нысана етеді; екеуі бірін-бірі алмастыра алмайды. Firefox өзінің NSS дерекқорын ұстайды, сондықтан ОЖ деңгейіндегі импорт онда ешқашан көрінбеуі мүмкін.

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

Сіз әлі де ашық CA-сыз шифрлайсыз

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

Дәл осы саңылауда нақты шабуылдар өмір сүреді. Кез келген сертификатты қабылдауға конфигурацияланған клиент, өшірілген тексеру параметрімен болсын немесе бір рет басылып ұмытылған «бәрібір сен» түймесімен болсын, жауап берген кез келгенге қуана шифрлайды. Кедергі аутентификация қадамында, қолданба деректері қозғалмай тұрып болады. Идентитетті тексерусіз шифрлау пассив бақылаушыны сыртта ұстайды және басқа аз нәрсе істейді.

Шығарушыға сену атауды тексеруді өткізіп жібермейді

Тізбекті валидациялау, атауды сәйкестендіру және сертификаттың мақсаты — жеке шешімдер. Тізбек жарамды болуы мүмкін, ал атау қате; атау сәйкесуі мүмкін, ал сертификат басқа рөл үшін берілген. RFC 5280 осы шектеулерді тасымалдайтын өрістерді анықтайды, ал клиенттің оларды қаншалықты қатаң орындайтыны әр қолданбаның ісі.

OpenVPN бөлінуді көрінетін етеді. verify-x509-name күтілетін субъектіні name, name-prefix немесе subject сәйкестігі арқылы бекітеді. remote-cert-tls server серіктес сертификатының сервер сертификаты ретінде жарамды болуын талап етеді, бұл шығарушы сенімді болса да тек клиенттік сертификатты қабылдамайды. Екі параметрдің ешқайсысы CA файлын жіберумен алмастырылмайды.

Бірдеңе шешпес бұрын сертификатты қарап шығыңыз:

  • openssl x509 -in server.crt -noout -subject -issuer -dates -ext subjectAltName оны кім бергенін, қай атаулар үшін және қашанға дейін көрсетеді.
  • openssl verify -CAfile ca.crt server.crt жібергелі отырған тізбектің жапырақты шынымен валидациялайтынын тексереді.
  • openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -CAfile ca.crt -verify_return_error веб-портал сияқты TLS шеткі нүктелері үшін жұмыс істейді; 1194-тегі OpenVPN протоколы қарапайым TLS ағыны емес, сондықтан бұл сынақ онда қолданылмайды.

Мерзімі өткен, қосылатын атау үшін subjectAltName жоқ немесе serverAuth пайдалануы жоқ сертификат якорь қаншалықты мұқият орнатылғанына қарамастан сәтсіздікке ұшырайды.

Біреуін қабылдамас бұрын бес тексеру

Саусақ ізін жөндеуге тырысып жатқан байланыс емес арна арқылы салыстырыңыз: консоль, әлдеқашан бар орнатушы, қол қойылған конфигурация файлы. Сервердегі openssl x509 -in server.crt -noout -fingerprint -sha256 және клиент журналындағы сол мән бір нысанды қарап отырғаныңызды білуге жетеді.

Содан кейін не орнатып жатқаныңызды шешіңіз: бір жапырақ па, әлде көбірек соға алатын билік пе. Содан кейін оның қайда кететінін шешіңіз және сол қойманы оқитын қолданбаларды атаңыз. Жою жолын әлі есте сақтап тұрғанда жазып алыңыз, өйткені сен-де-әрі-жүре-бер осылай уақытша импорт тұрақтыға айналады.

Соңында, өзгерісті жоспарлаңыз. Бекітілген сертификат немесе саусақ ізі сертификат айналғанда сол сенімді арна арқылы жаңартылуы керек, ал жеке CA-ның өз беру және кері қайтару өмірлік циклі бар. Жеке кілт ағып кетсе, сол сертификаттың көшірмесіне қайта сену ештеңені түзетпейді; идентитетті ауыстыру керек.

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

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