Sobes.tech
Middle

Kako se vrši šifrovanje poruka između pregledača i servera?

sobes.tech АИ

Одговор од АИ

Шифровање између прегледача и сервера се врши коришћењем протокола HTTPS, који је надградња над HTTP са коришћењем протокола SSL/TLS (Secure Sockets Layer / Transport Layer Security).

Процес успостављања заштићене везе (Handshake):

  1. Client Hello: Прегледач шаље серверу поруку која садржи подржане верзије SSL/TLS, листу шифровалних алгоритама (cipher suites), алгоритме компресије и случајни број (од клијента).
  2. Server Hello: Сервер бира најбољу верзију протокола, шифровални скуп и алгоритам компресије из понуђених од стране прегледача, као и генерише свој случајни број (од сервера) и шаље их прегледачу заједно са својим 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.