Криптографические алгоритмы для обеспечения безопасности корпоративных веб-ресурсов. При планировании бюджета на создание сайта в большинстве случаев денежные траты на обеспечение безопасности интернет-ресурса кажутся лишними. Зачастую потребность в обеспечении безопасности возникает лишь тогда, когда уже есть факт реализованной угрозы и нанесенного ущерба. Для начала определим, что требуется для обеспечения безопасности сайта.
Организация бесперебойной работы
Постоянное присутствие веб-ресурса в сети Интернет важно не только для посетителей и владельцев, но и для поисковых систем, особенно при SEO-продвижении. Яндекс и Google рекомендуют тщательным образом подходить к подбору серверов и постоянно следить за их состоянием, а также за состоянием самого ресурса. Поисковые системы недоброжелательно относятся к сайтам, которые недоступны для посещения и отдают 4хх либо 5хх ошибки. Поисковые роботы могут выкинуть из индекса не существующие страницы сайта, когда он недоступен для пользователей. Это негативным образом может повлиять на видимость и на имеющиеся позиции по запросам в поисковой выдаче.
Защита критически важных данных от раскрытия
Критически важными являются данные непосредственно самого сайта, которые включают конфигурационные файлы и другую информацию. Их раскрытие может быть опасным, создав вероятность возникновения угрозы. Защита персональных данных пользователя, зарегистрированного в административной панели Федеральный закон от 27 июля 2006 г. No 152-ФЗ «О персональных данных» обязует применять организационные и технические меры по обеспечению безопасности персональных данных при их обработке и хранении.
Ненарушение целостности сайта
Нарушение целостности файлов системы управления, базы данных, шаблонов и страниц может привести к самым непредсказуемым последствиям. Описанные требования указывают на угрозы, реализация которых напрямую затрагивает безопасность интернет-ресурса. При возникновении или реализации угрозы важно не только устранить ее последствия, но и определить уязвимость, т. е. причину ее возникновения. В данном случае вам потребуется:
- определить, что произошло (саму угрозу);
- понять причину, почему это произошло (найти уязвимость);
- найти способ решения проблемы;
-внести корректировки в систему безопасности.
Слабые места можно заранее определить еще при построении проекта сайта. Принимая во внимание уязвимости, которые могут возникать, используя определенный язык программирования или уже готовый функционал, а также особенности сервера, на котором будет располагаться веб-сайт, можно заранее определить потенциальные угрозы и найти способы их устранения. Существуют следующие технологии, используемые для обеспечения безопасности:
- криптографические алгоритмы;
- SSL/TLS;
- безопасная аутентификация и авторизация;
- ограничение доступа к критически важным объектам;
- использование встроенных в технологии средств защиты.
При работе веб-сайта есть данные, критичные к раскрытию:
- логин и пароль доступа к базе данных;
- учетные данные для доступа к внешним ресурсам;
- ключи шифрования и т.д.
Важно обеспечить надежное хранение и безопасную передачу данной информации. Наиболее распространенным способом взлома является перехват или подбор паролей доступа. Хранение их в незашифрованном виде и слабая криптостойкость являются потенциальной уязвимостью. Для шифрования паролей и передаваемой информации используются криптографические алгоритмы. При создании сайта нужно обратить внимание на систему управления CMS будущего сайта. Она должна отвечать всем требованиям безопасности, поэтому лучше выбирать системы, функционал которых постоянно обновляется и дорабатывается.
Скорее всего, это коммерческие CMS, где штат программистов постоянно занимается доработкой функционала и выпуском обновлений, а также осуществляется клиентская техподдержка. При выборе хостинга, на котором будет храниться сайт, нужно определить способность его противодействия сетевым атакам, в частности DDoS атакам. Нужно обратить внимание на перечень поддерживаемых алгоритмов шифрования, уровень программного и технического обеспечения серверов. Хостинг должен обеспечивать бесперебойную работу сайта и высокую скорость загрузки его страниц.
Использование криптографических алгоритмов
Существует немало криптографических алгоритмов. Один из наиболее часто применяемых – хеширование данных посредством хеш-функции. Хеширование – это преобразование входного массива данных произвольной длины в битовую строку фиксированной длины. При смене входных данных происходит непредсказуемое изменение выходных данных. Среди множества используемых хеш-функций самая распространенная – md5, основанная на 128-битном алгоритме шифрования MD5 (рис. 1).
Полученные данные вносим в таблицу, приведенную выше. Мы видим, что хеширование данных приводит к получению совершенно непредсказуемого результата. Система аутентификации будет сравнивать хранящийся хеш с данными, вводимыми в поле пароля. Кража файла, в котором хранится хеш паролей, не приведет к возникновению угрозы. Как правило, хеш расшифровать невозможно, потому что он представляет собой битовую последовательность знаков, а ключа для расшифровки нет. Однако, если пароль, который прогонялся через хеш-функцию, не криптостойкий, существует высокая вероятность взлома. В большинстве случаев взлом производится подбором по словарю, где для некоторых слов и словосочетаний уже имеется заранее сохраненный хеш.
Использование асимметричной криптографии
Часто случаются ситуации, когда информацию сначала нужно зашифровать, а потом расшифровать. Именно для этих случаев подходит асимметричная криптография – шифрование с открытым ключом. Как работает асимметричная криптография. Система, с помощью которой идет шифрование данных, генерирует для двух пользователей, обменивающихся информацией, пару ключей – открытый и закрытый. Каждый пользователь хранит свой закрытый ключ в секрете, а открытый ключ свободно может отдать другим пользователям. Открытый ключ используется для шифрования сообщений, а закрытый ключ – для их расшифровки (рис. 2). Даже если сообщение будет перехвачено злоумышленником, его будет сложно расшифровать, а иногда и вовсе невозможно, если алгоритм достаточно криптостойкий. После расшифровки каждого сообщения должна стоять электронная цифровая подпись (ЭЦП) отправителя, чтобы исключить возможность подмены сообщений. Для генерации ЭЦП используется закрытый ключ.
Защита трафика с помощью протокола SSL/TLS
Если сетевой трафик передается в не-зашифрованном виде, это является серьезной угрозой в случае передачи ценной информации. Злоумышленники используют сетевой анализатор трафика (сниффер), который может представлять программу или программно-аппаратное устройство для перехвата и анализа сетевого трафика. Для защиты передаваемого трафика используется протокол шифрования SSL/TLS; соединения с использованием этих протоколов называются безопасными.
Протокол SSL/TLS решает следующие проблемы:
- шифрование данных (невозможность перехвата);
- шифрование канала передачи данных;
- подтверждение сервера (невозможность подделки сервера);
- подтверждение клиента (аутентификация).
Как работает шифрование трафика SSL/TLS
Для защиты трафика используется шифрование с помощью открытого ключа (асимметричная криптография). Рассмотрим шифрование трафика между клиентом и сервером (рис. 3). Клиент (в данном случае браузер) соединяется с сервером, посылая запрос на безопасное соединение и список поддерживаемых шифров, хеш-функций и т.д. В ответ на это сервер посылает сертификат, в котором обозначены имя и подпись доверенного центра сертификации; а также открытый ключ шифрования, выбранный из списка поддерживаемых, – самый криптостойкий. Браузер генерирует случайное число – кодовое слово, шифрует его открытым ключом и посылает серверу. Сервер расшифровывает кодовое слово, и на основании его производится дальнейшая шифровка и расшифровка данных.
Способом взлома является похищение закрытого ключа сервера, что практически невозможно. Существуют редкие случаи расшифровки перехваченного трафика при использовании устаревших или слабых алгоритмов шифрования.
Рекомендации
- Не выбирайте пароли, имеющие осмысленные значения.
- Не храните учетные данные, пароли к внешним ресурсам непосредственно в приложении.
- Не храните ценную информацию в незашифрованном виде.
- Не храните ключи шифрования в папке с приложением.
- Не используйте пароли короче восьми символов, стойкость пароля во многом определяется его длиной.
- Для составления пароля используйте комбинацию из букв, цифр и других символов.
- Не используйте для составления пароля слова из словаря любого языка.
- Не используйте один и тот же пароль для доступа к нескольким приложениям.
- Регулярно меняйте пароли доступа, хотя бы раз в месяц.
- Не используйте чужие устройства для хранения и доступа к ценной информации.
- Не записывайте пароли на бумажные и электронные носители информации, если существует вероятность утраты или раскрытия информации.
- Не сообщайте пароли, учетные данные незнакомым людям, не вводите их в присутствии посторонних. Круг лиц, имеющих доступ к ценной информации, должен быть ограниченным.
- В случае потери, кражи или раскрытия паролей незамедлительно замените их на новые.
- Для доступа к ценной информации или обмена конфиденциальными сведениями используйте криптографические алгоритмы шифрования.
- Используйте только лицензионное программное обеспечение, регулярно обновляйте его на новые версии.
Как бы хорошо ни была выстроена система безопасности веб-сайта, она не может гарантировать защиту от угроз на 100 %, потому что идеальных систем не существует. Нужно не реже, чем раз в три месяца, проводить (с помощью независимых сертифицированных экспертов) аудит безопасности веб-ресурса, т. к. новые уязвимости возникают регулярно. Важно не дать им перерасти в реализованные угрозы. Заказчикам сайтов нужно тщательным образом подходить к выбору системы управления сайтом CMS, обращать внимание на уровень техподдержки этой системы.
Источник s-director.ru