Праверка сертыфіката VPN без вываду яго ключа
Чытайце публічныя палі, даты і адбіткі, не друкуючы матэрыял ключа. Якая каманда бяспечная, залежыць ад таго, што ўтрымлівае файл і хто атрымае вывад.
Чытанне публічных палёў сертыфіката ніколі не патрабуе паказу прыватнага ключа, які да яго падыходзіць, а інструменты для гэтага ідуць з кожнай сістэмай, што завяршае VPN. Рызыка на адзін крок раней: файл, які вам перадалі, можа зусім не быць сертыфікатам. Сертыфікат PEM, бінарны блок DER, пакет PKCS#12 і профіль OpenVPN могуць прыйсці з аднолькавай назвай і ўтрымліваць зусім розны матэрыял, таму вызначце кантэйнер, перш чым выбіраць каманду.
Тры факты вызначаюць, якая каманда бяспечная: што ўтрымлівае файл, што вам трэба з яго прачытаць і хто ўбачыць вывад. Памыліцеся хоць у адным — і сама праверка стане інцыдэнтам.
Які з трох файлаў вам перадалі
Сертыфікат PEM — гэта тэкст з бачнымі маркерамі BEGIN і END, файл DER — бінарныя даныя, якім патрэбны сцяг фармату ўводу, а пакет — гэта кантэйнер, які можа трымаць ключ побач з сертыфікатам. file server.crt аддзяляе тэкст ад бінарных даных за секунду, а позірк на першы радок аддзяляе голы сертыфікат ад профілю, які ўбудоўвае яго. Менавіта здагадка тут ператварае праверку ў інцыдэнт.
Калі файл — гэта профіль, а не сертыфікат, стаўцеся да яго як да ўліковых даных, пакуль не даказана адваротнае. Гэта дапушчэнне нічога не каштуе і прадухіляе самую распаўсюджаную памылку ва ўсёй гэтай задачы.
Чытанне публічных палёў сертыфіката PEM
Для сертыфіката, які вам дазволена правяраць, падкаманда x509 з -noout друкуе толькі вылучаныя вамі палі і нічога больш. Менавіта падаўленне цела пакідае вывад метаданымі, і гэта ж робіць яго бяспечным для ўстаўкі ў заяўку. Селектары ніжэй — публічныя, а дакументацыя openssl x509 пералічвае рэшту.
openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256
На лакальна створаным тэставым сертыфікаце гэтая каманда друкуе радок суб'екта і выдаўцы, пару notBefore і notAfter і адзін адбітак SHA-256. Гэтыя палі ідэнтыфікуюць аб'ект; яны не ўсталёўваюць сапраўдны шлях даверу, бо гэта асобная задача праверкі са сваёй камандай і сваім адказам. Файл ланцуга можа таксама друкаваць толькі першы сертыфікат, пакуль вы самі не перабярэце файл. Параўнанне двух файлаў такім чынам каштуе адной каманды і вырашае, які з іх сапраўды прад'яўляе партнёр.
Пакеты, якія трымаюць ключ побач з сертыфікатам
Файл .p12 або .pfx можа несці прыватны ключ, і каманда разбору друкуе яго, калі вы не падавіце гэтую частку вываду. З -nokeys тая ж каманда ўсё яшчэ паведамляе пра структуру кантэйнера, уключаючы затушаваны мяшок ключа, не выпускаючы ніякага матэрыялу ключа; прыбярыце гэты сцяг — і блок ключа з'явіцца ў вашым тэрмінале і ў гісторыі абалонкі.
openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS
Профіль OpenVPN убудоўвае той жа матэрыял як тэкст, таму мяжа бачная, калі ведаць, куды глядзець. Публічны матэрыял знаходзіцца паміж BEGIN CERTIFICATE і END CERTIFICATE, а ўсё паміж BEGIN PRIVATE KEY і адпаведным радком END — гэта ключ, і ён не павінен пакідаць хост. Капіраванне профілю цалкам публікуе абодва.
Атрыманне эталоннага значэння з іншага месца
Адбітак, прачытаны з злучэння, якое вы спрабуеце праверыць, нічога не даказвае, бо яго падаў менавіта той бок, якому вы не давяраеце. Гэта не аргумент супраць адбіткаў; гэта аргумент пра паходжанне. Параўнайце значэнне з тым, што атрымана праз канал, у які партнёр не можа пісаць, напрыклад з сертыфікатам, апублікаваным ва ўнутраным сховішчы, або з хэшам, надрукаваным у падпісаным запісе пра змену.
Калі сховішча даверу выконвае праверку, дайце яму гэта зрабіць і чытайце памылку, якую яно выдае, замест таго каб падмяняць яе ўласным параўнаннем. Важнае адрозненне — хто падаў эталон, а не якая хэш-функцыя выкарыстана.
Як падзяліцца вынікам і што рабіць пасля памылкі
Дасылайце дакладную памылку праверкі, адпаведныя даты і толькі тыя ідэнтыфікацыйныя даныя, якія патрэбны атрымальніку. Унутраныя імёны хостаў і ідэнтыфікатары ўліковых запісаў застаюцца адчувальнымі, нават калі ключа няма, а публічны сэрвіс устаўкі — няправільны адрас для ўсяго гэтага. Устаўляйце ў заяўку, а не ў чарнавы буфер, які хтосьці іншы падзяляе.
Калі матэрыял ключа ўсё ж з'явіўся на экране або ў файле, лічыце яго скампраметаваным і перакруціце яго замест надзеі, што ніхто не глядзеў. Затым запішыце, які файл правяраўся, якая каманда выкарыстоўвалася і куды пайшоў вывад, бо менавіта гэты запіс ператварае спалох у працэдуру. Ратацыя танная ў параўнанні з цаной здагадкі, што ніхто не захаваў здымак экрана, і той жа запіс паведамляе наступнаму інжынеру, якіх файлаў наогул датыкаліся. Зрабіце і тое, і іншае, перш чым заяўка будзе зачынена.