თქვენ გააუქმეთ სერტიფიკატი, შექმენით ახალი სია და ძველი პროფილი კვლავ აწევს გვირაბს. თავად გაუქმება არ არის გატეხილი: CRL არის ხელმოწერილი განცხადება, რომ სერიული ნომერი აღარ არის მოქმედი, და ის ცვლის წვდომას მხოლოდ მაშინ, როცა TLS-ის დამამთავრებელი კომპონენტი ჩატვირთავს მას, სწორი გამომცემისთვის, სანამ მიიღებს მიღების გადაწყვეტილებას. სწორედ აქ არის ამ შემთხვევათა უმეტესობა და ამიტომ გაუქმება და უარი ორი განსხვავებული ფაქტია.

გაიარეთ ქვემოთ მოცემული ხუთი შემოწმება თანმიმდევრულად და გაჩერდით პირველზე, რომელიც არ სრულდება, რადგან ყოველი შემდეგი წინების ჭეშმარიტებას გულისხმობს.

შეამოწმეთ, რომელი კომპონენტი იღებს მიღების გადაწყვეტილებას

დაასახელეთ პროცესი, რომელიც ამოწმებს კლიენტის სერტიფიკატს, რადგან მხოლოდ მას შეუძლია სიის აღსრულება. OpenVPN სერვერზე ეს თავად დემონია, კონფიგურირებული crl-verify-ით. ocserv-ში ეს არის crl ხაზი ocserv.conf-ში. 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 dataFail-closed resultFail-open result
List missing or unreadableVerification fails, so expect an outageEvery client connects, including the revoked one
List past nextUpdateValidation errors until a fresh list is deployedOld status is trusted indefinitely
Revoked serial present in the loaded listHandshake rejected for that certificateHandshake rejected for that certificate

რომელი მიმართულებაც არ უნდა აირჩიოთ, ავტომატიზაცია უფრო მნიშვნელოვანია ვიდრე არჩევანი: სამუშაო, რომელიც CRL-ს ხელახლა ქმნის nextUpdate-მდე, და გაფრთხილება, როცა განლაგებული ასლი ძველდება, არ აძლევს არც ერთ პოლიტიკას ინციდენტად გადაქცევის საშუალებას. OCSP-ით ონლაინ შემოწმება სისუფთავეს პასუხისმგებელზე გადააქვს, მაგრამ იგივე წესი მოქმედებს, რადგან პასუხის შესამოწმებლად არაკონფიგურირებული შემმოწმებელი არაფერს ცვლის.

შეამოწმეთ აქტიური სესია, შემდეგ გასაღების ასლები

გაუქმება ფასდება სერტიფიკატის ვალიდაციის დროს, რაც ხდება დაკავშირებისა და ხელახალი მოლაპარაკების დროს. დამყარებული სესია გრძელდება სანამ ხელახლა მოილაპარაკებს და OpenVPN-ის ნაგულისხმევი მნიშვნელობა არის საათში ერთხელ reneg-sec 3600-ით. თუ ადამიანი ახლა უნდა გავიდეს ქსელიდან, შეწყვიტეთ სესია სიის გამოქვეყნებასთან ერთად და შემდეგ დაადასტურეთ, რომ ხელახალი დაკავშირება უარყოფილია.

გამოყავით მონაცემები მათი ასლებისგან. ერთ ლეპტოპზე პროფილის წაშლა არ უშლის ხელს იმავე კერძო გასაღების სხვა ასლს ავთენტიფიკაციაში; გაუქმებაა ის, რაც ყოველ ასლს გამოუსადეგარს ხდის და ეს მხოლოდ მაშინ, როცა წინა შემოწმებები სრულდება. მისცით შემცვლელ მოწყობილობას საკუთარი სერტიფიკატი, რათა ერთი მეორეს შეხების გარეშე გაუქმდეს.

სანამ დასრულებულად ჩათვლით: ვალიდაციის კომპონენტი გამოვლენილია, სიის გამომცემი ემთხვევა ფოთლის გამომცემს, გაუქმებული სერიული ნომერი არის იმ ასლში, რომელიც დემონმა რეალურად ჩატვირთა, დაკარგული ან ვადაგასული სიების პოლიტიკა განზრახ არჩეულია და მონიტორინგდება, ხოლო აქტიური სესია შეწყდა და არ დაელოდა. ფორმატები, რომლებიც ყოველივე ამის უკან დგას, მოცემულია RFC 5280-ში.

დაკავშირებული სტატიები