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

Шлюзът се доверява на издател, а не на списък с файлове

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

Обратната пропаст е също толкова неудобна. Една папка може да съдържа изтекли сертификати, отменени такива и идентичности, издадени за устройства, които така и не са били разгърнати. Броенето на файлове отговаря колко файла има, а това е въпрос, който никой не е задавал. Започнете вместо това от записите, които носят смисъл.

Четири въпроса, четири различни записа

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

Question you are answeringWhere the answer livesHow quickly it changesWhat it will never show
Was this identity ever created?The issuer's issuance databaseOnly when something is issuedWhether the device still exists
Is a copy sitting on this host?The paths you actually inspectedWhenever anyone copies filesCertificates that were never copied here
Has the issuer withdrawn it?Published revocation stateWhen the issuer next publishesWithdrawals that are not published yet
Is it connected right now?The live session tableContinuouslyAnything about past or future sessions

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

Издател плюс сериен номер е единственият стабилен ключ

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

Двойката издател и сериен номер идентифицира сертификата уникално и двете полета идват от самия сертификат. Запишете ги със субекта, датите на валидност, източника, от който е дошло копието, и отговорното лице или устройство. Добавете състояние на отмяна и разгръщане като отделни полета със собствени времена на наблюдение, защото сертификат в рамките на срока си на валидност не е автоматично упълномощен. Тези два факта живеят в различни системи и обединяването им скрива случая, в който идентичност е била оттеглена, докато файлът ѝ все още изглежда актуален.

Четете по един сертификат наведнъж

Шаблон със заместващ знак, който се разгръща през папка, не е пакетен интерфейс и крие кой файл кой изход е произвел. Четете метаданните поотделно за всеки сертификат и четете страната на отмяната от собствения ѝ артефакт. Справката за OpenSSL x509 изброява полетата, които тези опции отпечатват.

openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40

За управлявана PKI с Easy-RSA направете заявка към базата за издаване чрез работния процес, който инструментът поддържа, вместо да предполагате оформление на папки, и пазете оригиналите само за четене, докато се сглобява инвентаризацията. Форматът на регистъра е достатъчно регулярен, за да се преброят валидните записи и да се изброят оттеглените, без да се отваря базата на ръка.

grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5

Инвентаризация, която оцелява след следващото издаване

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

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

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