|
Страница 1 из 3 TLS — криптографический протокол, обеспечивающий защищённую передачу данных между узлами в сети Интернет. Для Asterisk версии 1.6 - tls предоставляет возможность защищенной аутентификации. Что-бы иметь представление о проводимых подготовительных операциях, рассмотрим последовательность действий при установлении TLS-соединения:
- клиент подключается к серверу, поддерживающему TLS, и запрашивает защищенное соединение;
- клиент предоставляет список поддерживаемых алгоритмов шифрования и хеш-функций;
- сервер выбирает из списка, предоставленного клиентом, наиболее устойчивые алгоритмы, которые также поддерживаются сервером, и сообщает о своем выборе клиенту;
- сервер отправляет клиенту цифровой сертификат для собственной идентификации. Обычно цифровой сертификат содержит имя сервера, имя доверенного центра сертификации и открытый ключ сервера;
- клиент может связаться с сервером доверенного центра сертификации и подтвердить аутентичность переданного сертификата до начала передачи данных;
- для того чтобы сгенерировать сеансовый ключ для защищенного соединения, клиент шифрует случайно сгенерированную цифровую последовательность открытым ключом сервера и посылает результат на сервер. Учитывая специфику алгоритма асимметричного шифрования, используемого для установления соединения, только сервер может расшифровать полученную последовательность, используя свой закрытый ключ;
Подробнее об авторизации с помощью клиентских сертификатов - читаем на www.opennet.ru/base/sec/ssl_cert.txt.html. Произведем подключение SIP-абонента к IP PBX Asterisk по защищенному каналу. Asterisk должен быть собран с поддержкой библиотеки openssl (до сборки asterisk - yum install openssl). Решение поставленной задачи можно разделить на три этапа.
- Создание ssl сертификата (собственного само-подписанного доверенного сертификата).
- Конфигурация Asterisk (редактирование файла sip.conf).
- Настройка клиента для работы по TLS.
Этап номер один - ssl сертификат. Собственный доверенный сертификат (Certificate Authority) необходим для подписи клиентских сертификатов и для их проверки при авторизации клиента на Asterisk. Создаем директорию - mkdir /etc/asterisk/ssl. Для создания сертификата выполняем команду:
- openssl req -new -newkey rsa:1024 -nodes -keyout ca.key -x509 -days 500 -subj /C=RU/ST=Msk/L=Msk/O=sipring/OU=asterisk/CN=sipring.ru/ -out ca.crt
Описание аргументов:
req
Запрос на создание нового сертификата.
-new
Создание запроса на сертификат (Certificate Signing Request).
-newkey rsa:1024
Автоматически будет создан новый закрытый RSA ключ длиной 1024 бита. Длину ключа можете настроить по своему усмотрению.
-nodes
Не шифровать закрытый ключ .
-keyout ca.key
Закрытый ключ сохранить в файл ca.key.
-x509
Вместо создания CSR (см. опцию -new) создать самоподписанный сертификат.
-days 500
Срок действия сертификата 500 дней. Размер периода действия можете настроить по своему усмотрению. Не рекомендуется вводить маленькие значения, так как этим сертификатом вы будете подписывать клиентские сертификаты.
-subj /C=RU/ST=Msk/L=Msk/O=sipring/OU=asterisk/CN=igor/emailAddress=
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Данные сертификата, пары параметр=значение, перечисляются через '/'.
Описание параметров:
С - Двухсимвольный код страны (Country). Необязательный параметр.
ST - Название региона/области/края/республики/... (State Name). Необязательный параметр.
L - Название города/поселка/... (Locality Name).Необязательный параметр.
O - Название организации (Organization Name). Необязательный параметр.
OU - Название отдела (Organization Unit). Необязательный параметр.
CN - Имя сертификата, при создании серверных сертификатов используется доменное имя сайта, для клиентских
сертификатов может быть использовано что угодно (Common Name). Обязательный параметр. Максимальная длина 64 символа.
emailAddress - почтовый адрес (E-mail address). Необязательный параметр. Максимальная длина 40 символов. Необязательные параметры могут быть пропущены.
-out ca.crt
Сертификат сохранить в файл ca.crt.
В результате выполнения команды появятся два файла ca.key и ca.crt. Подготовим файл сертификата для Asterisk.
- cp ca.crt asterisk.crt
- cat ca.key >> asterisk.crt
В результате получим файл само-подписанного сертификата -> asterisk.crt, используемый в конфигурации Asterisk. Далее необходимо создать клиентские сертификаты. Для этого подготовим конфигурационный файл с именем ca.config следующего содержания.
|