Sobes.tech
Middle

როგორ ხორციელდება შეტყობინებების შიფრაცია ბრაუზერისა და სერვერის შორის?

sobes.tech AI

პასუხი AI-სგან

ბრაუზერისა და სერვერის შორის დაშიფვრა ხორციელდება HTTPS პროტოკოლის გამოყენებით, რომელიც წარმოადგენს HTTP-ის ზედა საფარს SSL/TLS (Secure Sockets Layer / Transport Layer Security) პროტოკოლების გამოყენებით.

დაკავშირების დაცული პროცესის (Handshake) პროცესი:

  1. Client Hello: ბრაუზერი აგზავნის სერვერს შეტყობინებას, რომელიც შეიცავს მხარდაჭერილ SSL/TLS ვერსიებს, კოდირების ალგორითმების სიის (cipher suites), ს Compression ალგორითმებს და შემთხვევით რიცხვს (კლაიენტიდან).
  2. Server Hello: სერვერი ირჩევს საუკეთესო პროტოკოლის ვერსიას, კოდირების ნაკრებს და ს Compression ალგორითმს, ასევე ქმნის თავის შემთხვევით რიცხვს (სერვერიდან) და აგზავნის მას ბრაუზერს თავისი SSL/TLS სერტიფიკატთან ერთად.
  3. Authentication: ბრაუზერი ამოწმებს სერვერის სერტიფიკატს:
    • ძირითადი სერტიფიკატური ცენტრის სანდოობა (Root CA).
    • სერტიფიკატის ვადა.
    • დომენის სახელის შესაბამისობა სერტიფიკატში საიტის მისამართთან.
    • სერტიფიკატის გაუქმების სია (CRL ან OCSP) არ არის.
  4. Premaster Secret: ბრაუზერი ქმნის შემთხვევით რიცხვს (premaster secret), კოდირებს მას სერვერის საჯარო გასაღებით (სერტიფიკატიდან) და აგზავნის სერვერს.
  5. Session Key Generation: ორივე, ბრაუზერი და სერვერი, იყენებენ კლაიენტურ (Client Random), სერვერულ (Server Random) შემთხვევით რიცხვებს და premaster secret-ს, რათა შექმნან სესიის სიმეტრიული გასაღები (session key).
  6. Change Cipher Spec: ბრაუზერი აგზავნის სერვერს შეტყობინებას, რომელიც იუწყება, რომ გადასულია შექმნილი სესიის გასაღების გამოყენებაზე მომდევნო კომუნიკაციისთვის.
  7. Finished: ბრაუზერი აგზავნის სერვერს ყველა წინამორბედ შეტყობინების ჰეშს, რომელიც კოდირებულია სესიის გასაღებით. ეს შეტყობინება ამოწმებს როკის სისწორეს.
  8. Change Cipher Spec: სერვერი აგზავნის ბრაუზერს შეტყობინებას, რომ გადასულია კოდირებულ კავშირზე.
  9. Finished: სერვერი აგზავნის ბრაუზერს ყველა წინამორბედ შეტყობინების ჰეშს, რომელიც კოდირებულია სესიის გასაღებით.

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

გამოყენებული ალგორითმები (მაგალითები):

  • ასიმეტრიული კოდირება (სესიის გასაღების გაცვლისთვის): RSA, Diffie-Hellman (DH), Elliptic Curve Diffie-Hellman (ECDH).
  • სიმეტრიული კოდირება (მონაცემების კოდირებისათვის): AES, 3DES, ChaCha20.
  • ჰეშტოვება (შეტყობინებების მთლიანობის შემოწმებისთვის): SHA-256, SHA-384.