Четенето на публичните полета на един сертификат никога не изисква показване на частния ключ, който му съответства, а инструментите за това идват с всяка система, която прекратява 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 е ключът и не трябва да напуска хоста. Копирането на профила изцяло публикува и двете.

Получаване на референтната стойност от другаде

Отпечатък, прочетен от връзката, която се опитвате да проверите, не доказва нищо, защото го е предоставила страната, на която не вярвате. Това не е аргумент срещу отпечатъците; това е аргумент за произхода. Сравнете стойността с такава, получена по канал, в който партньорът не може да пише, например сертификата, публикуван във вътрешно хранилище, или хеша, отпечатан в подписан запис за промяна.

Когато хранилището за доверие извършва валидиране, оставете го да го направи и прочетете грешката, която то дава, вместо да я заменяте със собствено сравнение. Важната разлика е кой е предоставил референцията, а не коя хеш функция е използвана.

Споделяне на резултата и какво да правите след грешка

Изпратете точната грешка при валидиране, съответните дати и само идентификационните данни, които получателят има нужда. Вътрешните имена на хостове и идентификаторите на акаунти остават чувствителни дори когато няма ключ и публична услуга за поставяне е грешната дестинация за всичко това. Поставяйте в тикета, а не в чернов буфер, който някой друг споделя.

Ако ключов материал все пак се е появил на екрана или във файл, третирайте го като компрометиран и го сменете, вместо да се надявате, че никой не е гледал. След това запишете кой файл е прегледан, коя команда е използвана и къде е отишъл изходът, защото именно този запис превръща уплахата в процедура. Смяната е евтина в сравнение с цената да приемете, че никой не е запазил екранна снимка, и същият запис казва на следващия инженер кои файлове изобщо са били докоснати. Направете и двете, преди тикетът да бъде затворен.

Подобни статии