VPN სერტიფიკატების ინვენტარიზაცია: რა შეიძლება დაამტკიცოს CA-ის რეესტრმა
სერვერზე არსებული საქაღალდე, CA-ის რეესტრი, გაუქმების სია და სესიათა ცხრილი სხვადასხვა კითხვას პასუხობს. ინვენტარიზაციისას ისინი ცალ-ცალკე შეინახეთ.
თქვენი შესასვლელი იღებს კლიენტის სერტიფიკატს, რომელიც არასდროს უნახავს, რადგან ის, რითაც იგი კონფიგურირებულია, სანდო გამომცემელია და სერტიფიკატი ხელის ჩამორთმევის დროს მოდის. ასე უნდა იმუშაოს პროტოკოლმა და სწორედ ამიტომ სერვერზე საქაღალდის სია ცუდი ინვენტარია. გამომცემელმა იცის, რა შექმნა, სერვერმა იცის, რა დაუკავშირდა, ხოლო გაუქმების მდგომარეობამ იცის, რა გაიწვია. ინვენტარი, რომელიც ამ სამ ჩანაწერს ურევს, საბოლოოდ ამტკიცებს იმას, რაც არცერთ მათგანს უთქვამს.
შესასვლელი ენდობა გამომცემელს და არა ფაილების სიას
ვალიდაცია წარმოდგენილ სერტიფიკატს სანდოების ანკირთან ადარებს, ამიტომ იმავე გამომცემლის მიერ გუშინ შექმნილი იდენტობა უკავშირდება მას, თუმცა არასდროს არსებობდა სერვერის დისკზე. ამისთვის არაფრის კოპირება არ სჭირდება და არავის უნდა დაამტკიცოს ეს ხელით. ამრიგად, სერვერის საკუთარი ჩანაწერები აღწერს მოსვლებს და არა იმ იდენტობათა ერთობლიობას, რომლებიც შეიძლებოდა მოსულიყო.
საპირისპირო ნაპრალიც ისეთივე არასასიამოვნოა. საქაღალდეში შეიძლება იყოს ვადაგასული სერტიფიკატები, გაუქმებულები და იდენტობები, რომლებიც გაცემულია იმ მოწყობილობებისთვის, რომლებიც არასდროს განლაგებულა. ფაილების დათვლა პასუხობს, რამდენი ფაილია, რაც კითხვაა, რომელიც არავის დაუსვამს. ამის ნაცვლად დაიწყეთ მნიშვნელობის მატარებელი ჩანაწერებიდან.
ოთხი კითხვა, ოთხი განსხვავებული ჩანაწერი
ჩანაწერის თითოეული ტიპი ერთ კითხვას კარგად პასუხობს, დანარჩენებს კი ცუდად, ამიტომ მათი შემკრები ანგარიში სრულყოფილად გამოიყურება, თუმცა გარკვეული გზით მცდარია. ქვემოთ მოცემული ცხრილი მათ ალაგებს იმ კითხვის მიხედვით, რომელსაც წყვეტენ და არა იმ სისტემის მიხედვით, რომელიც მათ აწარმოებს.
| Question you are answering | Where the answer lives | How quickly it changes | What it will never show |
|---|---|---|---|
| Was this identity ever created? | The issuer's issuance database | Only when something is issued | Whether the device still exists |
| Is a copy sitting on this host? | The paths you actually inspected | Whenever anyone copies files | Certificates that were never copied here |
| Has the issuer withdrawn it? | Published revocation state | When the issuer next publishes | Withdrawals that are not published yet |
| Is it connected right now? | The live session table | Continuously | Anything about past or future sessions |
საჯარო სერტიფიკატების არქივი საიდუმლო არ არის, რადგან არ შეიცავს კერძო გასაღებებს, მაგრამ გასაზიარებელიც არ არის. სუბიექტები და მოწყობილობათა სახელები ოპერაციულ დეტალებს ამხელს და ანგარიში უნდა დარჩეს იმ აუდიტორიასთან, რომელსაც ის სჭირდება. კერძო გასაღებები მთლიანად ინვენტარის გარეთ რჩება, რადგან ინვენტარს სჭირდება მეტამონაცემები და არა რწმუნებები.
გამომცემელი და სერიული ნომერი ერთადერთი მდგრადი გასაღებია
სუბიექტები გადამუშავდება და ფაილების სახელები ხელახლა გამოიყენება, ამიტომ სახელმა, რომელიც შარშან ერთ მოწყობილობას აღნიშნავდა, ახლა შეიძლება სხვა აღნიშნოს. არცერთი მათგანი გასაღები არ არის და რომელიმეზე დაფუძნებული ანგარიში საბოლოოდ ორ იდენტობას ერთ სტრიქონში შეაერთებს.
გამომცემლისა და სერიული ნომრის წყვილი სერტიფიკატს ცალსახად ამოიცნობს და ორივე ველი თავად სერტიფიკატიდან მოდის. ჩაწერეთ ისინი სუბიექტთან, მოქმედების თარიღებთან, იმ წყაროსთან, საიდანაც ასლი მოვიდა, და პასუხისმგებელ პირთან ან მოწყობილობასთან ერთად. დაამატეთ გაუქმებისა და განლაგების მდგომარეობა ცალკე ველებად, საკუთარი დაკვირვების დროებით, რადგან მოქმედების ფანჯარაში მყოფი სერტიფიკატი ავტომატურად არ არის უფლებამოსილი. ეს ორი ფაქტი სხვადასხვა სისტემაში ცხოვრობს და მათი შერწყმა მალავს იმ შემთხვევას, როცა იდენტობა გაიწვიეს, სანამ მისი ფაილი ჯერ კიდევ აქტუალურად გამოიყურება.
წაიკითხეთ ერთი სერტიფიკატი ერთდროულად
საქაღალდეზე გავრცელებული ველური ბარათი სერიული ინტერფეისი არ არის და მალავს, რომელმა ფაილმა რომელი გამონატანი მოგვცა. წაიკითხეთ მეტამონაცემები თითოეული სერტიფიკატისთვის და გაუქმების მხარე წაიკითხეთ მისივე არტეფაქტიდან. OpenSSL x509-ის ცნობარი ჩამოთვლის იმ ველებს, რომლებსაც ეს პარამეტრები ბეჭდავს.
openssl x509 -in <cert>.pem -noout -issuer -serial -subject -dates -fingerprint -sha256
openssl crl -in <issuer>.crl -noout -text | head -n 40
მართული Easy-RSA PKI-ისთვის ჰკითხეთ გაცემის მონაცემთა ბაზას იმ სამუშაო ნაკადის მეშვეობით, რომელსაც ინსტრუმენტი მხარს უჭერს საქაღალდის განლაგების ვარაუდის ნაცვლად, და ორიგინალები მხოლოდ-წაკითხვად შეინახეთ, სანამ ინვენტარი იწყობა. რეესტრის ფორმატი საკმარისად რეგულარულია, რომ მოქმედი ჩანაწერები დათვალოთ და გაწვეულები ჩამოთვალოთ მონაცემთა ბაზის ხელით გაუხსნელად.
grep -c '^V' pki/index.txt
grep '^R' pki/index.txt | cut -f4,5
ინვენტარი, რომელიც შემდეგ გაცემას გადაუვლის
საქაღალდის ერთჯერადი ამონაწერი ძველდება იმ მომენტში, როცა შემდეგი სერტიფიკატი გაიცემა, ამიტომ ანგარიში ააგეთ გაცემის სამუშაო ნაკადიდან და ნება მიეცით, რომ ის ჩვეულებრივი ფუნქციონირების ნაწილად განახლდეს. ეს ანგარიშს გამეორებადსაც ხდის, რაც მნიშვნელოვანია, როცა ორი ადამიანი არ თანხმდება, რა გაიცა.
გამოიყენეთ შედეგი განახლებისა და ექსპლუატაციიდან გამოყვანის გადაწყვეტილებებისთვის და არა როგორც ცხრილის ვარჯიში. ლოკალური ასლის წაშლა არ აუქმებს უკვე არსებულ დისტანციურ ასლებს. გაიწვიეთ იდენტობა კონფიგურირებული გაუქმებისა და ავტორიზაციის სამუშაო ნაკადით, შემდეგ ჩაწერეთ გაწვევა მისი თარიღით. იდენტობა, რომელიც სერვერიდან გაქრა, მაგრამ გამომცემელი კვლავ ენდობა მას, ექსპლუატაციიდან არ არის გამოყვანილი და სწორედ ეს განსხვავება ჰყოფს ზუსტ ინვენტარს მხოლოდ დამამშვიდებლისგან.