Защити свой WWW-сервер Докучаев Дмитрий aka Forb Спецвыпуск Xakep, номер #041, стр. 041-088-4 Сертификат – твой личный бронежилет Я уже говорил о полезности модуля mod_ssl. Он помогает обмениваться секретными сообщениями, которые невозможно расшифровать. А что же собой представляет этот алгоритм шифрования? Давай рассмотрим его на пальцах. Допустим, мы имеем двух людей (не в прямом смысле :)). Например, Васю и Петю. Они общаются между собой, но не видят друг друга. Для надежности применяется метод SSL. У Васи есть свой сертификат (аналог серверной стороны), который он должен предоставить Пете. Итак, Петя посылает стартовое сообщение, пусть это будет простой "привет". В ответ на "привет" Вася выдает свой сертификат. Сертификат представляет собой электронный документ с особо важными полями: публичный ключ, имя субъекта, время истечения и т.д. и т.п. Петя получает этот документ, но до сих пор не знает, Вася ли на другой стороне (в мире так много жуликов ;)). Чтобы убедить Петра в подлинности, Василий передает еще два сообщения: первое пересылается открытым текстом, а второе шифруется личным (или, как его еще называют, приватным ключом). Приватный ключ находится только у Васи и держится в строжайшей тайне. Второе сообщение называется Message Digest, а сам процесс шифрования с использованием приватного ключика имеет название digital signature (цифровая подпись). Не обращай внимания на сложные названия, важно понять сам принцип. Получив два сообщения, Петя расшифровывает второе с помощью уже публичного ключа (он берется из ранее выданного сертификата), а затем сравнивает первое сообщение с полученным. Их полная идентичность говорит о том, что на другой стороне находится именно Вася, а не хакер Адриан Ламо :). Далее приватный ключ используется только для расшифровки, и происходит вот что: когда Петр пересылает следующее сообщение (зашифрованное публичным ключиком), Василий юзает приватный ключ, а свою очередную мессагу криптует уже с помощью мессаги, ранее пришедшей от Петра. Поскольку Петя знает истинный вид сообщения (и Вася знает, поскольку владеет приватным ключом), то оба собеседника ведут синхронную криптованную беседу. И как ни странно, понимают друг друга :). Еще одной проблемой является пересылка сообщения. Где-то посередине пути может встретиться злобный хакер, перехватывающий и заменяющий мессаги. Чтобы этого избежать, вводится понятие Message Authentication Code (MAC). Этот алгоритм защищает все пакеты от умышленного изменения (встраивается на представительском уровне). Он реализуется, как правило, MD5-кодированием. Понял? Замечательно! Не понял, перечитай еще раз :), я все объяснил действительно на пальцах. Остается последний вопрос: откуда вообще взялись сертификаты? Этим занимаются специальные организации (третье лицо), которым можно доверять. Стать такой фирмой непросто, придется иметь дело с законом. А те, кому это удалось, подписывают каждый сертификат своей электронной подписью. Такие организации называются Certificate authority (CA). Найти список известных CA можно во вкладке "безопасность" твоего браузера. |