Junior
როგორ მუშაობს HTTPS?
sobes.tech AI
პასუხი AI-სგან
HTTPS (Hypertext Transfer Protocol Secure) — ეს არის პროტოკოლი, რომელიც უზრუნველყოფს უსაფრთხო მონაცემთა გადაცემას მომხმარებლის (მაგალითად, ბრაუზერის) და სერვერის შორის. იგი დაფუძნებულია HTTP-ზე, მაგრამ იყენებს შიფრირებას გადაცემული ინფორმაციის დაცვის მიზნით.
HTTPS-ის მუშაობა ეფუძნება TLS (Transport Layer Security) პროტოკოლს, რომელიც ადრე იყო SSL (Secure Sockets Layer). TLS/SSL უზრუნველყოფს სამი ძირითადი უსაფრთხოების ასპექტს:
- შიფრირება: მონაცემები შორის მომხმარებლის და სერვერის შიფრირებულია, რაც მათ ხდის წაკითხვად გარეშე მესამე მხარისთვის.
- მონაცემთა მთლიანობა: შემოწმებულია, რომ მონაცემები არ შეცვლილა გადაცემის დროს.
- ავტენტიფიკაცია: სერვერი ადასტურებს თავის ნამდვილობას მომხმარებელს.
HTTPS-ის დამყარების პროცესი მოიცავს რამდენიმე ეტაპს, სახელწოდებით "TLS/SSL Handshake":
- Client Hello: მომხმარებელი აგზავნის სერვერს "Client Hello", რომელიც შეიცავს:
- TLS-ის მხარდაჭერილი ვერსია.
- მხარდაჭერილი კოდირების ალგორითმების სია (cipher suites).
- შემთხვევითი ნომერი.
- Server Hello: სერვერი პასუხობს "Server Hello"-ით, სადაც აირჩევს:
- TLS ვერსიას.
- ერთ-ერთ კოდირების ალგორითმს.
- შემთხვევით ნომერს.
- სერვერის სერტიფიკატს.
- Certificate: მომხმარებელი იღებს სერვერის სერტიფიკატს და ამოწმებს მის ნამდვილობას:
- ამოწმებს ციფრულ ხელმოწერას სერტიფიკატზე, გამოიყენებს საჯარო გასაღებს სერტიფიკატის ავტორიზაციის ცენტრის (CA) მიერ.
- ამოწმებს სერტიფიკატის ვადიანობას.
- ამოწმებს, რომ დომენის სახელი შესაბამისია სერტიფიკატში მითითებულთან.
- Client Key Exchange: მომხმარებელი ქმნის pre-master secret-ს, რომელიც შიფრავს სერვერის სერტიფიკატიდან საჯარო გასაღებით და აგზავნის სერვერს.
- Change Cipher Spec (Client): მომხმარებელი აცნობებს სერვერს, რომ მზად არის, დაიწყოს შიფრირებული მონაცემების გაცვლა.
- Finished (Client): მომხმარებელი აგზავნის შიფრირებულ შეტყობინებას, სადაც არის ყველა წინამორბედი Handshake შეტყობინებების ჰეში, რათა შემოწმდეს მთლიანობა.
- Change Cipher Spec (Server): სერვერი დეშიფრირებს pre-master secret-ს, გამოიყენებს თავის კერძო გასაღებს და ქმნის სესიის სიმეტრიულ გასაღებს. შემდეგ აცნობებს მომხმარებელს, რომ მზად არის, დაიწყოს შიფრირებული მონაცემების გაცვლა.
- Finished (Server): სერვერი აგზავნის შიფრირებულ შეტყობინებას, სადაც არის ყველა წინამორბედი Handshake შეტყობინებების ჰეში.
- შიფრირებული მონაცემების გადაცემა: წარმატებით დასრულების შემდეგ, მომხმარებელი და სერვერი იყენებენ შექმნილ სიმეტრიულ გასაღებს ყველა შემდეგი მონაცემის შიფრირებისთვის.
ამ გზით, HTTPS უზრუნველყოფს დაცულ კავშირს, რაც უფრო უსაფრთხო ვებ-სერფინგს უზრუნველყოფს.