Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятие и свойства информации1.doc
Скачиваний:
3
Добавлен:
23.12.2018
Размер:
277.5 Кб
Скачать

Информационно-телекоммуникационные системы

На практике угрозы для информационно-телекоммуникационных систем (ИТС) могут быть реализованы непосредственным воздействием как на информацию, представляющую интерес для конечных пользователей подобных систем, так и на информационные ресурсы и телекоммуникационные службы, обеспечиваемые в рамках данной ИТС. Например, существует распространенный вид атаки через Internet - шторм ложных запросов на ТСР-соединение, приводящий к тому, что система временно прекращает обслуживание удаленных пользователей. Перечень подобного типа угроз достаточно обширен, и нередко такие проблемы необходимо решать путем защиты пользовательской информации как части ИТС. Под информационной безопасностью в этой книге мы будем понимать состояние защищенности обрабатываемых, хранимых и передаваемых в ИТС данных от незаконного ознакомления, преобразования и уничтожения (как крайний случай модификации), а также состояние защищенности информационных ресурсов от воздействий, направленных на нарушение их работоспособности. Основными задачами защиты пользовательской информации являются: - обеспечение конфиденциальности информации; - обеспечение целостности информации; - обеспечение достоверности информации; - обеспечение оперативности доступа к информации; - обеспечение юридической значимости информации, представленной в виде электронного документа; - обеспечение неотслеживаемости действий клиента.

Классическая криптография

Прежде чем перейти к рассмотрению криптографических протоколов, а также к их практическому применению, необходимо уделить внимание вопросам, которые в рамках криптографии давно признаются классическими, а именно - основам построения систем засекреченной связи. Под системой засекреченной связи будем понимать систему передачи информации, в которой смысл передаваемой информации скрывается с помощью криптографических преобразований. При этом сам факт передачи информации не утаивается. В основе каждой системы засекреченной связи - использование алгоритмов шифрования как основного средства сохранения конфиденциальности. Зашифрование - процесс криптографического преобразования множества открытых сообщений в множество закрытых сообщений. Расшифрование - процесс криптографического преобразования закрытых сообщений в открытые. Дешифрование - процесс нахождения открытого сообщения, соответствующего заданному закрытому при неизвестном криптографическом преобразовании. Множество открытых сообщений может быть представлено в виде битового потока, сетевого фрейма, файла и т.д.

Абстрактно систему засекреченной связи можно описать как множество отображений множества открытых сообщений в множество закрытых. Выбор конкретного типа преобразования определяется ключом расшифрования (или зашифрования). Отображения должны обладать свойством взаимооднозначности, то есть при расшифровании должен получаться единственный результат, совпадающий с первоначальным открытым сообщением (см. рис. 1.1). Ключи зашифрования и расшифрования могут в общем случае быть различными, хотя для простоты рассуждений (применительно к этой главе) предположим, что они идентичны. Множество, из которого выбираются ключи, называется ключевым пространством. Совокупность процессов зашифрования, множества открытых сообщений, множества возможных закрытых сообщений и ключевого пространства называется алгоритмом зашифрования. Совокупность процессов расшифрования, множества возможных закрытых сообщений, множества открытых сообщений и ключевого пространства называется алгоритмом расшифрования.

Рис. 1.1. Общая структура системы засекреченной связи

Классическое шифрование

Наиболее широко распространенным шифром симметричного шифрования является DES (Data Encryption Standard), разработанный IBM в 1976 году и рекомендованный Национальным бюро стандартов США к использованию в открытых секторах экономики.

Алгоритм DES работает следующим образом. Данные представляются в цифровом виде и разбиваются на блоки длинной 64 бита, затем поблочно шифруются. Блок разбивается на левую и правую части. На первом этапе шифрования вместо левой части блока записывается правая, а вместо правой - сумма по модулю 2 (операция XOR) левой и правой частей. На втором этапе по определенной схеме выполняются побитовые замены и перестановки. Ключ DES имеет длину 64 бита, из которых 56 битов - случайные, а 8 - служебные, используемые для контроля ключа.

