Защита информации в компьютерных сетях
Безопасность сетей
В связи с широким использованием сетей ЭВМ государственными, военными и финансовыми структурами большое внимание уделяется вопросам защиты конфиденциальной информации, передаваемой по сети, от несанкционированного прослушивания; особенно это важно при работе в открытой любому пользователю сети InterNet; этому служит специальное программное обеспечение.
Безопасность любой сети включает три аспекта:
· Физический - предупреждение физического доступа к аппаратному обеспечению (например, наличие закрываемого на замок компьютерного помещения или склада).
· Процедурный - действия, выполняемые пользователями компьютера для повышения безопасности используемых процедур.
· Логический - меры по обеспечению безопасности программного обеспечения (например, защита информации паролем, шифрование информации).
Хотя указанные три аспекта безопасности всегда должны выполняться в комплексе (если не учитывать любой из них, вся система защиты разрушается), в аспекте данной работы представляет интерес третий (логический, достигающийся в большинстве случаев программным путем).
Один из вариантов защиты на логическом уровне - использование брандмауэра (firewall) - отдельной точки контакта между частной и общедоступной сетью; функции брандмауэра обычно выполняет сервер с соответствующим программным обеспечением, выполняющим функции защиты и/или фильтрации передаваемых данных (один из вариантов брандмауэра - proxy-сервер, используемый для выхода в InterNet с локальной сети). Функции брандмауэра может выполнять ПО, выполненное в виде фильтра ISAPI, способного контролировать весь проходящий через сервер поток данных.
Наиболее надежный метод защиты информации в компьютерных сетях - метод шифрования сообщений. Шифрованием называют процесс преобразования сообщения, при котором оно может быть восстановлено в исходной читабельной форме только тем получателем, для которого оно предназначено.
С помощью случайного кода можно достаточно просто выполнить шифрование сообщения, однако из-за непредсказуемости характера такого процесса шифрования никто (даже сам автор сообщения) не сможет расшифровать это сообщение. Надежная схема должна использовать регулярный код для шифрования, позволяющий получателю быстро расшифровать сообщение.
Указанные коды называются ключами (keys). Размер и тип ключа (в общем случае ключи являются битовыми кодами) определяет, насколько трудно будет раскрыть код шифровки и расшифровать сообщение. Например, 8-битовый код имеет 256 различных комбинаций, 40-битовый имеет 240 = 1’099’511’627’776 возможных комбинаций, расшифровка 128-битового ключа практически невозможна методом перебора (по некоторым оценкам, для такой расшифровки необходимо наличие 4,2 1022 процессоров производительности 256 млн. операций шифрования в секунду, в этом случае ключ будет взломан за год; стоимость такого количества процессоров в 2000 г. оценивался в 3,5 1024 US$). Содержащаяся в ключе информация используется в дальнейшем для шифрации (методом преобразования битов в потоке) и дешифрации передаваемых по сети сообщений, причем на собственно операцию шифрования приходится небольшая часть уровня секретности (т.о. можно считать сообщение практически рассекреченным, если известен ключ шифрования).
Имеется два типа ключей - симметричный и асимметричный.
Симметричный ключ - ключ, в котором отправитель и получатель используют один и тот же ключ для шифрования и дешифрования сообщений. Использование одного ключа является недостатком схем шифрования с симметричным ключом - ведь сам код ключа должен передаваться незашифрованным, чтобы получатель мог использовать его для дешифрации сообщений. Если постороннее лицо получит такой код ключа, он может расшифровать сообщение независимо от того, сколько битов составляет длина ключа. Правительство США определило и утвердило стандарт шифрования данных (DES, Data Encryption Standart),который представляет собой схему шифрования с симметричным секретным ключом, стандарт DES работает на 64-битовых блоках посредством 56-битового ключа.
Схемы шифрования с помощью асимметричного ключа используют общедоступный и частный ключи. Тот, кто желает получить зашифрованное сообщение, должен иметь оба ключа. Получатель предоставляет общедоступный ключ, а отправитель затем использует его для шифрования сообщения. Единственным способом дешифрования этого сообщения является использование обоих - общедоступного и частного ключа получателя. Даже отправитель не сможет дешифровать это сообщение, поскольку он не знает частного ключа получателя.
Шифрование RSA - алгоритм для асимметричного шифрования с помощью общедоступного ключа, запатентованный в 1983 году фирмой Public Key Partners (PCP); символы RSA суть аббревиатура фамилий изобретателей алгоритма. RSA в настоящее фактически стандарт de-facto и является скорее дополнением, чем заменой шифрования DES. Каждая схема имеет свои преимущества - DES является быстродействующей схемой шифрования и работает эффективно для крупных файлов (имеет лучшие скоростные качества), RSA работает эффективно для шифрования относительно небольших сообщений, обеспечивает цифровые подписи и надежный обмен ключами, не требуя при этом предварительного обмена секретными кодами.
Аутентификация - процесс, который убеждает получателя документа в подлинности отправителя и в целостности документа. Этот процесс выдает цифровую подпись, созданную из дайджеста сообщения (message digest), представляющего собой уникальную строку битов, основанную на содержимом сообщения. Подпись является неподдельной строкой данных, которая аутентифицирует, что конкретное лицо создало содержимое документа и согласно с ним. Отправитель создает дайджест сообщения и шифрует его с помощью частного ключа, дайджест сообщения сопровождает это сообщение. Получатель расшифровывает дайджест сообщения и сопоставляет его с самим сообщением. Если они совпадают, процесс аутентификации является достоверным (можно шифровать и подписывать сообщения одновременно).
Существует другой процесс аутентификации, использующий цифровые сертификаты; эти сертификаты содержат следующее
· Общедоступный ключ.
· Отличительное имя (информация об имени и адресе).
· Дату выдачи и срок хранения.
· Цифровую подпись удостоверяющей организации.
Удостоверяющей организацией является CA (Certifying Authority), например, VerySign, которая создает цифровые сертификаты; СА обычно взимает плату за эту услугу и публикует свой общедоступный ключ и отличительное имя (Distinguished Name) для того, чтобы другие пользователи могли добавить их в броузеры и WEB-серверы в качестве элемента их доверенного каталога (который недоступен для зарегистрированных на сервере пользователей).
Алгоритм RSA запускается с помощью двух больших простых чисел P и Q, числа P и Q дают N - модуль (остаток деления P на Q); существует документация в отношении RSA, где рекомендуется выбирать пару ключей с сильными (strong) простыми числами. Сильные простые числа - такие числа, которые имеют свойства, делающие их модуль N трудным для факторизации (процесса разбиения целого числа на набор целых чисел - факторов - которые после умножения дают исходное целое число). Дело в том, что умножение двух простых чисел выполняется достаточно просто, однако факторизация (вышеуказанное разбиение целого числа) гораздо труднее. Такой процесс именуется односторонней функцией (one-way function), которую легко выполнять в одном направлении, но гораздо труднее - в обратном.
Еще одна проблема при выборе простых чисел связана с размером модуля - большой модуль создает более надежную схему шифрования, однако он замедляет процесс шифрования. Например, для факторизации 512-битового модуля (при этом каждое из простых чисел P и Q должно иметь длину около 256 битов) требуется усилие, эквивалентное 8,2 106 $US.
После определения модуля выбирается число E, меньшее, чем N и также большее по сравнению с произведением (P-1)(Q-1), находится его модуль D. Общедоступной парой ключей является (N,E), частным ключом - D (следует хранить в секрете числа P и Q).
Зная значения P и Q, любой пользователь может восстановить зашифрованную информацию. Лучше всего получать случайные значения P и Q с помощью физического процесса (перемещения ‘мыши’, нажатия клавиатуры, многие связанные с Банком Федерального Резерва США американские банки используют основанную на специальной периферийной карте систему FedWire II).
Дополнительную информацию о защите данных по алгоритму RSA можно получить на WEB-адресе http://www.rsasecurity.com.
Один из разработчиков RSA, Ron Rivest, предложил более мощный алгоритм шифрования, получивший название RC4. Правительство США запрещает экспорт любых программно-аппаратных реализаций алгоритма шифрования RC4 с длиной ключа более 64 бита без специальной лицензии, приравнивая его к экспорту оружия.
В СССР в период ‘холодной войны’ был разработан алгоритм ГОСТ 28147-89 с длиной ключа 256 бит для защиты составляющих государственную тайну сведений, практически не накладывающий ограничений на степень секретности защищаемой информации.