← Назад к списку статей

Новая функция: шифрование передачи данных (TLS)

Начиная с версии 16.10.31, программа для видеонаблюдения Xeoma поддерживает безопасное соединение между сервером и клиентом с помощью шифрования передачи данных TLS. Но что такое TLS? Как оно помогает обеспечивать безопасность? Наверное, это тяжело установить? Вопросы, связанные с информационной безопасностью, обычно достаточно сложны, и поэтому занимаются ими только квалифицированные специалисты. Однако прогресс не стоит на месте: всё постепенно упрощается и становится всё доступнее для широкого пользователя. Давайте разберёмся, что такое шифрование передачи данных TLS и как его использовать.

Уже знаете всё, что нужно, о TLS? Перейдите сразу к его использованию в программе для видеонаблюдения Xeoma

Шифрование передачи данных (TLS) защищает вас и ваш компьютер

Для начала затронем историю этого вопроса. TLS – это безопасность транспортного уровня (от англ. Transport Layer Security), и она является наследницей SSL – уровня защищённых сокетов (от англ. Secure Sockets Layer). В начале 90-х годов американская компания Netscape (разработчики известного браузера Netscape Navigator — основного конкурента Internet Explorer в те времена) разработала способ защитить соединение между сервером и клиентом от перехвата и прослушивания. Автором идеи является доктор Тахер Эль-Гамаль, знаменитый египетский криптограф. Суть этой идеи в следующем: серверу и клиенту нужен уникальный способ, позволяющий проводить шифрование данных каждый раз, когда они связываются. В таком случае, даже если сессию кто-то перехватит, расшифровать данные не получится, и информация будет сохранена. Эта система зиждется на электронных сертификатах безопасности.

 

Шифрование передачи данных (TLS) исользует для защиты специальный сертификат

Что же такое сертификат безопасности (он же сертификат открытого ключа)? По сути, это ключ от двери, которая соединяет 2 комнаты. К замку подходит только один ключ, а взломать его нельзя. Сертификат обычно создаётся на сервере и отсылается клиенту в самом начале их взаимодействия. Клиент его либо принимает, либо отвергает. Весь этот процесс называется процедура подтверждения связи (а на англ. handshaking — рукопожатие). В ходе этой процедуры сервер и клиент «договариваются» о методах взаимодействия (например, о том, как генерировать одноразовые сеансовые ключи). После этого они спокойно кодируют и декодируют свои данные (проводят шифрование и расшифровку) с помощью ключа, не рискуя быть прерванными или подслушанными. Если же процедура подтверждения связи не пройдёт, то соединение не устанавливается. Это гарантирует, что никто не сможет «притвориться» клиентом или сервером, чтобы незаконно получить некие данные.

 

Шифрование передачи данных сертифицировано

Но каждому сертификату требуется подпись, без неё он недействителен. В идеале, подписывать его должна третья сторона, которой доверяют и сервер, и клиент. Обычно она называется Центр сертификации (сокращается CA от англ. Certificate Authority). Сервер может получить подпись для своего сертификата 2 способами: обратившись в Центр сертификации (таких много, но за свою работу они взимают плату) или подписав его самостоятельно (такие сертификаты называются самозаверенными). Второй вариант, естественно, более опасен для клиента, но если сами операторы машин доверяют друг другу, то никаких проблем не возникнет. Система сертификатов работает на постоянной основе в Интернете каждый раз, когда вы заходите на какой-либо сервер через браузер, хотя средний пользователь этого не замечает. Это доказывает тезис о том, что лучшая защита та, которую не видно.


Теперь мы можем разобраться, как применить всё это в Xeoma. Во-первых, нам понадобится сгенерировать сертификат на сервере. Лучше всего для этого подходит программа OpenSSL: https://www.openssl.org/source/ Однако стабильно она работает только на Linux-системах. Но сгенерированные с её помощью сертификаты действительны для любых систем, так что если вы используете Windows или Mac OS, то можно либо попросить помощи у друга с Linux, либо воспользоваться виртуальной машиной для эмуляции Linux. Сгенерировать сертификат можно с помощью большого числа команд через консоль, но особенно важно, чтобы полученные файлы назывались или PublicCertificate.pem и PrivateKey.pem, или PublicCertificate.der и PrivateKey.der. Проще всего скопировать в консоль вот эту команду:

openssl req -x509 -sha256 -new -days 3650 -newkey rsa:2048 -nodes -out PublicCertificate.pem -keyout PrivateKey.pem -subj «/C=Co/ST=SN/L=Lo/O=Or/OU=OU/CN=CN»

Шифрование передачи данных (TLS): безопасное соединение для Xeoma почти готово

Теперь свежесгенерированные файлы лежат в папке с OpenSSL:

Сертификат, обеспечивающий безопасное шифрование передачи данных

Осталось только перенести их в папку с Xeoma, а именно Xeoma → Security → Certificate:

Шифрование передачи данных (TLS) готово для Xeoma – ваше соединение защищено

Оба файла PublicCertificate.pem и PrivateKey.pem нужно положить в папку Server (они заменят те файлы, что уже там лежат). Пожалуйста, обратите внимание, что файл PrivateKey.pem особенно важен, к нему не должно быть доступа ни у кого, кроме вас. В противном случае, безопасность соединения будет под угрозой. Теперь всем клиентам осталось только положить файл PublicCertificate.pem в папку Client, и безопасное шифрование обеспечено. Если нужно, чтобы один и тот же клиент подключался к нескольким серверам по разным сертификатам, то можно их все сложить в папку Client (их имена должны быть PublicCertificate1.pem, PublicCertificate2.pem и т.д. и совпадать с именами файлов на серверах).

Легко настраиваемое шифрование передачи данных (TLS) в программе для видеонаблюдения Xeoma обеспечит вам безопасное соединение.

22 ноября 2016

Также читайте:
Дешевле чем DVR? Видеонаблюдение с Raspberry Pi
Как настроить облачное хранилище с Xeoma Cloud