როგორ წავშალოთ მოძველებული VPN სერტიფიკატი ნდობის საცავიდან
VPN პროფილის წაშლა სერტიფიკატს ტოვებს ოპერაციულ სისტემაში, ბრაუზერში ან აპების მაღაზიაში. შეადარეთ თითის ანაბეჭდს, წაშალეთ ყველაზე ვიწრო ასლი და შემდეგ გადაამოწმეთ ჯაჭვი.
თქვენი VPN კლიენტი წაშლილია, პროფილი პარამეტრებიდან გაქრა, და გვირაბი მაინც ძველი სერტიფიკატებით ადის. ან წაშლით, გადატვირთავთ და მეორე დილით ისევ პოულობთ. არც ერთი მათგანი გატეხილი წაშლის ღილაკი არ არის. პროფილი კონფიგურაციაა; სერტიფიკატი გასაღების მასალაა პლუს ნდობის გადაწყვეტილება, რომელიც ჩაწერილია საცავში, საითაც პროფილი მხოლოდ მიუთითებს. რომელი მათგანი გიჭირავთ, განსაზღვრავს, რას უნდა ნიშნავდეს 'წაშლა'.
პროფილი სერტიფიკატი არ არის
VPN-ის გამართვაში სამ განსხვავებულ ობიექტს 'სერტიფიკატს' უწოდებენ. კლიენტის იდენტობა არის ფოთლის სერტიფიკატი კერძო გასაღებით, და კარიბჭე მას იყენებს იმის გადასაწყვეტად, ვინ ხართ. სერვერის საკუთარი ფოთოლი და მისი შუალედური სერტიფიკატი არის ის, რასაც თქვენი კლიენტი ამოწმებს დაკავშირებისას. ნდობის ღუზა, ჩვეულებრივ ფესვური ან კერძო CA სერტიფიკატი, არის ის, რაც ჯაჭვს საერთოდ შესამოწმებელს ხდის. RFC 5280 ამათ ნდობის ღუზას, შუალედურ სერტიფიკატს და საბოლოო ერთეულს უწოდებს, და ჯაჭვი ძალაშია მხოლოდ მაშინ, სანამ ყოველი რგოლი ხელს აწერს მის ქვეშ არსებულს.
წაშალეთ იდენტობა და ერთი მოწყობილობა დაკარგავს წვდომას. წაშალეთ ღუზა და ყოველი აპლიკაცია, რომელიც ამ საცავის წინააღმდეგ ამოწმებს, დაკარგავს მის ქვეშ გამოცემული ნებისმიერი რამის შემოწმების უნარს, მათ შორის კავშირები, რომლებსაც VPN-თან არაფერი აქვთ საერთო. ეს ასიმეტრია არის მთელი რისკი აქ: ერთი კარიბჭისთვის დაყენებული ფესვი ხშირად იგივე ფესვია, რომელიც ხელს აწერს შიდა პორტალს, ფოსტის სერვერს ან პაკეტების სარკეს. დაიმახსოვრეთ, რომელი მათგანი გიჭირავთ.
საკუთრება განსაზღვრავს, დარჩება თუ არა წაშლა წაშლილად. თქვენს საკუთარ ლეპტოპზე მხოლოდ თქვენ შეგიძლიათ სერტიფიკატის დაბრუნება. მართულ მოწყობილობაზე კონფიგურაციის პროფილი ან MDM დატვირთვა შეიძლება მისი ხელახლა დაყენება მომდევნო შემოწმებისას, ამიტომ 'ბრუნდება' და ამიტომ უფრო ძლიერი წაშლა არ ეხმარება.
გაარკვიეთ, რომელი საცავი ჯერ კიდევ ინახავს მას
ადამიანები იწყებენ პარამეტრების აპიდან, რომელიც ერთადერთი ადგილია, სადაც სერტიფიკატი არ ინახება. ნამდვილი ადგილებია ოპერაციული სისტემის ნდობის საცავები, ბრაუზერის საკუთარი საცავი და აპლიკაციის კერძო საცავი.
| Store | What deleting from it affects |
|---|---|
| Windows CurrentUser\My | your login session only |
| Windows LocalMachine Root | every user and service on the machine |
| macOS login or System keychain | one account, or all of them with sudo |
| Linux ca-certificates bundle | curl, git, Python, anything using the system bundle |
| Firefox cert9.db | Firefox only; it does not read the OS store |
შეადარეთ სერიულ ნომერს ან თითის ანაბეჭდს, არასოდეს ჩვენების სახელს. ჩვენების სახელებს ადგენს ის, ვინც სერტიფიკატი გასცა, და ისინი ხელახლა გამოიყენება: 'Example VPN' შეიძლება იყოს სამი სერტიფიკატი სამი განსხვავებული გასაღებით, რომელთაგან ერთი ჯერ კიდევ ყოველდღიურ გამოყენებაშია.
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
macOS-ზე security ინსტრუმენტი იმავე ფაქტებს იძლევა, და find-identity გვიჩვენებს, რომელ სერტიფიკატებს ჯერ კიდევ აქვთ მიმაგრებული კერძო გასაღები:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
წაშალეთ ვიწრო ობიექტი, შეინარჩუნეთ საერთო გამომცემელი
ექსპორტი გააკეთეთ წაშლამდე. სარეზერვო ასლის გარეშე ერთადერთი აღდგენა ხელახალი გაცემაა, რაც კერძო CA-ზე ნიშნავს დაბრუნებას იმასთან, ვინც PKI-ს მართავს. ექსპორტირებული PFX ასევე არის ის, რასაც გადასცემთ, თუ წაშლა არასწორი გადაწყვეტილება აღმოჩნდა.
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
ეს -user დროშაა, რომელსაც ადამიანები შემთხვევით გამოტოვებენ. მის გარეშე certutil მანქანის საცავზე მუშაობს, რაც ნიშნავს ამაღლებულ shell-ს, სერტიფიკატების სხვა ნაკრებს და ზემოქმედების რადიუსს, რომელიც ახლა მანქანის ყველა სხვა ანგარიშს მოიცავს.
macOS-სა და Linux-ზე ფორმა იგივეა: ამოიცანით, ექსპორტი გააკეთეთ, შემდეგ წაშალეთ ყველაზე ვიწრო საცავიდან, რომელიც სიმპტომს ხსნის. /usr/local/share/ca-certificates -ის ქვეშ ფაილის წაშლა და update-ca-certificates -ის ხელახლა გაშვება საკმარისია; --fresh ეხმარება მხოლოდ მაშინ, როცა /etc/ssl/certs -ში სიმბოლური ბმულები უკვე არათანმიმდევრულია. RHEL ოჯახის სისტემები ღუზებს ინახავს /etc/pki/ca-trust/source/anchors-ში, სადაც trust anchor --remove იგივე სამუშაოს ასრულებს.
sudo security delete-certificate -Z <sha1> /Library/Keychains/System.keychain
sudo rm /usr/local/share/ca-certificates/example-vpn.crt
sudo update-ca-certificates
sudo trust anchor --remove /etc/pki/ca-trust/source/anchors/example-vpn.crt
CA სერტიფიკატის წაშლამდე შეამოწმეთ, კიდევ რა იკავშირებს ჯაჭვურად მას. პაკეტში არსებული სუბიექტების ჩამოთვლა ორხაზიანი შემოწმებაა და პასუხობს, ასრულებს თუ არა ეს ღუზა სხვა სამუშაოს:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
ფაილის წაშლა იდენტობის გაუქმება არ არის
ლოკალური წაშლა ერთ ასლს აშორებს. კერძო გასაღები შეიძლება ჯერ კიდევ იყოს ძველ ბილეთზე მიმაგრებულ p12-ში, სარეზერვო საქაღალდეში ან იმავე დროს გამართულ მეორე ლეპტოპში. თუ ეს კლიენტის იდენტობა იყო, კარიბჭე აგრძელებს ამ გასაღების ნებისმიერი ასლის მიღებას, სანამ იდენტობა სერვერის მხარეს არ უარყოფილი იქნება.
ერთი OpenVPN PKI-სთვის ეს ნიშნავს სერტიფიკატის გაუქმებას და დარწმუნებას, რომ crl-verify -ის მითითებული CRL მიმდინარეა; easyrsa revoke შემდეგ easyrsa gen-crl მოკლე ვერსიაა. იდენტობის პროვაიდერთან დაკავშირებული კარიბჭისთვის იქ გამორთეთ მომხმარებელი ან ამოიღეთ მოწყობილობა, რადგან სერტიფიკატი თამაშში მხოლოდ ერთი სერტიფიკატია. ლოკალური ასლის წაშლა ანგარიშის აქტიური დარჩენისას გაწმენდას ჰგავს და ასე არ არის.
ინციდენტის სამუშაოს სხვა რიგი აქვს: ჯერ შეინახეთ სერტიფიკატი, მისი სერიული ნომერი და გაუქმების ჩანაწერი, შემდეგ წაშალეთ და გააუქმეთ. ეს ჩანაწერები არაფერი ღირს და არ მოითხოვს სამუშაო სერტიფიკატის ადგილზე დატოვებას.
გადაამოწმეთ ხელის ჩამორთმევით და მეორე აპლიკაციით
ჯაჭვი გარედან შეამოწმეთ, არა იმ საცავის სიიდან, რომელიც ახლახან შეასწორეთ. საცავი თქვენს ცვლილებას აჩვენებს; ხელის ჩამორთმევა შედეგს აჩვენებს.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com \
-CAfile /etc/ssl/certs/ca-certificates.crt -verify_return_error < /dev/null
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt vpn-gateway.pem
0 დაბრუნების კოდი ნიშნავს, რომ დარჩენილი ღუზები ჯერ კიდევ ამოწმებენ კარიბჭეს. ღუზის წაშლის შემდეგ ჯაჭვის შეცდომა მოსალოდნელი შედეგია და ადასტურებს, რომ გამოყენებულ ღუზას მოხვდით და არა საცავში არსებულ დუბლიკატს, რომელსაც კლიენტი არასოდეს კითხულობს. თუ კავშირი ჯერ კიდევ მუშაობს, მოძებნეთ მეორე ასლი, აპლიკაციაში ჩაშენებული საცავი ან ჩამაგრებული სერტიფიკატი, რომლებიც ყველა გავრცელებულია კლიენტებში, რომლებსაც თავიანთი ნდობის სია მოაქვთ.
შემდეგ გამოსცადეთ რაღაც შეუსაბამო: შიდა საიტი, ფოსტის კლიენტი, პაკეტების სარკე. ეს იაფად ზომავს ზემოქმედების რადიუსს, სანამ ცვლილების ფანჯარა დაიხურება.
- როლი იდენტიფიცირებულია როგორც იდენტობა, შუალედური სერტიფიკატი ან ნდობის ღუზა
- სერიული ნომერი და თითის ანაბეჭდი ჩაწერილია, ხოლო ასლი ექსპორტირებულია დამტკიცებულ ადგილზე
- წაშლა შესრულდა ყველაზე ვიწრო არეალში, რომელიც სიმპტომს ხსნის
- სერვერის მხარის ავტორიზაცია გაუქმდა, როცა ადამიანი ან მოწყობილობა წავიდა
- ხელის ჩამორთმევა აიხსნა და ერთი შეუსაბამო აპლიკაცია ხელახლა გამოიცადა
- MDM დატვირთვა ან მართვის პროფილი განახლდა, თორემ სერტიფიკატი დაბრუნდება
თუ სერტიფიკატი გადატვირთვის შემდეგ დაბრუნდა, სამუშაო არ დასრულებულა: რაღაც მას ფლობს და ხელახლა ამონტაჟებს. იპოვეთ ის მფლობელი ხელახლა წაშლამდე, რადგან მესამე წაშლა ზუსტად პირველი ორის მსგავსად მოიქცევა.