DES имеет два режима работы: ECB (Electronic Code Book) и CBC (Cipher Block Chaining). Режим СВС отличается от обычного тем, что перед шифрование очередного блока к нему применяется операция "исключающее ИЛИ" с предыдущем блоком. В ситуациях, когда надежность алгоритма DES кажется недостаточной, используется его модификация - Triple DES (тройной DES). Строго говоря, существует несколько вариантов Triple DES. Наиболее простой - перешифрование: открытый текст шифруется на первом ключе, полученный шифротекст - на втором и, наконец, данные, полученные после второго шага, - на третьем. Все три ключа выбираются независимо друг от друга.

IDEA (International Data Encryption Algorithm) - еще один блочный шифр с длиной ключа 128 бит. Этот европейский стандарт (от ЕТН, Цюрих) предложен в 1990 году. Алгоритм IDEA по скорости и стойкости к анализу не уступает алгоритму DES.

CAST - это блочный шифр, использующий 128-битовый ключ в США и 40-битный - в экспортном варианте. CAST используется компанией Northern Telecom (Nortel).

Шифр Skipjack, разработанный Агентством национальной безопасности США (National Security Agency - NSA), использует 80-битовые ключи. Это часть проекта Capstone, цель которого - разработка общедоступного криптографического стандарта, удовлетворяющего требованиям правительства СШA. Capstone включает четыре основных компонента: шифр Skipjack; алгоритм цифровой подписи на базе стандарта DSS (Digital Signature Standard); хэш-функцию на базе алгоритма SHA (Secure Hash Algorithm); микросхему, реализующую все вышеизложенное (например, Fortezza - PCMCIA-плата, основанная на этой микросхеме).

В реализации Skipjack использована патентованная микросхема Capstone, алгоритм которой засекречен. Ожесточенный спор ведется по поводу того, что в Skipjack будут предусмотрены ключи для "посреднических агентов" (escrow agencies), которые смогут дешифровать сообщения по требованию суда.

Шифры RC2 и RC4 разработаны Роном Рейвестом - одним из основателей компании RSA Data Security, и запатентованы этой компанией. Они используют ключи разной длины, а в экспортируемых продуктах заменяют DES. Шифр RC2 - блочный, с длиной блока 64 бита; шифр RC4 - поточный. По замыслу разработчиков, производительность RC2 и RC4 должна быть не меньше, чем у алгоритма DES.

Всем системам открытого шифрования присущи следующие основные недостатки. Во-первых, принципиальной является надежность канала передачи ключа второму участнику секретных переговоров. Иначе говоря, ключ должен передаваться по секретному каналу. Во-вторых, к службе генерации ключей предъявляются повышенные требования, обусловленные тем, что для n абонентов при схеме взаимодействия "каждый с каждым" требуется n x (n-1)/2 ключей, то есть зависимость числа ключей от числа абонентов является квадратичной.

Два ключа

Для решения вышеперечисленных проблем симметричного шифрования предназначены системы с асимметричным шифрованием, или шифрованием с открытым ключом, которые используют свойства функций с секретом, разработанных Диффи и Хеллманом.

Эти системы характеризуются наличием у каждого абонента двух ключей: открытого и закрытого (секретного). При этом открытый ключ передается всем участникам секретных переговоров. Таким образом, решаются две проблемы: нет нужды в секретной доставке ключа (так как при помощи открытого ключа нельзя расшифровать сообщения, для этого же открытого ключа зашифрованные, и, следовательно, перехватывать открытый ключ нет смысла); отсутствует также квадратичная зависимость числа ключей от числа пользователей - для n пользователей требуется 2n ключей.

Первым шифром, разработанным на принципах асимметричного шифрования, является шифр RSA.

Шифра RSA назван так по первым буквам фамилий его изобретателей: Рона Райвеста, Ади Шамира и Леонарда Элдемана - основателей компании RSA Data Secutity. RSA - не только самый популярный из асимметричных шифров, но, пожалуй, вообще самый известный шифр. Математическое обоснование RSA таково: поиск делителей очень большого натурального числа, являющегося произведением двух простых, - крайне трудоемкая процедура. По открытому ключу очень сложно вычислить парный ему личный ключ. Шифр RSA всесторонне изучен и признан стойким при достаточной длине ключей. Например, 512 бит для обеспечения стойкости не хватает, а 1024 бита считается приемлемым вариантом. Некоторые утверждают, что с ростом мощности процессоров RSA потеряет стойкость к атаке полным перебором. Однако же увеличение мощности процессоров позволит применить более длинные ключи, что повысит стойкость шифра.

