OCSP жана CRL: ар бир жокко чыгаруу текшерүүсү иш жүзүндө кантип иштейт
OCSP жообу — бир сертификат үчүн кол коюлган статус; CRL — жүктөлүүчү тизме. Таратуу, кэштөө жана ийгиликсиздиктеги жүрүм-турум алардын айырмаланган жерлери.
Бул эки жокко чыгаруу текшерүүсүнүн бири бир сертификат жөнүндө кол коюлган жооп кайтарат, экинчиси толугу менен жүктөй турган кол коюлган тизмени кайтарат. Экөө тең текшерүүчүгө күбөлүктүн дагы эле ишенимдүү экенин айтууга арналган, жана экөө тең бири-бирине такыр окшобогон жолдор менен ийгиликсиз болот. Төмөнкү тартип оператор өндүрүштө чындап эле кезиктирген нерсени ээрчийт, тармактагы байттардан баштап, туташуудан баш тарткан шлюз менен бүтөт. Кадамды өткөрүп жиберүү — жайгаштыруунун кагазда гана бар жокко чыгаруу саясаты менен калышынын дал ушул жолу.
1-кадам: Ар бир текшерүү эмне кайтарат жана канча убакыт колдонулат
CRL чыгаруучу жокко чыгарган ар бир сертификатты камтыган бир кол коюлган объект катары жарыяланат, ошондуктан текшерүүчү аны бир жолу алып, тизменин nextUpdate өткөнгө чейин кайра колдонот. OCSP жообу тарраак: ал так бир сертификат боюнча жооп берет жана thisUpdate, producedAt жана адатта nextUpdate да алып жүрөт. Ушул айырма калгандын баарын аныктайт. Кэштөөдөгү CRL үнсүз эскирет, анткени файл дагы эле талданат жана анын кол тамгасы дагы эле текшерилет, ал эми мөөнөтү өткөн OCSP жообу анын убакыт белгилерин окуган учурда эле ачык пайдасыз.
Ошондуктан кэштөө биринчи кезекте белгилениши керек: кайсы компонент көчүрмөнү кармайт жана ал көчүрмө кандай чегерүүгө баш ийет. Шлюзде чеги nextUpdate минус коопсуздук чеги болушу керек, эч качан HTTP кэш аталышы кокустан сунуш кылган нерсе эмес. openssl crl -in issuer.crl -noout -lastupdate -nextupdate эки датаны тең басып чыгарат, жана nextUpdate мөөнөтү буга чейин өтүп кеткен тизмени жөн гана эски эмес, жок деп кароо керек.
2-кадам: Сертификат клиентти кайда багытат
Жалбырак сертификат адатта эки белгини алып жүрөт: CRL таркатуу пунктунун кеңейтүүсү жана OCSP үчүн органдын маалыматына жетүү жазуусу. openssl x509 -in client.pem -noout -ext crlDistributionPoints биринчисин басып чыгарат, экинчиси openssl x509 -in client.pem -noout -text чыгарылышынын AIA бөлүмүндө турат. Ар кандай кеңейтүү — көрсөткүч, милдет эмес. Жокко чыгаруу текшерүүсүн эч качан ишке ашырбаган клиент кеңейтүүлөрү бир жыл мурун өлгөн жооп берүүчүнү атаган сертификатка толук жакшы туташат.
Таркатуу пункттары көбүнчө бир гана тармак сегментинин ичинде чечилүүчү ички хостту атайт, ал эми кээ бир эски клиенттер ldap URL даректеринен таптакыр баш тартышат. Жеткиликтүүлүктү туннелди бүтүрүүчү хосттон текшериңиз, өз ноутбукуңуздан эмес, анткени анын ийгиликсиздиги чынында маанилүү болгон жалгыз көз караш — ошол.
3-кадам: Үзгүлтүктөн мурун fail-closed же fail-open тандаңыз
Жеткиликсиз жооп берүүчү же мөөнөтү өткөн тизме чечимге мажбурлайт: туташуудан баш тартуу, же аны кабыл алып, боштукту жазуу. OpenSSLдин verify кошумча командасы катуу тандоону айкын кылат, анткени -crl_check кошуу жеткиликсиз CRLди unable to get certificate CRL жана ийгиликсиз текшерүүгө айландырат. Көпчүлүк стектерде жумшак ийгиликсиздик такыр желеп эмес, ал текшерүүнүн жоктугу, жана дал ошондуктан ал кокустан жеткирилет.
Клиенттин чындап кандай жүрүм-туруму бар экенин көрүү үчүн жооп берүүчүнү алып салып, кайра туташыңыз. Туннел дагы эле көтөрүлсө, өткөрүп жиберилген текшерүүнү жазган журнал сабын табыңыз, анан окуя учурунда кимдир бирөө ошол сапты окуйбу деп сураңыз. Бир өндүрүүчү протоколго жараша айырмаланышы мүмкүн: бир машинадагы IKEv2 клиенти жана OpenVPN клиенти байланышсыз конфигурация баскычтарын окушат.
4-кадам: Текшерүү трафик кабыл алынган жерде жүрөрүн далилдеңиз
Туташууну бүтүрүүчү же авторизациялоочу процести таап, андан жокко чыгаруу текшерүүсүн күйгүзгөн конфигурация сабын сураңыз. Чынжырды текшерген, бирок жокко чыгаруу жөнүндө эч качан сурабаган шлюз документтериңиздегиден башка саясатты колдонот, жана сертификат чынжырынын эч бир скриншоту тескерисин далилдей албайт. OpenVPN бул опцияны crl-verify деп жазат; strongSwan CRL жана OCSP издөөлөрүн CA конфигурациясынын астында кармайт, ал жерде crl_uris же ocsp_uris орнотулат. Экөөнүн бирин да көрсөтө албасаңыз, текшерүү жок деп эсептеңиз.
OCSP жообу чыгаруучу CA ага кол койгондо гана, же ошол CA делегациялаган OCSPSigning кеңейтилген ачкыч колдонуусуна ээ жооп берүүчү кол койгондо гана күчүндө, ошондуктан байланышсыз кызматтан келген жооп эч нерсени далилдебейт. Жооп берүүчүнү өзүңүз башкарсаңыз, аны катуу көз карандылык катары көзөмөлдөңүз, анткени бир өлгөн кызмат бир заматта ар бир fail-closed клиент үчүн үзгүлтүккө айланат.
5-кадам: Бир сертификатты атайылап жокко чыгарыңыз
Сыноо сертификатын алыңыз, аны өндүрүш колдонгон канал аркылуу жокко чыгарыңыз жана жооп берүүчүдөн түз сураңыз. openssl ocsp -issuer ca.pem -cert old.pem -url http://ocsp.example.net -resp_text жокко чыгаруу убактысы менен бирге Cert Status: revoked жөнүндө билдириши керек, ал эми good жообу сиздин жокко чыгарууңуз клиенттериңиз сураган жооп берүүчүгө жетпегенин билдирет. Андан кийин тизме жолу аркылуу ошол эле чечимди көрүү үчүн openssl verify -crl_check -CRLfile issuer.crl -CAfile ca.pem old.pem иштетиңиз. Чыгуу кодун эмес, себеп сабын окуңуз, анткени жокко чыгаруудан баш тартуу да, чынжыр катасы да ийгиликсиздик менен бүтөт.
Чындап маанилүү кадам — акыркысы: эски профил менен реалдуу колдонуу пунктуна кайра туташып, баш тартуу жокко чыгаруудан келерин ырастаңыз. Андан кийин жаңы, жарактуу сертификат менен кайра туташып, сиз жөн гана угуучуну бузбаганыңызды далилдеңиз. Клиенттеги профилди өчүрүү сервердин чечими жөнүндө эч нерсени далилдебейт, туннелди эч качан бүтүрбөгөн машинада openssl verify ийгиликтүү иштетилгени да далилдебейт. RFC 6960 ылайыктуу OCSP жообу эмнеден тураарын аныктайт, анын ичинде бул сыноо окуган статус маанилери да бар.