Sobes.tech
Junior

Какво е SSL и как се използва за осигуряване на сигурността на данните в мрежата?

sobes.tech AI

Отговор от AI

SSL (Secure Sockets Layer) — това е криптографски протокол, който осигурява безопасна трансфер на данни между клиента (например уеб браузър) и сървъра (например уебсайт). Той използва асиметрично криптиране за установяване на защитен комуникационен канал, а след това симетрично криптиране за предаване на данните.

Основните етапи на използване на SSL:

  1. Ръкостискане (Handshake):

    • Клиентът изпраща на сървъра съобщение "ClientHello", съдържащо списък с поддържани версии на SSL и набори от шифри.
    • Сървърът отговаря с "ServerHello", избирайки оптималната версия на SSL и набор от шифри, както и изпраща своя сертификат.
    • Клиентът проверява автентичността на сертификата на сървъра, използвайки списък с доверени коренови центрове за сертифициране.
    • Клиентът генерира секретен ключ за сесията и го криптира, използвайки публичния ключ от сертификата на сървъра.
    • Клиентът изпраща криптирания ключ за сесията на сървъра.
    • Сървърът декриптира ключа за сесията, използвайки своя частен ключ.
    • И двете страни генерират необходимите ключове (за криптиране и удостоверяване) за симетричния алгоритъм, използвайки ключа за сесията.
    • Клиентът и сървърът изпращат съобщения "Finished", криптирани с използване на съгласуваните ключове, за да потвърдят успешното установяване на защитена връзка.
  2. Криптиране на данните: След успешно ръкостискане всички данни, предавани между клиента и сървъра, се криптират с използване на съгласувания симетричен алгоритъм и ключове.

Пример за част от SSL сертификат:

// Идентификатор на сертификата
Serial Number: ...
// Алгоритъм за подписване на сертификата
Signature Algorithm: sha256WithRSAEncryption
// Издател на сертификата (Certificate Authority)
Issuer: C = US, O = Google Trust Services LLC, CN = GTS CA 1C3
// Валидност
Validity
    Not Before: ...
    Not After : ...
// Субект на сертификата (домейн името на сайта)
Subject: CN = www.example.com
// Публичен ключ на субекта
Subject Public Key Info
    Public Key Algorithm: rsaEncryption
    Public-Key: (2048 bit)

SSL, или по-точно неговата по-нова версия TLS (Transport Layer Security), осигурява:

  • Конфиденциалност: Предотвратява прихващане и четене на данните от злоупотребяващи.
  • Цялост на данните: Гарантира, че данните не са били променени по време на предаването.
  • Аутентификация: Потвърждава автентичността на сървъра (и по желание клиента) чрез сертификати.

Използването на SSL/TLS е широко разпространено в уеб браузъри (протокол HTTPS), електронна поща (STARTTLS), VPN и други приложения, които изискват сигурен трансфер на данни.