Шифр действует по следующему алгоритму. Первое: случайно выбираются два простых очень больших числа р и q. Второе: вычисляются два произведения n=pq, m=(p-1)(q-1). Третье: выбирается случайное целое Е, не имеющее общих сомножителей с m. Четвертое: находится D, такое, что DE=1 по модулю m. Пятое: исходный текст разбивается на блоки длиной Х не более n. Шестое: для шифрования сообщения необходимо вычислить С=ХE по модулю n. Седьмое: для дешифрования вычисляется Х=СD по модулю n.

Для шифрования необходимо знать пару чисел: Е, n, для дешифрования D, n. Первая пара - открытый ключ, вторая - закрытый. Зная открытый ключ, можно вычислить значение закрытого ключа. Необходимым промежуточным действием этого преобразования является нахождение сомножителей p и q, для чего нужно разложить n на сомножители, - эта процедура занимает очень много времени. Именно с огромной вычислительной сложностью связана криптостойкость RSA.

Стандарты PKCS (Public Key Cryptography Standards) предложены RSA Laboratories и объединением компаний, включающим Microsoft, Apple, Digital Equipment, Sun Microsystems и Lotus. В семействе PKCS множество различных стандартов (еще больше их готовится для добавления к PKCS в будущем), каждый из которых описывает отдельную область. (Учтите, что PKCS 2 и RKCS 4 объединены в PKCS 1).

Другим шифром, использующим асимметричное шифрование, является DSS.

Стандарт DSS (Digital Signature Standard) одобрен правительством США. Длина используемого ключа варьируется в пределах от 512 до 1024 бит. DSS предназначен для создания цифровой подписи (см. далее раздел о цифровой подписи), но не для закрытия информации. В стандарте DSS найдены некоторые слабые места защиты, вследствие чего он не так широко распространен.

Однако, сравнивая наиболее популярных представителей симметричного и асимметричного шифрования, стоит заметить, что программная реализация RSA гораздо сложнее DES, и поэтому она, как правило, используется при передаче небольшого объема сообщений.

Общая схема шифрованной передачи информации представлена на рис. 1. В системе симметричного шифрования оба ключа (шифрования и дешифрования) совпадают. В системе асимметричного шифрования ключи разные (шифрования - открытый, дешифрования - личный, секретный). На рисунках 2 и 3 изображены схемы распределения ключей для симметричной и асимметричной систем шифрования. Доставка секретных ключей происходит по секретным (закрытым) каналам, доставка открытых ключей - по открытым.

Шифрование в целях аутентификации

Примером шифрования в целях аутентификации (установлении подлинности автора и документа) является шифрование с помощью односторонней функции (one-way) по-другому именуемой хэш-функцией (hash function) или дайджест-функцией (digest function). Хэш-функция, примененная к шифруемым данным, дает в результате значение (дайджест), состоящее из фиксированного небольшого числа байт. Дайджест передается вместе с исходным сообщением. Получатель сообщения, зная, какая хэш-функция была применена для получения дайджеста, заново вычисляет дайджест, используя незашифрованную часть сообщения. Если значение полученного и вычисленного дайджестов совпадают, значит, содержимое сообщения не было подвергнуто никаким изменениям. Значение дайджеста не дает возможности восстановить исходное сообщение, но зато позволяет проверить целостность данных.

Построение хэш-функций является трудной задачей, так как функции такого рода должны удовлетворять нескольким условиям. Во-первых, по дайджесту, вычисленному с помощью данной функции, должно быть не возможно вычислить исходное сообщение. Во-вторых, должна отсутствовать возможность существования двух разных сообщений, для которых с помощью данной функции могли быть вычислены одинаковые дайджесты.

Наиболее популярными хэш-функциями являются MD2, MD4, MD5 и SHA.

