Չեղարկված VPN վկայականը դեռ միանում է? Ստուգեք CRL-ի կիրառումը
Չեղարկված վկայականները դեռ միանում են, երբ CRL-ը երբեք չի հասնում ստուգողին: Այս հերթականությամբ ստուգեք թողարկողին, բեռնված սերիական համարը, վերաբեռնման վարքը և ակտիվ սեսիաները:
Դուք չեղարկել եք վկայականը, ստեղծել նոր ցուցակ, բայց հին պրոֆիլը դեռ թունել է բարձրացնում։ Ինքնին չեղարկումը կոտրված չէ. CRL-ը ստորագրված հայտարարություն է, որ սերիական համարն այլևս վավեր չէ, և այն փոխում է մուտքը միայն այն ժամանակ, երբ TLS-ը ավարտող բաղադրիչը բեռնում է այն, ճիշտ թողարկողի համար, նախքան ընդունման որոշում կայացնելը։ Հենց այստեղ են այդ դեպքերի մեծ մասը, և դրա համար չեղարկումն ու մերժումը երկու տարբեր փաստեր են։
Անցեք ստորև ներկայացված հինգ ստուգումները հերթականությամբ և կանգ առեք առաջինի վրա, որը չի բավարարվում, որովհետև յուրաքանչյուր հաջորդը ենթադրում է, որ նախորդները ճիշտ են։
Ստուգեք, թե որ բաղադրիչն է կայացնում ընդունման որոշումը
Անվանեք այն գործընթացը, որը վավերացնում է հաճախորդի վկայականը, քանի որ միայն այդ գործընթացը կարող է կիրառել ցուցակը։ OpenVPN սերվերում դա ինքնին դեմոնն է՝ կարգավորված crl-verify-ով։ ocserv-ում դա ocserv.conf-ի crl տողն է։ strongSwan-ում մուտքերը բեռնված CRL-ներն են strictcrlpolicy-ի հետ միասին։ VPN-ի առջև TLS-ը ավարտող պրոքսին կամ սարքը նույնպես կարող է լինել իսկական ստուգողը, և եթե այդպես է, դրա հետևում գտնվող դեմոնը երբեք չի տեսնում հաճախորդի վկայականը։
WireGuard-ը պատկանում է այլ կատեգորիայի։ Այն չունի վկայականներ և չունի չեղարկման ցուցակ. peer-ը թույլատրվում է կոնֆիգուրացիայի իր հանրային բանալիով, ուստի մուտքի դադարեցումը նշանակում է այդ բանալու հեռացում։ Եթե CRL եք փնտրում միայն WireGuard-ով տեղակայման մեջ, այդ մեխանիզմը այնտեղ չկա։
Զգուշացեք նաև հաճախորդի կողմի թակարդից։ Հաճախորդը, որը հրաժարվում է միանալ, որովհետև իրեն դուր չի գալիս սերվերի վկայականը, կիրառում է սերվերի շղթան, այլ ոչ թե չեղարկում է իր սեփական հավատարմագրերը։ Օգտատիրոջ վկայականը չեղարկվում է միայն այնտեղ, որտեղ վավերացվում է այդ օգտատիրոջ վկայականը, և դա գրեթե միշտ սերվերի կողմն է։
Ստուգեք, թե որ թողարկողի համար է ստորագրված ցուցակը
CRL-ը սահմանափակված է մեկ թողարկող CA-ով։ Արմատային և միջանկյալ CA-ի դեպքում տերևային վկայականները գալիս են միջանկյալից, ուստի կարևոր ցուցակը միջանկյալի CRL-ն է. արմատի ցուցակը ոչինչ չի ասում այդ տերևների մասին։ Սխալ ֆայլին ուղղված ստուգողը ուրախությամբ վերլուծում է այն, չի գտնում համապատասխան գրառում և ընդունում է ամեն ինչ։
Հաստատեք զուգացումը նախքան դեմոնին դիպչելը։ Վկայականի թողարկողը պետք է համապատասխանի ցուցակի subject-ին:
openssl x509 -in client.crt -noout -issuer -serial
openssl crl -in intermediate.crl -noout -issuer -lastupdate -nextupdateԵրբ երկուսն էլ գալիս են նույն CA-ից, վկայականի համար տպված սերիական համարը այն արժեքն է, որը պետք է հայտնվի ցուցակում։ Եթե դրանք չեն համընկնում, դուք պահում եք սխալ CRL կամ դրա սխալ պատճենը։
Վավերականությունը պատկանում է նույն ստուգմանը։ Անցյալում գտնվող nextUpdate-ը ցուցակը դարձնում է հնացած, և փակ ձևով ձախողվող ստուգողը այդ ժամանակ կմերժի յուրաքանչյուր հաճախորդի՝ միայն չեղարկվածի փոխարեն։
Ստուգեք, որ սերիական համարը գտնվում է դեմոնի բեռնած պատճենում
Չեղարկումը գրառում է մուտք CA-ի տվյալների բազայում, իսկ վերագեներացումը գրում է նոր ֆայլ։ Գործողություններից ոչ մեկը չի հասնում աշխատող դեմոնին, որը գործարկման պահին բեռնել է հին պատճենը։ Արտածեք ցուցակը և փնտրեք սերիական համարը:
openssl crl -in intermediate.crl -noout -text | grep -i -A2 'Serial Number'
openssl ca -revoke client.crt
openssl ca -gencrl -out intermediate.crlԱյնուհետև ստուգեք, թե ինչպես է ձեր իրականացումը վերցնում ֆայլը։ OpenVPN-ը կարդում է crl-verify-ին տրված ուղին մեկ անգամ գործարկման պահին, ուստի նոր ցուցակը պահանջում է վերագործարկում կամ վերագործարկման ազդանշան. նույն ընտրանքը, ուղղված գրացուցակին, վերընթերցվում է յուրաքանչյուր միացման համար, և դրա համար էլ գոյություն ունի գրացուցակի ռեժիմը։ strongSwan-ը պետք է վերաբեռնի իր հավատարմագրերը, օրինակ՝ swanctl --load-creds-ով։ Այն, որ ֆայլը սկավառակի վրա ճիշտ է, և այն, որ ստուգողը օգտագործում է այն, երկու տարբեր փաստեր են։
Ստուգեք բացակայող կամ ժամկետանց ցուցակի քաղաքականությունը
Սա այն որոշումն է, որը շատ տեղակայումներ երբեք բացահայտ չեն կայացնում, և այն որոշում է՝ չեղարկումը պաշտպանո՞ւմ է ձեզ, թե՞ փակում է բոլորին դրսում։ Fail-closed նշանակում է, որ օգտագործելի չեղարկման տեղեկատվության բացակայության դեպքում մերժում է տեղի ունենում. fail-open նշանակում է, որ ստուգողը շարունակում է առանց դրա։ strongSwan-ը ընտրությունը ներկայացնում է որպես strictcrlpolicy։ OpenVPN-ը crl-verify-ով հրաժարվում է գործարկվել ֆայլից, որը չի կարող կարդալ կամ վերլուծել, և ժամկետանց ցուցակը հայտնվում է որպես TLS ստուգման սխալ՝ ժամկետանց CRL-ի վերաբերյալ, այլ ոչ թե լուռ ընդունում։
| State of the revocation data | Fail-closed result | Fail-open result |
|---|---|---|
| List missing or unreadable | Verification fails, so expect an outage | Every client connects, including the revoked one |
List past nextUpdate | Validation errors until a fresh list is deployed | Old status is trusted indefinitely |
| Revoked serial present in the loaded list | Handshake rejected for that certificate | Handshake rejected for that certificate |
Ինչ ուղղություն էլ ընտրեք, ավտոմատացումն ավելի կարևոր է, քան ընտրությունը. աշխատանքը, որը վերագեներացնում է CRL-ը մինչև nextUpdate, և ծանուցումը, երբ տեղակայված պատճենը հնանում է, թույլ չեն տալիս ոչ մի քաղաքականության դառնալ միջադեպ։ OCSP-ով առցանց ստուգումը թարմությունը տեղափոխում է պատասխանողի մոտ, բայց գործում է նույն կանոնը, քանի որ պատասխանը ստուգելու համար չկարգավորված ստուգողը ոչինչ չի փոխում։
Ստուգեք ակտիվ սեսիան, ապա բանալու պատճենները
Չեղարկումը գնահատվում է վկայականի վավերացման ընթացքում, որը տեղի է ունենում միացման և վերաբանակցման պահին։ Հաստատված սեսիան շարունակվում է այնքան ժամանակ, քանի դեռ չի վերաբանակցում, և OpenVPN-ի լռելյայն արժեքը ժամը մեկն է՝ reneg-sec 3600-ով։ Եթե մարդը պետք է հիմա դուրս գա ցանցից, դադարեցրեք սեսիան՝ ցուցակը հրապարակելուն զուգահեռ, ապա հաստատեք, որ վերամիացումը մերժվում է։
Առանձնացրեք հավատարմագրերը դրանց պատճեններից։ Մեկ նոթբուքի վրա պրոֆիլը ջնջելը չի խանգարում նույն մասնավոր բանալու մեկ այլ պատճենի նույնականացմանը. չեղարկումն է, որ յուրաքանչյուր պատճեն դարձնում է անօգուտ, և դա միայն այն դեպքում, երբ նախորդ ստուգումները բավարարված են։ Տվեք փոխարինող սարքին սեփական վկայականը, որպեսզի մեկը հնարավոր լինի չեղարկել առանց մյուսին դիպչելու։
Նախքան այն ավարտված համարելը. վավերացնող բաղադրիչը նույնացված է, ցուցակի թողարկողը համապատասխանում է տերևի թողարկողին, չեղարկված սերիական համարը գտնվում է այն պատճենում, որը դեմոնը փաստացի բեռնել է, բացակայող կամ ժամկետանց ցուցակների քաղաքականությունը դիտավորյալ է և վերահսկվում է, իսկ ակտիվ սեսիան դադարեցվել է, այլ ոչ թե սպասվել։ Այս ամենի հետևում գտնվող ձևաչափերը նշված են RFC 5280-ում։