SECLEVEL=0 სიმპტომს კურნავს და არა სერტიფიკატს
OpenSSL-ის უსაფრთხოების დონის დაწევა აფართოებს იმას, რასაც ბიბლიოთეკა იღებს. გაარკვიეთ, რომელი შემავალი უარყვეს, სანამ ამ საზღვარს მთელი ჰოსტისთვის შეცვლიდეთ.
OpenVPN-ის კავშირი ვარდება, ვიღაც პოულობს ერთსტრიქონიან შესწორებას, რომელიც ამატებს SECLEVEL=0-ს, და გვირაბი ადის. შეიცვალა არა სერტიფიკატი და არა შიფრების ნაკრები; გადაადგილდა ბიბლიოთეკის დონეზე მიღების ზღვარი, და ყველაფერი, რასაც პროცესი შემდეგ აკეთებს, ახალ საზღვარს მემკვიდრეობით იღებს. ღირს ამის გაგება, სანამ იგივე სტრიქონი გადაკოპირდება გარემოს ყველა პროფილში.
დაადგინეთ, რომელი ბიბლიოთეკა და რომელი პოლიტიკა მოქმედებს
SECLEVEL OpenSSL-ის ცნებაა, ამიტომ პირველი კითხვაა, იყენებს თუ არა თქვენი აგება OpenSSL-ს საერთოდ. OpenVPN შეიძლება დაუკავშირდეს ერთზე მეტ კრიპტოგრაფიულ ბიბლიოთეკას, და ერთ მათგანზე მოქმედი პარამეტრი უაზროა დანარჩენებისთვის. ჰკითხეთ ბინარულ ფაილს, რითია აწყობილი, შემდეგ ჰკითხეთ ბიბლიოთეკას, რომელი ვერსია და კონფიგურაცია ჩატვირთა:
openvpn --version | head -3
openssl version -aყურადღებით წაიკითხეთ ვერსიის გამომავალი, რადგან დისტრიბუტივები ნაგულისხმევ მნიშვნელობებს აპატჩავენ. ზოგი აწვდის სისტემურ კონფიგურაციას, რომელიც მინიმალურ დონეს upstream-ის ნაგულისხმევზე მაღლა სწევს, და ამიტომ ერთი და იგივე პროფილი განსხვავებულად იქცევა ორ მანქანაზე იდენტური OpenVPN პაკეტებით. მოქმედი პოლიტიკა არის ის, რაც მომუშავე პროცესმა ჩატვირთა, და არა ის, რაც upstream-ის სახელმძღვანელოშია.
შემდეგ გაყავით ორი ფენა, რომლებსაც ხალხი ერთმანეთში ურევს. OpenVPN-ს აქვს საკუთარი TLS კონტროლი, მათ შორის სერტიფიკატის პროფილის პარამეტრი და ცხადი შიფრების სიები, და ისინი ბიბლიოთეკის მიერ დაწესებულ ყველაფერზე მაღლა დგანან. ბიბლიოთეკის დონის დაწევა არ ცვლის, რომელ შიფრებს ჩამოთვლის თქვენი OpenVPN კონფიგურაცია, და OpenVPN-ის სიის შევიწროება არ აწევს ბიბლიოთეკის ზღვარს. იმის ცოდნა, რომელმა ფენამ გიუარაყა, სწორედ ის არის, რაც ხელს უშლის შესწორებას ვარაუდად დარჩენას.
გაყავით სამი რამ, რაც შეიძლება უარყოფილი იყოს
პირველი კანდიდატი იდენტობის მასალაა: სერტიფიკატი, რომლის გასაღები ძალიან პატარაა ან რომლის ხელმოწერის ალგორითმს პოლიტიკა აღარ იღებს. მეორე გასაღების გაცვლის პარამეტრია, მაგალითად ჯგუფი, რომელსაც პოლიტიკა ძალიან სუსტად მიიჩნევს. მესამე შიფრების ნაკრებია, რომელსაც პოლიტიკა გამორიცხავს. სამივემ შეიძლება ხელის ჩამორთმევის წარუმატებლობა გამოიწვიოს, და მათ მხოლოდ შეცდომის ტექსტი და მოლაპარაკების ეტაპი განასხვავებს.
ამ სამიდან არცერთი არ არის მონაცემთა არხის შიფრი. OpenVPN თავისი გვირაბის დაშიფვრაზე ცალკე მოლაპარაკებას აწარმოებს TLS ხელის ჩამორთმევისგან, ამიტომ უსაფრთხოების დონის ცვლილების შემდეგ წარმატებული კავშირი არაფერს ამბობს იმაზე, რომელი შიფრი იცავს თქვენს მონაცემებს. თუ კითხვა, რომელსაც რეალურად სვამთ, მონაცემთა კონფიდენციალურობას ეხება, სრულიად არასწორ ღილაკს უყურებთ.
დონის დაწევა სამივე შემავალის მიღებას ერთდროულად აფართოებს. სწორედ ეს ნაწილი გამორჩებათ ხალხს: შესწორება, რომელიც ძველ სერტიფიკატს უშვებს, ასევე უშვებს სუსტ ჯგუფს და ნაკრებს, რომლის დაშვებასაც ალბათ არ აპირებდით. ერთმა შეცდომამ გამოიწვია ცვლილება, და ცვლილება შეცდომაზე ფართოა. ეს ასიმეტრიაა მიზეზი, რატომაც შეზღუდული გამონაკლისი სჯობს მთელი გარემოს ნაგულისხმევს.
შეცვალეთ შემავალი და არა ზღვარი
შეინახეთ ზუსტი შეცდომა კონფიგურაციაზე ხელის დაჭერამდე, მათ შორის ეტაპი, რომელმაც ის შეატყობინა, და ობიექტი, რომელიც მან დაასახელა. სერტიფიკატის პრობლემა იხსნება მისი ჩანაცვლებით იმით, რასაც მიმდინარე პოლიტიკა იღებს, რაც ჩვეულებრივ ნიშნავს მის ხელახლა გაცემას ორგანოში და არა იმავე ფაილის ხელახლა დაყენებას.
თუ უარყოფილი შემავალი ეკუთვნის პარტნიორს, რომელსაც თქვენ არ აკონტროლებთ, საუბარი მის მფლობელთანაა მხარდაჭერილ შემცვლელ მასალაზე. საკუთარი ზღვრის დაწევა იმ სისტემის გულისთვის, რომელსაც არავინ ინახავს, ხარჯს მათგან ყველაზე გადააქვს, ვინც მათ შემდეგ დაუკავშირდება.
სადაც სერვერი პოლიტიკას ახორციელებს, შეამოწმეთ, ხომ არ არის OpenVPN-ის დონის პარამეტრი ნამდვილი მიზეზი, სანამ ბიბლიოთეკას დაადანაშაულებთ. სერტიფიკატის პროფილი, რომელიც მოითხოვს უფრო მკაცრ კლასს, ვიდრე განლაგებულ სერტიფიკატს შეუძლია დააკმაყოფილოს, ჩავარდება უსაფრთხოების დონის მიუხედავად, და ამ პროფილის მოცილება უფრო ვიწრო ცვლილებაა, ვიდრე ბიბლიოთეკის შემოწმებების გამორთვა.
თუ უნდა დაწიოთ, შეზღუდეთ და ჩაიწერეთ
ზოგჯერ დამტკიცებული თავსებადობის გამონაკლისი სწორი პასუხია, განსაკუთრებით თარიღიანი გაუქმების გეგმის მქონე ძველი პარტნიორისთვის. შეზღუდეთ ის სერვისით, რომელსაც სჭირდება, და არა მთელი ჰოსტით: სერვისის კონფიგურაციის ფაილს ან სპეციალურ OpenSSL კონფიგურაციას უფრო მცირე ზემოქმედების რადიუსი აქვს, ვიდრე გლობალურ პროფილში ექსპორტს.
გამონაკლისთან ერთად ოთხი რამ ჩაწერეთ: ზუსტი პარამეტრი, ის დამტკიცებული მფლობელი, დაზარალებული კლიენტები და პირობა, რომლითაც ის მოიხსნება. გაუქმების პირობის გარეშე გამონაკლისი მუდმივი შესუსტებაა დართული დროებითი დასაბუთებით.
უკუქცევა უნდა იყოს ერთი ნაბიჯი, რომელიც უკვე გამოსცადეთ. შეინახეთ წინა კონფიგურაცია, გამოიყენეთ ცვლილება, დაადასტურეთ, რომ სერვისი ირთვება, და ზუსტად იცოდეთ, რომელი ფაილი აღადგინოთ, თუ შემდეგი კავშირი მოსალოდნელისგან განსხვავებულად მოიქცევა.
შემდეგ გადაამოწმეთ იდენტობა და დაცვა
წარმატებული კავშირი მხოლოდ იმას ამტკიცებს, რომ გადასინჯულმა პირობებმა დაუშვეს ის. დაადასტურეთ, რომ ჰოსტის სახელისა და პარტნიორის შემოწმება კვლავ თავის საქმეს აკეთებს, რომ გამოყენებული სერტიფიკატი ის არის, რომლის განლაგებასაც აპირებდით, და რომ მოლაპარაკებული მონაცემთა არხი ემთხვევა პოლიტიკას, რომელიც გგონიათ, რომ გაქვთ.
openssl x509 -in /etc/openvpn/client.crt -noout -subject -dates -text | grep -E 'Signature Algorithm|Public-Key'
openvpn --show-tls | head -20OpenSSL-ის უსაფრთხოების დონეების ცნობარი ცხადად ამბობს, რომ ჩარჩო ზღვრებს გასაღებებზე, ხელმოწერებზე, ჯგუფებსა და ნაკრებებზე ერთად აწესებს, და რომ ნულოვანი დონე ნებას რთავს ყველაფერს, რასაც უკუგამოძახება ამოწმებს. ეს არის თქვენი ცვლილების ფარგლები, და ეს არის ის წინადადება, რომელიც უნდა ციტირდეს, როცა ვიღაც კითხულობს, ვიწრო იყო თუ არა შესწორება.
აუდიტს გადარჩენილი გადაცემა ამბობს, რომელმა პოლიტიკამ რომელი შემავალი უარყო, რა შეიცვალა და რა რჩება მიღებულად შედეგად. „ის მუშაობს SECLEVEL=0-ით“ დაკვირვებაა ერთ კავშირზე და არა განლაგების უსაფრთხოების შეფასება.