Протокол ssl

SSL (Secure Socket Layer, Протокол (или уровень) защищенных сокетов) спроектирован для обеспечения конфиденциальности обмена между двумя прикладными процессами клиента и сервера. Он предоставляет возможность аутентификации сервера и, опционно, клиента. SSL и требует применения надежного транспортного протокола (например, TCP).

SSL – это коммуникационный протокол с шифрованием, применяемый для передачи защищенной информации по Internet. Преимуществом SSL является то, что он независим от прикладного протокола. Протоколы приложения, такие как HTTP, FTP, TELNET и т.д. могут работать поверх протокола SSL совершенно прозрачно.

Взаимодействие SSL с приложениями:

SSL действует как промежуточный протокол между TCP/IP и протоколами прикладных уровней и, когда клиент устанавливает защищенное соединение, невидимо осуществляет кодирование и декодирование информации.

Основой SSL является шифрование. В SSL используется метод шифрования, называемый криптографией открытых ключей, когда серверная сторона соединения посылает клиенту открытый ключ для шифрования информации, дешифровать которую может только сервер с помощью хранимого им личного ключа. Клиент использует открытый ключ для шифрования и посылки серверу своего собственного ключа, который однозначно идентифицирует его на сервере и не позволяет наблюдающим за линией связи между двумя системами имитировать сервер или клиента.

Протокол SSL предоставляет "безопасный канал", который имеет три основные свойства:

  • Канал является частным. Шифрование используется для всех сообщений после простого диалога, который служит для определения секретного ключа.
  • Канал аутентифицирован. Серверная сторона диалога всегда аутентифицируется, в то время как клиентская – аутентифицируется опционно.
  • Канал надежен. Транспортировка сообщений включает в себя проверку целостности.

Сертификат представляет собой зашифрованную информацию, которая связывает открытый ключ шифрования с удостоверением подлинности личности, сервера или другой сущности, известной как субъект. Издателем сертификата является бюро сертификации (Certification Authority – CA). Сертификат содержит:

— имя объекта,

— название организации, с которой связан объект,

— отдел организации, с которой связан объект,

— название города или района, в котором находится объект,

— название штата или области, в котором находится объект,

— название страны, в которой находится объект,

— серийный номер сертификата,

— время действия сертификата.

Самые известные СА – это Verisign и Thawte. Они исследуют различные юридические документы организаций, которые хотят установить свою аутентичность в Internet и после независимой проверки подписывают (заверяют) сертификат собственным открытым ключом.

Сертификат обычно передается в бинарном или кодированном текстовом формате.

Пример транзакции SSL:

Клиент

Сервер возвращает

  1. Заверенный сертификат сервера
  2. Открытый текст с данными идентификации (ID)
  3. Контрольную сумму данных ID, зашифрованных с помощью секретного ключа сервера

Для того, чтобы web-сервер Apache реагировал на соединения SSL, нужно убедиться в том, что он прослушивает порт 443 – стандартный порт для SSL. Указать это можно в директиве

Listen 443

Для активизации SSL нужно указать Apache способ и время использования этого протокола, введя директивы SSL в конфигурацию сервера.

Включение механизма SSL:

SSLEngine On

Личный ключ сервера:

SSLCertificateKeyFile conf/ssl/www.server.com.key

Сертификат для личного ключа:

SSLCertificateFile conf/ssl/www.server.com.crt

При динамической загрузке SSL эти директивы нужно размещать после директив

LoadModule/AddModule

чтобы Apache их понимал. Если указать директивы на уровне сервера, SSL будет разрешен для всего сервера и обычные НТТР-соединения не будут работать ни по какому порту. Если же расположить их в виртуальном хосте на основе IP-адресов, SSL будет разрешен только для одного хоста, выделенного для порта 443.

ServerName server.com

DocumentRoot /www/docs

SSLCertificateKeyFile conf/ssl/www.server.com.key

SSLCertificateFile conf/ssl/www.server.com.crt

Реализация SSL в отдельной области:

SSLrequireSSL

Рандомно подобранные статьи с сайта:

Что такое SSL и HTTPS?


Похожие статьи:

admin