MD2, MD4 и MD5 - алгоритмы дайджеста сообщений, разработанные Роном Райвестом. Каждый из них вырабатывает 128-битовый хэш-код. Алгоритм MD2 - самый медленный, MD4 - самый быстрый. Алгоритм MD5 можно считать модификацией MD4, при которой скоростью пожертвовали ради увеличения безопасности. Более подробную информацию вы найдете в документах RFC 1321 (MD2), RFC 1321 (MD4) и RFC 1319 (MD5).

SHA (Secure Hash Algorithm) - это алгоритм вычисления дайджеста сообщений, вырабатывающий 160-битовый хэш-код. Алгоритм SHA одобрен правительством СЩА (как часть проекта Capstone). Он несколько надежнее MD4 и MD5.

Помимо обеспечения целостности сообщений, дайджест может быть использован в качестве цифровой подписи для аутентификации передаваемого документа.

Цифровая подпись

Цифровая подпись (digital signature) - это способ проверки целостности содержимого сообщения и подлинности его отправителя. Она реализуется при помощи асимметричных шифров и хэш-функций Цифровая подпись основана на обратимости асимметричных шифров, а также на взаимосвязанности содержимого сообщений, самой подписи и пары ключей: изменение одного из этих элементов сделает невозможным подтверждение подлинности подписи.

Отправитель вычисляет дайджест сообщения, шифрует его своим ключом и отправляет вместе с письмом. Получатель, приняв сообщение, расшифровывает дайджест открытым ключом отправителя. Кроме того, получатель сам вычисляет дайджест принятого сообщения и сравнивает его с расшифрованным. Если два дайджеста совпадают, то подпись является подлинной. В противном случае либо изменено содержание сообщения, либо подпись подделана.

Шифр RSA также используют для выработки и проверки цифровой подписи. Чтобы подписать сообщение, отправитель шифрует его своим личным ключом и отправляет подпись вместе с сообщением. Получатель расшифровывает подпись открытым ключом отправителя и сравнивает результат с принятым сообщением. Если сообщение подлинное, то полученное расшифрованное и исходное сообщение должны совпадать.

Стандарт DSS (Digital Signature Standard) - это асимметричный шифр, использование которого рекомендовано правительством США. Здесь используются ключи длиной от 512 до 1024 бит. Стандарт DSS применяется только для формирования цифровой подписи, но не для закрытия данных. Он основан на алгоритме DSA (Digital Signature Algorithm), разработанном Национальным институтом стандартов и технологий (National Institute of Standards and Technology, NIST).

Разовые ключи

Так какой же алгоритм шифрования следует использовать - симметричный или асимметричный? На практике оба метода применяются одновременно - отчасти из-за того, что асимметричное шифрование значительно медленнее симметричного. Поэтому используется следующий прием: отправитель вырабатывает случайный секретный ключ и его средствами шифрует сообщение (симметричный алгоритм). Письмо посылается вместе с секретным ключом, который зашифрован открытым ключом получателя (алгоритм с открытым ключом). Такой выработанный случайным образом ключ называется разовым (message key).

Похожая ситуация возникает, когда сообщение необходимо разослать одновременно нескольким получателям. При асимметричной схеме шифрования сообщение придется зашифровывать отдельно для каждого абонента, используя его открытый ключ. Это потребует много времени. Вместо этого можно зашифровывать сообщения случайно выбранным секретным ключом и затем шифровать только секретный ключ открытым ключом каждого получателя.

Сертификаты

Асимметричное шифрование требует сохранения личного ключа в тайне. Кроме того, необходим надежный метод сопоставления открытого ключа и конкретного человека, процесса или объекта. Как же узнать, действительно ли открытый ключ принадлежит конкретному пользователю? (Если, например, этот пользователь опубликует свой открытый ключ под своим именем, то сможет прочитать все сообщения, присланные на его имя). В какой-то степени в этом поможет сертификат (certificate) - объект, надежно связывающий пользователя и его ключ. Сертификат содержит и другую информацию, например срок действия. Его выдает и подписывает центр сертификации служба (CA - Certificate Authority), однако заметим, что это не полностью решает проблему.

