რა არის HPKP?

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

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

HTTPS სერთიფიკატის ინფრასტრუქტურა

სერტიფიკატის ინფრასტრუქტურა, რომელზედაც აგებულია HTTPS, ეფუძნება ნდობის ქსელს. რამდენიმე კომპანია მოქმედებს როგორც სერტიფიკატის ავტორიტეტი (CA), რომელიც აქვეყნებს ერთ ან მეტ ძირეულ სერტიფიკატს. root სერთიფიკატების ნაკრები შედის ყველა მოწყობილობაში სანდო მაღაზიაში. როდესაც ვებსაიტი ითხოვს საკუთარ HTTPS სერთიფიკატს CA-სგან, სერტიფიკატს ხელს აწერს root სერტიფიკატი. როდესაც თქვენი კომპიუტერი ხედავს HTTPS სერთიფიკატს, ის ამოწმებს ხელმოწერას. თუ სერტიფიკატს ხელს აწერს root სერტიფიკატი, რომელსაც მას ენდობა, მაშინ თქვენი კომპიუტერი ასევე ენდობა HTTPS სერთიფიკატს.

რჩევა: CA-ს ასევე შეიძლება ჰქონდეს ძირეული სერტიფიკატის მიერ ხელმოწერილი შუალედური სერთიფიკატები. ეს შუალედური სერთიფიკატები ასევე შეიძლება გამოყენებულ იქნას ვებსაიტებისთვის HTTPS სერთიფიკატების გასაფორმებლად.

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

რა გააკეთა HPKP-მ?

მთელი სერტიფიკატის სისტემა ეყრდნობა სერტიფიკატის ორგანოების სანდოობას. თუმცა, თავდაპირველად, არ არსებობდა დაცვა იმ CA-ს წინააღმდეგ, რომ კომპრომეტირებული ყოფილიყო ჰაკერების მიერ ან თაღლითობისა და სერთიფიკატების არასწორად გაცემის არჩევისგან.

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

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

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

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

HPKP-ის სტრუქტურა

HPKP სათაურს აქვს სამი სავალდებულო ნაწილი და ორი არჩევითი. სათაურს უნდა ერქვას „Public-Key-Pins“, შემდეგ ორ ან მეტ სერტიფიკატს უნდა ჰქონდეს base64 კოდირებული SHA256 ჰეში ჩამაგრებული ფორმატში „pin-sha256=“”’. საბოლოო სავალდებულო ნაწილი არის „მაქსიმალური ასაკი“, რომელიც არის წამებში დათვლა, თუ რამდენ ხანს უნდა გამოიყენოს ბრაუზერმა შეზღუდვები.

რჩევა: SHA256 არის ჰეშირების ალგორითმი, რომელსაც იყენებს HPKP. Base64 არის სიმბოლოების ნაკრები 64 სიმბოლოთი: 0-9, a-z, A-Z და სპეციალური სიმბოლოები "+" და "/". საჭიროების შემთხვევაში, "=" გამოიყენება ბოლო ორი სიმბოლოს შესასრულებლად.

არჩევითი პარამეტრებია „includeSubDomains“ და „report-uri“. “includeSubDomains ავალებს ბრაუზერს გამოიყენოს HPKP დაცვა მიმდინარე ვებსაიტის ნებისმიერ ქვედომენზე “მაქსიმალური ასაკის” ტაიმერის ხანგრძლივობის განმავლობაში. "report-uri" არის ფუნქცია, რომელიც საშუალებას აძლევს ვებსაიტს მიუთითოს, სადაც შეიძლება მოხდეს შეცდომის შესახებ ანგარიშების გაგზავნა და შექმნილია პრობლემების იდენტიფიცირებასა და გადაჭრაში.

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

პრობლემები HPKP-სთან

HPKP მოძველდა ორი ძირითადი მიზეზის გამო. არსებობდა ორი გზა, რომლითაც სათაურს შეეძლო სერიოზული პრობლემები შეექმნა ვებსაიტისთვის მისი გამოყენებით, მათ ეწოდა HPKP Suicide და Ransom PKP.

HPKP Suicide არის საკითხი, როდესაც ვებსაიტის ლეგიტიმური მფლობელები კარგავენ წვდომას ყველა ჩამაგრებულ გასაღებზე. ეს შეიძლება მოხდეს შემთხვევით წაშლის, ჰაკერების, ვირუსების, მონაცემთა კორუფციის ან მრავალი სხვა მიზეზის გამო. HPKP-ის სწორად დანერგვის სირთულის გამო და განსაკუთრებით მისი განახლებისას სერტიფიკატის როტაციის დროს, კონფიგურაციის შეცდომის დაშვება შედარებით ადვილია. თუმცა, HPKP-ით, თუ რამე არასწორად მიგაჩნიათ, თქვენი ვებსაიტის ყველა ბოლო ვიზიტორს არ შეეძლება თქვენს ვებსაიტზე წვდომა „მაქსიმალური ასაკის“ ტაიმერის ხანგრძლივობით. ვებგვერდმა smashingmagazine.com გამოაქვეყნა ა სტატია დეტალურად აღწერს მის გამოცდილებას ზუსტად ამ საკითხთან დაკავშირებით, რამაც არსებითად აიღო საიტი ხაზგარეშე ვიზიტორთა უმეტესობისთვის ოთხი დღით ადრე, სანამ შესწორება განხორციელდებოდა.

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

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

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