Нехта скасаваў сертыфікат у кансолі 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 і выдаліць радок выпуску, каб новы сертыфікат мог паўторна выкарыстаць серыйны нумар.

На CA OpenSSL база даных падзелена табуляцыяй і яе лёгка прачытаць няправільна, што і робіць ручное рэдагаванне спакуслівым:

awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt

Чытайце яе, не запісвайце. Рэдагаванне файла змяняе наступны CRL без якога-небудзь аўдытарскага следу, і любы другі экзэмпляр CA або рэзервовая копія, якая ўсё яшчэ мае арыгінальны радок, пазней разыйдзецца з ёй.

Пасля выпуску замены апублікуйце свежы CRL праз звычайны механізм і дайце кліентам яго падхапіць. Выдаленне CRL, скарачэнне яго тэрміну да нуля або адключэнне праверкі скасавання ў профілі кліента выпраўляе аднаго карыстальніка, паслабляючы ўсе іншыя скасаванні, якія CA калі-небудзь публікаваў.

Пацвердзіце свежы допуск і захавайце запіс

Тэстуйце новым злучэннем, а не сеансам, які ўжо быў адкрыты. Жывы тунэль можа не паўтарыць праверкі допуску, якія выконвае свежае рукапацісканне, а кэшы CRL азначаюць, што кліент можа працягваць падключэнне, пакуль не абновіцца. Адключыцеся, падключыцеся зноў і пацвердзіце ў журнале сервера, які серыйны нумар быў дапушчаны.

Запішыце, што адбылося, пакуль гэта яшчэ свежа: які серыйны нумар скасаваны, кім, з якой прычынай, якая замена выдадзена і калі CRL быў перавыданы. Гэты запіс робіць магчымым наступны агляд скасавання і служыць доказам таго, што памылка была ўладжана, а не схавана.

Для кароткіх прыпынкаў у будучыні выкарыстоўвайце механізм прыпынку допуску, калі ён ёсць у разгортванні — уліковы запіс, адключаны на ўзроўні ідэнтычнасці, выдаленае членства ў групе, затрыманы профіль кліента. Гэта трымае часовае рашэнне па палітыцы асобна ад пытання, ці выпушчаны сертыфікат яшчэ заслугоўвае даверу, і менавіта гэтае адрозненне было страчана ў першы раз.

Падобныя артыкулы