Сертификаты хранятся как объекты службы каталогов или на специально выделенных для этого серверах. Существует программное обеспечение сервера сертификатов, созданное как Microsoft, так и Netcape. Время от времени сертификаты необходимо отзывать. Для этого их заносят в список отозванных сертификатов (CRL - Certificate Revocation List), издаваемый СА.

Еще раз о стойкости

Два различных подхода к шифрованию - симметричный и асимметричный - требуют соответственно и разных подходов к процессу их взлома. Так, для симметричных шифров (шифров с секретными ключами) единственный метод взлома - подбор ключа. Для взлома асимметричного кода используется метод разложения на сомножители одной из составных частей открытого ключа. Обе задачи достаточно сложны, но в принципе выполнимы.

Если не принимать во внимание абсолютно стойкий шифр, массового применения которого пользователями компьютерных сетей, очевидно, не произойдет никогда, то ко всем остальным шифрам можно применить следующее высказывание "отца кибернетики" Норберта Винера: "Любой шифр может быть вскрыт, если только в этом есть настоятельная необходимость, и если информация, которую предполагается получить, стоит затраченных средств, усилий и времени…".

В доказательство истинности этого высказывания можно привести задачу, предложенную создателями RSA для всех желающих попробовать свои силы во взломе их шифра. В конце августа 1999 года компания RSA Data Security оповестила о вскрытии 512-битового открытого ключа. Во взломе принимали участие 292 компьютера на протяжении чуть больше пяти месяцев; кроме того, 9 недель ушло на предварительные расчеты. В связи со вскрытием 512-битового ключа RSA Data Security рекомендует пользователям использовать более надежные 768-битовые или даже 1028-битовые ключи.

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

Стандарты PKCS

PKCS 1 Шифрование при помощи открытых ключей RSA

PKCS 3 Протокол Диффи-Хеллмана (Diffi Hellman) обмена и согласования ключей

PKCS 5 Шифрование с использованием секретного ключа

PKCS 6 Формат сертификатов, являющихся надмножеством сертификатов Х.509

PKCS 7 Синтаксис сообщений, содержащих шифротекст и цифровую подпись

PKCS 8 Формат личных ключей

PKCS 9 Структуры данных, используемые в других PKCS

PKCS 10 Синтаксис запросов на сертификацию

PKCS 11 Описывает API для устройств, использующих криптографические функции, например для смарт-карт

Основные понятия

Криптология - наука, занимающаяся проблемами шифрования и дешифрования.

Криптография - наука о способах преобразования (шифрования) информации с целью ее защиты от незаконных пользователей.

Криптоанализ - наука (и практика ее применения) о методах и способах вскрытия шифров.

Шифр (от франц. chiffre) - совокупность условных знаков (условная азбука из цифр или букв) для секретной переписки.

Шифр замены - шифр, осуществляющий преобразование замены букв или других "частей" открытого текста на аналогичные "части" шифрованного текста.

Шифр перестановки - шифр, осуществляющий преобразование перестановки букв в открытом тексте.

Блочный шифр - шифр, разбивающий исходный текст на блоки и преобразующий каждый блок входных данный в блок шифротекста

Поточный шифр - шифр, преобразующий открытый текст в шифротекст по одному биту за такт.

Абсолютно стойкий шифр - шифр, не поддающийся расшифровке.

Ключ - сменный элемент шифра, который применяется для шифрования конкретного сообщения.

Стойкость шифра (криптостойкость) - способность шифра противостоять всевозможным атакам на него.

Атака на шифр - попытка вскрытия шифра.

Односторонняя функция - функция шифрования F(X)=Y, не имеющая решения уравнения относительно Х.

Функция с секретом - функция шифрования, FK: Х®Y, зависящая от параметра К и не имеющая обратного решения при неизвестном К.

Цифровая подпись (digital signature) -способ проверки целостности содержимого сообщения и подлинности его отправителя основанный на формировании небольшого количества цифровой информации и ее передаче вместе с подписываемым текстом.

Разовый ключ (message key) - выработанный случайным образом секетный ключ, зашифрованный другим ключом и посылаемый вместе с зашифрованным им сообщением.