ვიღაცამ 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-ზე, რომელიც არ ახორციელებს შეჩერების გათავისუფლებას, პრაქტიკაში მუდმივია, რადგან ვერაფერი ვერასოდეს გამოაქვეყნებს გათავისუფლებას.

OpenSSL-ზე დაფუძნებული CA-ები აჩვენებენ ზღვარს. ca ბრძანება იღებს -crl_reason მნიშვნელობებს, მათ შორის certificateHold-ს და removeFromCRL-ს, მაგრამ არ ქმნის დელტა CRL-ებს — OpenSSL CA დოკუმენტაცია აღნიშნავს ამ შეზღუდვას მისი CRL გამოსავლისთვის. სრული CRL, რომელიც უბრალოდ გამოტოვებს სერიულ ნომერს, სხვა გამოქვეყნების მოდელია, ვიდრე დელტა, რომელიც ამბობს "ეს ჩანაწერი გათავისუფლებულია", ამიტომ removeFromCRL-ის OpenSSL-ზე დაფუძნებულ VPN CA-ში ჩასმა არ იძლევა სტანდარტებით განსაზღვრულ გათავისუფლებას.

თუ გასაღები შეიძლება გამჟღავნებული ყოფილიყო, შეცვალეთ ის

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

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

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

თუ ეს ადმინისტრაციული შეცდომა იყო, შეცვალეთ კონტროლის ქვეშ

როცა გაუქმება უბრალოდ მცდარი იყო და გასაღები არასოდეს გამჟღავნებულა, შესწორება მაინც კონტროლირებადი ჩანაცვლებაა და არა რედაქტირება. გამოიყენეთ გამომცემის მხარდაჭერილი პროცესი, შეინარჩუნეთ სერიული ნომერი და გამოცემის ისტორია უცვლელად, და მოერიდეთ ორ მაცდურ მოკლე გზას: index.txt-ში სტატუსის სიმბოლოს R-დან უკან V-ად გადაბრუნებას და გამოცემის სტრიქონის წაშლას, რათა ახალ სერტიფიკატს სერიული ნომრის ხელახლა გამოყენება შეეძლოს.

OpenSSL CA-ში მონაცემთა ბაზა ტაბებით გამოყოფილია და ადვილად არასწორად იკითხება, რაც ხელით რედაქტირებას მიმზიდველს ხდის:

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

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

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

დაადასტურეთ ახალი მიღება და შეინახეთ ჩანაწერი

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

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

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

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