Криптография в LAN
АрхивИспользование криптографических продуктов - один из самых надежных способов воспрепятствовать несанкционированному доступу к данным.
Все любят разгадывать других,
но никто не любит быть разгаданным.
Даниил Гранин
Использование криптографических продуктов - один из самых надежных способов воспрепятствовать несанкционированному доступу к данным. Во-первых, так можно защитить каналы передачи данных и предотвратить взлом сети. Во-вторых, хранение собственно файлов в зашифрованном виде сделает любое вторжение бессмысленным.
Физически существуют два способа реализации криптозащиты: программный и аппаратный. Про первый, думаю, особо распространяться не стоит - на сегодняшний день существует множество программ, сертифицированных и официально разрешенных для применения на территории России физическими и юридическими лицами. Такой подход прост и требует минимум затрат, однако вы должны понимать, что работу этих программ будут обеспечивать обычные CPU машин вашей сети. При большом объеме данных, подлежащих кодированию/декодированию, вы будете ощущать заметное «торможение» при работе с сетью. Как выход из данной ситуации предлагаются аппаратные средства шифрования данных и их последующей расшифровки. Обычно такой криптопроцессор представлен в виде специализированного чипа, «заточенного» под конкретные криптографические алгоритмы. Например, криптомодуль IBM-4758 выполнен в виде PCI-платы и шифрует данные по алгоритму 3DES. Само собой, такие устройства весьма недешевы (тысячи долларов), но зато вы почти полностью разгрузите CPU рабочих станций и серверов LAN.
И первый, и второй способы не представляют сложности в эксплуатации, а для пользователей вообще процедуры криптопреобразований данных происходят «прозрачно»… но не стоит думать, что все так просто.
Проектируя сейфы, ограждения и прочие физические меры защиты, производитель старается задать им определенный запас прочности. В виртуальном мире информации такое понятие просто неуместно. Нельзя заранее предугадать все возможные промашки при обеспечении защиты информации. Мы уже привыкли к ежедневным сообщениям об ошибках, обнаруживаемых в программном обеспечении. Привыкли настолько, что подобное известие относительно криптопрограммы не покажется сенсацией. А ведь любая ошибка в ней сведет на нет эффективность всех мер, основанных на этой программе. Использование самого стойкого алгоритма вовсе не означает автоматически получение самого мощного криптографического инструмента. Типичны ситуации, когда после обработки данных программы оставляют в оперативной памяти (или даже во временных файлах) всю информацию в открытом виде, когда стойкость ключей умышленно понижается в разработках, предназначенных на экспорт (вспомните многострадальный браузер MSIE). Казалось бы, у специализированных и дорогостоящих криптомодулей таких проблем быть не должно. Но нет в этом мире совершенных вещей. В «КТ» #421 опубликована статья Киви Берда о том, как два аспиранта Кембриджского университета, Ричард Клейтон и Майкл Бонд (Richard Clayton and Michael Bond), нашли способ компрометации вышерассмотренного криптопроцессора IBM-4758. Они и пальцем до него не дотронулись (устройство снабжено множеством датчиков физического воздействия), а лишь нашли применение ошибке в интерфейсе программирования приложений Common Cryptographic Architecture и научились генерировать в устройстве слабый, специфический ключ для алгоритма 3DES. Дальше - дело техники и исчерпывающего перебора, на который уйдет (по их расчетам) всего лишь около суток.
Теперь пора поговорить
о пресловутом человеческом факторе
Представьте на мгновение самый современный банковский сейф. Он открывается только тремя ключами сразу, причем в промежутке времени 5 минут за сутки. За это время надо успеть еще набрать шифр в 25 цифр и пройти биометрический контроль. Впечатляет? Забыл уточнить: шифр нацарапан на дверце (длинный же, вдруг забудут!) прямо под временем открытия; ключи висят на ручке двери (вдруг потеряют?), а систему биометрического контроля можно просто отключить. Смешно? Скорее - грустно. Мы привели эту метафору для наглядности и простоты восприятия распространенных ошибок при пользовании криптосредствами.
Фактически, это то же самое, что все хранить на одном носителе. Поставьте себя на место человека, к которому попал носитель (что равнозначно полному доступу к нему). Подумайте, можно ли в таком случае извлечь вашу информацию без наличия других элементов вашей системы? Если да, то насколько быстро? Если ответ вас самих не устроит, то разносите элементы криптозащиты на разные диски, причем физические, а не логические. Не забывайте также о постоянно возрастающих вычислительных мощностях процессоров и, как следствие, уменьшении времени на подбор паролей методом исчерпывающего перебора. Для обеспечения надежной степени защиты следует пользоваться паролями длиной не менее 12 символов. Причем это должны быть не связанные между собой символы (строчные и заглавные буквы, цифры, специальные знаки). Хранить их надо только в голове. Проще всего создать для себя какое-нибудь мнемотехническое правило. Если вы пользуетесь алгоритмами шифрования с двумя ключами (например, PGP), то запомнить 4096-значные секретные ключи будет явно сложно. Просто обеспечьте им надежное хранение (как варианты - на брелоке iKey; на съемном носителе, который хранится в сейфе, и т. п.).
Выбору алгоритма шифрования стоит посвятить отдельную статью. Если кратко, то классически все они делятся по степени надежности на три основных категории: безусловно стойкие, доказуемо стойкие и предположительно стойкие.
Надежность первых строго обоснована математически, она базируется на каких-либо доказанных теоремах. К ним относится шифр Вернама (система с разовым использованием ключей). Стойкость алгоритмов второго типа основывается на степени сложности решения известных задач, которые пытались решить на протяжении длительного времени. К примеру, на дискретном логарифмировании, разложении целого числа на множители. В частности, на последнем принципе основан RSA. Третий тип основан на сложности решения частной математической задачи, которую нельзя свести к более простым, известным. Примером такого алгоритма является DES.
Алгоритмы второго типа являются наиболее распространенными. Основная их идея состоит в том, что принцип «атаки в лоб» общеизвестен, однако для его осуществления понадобится слишком большой промежуток времени (в общем случае - годы). Если брать в расчет эмпирический закон Гордона Мура (удвоение вычислительной мощности процессоров каждые полтора года), то при соблюдении правил генерации ключей информация потеряет свою ценность и перестанет быть секретной прежде, чем ее успеют расшифровать. Тем не менее, не стоит забывать, что этот закон применим лишь для «обычных» процессоров. На сегодняшний день успехи создания квантовых вычислительных систем не слишком впечатляют, но большая часть ключевых проблем уже решена и даже созданы работающие экземпляры. Качественно новый подход к решению вычислительно сложных задач будет способен в корне подорвать надежность доказуемо стойких алгоритмов.
Криптография подразумевает, что сам факт передачи секретной информации является общеизвестным. Это не всегда удобно, так как пользователи по понятным причинам опасаются привлечения повышенного внимания. У других невольно возникают вопросы: «А с чего бы это он стал шифровать свои файлы? Что он скрывает?» Такого недостатка лишено использование стеганографии. Суть сводится к известному принципу «спрятать иголку в стоге сена». Внутри графического или звукового файла особым образом записывается подлежащая сокрытию информация. Исходный файл-оболочка не теряет своих свойств (изображения по-прежнему можно смотреть, а музыку слушать), он лишь едва заметно видоизменяется. Если это был .jpg с насыщенной цветовой гаммой, а объем скрываемой информации относительно невелик - отличить картинку до и после модификации на глаз будет практически невозможно. Для надежности можно хранить его в каталоге \Pictures, где помимо него наберется еще несколько сотен фотографий.
Наибольший эффект дает сочетание крипто- и стеганографии. Например, внутри фотографии любимой дачи можно хранить пару секретных ключей.
Потеря данных не менее опасна, чем их кража. При выходе из строя криптосистемы возникнет проблема восстановления данных, поэтому делать резервные копии надо регулярно.
В заключение хотим напомнить, что шифрование данных - лишь один из уровней защиты информации. Более того, эта задача даже не исчерпывается использованием программно-аппаратных средств всех типов. Основной проблемой является некомпетентность персонала и его халатное отношение к соблюдению правил безопасности. Совершенная система не является статичной. Она должна улучшаться по мере обнаружения новых способов атаки. Бытует мнение, что любой контроль доступа к данным мешает нормальной работе. На самом деле, гораздо больше мешает отсутствие такового.