8192-ბიტიანი გასაღებები ხელის ჩამორთმევას აჩერებს; 1024-ბიტიანი DH უარყოფილია
ზომის ორი ხარვეზი საპირისპირო შესწორებებით: ზედმეტად დიდი გასაღები ხელის ჩამორთმევის დროს წვავს, სანამ მეორე მხარე ვადას გადააჭარბებს, ხოლო პატარა DH ჯგუფი დაწყებამდე უარყოფილია.
ერთ სერვერზე კლიენტები ცოტა ხნით იჭედებიან და შემდეგ ხელახლა უკავშირდებიან, ხოლო მეორე კავშირებს დაუყოვნებლივ უარყოფს გასაღების ზომის შესახებ შეტყობინებით. ისინი სხვადასხვა ხარვეზად გვეჩვენება და ერთი და იგივე ხარვეზია საპირისპირო მიმართულებებით. ხელის ჩამორთმევის კრიპტოგრაფიას ღირებულება აქვს, რომელიც პარამეტრების ზომასთან ერთად იზრდება და აქვს იატაკიც, რომლის ქვემოთ თანამედროვე ბიბლიოთეკები არ ჩადიან. მასალის ზომის განსაზღვრა სიაა, და პირველი პუნქტი იმის გადაწყვეტაა, რომელი ხარვეზი გაქვთ სინამდვილეში.
წაიკითხეთ წარუმატებლობა სანამ რამეს ხელახლა შექმნით
დრო ყველაზე მეტს გეუბნებათ. ხელის ჩამორთმევა, რომელიც რამდენიმე წამს იკავებს და შემდეგ კვდება, ჩვეულებრივ ნიშნავს, რომ გამოთვლამ მეორე მხარის მოთმინებას გადააჭარბა, რაც მიუთითებს აპარატურისთვის ან ვადისთვის ზედმეტად დიდ პარამეტრებზე. დაუყოვნებლივი უარი, რომელიც გასაღების ან ჯგუფის ზომას ასახელებს, საპირისპირო მიმართულებას მიუთითებს, მასალაზე, რომელსაც ბიბლიოთეკა საერთოდ არ მიიღებს.
ამ ორს საპირისპირო შესწორება სჭირდება და სწორედ აქ ცდებიან ცდების უმეტესობა. 8192-ბიტიანი პარამეტრების ხელახლა შექმნა კლიენტზე, რომელმაც უკვე უარყო პატარა ჯგუფი, ნელი შემთხვევას აუარესებს და სწრაფისთვის არაფერს აკეთებს. ჩაწერეთ, რომელი სიმპტომი დაინახეთ, სანამ რომელიმე ფაილს შეეხებით.
შემდეგ შეამოწმეთ, რას ითხოვენ მეორე მხარისგან. დიდი სასრული ველის ჯგუფზე კონფიგურირებული სერვერი ყოველ კლიენტს აიძულებს, ყოველ ხელახალ მოლაპარაკებაზე იგივე პროცესორის დრო დახარჯოს და არა მხოლოდ დაკავშირებისას. თუ პრობლემა რეგულარულ ინტერვალში ჩნდება და არა გაშვებისას, ეს ინტერვალი ძლიერი მინიშნებაა, რომელი პარამეტრია ძვირი. ხელახალი მოლაპარაკება მთელ გამოთვლას იმეორებს, ამიტომ ყოველ საათში დაბრუნებული შეჩერება ჩვეულებრივ იგივე ღირებულებაა, ხელახლა გადახდილი.
ნელი შემთხვევა: მასალა, რომლის საშუალებაც აპარატურას არ აქვს
Diffie-Hellman-ისა და RSA-ის სამუშაო გასაღების ზომასთან სწრაფად იზრდება და ეს ყველაფერი ხდება მანამ, სანამ გვირაბში რაიმე ტრაფიკი გაივლის. პატარა როუტერზე ან დაბალი სიმძლავრის კლიენტზე საკმარისად დიდი ჯგუფი შეიძლება გაცვლა მეორე მხარის ვადის მიღმა გაიყვანოს, რის შედეგადაც კავშირი ხელახლა ცდის ან უბრალოდ ჩაკიდებულად გამოიყურება ყოველგვარი შეცდომის გარეშე.
შესწორება იმ ზომამდე ჩამოსვლაა, რომელსაც ყოველი მხარე მხარს უჭერს და ყოველ მოწყობილობას შეუძლია კომფორტულად გამოთვლა. 2048-ბიტიანი RSA გასაღები და 2048-ბიტიანი ჯგუფი ფართოდ თავსებად საბაზისო ხაზად რჩება; უფრო დიდი მხოლოდ მაშინ ეხმარება, როცა ყველა მხარე თანახმაა და პროცესორს შეუძლია ყოველ ხელახალ მოლაპარაკებაზე გადაიხადოს. ამ საბაზისო ხაზის ზემოთ ყველაფერი განზრახ გაცვლაა და არა განახლება.
ზომა ქულა არ არის და შედარების ცხრილში ყველაზე დიდი რიცხვი ავტომატურად სწორი არჩევანი არ არის. აირჩიეთ უმცირესი მნიშვნელობა, რომელსაც თქვენი პოლიტიკა იძლევა და ყველა მხარე იღებს, შემდეგ გაზომეთ ხელის ჩამორთმევა და ნუ ჩათვლით, რომ გაუმჯობესდა. უფრო პატარა ჯგუფი, რომელიც მაინც ვადას სცდება, გეუბნებათ, რომ ზომა არასოდეს ყოფილა მთელი ამბავი.
სწრაფი შემთხვევა: ჯგუფი, რომელსაც ბიბლიოთეკა უარყოფს
თანამედროვე OpenSSL-ის ნაგებობები უმცირეს სასრული ველის ჯგუფებს პირდაპირ უარყოფენ, ხოლო აწეული უსაფრთხოების დონე იატაკს კიდევ უფრო მაღლა სწევს. როუტერის firmware, რომელიც ათწლეულების პარამეტრების ფაილს ატარებს, ჩვეულებრივი წყაროა, და სიმპტომია კავშირი, რომელიც მაშინვე მარცხდება ჯგუფის ან გასაღების ზომის დამასახელებელი შეტყობინებით. ამ მარცხში არაფერია შეწყვეტილი და სწორედ ეს ხდის მას ადვილად ამოსაცნობს.
შეცვალეთ ფაილი და ნუ შეასწორებთ კონფიგურაციას შემოწმების გვერდის ასავლელად. შექმენით მიმდინარე ჯგუფი, დაადასტურეთ ის, შემდეგ დააყენეთ იქ, სადაც დემონი რეალურად კითხულობს. შეინახეთ ძველი ფაილი, სანამ კლიენტი წარმატებით დაუკავშირდება ახალს:
openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pemშემოწმების ბრძანება ადასტურებს ფაილს და წარმატებისას არაფერ შეურაგებელს ბეჭდავს; სია ადასტურებს, რომ შეცვალეთ ის ფაილი, რომელსაც სერვისი ტვირთავს და არა მის გვერდით მდებარე მოძველებული ასლი. მიუთითეთ კონფიგურაცია ამ გზაზე, გადატვირთეთ დემონი და დაადასტურეთ, რომ ადრე წარუმატებელი კლიენტი ახლა ასრულებს ხელის ჩამორთმევას.
თუ სერვერი ასევე აყენებს უსაფრთხოების დონეს ან სერტიფიკატის პროფილს, წაიკითხეთ ისინი მანამ, სანამ დაასკვნით, რომ ჯგუფი არასწორი იყო. უფრო მკაცრ კლასს მომთხოვნი პროფილი შეიძლება უარყოს მასალა, რომელსაც ნაგულისხმევი მიიღებდა, და ამ პარამეტრის მოცილება უფრო ვიწრო ცვლილებაა, ვიდრე შემოწმების გლობალურად გამორთვა.
შეარჩიეთ ზომა მეორე მხარისა და აპარატურისთვის
გაარკვიეთ, რას გაუძლებს შორეული მხარე, სანამ რაიმე ეგზოტიკურს შექმნით. 2048-ბიტიანი ჯგუფისთვის ძალიან ძველი მოწყობილობა შესაცვლელი მოწყობილობაა, რადგან სერვერის უფრო სუსტ ჯგუფზე მიმართვა მხოლოდ თავსებადობის ჩივილს აქცევს შეფერხებად. გრძელვადიანი შესწორებები უფრო ახალი პროგრამული უზრუნველყოფისკენ მოძრაობს და არა ძველი პარამეტრებისკენ. ამ სფეროში ყოველ დროებით გამონაკლისს მუდმივ კონფიგურაციად ქცევის ჩვევა აქვს.
სადაც სერვერის პროცესორი საზღვარია, შეცვალეთ ალგორითმი და ნუ ჩახვალთ პოლიტიკის ქვემოთ. ელიპტური მრუდის გასაღების გაცვლა, როგორიცაა X25519, მკვეთრად უფრო იაფია, ვიდრე დიდი სასრული ველის ჯგუფი და ფართოდაა მხარდაჭერილი, რაც მას შესრულების ჩივილზე უკეთეს პასუხად აქცევს, ვიდრე პატარა RSA მოდული.
რაც არ უნდა აირჩიოთ, გამოსცადეთ ერთი რეალური კავშირით და დააკვირდით, რამდენ ხანს გრძელდება ხელის ჩამორთმევა და არა მხოლოდ, დააკავშირებს თუ არა საბოლოოდ. თორმეტ წამში წარმატებულ კავშირს იგივე ძირეული მიზეზი აქვს, რაც თხუთმეტში წარუმატებელს.
ჩაწერეთ არჩევანი, რომ ხელახალი აწყობა ვერ გააუქმოს ის
შეინახეთ პარამეტრების ფაილი კონფიგურაციის მართვის ქვეშ და გვერდით ჩაწერეთ ზომა, მიზეზი და თარიღი. ხელახლა აშენებული სერვერი, რომელიც ჩუმად ქმნის საკუთარ ნაგულისხმევებს, ის გზაა, რომლითაც იგივე ხარვეზი ექვს თვეში ბრუნდება და ვერავინ ხსნის პირველად გადაწყვეტილებას.
ჩაწერეთ იგივე ინფორმაცია საბოლოო წერტილისა და პროფილის გვერდით, რომ მიმოხილვას ფაილის ზომიდან არ მოუწიოს მისი აღდგენა. როცა შემდეგი კავშირი შეჩერდება, ეს შენიშვნა ხუთწუთიან შემოწმებასა და ახალ გამოძიებას შორის სხვაობაა. ის ასევე ხელს უშლის შემდეგ ინჟინერს, ნელი შემთხვევა სწრაფისთვის განკუთვნილი შესწორებით გადაჭრას.