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

აირჩიეთ კოპირებასა და გამოყენებას შორის

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

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

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

შეუსაბამეთ საცავი გვირაბის დემონს

დემონი ამას უფრო მეტად ზღუდავს, ვიდრე უსაფრთხოების პოლიტიკა. WireGuard იღებს base64 კერძო გასაღებს ფაილიდან ან wg set-ის შეყვანიდან და სერტიფიკატების საცავამდე გზა არ აქვს, ამიტომ TPM-ით მხარდაჭერილი ინტერფეისის გასაღები განსახილველი არ არის. OpenSSL 3-ის წინააღმდეგ აწყობილ OpenVPN-ს შეუძლია გასაღების ჩატვირთვა პროვაიდერის URI-ით, ხოლო strongSwan PKCS#11 მხარდაჭერის გვერდით TPM დანამატს აწვდის, მაგრამ ორივე დამოკიდებულია იმაზე, როგორ იქნა თქვენი პაკეტი კომპილირებული.

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

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

ინვენტარიზაცია გაუკეთეთ გასაღებს გადატანამდე

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

openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256

ბოლო ორი შეჯამება იდენტური უნდა იყოს. თუ არ არის, დემონი ამთავრებს კონფიგურაციას და შემდეგ ყოველ ცდაზე მარცხდება სერტიფიკატის ან ხელმოწერის შეცდომით, რომელიც არსად ახლოს არ მიუთითებს ნამდვილ მიზეზზე. WireGuard-ის ეკვივალენტი უფრო მოკლეა, რადგან საჯარო გასაღები პირდაპირ კერძოსგან მიიღება: wg pubkey < /etc/wireguard/wg0.key უნდა დაბეჭდოს ის პარტნიორის გასაღები, რომელიც თქვენს სერვერს უკვე შენახული აქვს.

უფლებები იმავე ინვენტარს ეკუთვნის. stat -c '%a %U:%G' /etc/wireguard/wg0.key უნდა დააბრუნოს 600 root:root და ყველაფერი, რაც ჯგუფისთვის ან მსოფლიოსთვის იკითხება, ნიშნავს, რომ გასაღები უკვე ხელმისაწვდომი იყო იმ პროცესებისთვის, რომლებზეც არასდროს გიფიქრიათ.

შეამოწმეთ საცავი და გამოყენების გზა

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

certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts

Windows-ზე პირველი ბრძანება პირად საცავს ჩამოთვლის და ყოველი ჩანაწერის გვერდით გასაღების პროვაიდერს ბეჭდავს, და იქ ჩნდება სერტიფიკატი, რომელიც ტექნიკით დაცულად გამოიყურება, მაგრამ პროგრამულ პროვაიდერში ზის. მეორე ჩამოთვლის გასაღებებს, რომლებსაც პლატფორმის კრიპტოპროვაიდერი ფლობს, ამიტომ VPN იდენტობა, რომელიც იქ აკლია სერტიფიკატის არსებობისას, ნიშნავს, რომ კერძო ნახევარი სხვაგან ცხოვრობს. Linux-ის კარიბჭეზე ipsec listcerts იუწყება, რა ჩატვირთა strongSwan-მა, TPM დანამატიდან მოსული გასაღებების ჩათვლით. შეადარეთ ანაბეჭდები ან საჯარო გასაღების ჰეშები ინვენტარს, ნაცვლად ჩანაწერების რაოდენობის ნდობისა.

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

ჩაწერეთ განახლება და დაბრუნება

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

შეამოწმეთ ვადის გასვლა, სანამ ის შეფერხებად იქცევა: openssl x509 -in vpn.crt -noout -checkend 2592000 მთავრდება არანულოვანი კოდით, როცა სერტიფიკატი ოცდაათ დღეში იწურება, ამიტომ ის პირდაპირ მონიტორინგის შემოწმებაში ჯდება. ამ ხაზის ყოველკვირეული გაშვება იჭერს იმ განახლებას, რომელიც არავის დაუგეგმავს.

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

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

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