რას იცავს სინამდვილეში VPN-ის პირადი გასაღების პაროლფრაზა
ის ჩაკეტავს ფაილს დისკზე და არა მომუშავე გვირაბს ან თქვენი ანგარიშის შესვლას. შეიტყვეთ, რას ფარავს მოთხოვნა, რას არა და რა უნდა გააკეთოთ გაჟონვისას.
VPN-ის კლიენტის გაშვებისას გამოსული მოთხოვნა ადვილად არასწორად იკითხება. ეს არ არის VPN ანგარიშის პაროლი, არც გვირაბის პაროლი, და მისი შეყვანა არ ამტკიცებს, რომ კავშირი უსაფრთხოა. ის ხსნის პირადი გასაღების ერთ შენახულ წარმოდგენას, რათა კლიენტმა შეძლოს გასაღების მასალის წაკითხვა და ავთენტიფიკაციისთვის გამოყენება. ყველაფერი, რაც ამის შემდეგ ხდება, სხვა საკითხია.
პრაქტიკაში პასუხი კიდეებზე ფუჭდება: ადამიანები ფიქრობენ, რომ პაროლფრაზა იცავს მომუშავე გვირაბს, ან რომ მისი შეცვლა აუქმებს უკვე გაჟონილი გასაღების ასლს. ორივე ვარაუდი მარცხდება და მარცხდება ისე, რომ რწმუნებულება ღიად რჩება, მაშინ როცა ოპერატორი ფიქრობს, რომ საკითხი მოგვარებულია.
ერთი დიალოგი, რამდენიმე სხვადასხვა საიდუმლო
პირადი გასაღების პაროლფრაზა ხსნის ფაილს. ანგარიშის პაროლი გაავტენტიფიკებთ სერვისთან. PKCS#12-ის იმპორტის პაროლი ხსნის პაკეტს, რომელიც შეიცავს გასაღებს და მის სერტიფიკატს, და შეიძლება არ იყოს იგივე სტრიქონი, რაც თავად გასაღების პაროლფრაზა. ეს მოთხოვნები შეიძლება თითქმის იდენტურად გამოიყურებოდეს, და იმის გამოცნობა, რომელი საიდუმლო სად მიდის, სწორედ ის გზაა, რომლითაც გასაღებები არასწორ ველში ხვდება.
თავად გვირაბის დაშიფვრა მეოთხე რამ არის. მონაცემთა არხი იყენებს სესიის გასაღებებს, რომლებიც ხელის ჩამორთმევის დროს შეთანხმდება; პირადი გასაღების პაროლფრაზას არავითარი როლი არ აქვს ცალკეული პაკეტების დაცვაში. თუ ვინმეს შეუძლია გასაღების ფაილის წაკითხვა, მას შეუძლია პაროლფრაზის ოფლაინ გამოცნობა, მაგრამ თუ პაკეტების წაკითხვა შეუძლია, პაროლფრაზა უმნიშვნელოა.
რას ფარავს დისკზე დაშიფვრა
დაშიფრული PEM გასაღები ორი ფორმით არსებობს, და სათაური გეუბნებათ, რომელი გაქვთ. თანამედროვე PKCS#8 ფორმა იწყება -----BEGIN ENCRYPTED PRIVATE KEY------ით; ძველი PEM ფორმა, ჯერ კიდევ გავრცელებული ძველ OpenVPN კონფიგურაციებში, იწყება -----BEGIN RSA PRIVATE KEY------ით და ატარებს Proc-Type: 4,ENCRYPTED და DEK-Info ხაზს პირდაპირ მის ქვემოთ. ფაილი ინახავს პირად გასაღებს დაშიფრულს თქვენი პაროლფრაზიდან გამოყვანილი გასაღების ქვეშ, ჩვეულებრივ პაროლზე დაფუძნებული KDF-ის მეშვეობით, მითითებული გამეორებების რაოდენობით ან სამუშაო ფაქტორით. OpenSSL pkey-ის დოკუმენტაცია მოიცავს ფორმატებს და პაროლფრაზის პარამეტრებს, რომლებიც კითხვისას გამოიყენება.
აქედან ორი შედეგი გამომდინარეობს. სუსტი პაროლფრაზა ოფლაინ შეიძლება დაექვემდებაროს შეტევას იმ სიჩქარით, რასაც KDF დაუშვებს, ამიტომ ფაილის ნებართვები და სარეზერვო ასლებზე წვდომა მაინც მნიშვნელოვანია, თუნდაც ფაილი დაშიფრული იყოს. და თავდამსხმელმა, რომელიც მხოლოდ ფაილს იღებს პაროლფრაზის გარეშე, უნდა გამოიცნოს; ვინც ფაილსაც და პაროლფრაზასაც იღებს, გასაღები აქვს, თითქოს ის არასოდეს ყოფილა დაშიფრული.
head -3 vpn.key
openssl pkey -in vpn.key -noout -pubout
openssl pkcs12 -in bundle.p12 -info -noout
head -3 აჩვენებს სათაურს და ძველ ფაილში დაშიფვრის დამამტკიცებელ Proc-Type და DEK-Info ხაზებს; ერთი ხაზი თავისთავად არც ერთი მიმართულებით მტკიცება არ არის. pkey ხაზი ითხოვს პაროლფრაზას და ბეჭდავს მხოლოდ საჯარო ნახევარს, რაც ამტკიცებს, რომ ფაილი და პაროლფრაზა მუშაობს პირადი გასაღების გამოვლენის გარეშე. ამ შემოწმებისთვის არ გამოიყენოთ -text: ის ბეჭდავს პირად კომპონენტებს, privateExponent, prime1, prime2 და დანარჩენს, და ეს გამონატანი არასოდეს არ უნდა ჩაისვას არსად, არც ბილეთში, არც ჩატში, არც ჟურნალში. PKCS#12 ბრძანება ასევე გეუბნებათ, აქვს თუ არა პაკეტს ცალკე MAC ან დაშიფვრის პაროლი, რაც კოლეგასთან გადაცემამდე სასარგებლოა იცოდეთ.
რას წყვეტს დაცვას გასაღების ჩატვირთვის შემდეგ
გახსნა ცალმხრივი მოვლენაა ამ პროცესისთვის. კლიენტი KDF-ს სთხოვს გასაღებს, ხსნის ფაილს და პირად გასაღებს მეხსიერებაში ინახავს იმდენ ხანს, რამდენიც სჭირდება. ამ მომენტიდან პაროლფრაზა ვერაფერს იცავს მომუშავე სესიაში: არც პროცესის მეხსიერებას, არც ბირთვის დამპს, არც კლიენტზე მიმაგრებულ გამართვის სესიას და არც გასაღების გამოყენების დროს აღებულ მანქანის სარეზერვო ასლს.
ეს იგივე საზღვარია, რაც პაროლფრაზიან SSH გასაღების ან პაროლების მენეჯერის გახსნილი საცავის შემთხვევაში. ის ზრდის მოსვენებულ ფაილზე ქურდობის ღირებულებას და არაფერს აკეთებს თქვენი მომხმარებლის სახელით მოქმედი მავნე პროგრამის, კლიენტს ხელმოწერის მომთხოვნი ავტორიზებული აპლიკაციის ან მეხსიერების წაკითხვის უნარის მქონე ადმინისტრატორის წინააღმდეგ. მოექეცით მას როგორც ერთ ფენას, და არა როგორც კონტროლს, რომელიც გასაღების უყურადღებოდ დატოვებას უსაფრთხოს ხდის.
რატომ ბრუნდება მოთხოვნა ისევ და ისევ
კლიენტი, რომელიც ყოველ ხელახლა დაკავშირებაზე ისევ იკითხავს, სულაც არ არის გატეხილი. ზოგი კლიენტი პაროლფრაზას სესიისთვის ქეშავს, ზოგი მას OS-ის გასაღებების ჯაჭვში ინახავს, ზოგის მიმართულებაც შეიძლება დამხმარეზე იყოს მითითებული, ამიტომ მიღებული ქცევა დამოკიდებულია კლიენტსა და მის კონფიგურაციაზე, და არა გასაღების ფაილზე.
თუ განმეორებადი მოთხოვნა ნამდვილი ჩივილია, გასაღებიდან დაშიფვრის მოხსნამდე შეამოწმეთ კლიენტის ქეშირებისა და ავთენტიფიკაციის პარამეტრები. პაროლფრაზის მოხსნა დაცულ ფაილს ღია ტექსტის გასაღებად აქცევს, და ხელახლა დაკავშირება წყნარდება თქვენი ერთადერთი მოსვენების კონტროლის ხარჯზე. უკეთესი პასუხი ჩვეულებრივ მხარდაჭერილი რწმუნებულების საცავია იმავე ფაილის ნებართვებით, რომლებსაც ყოველ შემთხვევაში გამოიყენებდით.
დაკარგვა და გამოვლენა ერთი და იგივე შეკეთება არ არის
დაკარგული პაროლფრაზა სერტიფიკატიდან ვერ აღდგება. სერტიფიკატი საჯარო მასალაა, რომელიც სახელს გასაღებთან აკავშირებს; მასში არ არის დაბრუნების გზა პირად გასაღებამდე და არც მინიშნება პაროლფრაზაზე. პრაქტიკული ვარიანტებია გასაღების ავტორიზებული სარეზერვო ასლი ან ოპერატორის ჩვეულებრივი პროცესით გაცემული ახალი იდენტობა. ვინც პაროლფრაზის 'აღდგენას' გვთავაზობს, მის გამოცნობას გვთავაზობს.
გამოვლენა სხვა რეაქციას მოითხოვს. იმავე გასაღების ახალი პაროლფრაზით ხელახლა დაშიფვრა გასაღების მასალას უცვლელს ტოვებს, ამიტომ სხვაგან უკვე გახსნილი ასლი კვლავ მუშაობს. შეკეთება რწმუნებულების გაუქმება ან შეცვლაა: გასცეთ ახალი გასაღები და სერტიფიკატი, გაავრცელეთ ისინი და პენსიაზე გააცილეთ ძველი პარტნიორთან. სანამ ეს მოხდება, ფაილის პაროლის შეცვლა საოჯახო საქმეა და არა შეკავება. ძველი ფაილი სარეზერვო ასლების გარეთ შეინახეთ მხოლოდ მას შემდეგ, რაც ახალი იდენტობის მუშაობა დადასტურდება, და ჩაწერეთ, რომელი სერიული ნომერი ან ანაბეჭდი ჩაანაცვლა ის.