Опозвали сте погрешан VPN сертификат? Могућности опоравка и ограничења
Утврдите издаваоца, серијски број и код разлога пре него што дотакнете CA. Трајни опозив, задржавање сертификата и пауза одобрења три су поправке.
Неко је опозвао сертификат у CA конзоли и сада корисник не може да се повеже. Први инстинкт је пронаћи поништење, а у већини PKI система га нема: опозив је изречена чињеница о серијском броју, а подржани пут назад је нови сертификат, а не обрнути запис. Прођите кроз провере испод редом, јер дозвољена поправка зависи од кода разлога и од тога да ли је кључ икада био изложен.
Идентификујте сертификат, не особу
Уобичајена имена се понављају. Корисник који се поново уписао прошлог квартала може имати два сертификата са истим CN и различитим серијским бројевима, а опозив једног оставља други у функцији. Најпре утврдите тачан објекат:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Запишите серијски број, издаваоца, датум опозива и разлог забележен у CRL-у. Затим потврдите који уређаји представљају тај серијски број, јер опозвани сертификат може још бити инсталиран на лаптопу, телефону и резервном рутеру, а замена која стиже само до једног од њих ствара други инцидент.
Брза провера понашања потврђује стање без икакве промене:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Ако пријави сертификат као опозван, CRL и клијент се слажу; ако се чисто верификује, клијент који држите није опозвани и потрага се наставља.
Проверите да ли је CA користио задржавање или трајни опозив
RFC 5280 дефинише certificateHold као привремено стање, а removeFromCRL као сигнал који га ослобађа. Тај животни циклус је стваран, али није универзално дугме за поништење. Читање кода разлога каже вам да ли је издавалац икада намеравао да подржи ослобађање.
Замка је претпоставка да привремена намера значи привремени запис. Ако запис у CA носи keyCompromise или cessationOfOperation, сертификат је трајно опозван, без обзира на то шта је особа која је притиснула дугме намеравала. Обрнуто, запис означен certificateHold на CA који не имплементира ослобађање задржавања трајан је у пракси, јер ништа никада неће објавити ослобађање.
CA засновани на OpenSSL-у илуструју ограничење. Команда ca прихвата вредности -crl_reason, укључујући certificateHold и removeFromCRL, али не генерише делта CRL-ове — документација OpenSSL CA наводи то ограничење за свој CRL излаз. Пун CRL који једноставно изоставља серијски број другачији је модел објављивања од делте која каже "овај запис је ослобођен", па лепљење removeFromCRL у VPN CA заснован на OpenSSL-у не производи стандардима дефинисано ослобађање.
Ако је кључ можда био изложен, замените га
Опозвани сертификат је изјава да се овом кључу више не може веровати. Ако је опозив био суштински исправан — лаптоп изгубљен, кључ копиран на дељени диск, приватни кључ залепљен у тикет — враћање истог сертификата обрће безбедносну одлуку која је радила како треба.
Издајте нови пар кључева кроз процес уписа, дистрибуирајте нови профил и оставите стари серијски број опозваним за цео његов век. Ажурирајте све што пинује идентитет по серијском броју или отиску, укључујући листе одобрења, инвентаре уређаја и мониторинг који очекује одређени сертификат.
Аргумент погодности за враћање старог је стваран, али на њега треба одговорити изричито, а не тихо. "Кориснику треба приступ данас" разлог је да се убрза издавање, а не разлог да се повуче опозив кључа за који не можете да одговарате.
Ако је била административна грешка, замените под контролом
Када је опозив једноставно био погрешан и кључ никада није био изложен, поправка је и даље контролисана замена, а не уређивање. Користите подржани процес издаваоца, задржите серијски број и историју издавања и избегавајте две примамљиве пречице: преокретање статусног знака у index.txt из R натраг у V и брисање реда издавања како би нови сертификат могао поново да користи серијски број.
На OpenSSL CA база је раздвојена табулаторима и лако се погрешно прочита, што ручно уређивање чини примамљивим:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Читајте је, не пишите је. Уређивање датотеке мења следећи CRL без икаквог ревизијског трага, а свака друга CA инстанца или резервна копија која још држи оригинални ред касније ће се с њом разилазити.
Након издавања замене, објавите свеж CRL уобичајеним механизмом и пустите клијенте да га преузму. Уклањање CRL-а, скраћивање његовог века на ништа или онемогућавање провере опозива у профилу клијента поправља једног корисника слабећи сваки други опозив који је CA икада објавио.
Потврдите свеже одобрење и сачувајте запис
Тестирајте новом везом, а не сесијом која је већ била отворена. Живи тунел можда неће поново покренути провере одобрења које изводи свежи handshake, а CRL кешеви значе да се клијент може наставити повезивати док се не освежи. Прекините, поново се повежите и у серверском дневнику потврдите који је серијски број одобрен.
Забележите шта се догодило док је још свеже: који је серијски број опозван, од кога, с којим разлогом, која је замена издата и када је CRL поново објављен. Тај запис омогућава следећи преглед опозива и уједно је доказ да је грешка решена, а не сакривена.
За кратке суспензије убудуће користите механизам паузе одобрења ако га имплементација има — налог деактивиран на слоју идентитета, уклоњено чланство у групи, задржан профил клијента. То држи привремену одлуку о политици одвојеном од питања да ли је издати сертификат још поуздан, а управо се та разлика први пут изгубила.