Протоколы контроля целостности реферат

Обновлено: 03.07.2024

Введение 3
1. Понятие криптографического протокола, функции и задачи 4
2. Классификация криптографических протоколов 6
3. Разновидности атак на протоколы и требования, предъявляемые к безопасности протокола 11
Библиографический список 14

Содержимое работы - 1 файл

криптографич_протоколы1.doc

Введение

Математическая криптография возникла как наука о шифровании информации, т.е. как наука о криптосистемах. Математическая теория криптографических протоколов развивается совместными усилиями ученых различных стран. Среди авторов работ, посвященных протоколам, встречаются имена математиков США и Израиля, Канады и Голландии, Италии и Японии, Франции и Германии, Дании и Венгрии.

За последнее десятилетие криптографические протоколы превратились в основной объект исследований в теоретической криптографии. Например, на крупнейших ежегодных международных криптографических конференциях Crypto и EUROCRYPT большая часть докладов посвящена именно протоколам.

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

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

  1. Понятие криптографического протокола, функции и задачи

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

Протоколы имеют и другие отличительные черты:

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

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

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

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

Криптографические протоколы – сравнительно молодая отрасль математической криптографии. Первые протоколы появились около 20 лет назад. С тех пор эта отрасль бурно развивалась, и на настоящий момент имеется уже не менее двух десятков различных типов криптографических протоколов. Все эти типы можно условно разделить на две группы:

Функции криптографических протоколов:

    1. Аутентификация источника данных;
    2. Аутентификация сторон;
    3. Конфиденциальность данных;
    4. Невозможность отказа;
    5. Невозможность отказа с доказательством получения;
    6. Невозможность отказа с доказательством источника;
    7. Целостность данных;
    8. Обеспечение целостности соединения без восстановления;
    9. Обеспечение целостности соединения с восстановлением;
    10. Разграничение доступа.

Задачи, выполняемые при использовании криптографических протоколов:

  • Обеспечение различных режимов аутентификации;
  • Генерация, распределение и согласование криптографических ключей;
  • Защита взаимодействий участников;
  • Разделение ответственности между участниками.
  1. Классификация криптографических протоколов

Существующие криптографические протоколы можно классифицировать следующим образом:

  1. Протоколы электронной цифровой подписи (ЭЦП)

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

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

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

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

  1. Протоколы аутентифицированного распределения ключей

Протоколы этого класса совмещают аутентификацию пользователей с протоколом генерации и распределения ключей по каналу связи. Протокол имеет двух или трех участников; третьим участником является центр генерации и распределения ключей (ЦГРК), называемый для краткости сервером S. Протокол состоит из трех этапов, имеющих названия: генерация, регистрация и коммуникация. На этапе генерации сервер S генерирует числовые значения параметров системы, в том числе, свой секретный и открытый ключ. На этапе регистрации сервер S идентифицирует пользователей по документам (при личной явке или через уполномоченных лиц), для каждого объекта генерирует ключевую и/или идентификационную информацию и формирует маркер безопасности, содержащий необходимые системные константы и открытый ключ сервера S (при необходимости). На этапе коммуникации реализуется собственно протокол аутентифицированного ключевого обмена, который завершается формированием общего сеансового ключа.

Лекция 12. Контроль целостности данных. Хеш-функции. Имитовставка. ЭЦП. Аутентификация. Протоколы AAA.

Контроль целостности данных.

Целостности данных - при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право.

Методы контроля целостности данных:

Полная копия данных.

Создаются полные копии данных и потом сверяются.

  • простота реализации
  • полный контроль данных (до бита)
  • большой объем
  • копии можно подменить
  • копиями можно воспользоваться (например: если данные - пароль)


Рис. Контроль целостности с помощью полной копии данных

Контрольная сумма.

Контрольная сумма - значение, рассчитанное по входным данным с помощью определённого алгоритма.

  • высокая скорость вычисления
  • малый размер
  • стандартный размер
  • можно подменить
  • для одного значения существует множество исходных данных
  • можно подобрать исходные данные к значению за приемлемое время (например: получить пароль)


Рис. Контроль целостности с помощью контрольной суммы

Примеры контрольных сумм: CRC8, CRC16, CRC32

исходный текст: Контроль целостности данных

crc32 (длина 32 бита)

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. контроль целостности при считывании данных (например: c HDD)

Хеш (хэш, криптографический хеш) - значение, рассчитанное по входным данным с помощью криптографического алгоритма.

  • малый размер
  • стандартный размер
  • нельзя подобрать исходные данные к значению за приемлемое время (например: получить пароль)
  • низкая скорость вычисления (сопоставима с шифрованием)
  • можно подменить
  • для одного значения существует множество исходных данных


Рис. Основная задача хеш функций

Вычисляют хеш шифрованием данных блочным алгоритмом в режимах CBC, но со стандартным (известным) ключом. Хешем является последний шифрованный блок.

ГОСТ Р 34.11-94

Рис. Вычисление хеш по ГОСТ Р 34.11-94 (сравните с CBC)

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

исходный текст: Контроль целостности данных

md2 (длина 128 бит)

md4 (длина 128 бит)

md5 (длина 128 бит)

sha1 (длина 160 бит)

sha224 (длина 224 бит)

sha256 (длина 256 бит)

sha384 (длина 384 бит)

sha512 (длина 512 бит)

ГОСТ Р 34.11-94 (длина 256 бит)

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. контроль целостности при считывании данных (например: c HDD)
  4. хеши паролей
  5. аутентификация (CRAM-MD5, DIGEST-MD5 и т.д.)

Имитовставка - значение, рассчитанное по входным данным с помощью криптографического алгоритма с использованием секретного элемента (ключа), известного только отправителю и получателю.

  • малый размер
  • стандартный размер
  • нельзя подобрать исходные данные к значению за приемлемое время (например: получить пароль)
  • нельзя подменить без секретного элемента (ключа)
  • низкая скорость вычисления (сопоставима с шифрованием)
  • для одного значения существует множество исходных данных
  • секретный ключ известен как минимум двоим

Вычисляют имитовставку шифрованием данных блочным алгоритмом в режимах CBC. Имитовставкой является последний шифрованный блок.


Рис. Вычисление имитовставки

Имитовставка по ГОСТ 28147-89

Длина имитовставки от 1 до 32 бит.

Открытый текст TO разбивается на блоки длиной 64 бита. Последний блок в случае необходимости дополняется нулями.

T_O=T_O^<(1)></p>
<p>\,T_O^\,\ldots\,T_O^

I=E

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


Рис. Проблема имитовставки

Отсюда следует, что имитовставка на основе симметричного шифра не может заменять собой электронную подпись!

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. аутентификации источника данных (не во всех случаях)

Обычные хэш-алгоритмы использовать для вычисления имитовставки нельзя (MD5 и т.д.) т.к. отсутствует секретный ключ. Поэтому создан HMAC .

HMAC (H ash-based Message Authentication Code ) - механизм включения секретного ключа в существующие хэш-алгоритмы.

Электронная цифровая подпись - зашифрованное значение вычисленного хеша по входным данным.

  • малый размер
  • стандартный размер
  • нельзя подобрать исходные данные к значению за приемлемое время (например: получить пароль)
  • нельзя подменить без секретного элемента (ключа)
  • секретный ключ известен одному
  • низкая скорость вычисления (сопоставима с шифрованием)
  • для одного значения существует множество исходных данных


Рис. Создание и проверка ЭЦП

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. аутентификации источника данных (кто создал подпись)

Аутентификация

Аутентификация (Authentication) — проверка принадлежности субъекту доступа по предъявленному им идентификатору (пароль, ключ и т.д.); подтверждение подлинности.

  • парольные (PIN коде и т.д.) - уникальная последовательность символов, которую пользователь должен знать.
  • "ключе" - в случае электронных систем это электронный ключ, который хранится на носителе (смарт-карты, электронные таблетки iButton, USB-токены и т. д.)
  • биометрические (отпечаток пальца, рисунок радужной оболочки глаза, форма лица, параметры голоса и т. д.)
  • криптографические


Рис. Методы аутентификации

Аутентификация по многоразовым паролям

Используется один пароль многократно.

Хотя аутентификация может использоваться не только к удаленным системам, методы аутентификации будем рассматривать сразу на примерах к удаленным системам

Протоколы аутентификации

PAP (Password Authentication Protocol)

PAP - аутентификация по имени и паролю пользователя. Протокол PAP ненадежен при использовании в сетях, т.к. пароли можно перехватить.

  1. клиент посылает имя и пароль серверу
  2. сервер сверяет присланный пароль с паролем в своем хранилище


Рис. Протокол PAP

Недостатки и пути решения:

  1. подбор паролей
  2. просмотр паролей в системе
  3. перехват паролей при передачи

человеческий фактор – человек не может запомнить сложные пароли (записывает), диктует открытым способом (по телефону) и т.д.

Решение проблемы "подбора паролей" :

  1. использовать "сильные" пароли
  2. блокировка при неправильных попытках (например: 5 раз) ввода пароля


Рис. Плохие пароли

Почему эти пароли плохие:

"2" - один символ, легко перебрать.

"123456" - один из популярных паролей (еще примеры - 123; 111; qwerty; qazwsx; qazwsxedc; password; "ваш логин"; "номер телефона"; "дата рождения" и т.д.).

"пароль" - словарное слово, после перебора популярных паролей, перебирают слова из словаря.

"Gjhs6129dgGF_9eK_sj2vc9d" - пароль очень сложный, его не запомнят, а запишут и приклеят к монитору, пароль должен быть только в голове (или в сейфе).

Наиболее хорошим вариантом являются пароли построенные на фразах:

  1. хорошо запоминаются
  2. достаточно длинные
  3. словарные атаки не проходят


Рис. Хорошие пароли

Решение проблемы "просмотра паролей в системе" :

  1. шифрование (для расшифровывания нужно будет при себе носить ключ шифрования, при хранении на диске не защищенного ключа шифрования шифрование пароля не имеет смысла).
  2. не хранить пароль в системе, а хранить его контрольную сумму или хэш.


Рис. Пароли не хранятся в системе, а хранятся их хэши

Пароли в системе не хранятся, при этом пользователь проходит аутентификацию по паролю.

В большинстве современных систем именно так и сделано. Не только в ОС, но и в СУБД, форумах, сайтах и т.д.

Решение проблемы "перехвата паролей при передачи":

  1. шифровать передаваемые пароли
  2. использовать алгоритмы без передачи паролей (рассмотрены ниже ( CHAP ))


Рис. Шифрование передаваемых паролей

Протоколы аутенти фикации вызов-ответ

CHAP (Challenge Handshake Authentication Protocol)

CHAP - аутентификация без передачи пароля.

  1. пользователь посылает серверу запрос на доступ (login)
  2. сервер отправляет клиенту случайное число
  3. на основе этого случайного числа и пароля пользователя клиент вычисляет хеш
  4. клиент пересылает хеш серверу
  5. сервер сверяет присланный хеш со своим вычисленным
  6. в случайные промежутки времени сервер отправляет новый и повторяет шаги с 2 по 5.


Рис. Протокол CHAP

Основной недостаток - необходимо хранить пароль на сервере.

CRAM - ( challenge-response authentication mechanism)

Основан на вычислении имитовставки по алгоритму HMAC, роль симметричного ключа выполняет пароль.

В зависимости от алгоритма хэширования - CRAM-MD5, CRAM-MD4, CRAM-SHA1 и т.д.

  1. пользователь посылает серверу запрос на доступ (login)
  2. сервер вычисляет имитовставку с секретным ключом-паролем пользователя для строки (случайное число + временная метка + доменное имя сервера) (например: )
  3. сервер отправляет клиенту имитовставку
  4. клиент вычисляет имитовставку из строки - (идентификатор клиента (login) + пробел + имитовставка сервера)
  5. отправляет серверу
  6. сервер сверяет полученное с ожидаемым



Рис. Протокол CRAM

В CRAM вместо пароля на сервере может хранится хэш.

Digest access authentication (DIGEST-MD5)

Схема аналогичная CHAP.

  1. запрос клиента (без аутентификации)
  2. ответ сервера (Unauthorized), содержащий
    "realm" - строка (например: realm=testrealm@host.com)
    "nonce" - случайное число сервера (например: nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093")
  3. клиент вычисляет хэш HA1 = MD5 (username: realm: password)
  4. клиент вычисляет хэш HA2 = MD5 (URI)
  5. клиент вычисляет хэш для ответа Response = MD5(HA1:nonce:nc:cnonce:qop:HA2)
    "nc" - счётчика запросов
    "cnonce" - клиентское случайное значение
    "qop" - код качества защиты
  6. клиент посылает ответ
  7. сервер сравнивает значение полученное и вычисленное

HA1 = MD5( "Mufasa:testrealm@host.com:Circle Of Life" )
= 939e7578ed9e3c518a452acee763bce9

HA2 = MD5( "GET:/dir/index.html" ) = 39aff3a2bab6126f332b942af96d3366

Response = MD5( "939e7578ed9e3c518a452acee763bce9:\
dcd98b7102dd2f0e8b11d0f600bfb0c093:\
00000001:0a4f113b:auth:\
39aff3a2bab6126f332b942af96d3366" )

Взаимная аутентификация

Т.к. сервер может быть ложным, необходимо провести взаимную аутентификацию.


Рис. Протокол взаимной аутентификации

Аутентификация по одноразовым паролям (One-time password)

Различные подходы к созданию одноразовых паролей:

Одноразовые пароли клиент может получать:

  1. на бумаге
  2. в токене
  3. пересылкой (по СМС)


Рис. пример банковской карты

Многофакторная аутентификация

Иногда используются сразу несколько методов аутентификации.

Например: электронный ключ и логин.

При использовании SIM-карт в мобильных телефонах. Субъект вставляет свою SIM-карту в телефон и при включении вводит свой PIN-код (пароль).

В случае банковской карты. Субъект вставляет свою банковскую карту в банкомат и вводит свой PIN-код (пароль).

Протоколы AAA

AAA ( Authentication, Authorization, Accounting ) — используется для описания процесса предоставления доступа и контроля за ним.

  • Authentication - аутентификация.
  • Authorization - авторизация (проверка уровня доступа).
  • Accounting - учёт, контроль (слежение за потреблением ресурсов пользователем, например, для тарификации (биллинга)).


Рис. Для чего нужен протокол AAA

Представьте организацию (например университет) с множеством систем (серверы, АТС, WI-FI, здания, помещения и т.д.). Необходимо регистрировать в каждой системе одного и того-же пользователя. Чтобы этого не делать, ставится сервер AAA и все пользователи регистрируются только в нем. Все системы организации обращаются к серверу AAA.

  1. пользователь посылает запрос на аутентификацию системе (пароль, ключ и т.д)
  2. система пересылает его серверу AAA (т.к. не может провести аутентификацию)
  3. сервер AAA посылает ответ системе
  4. пользователь получает или не получает доступ

Основные протоколы AAA:

  • RADIUS, DIAMETER
  • TACACS, TACACS+ (компании Cisco)

Наибольшее распространение получил RADIUS ему на смену создан DIAMETER. Закрытые протоколы не выдерживают конкуренции.

RADIUS ( Remote Authentication in Dial-In User Service )

Протокол опубликован в 1997, был опубликован как RFC 2058 и RFC 2059.

Последние версии (2012) RFC 2865 (rus PDF) и RFC 2866 (rus PDF).

Основные особенности:

  • используется транспортный протокол UDP протокол
  • поддерживает аутентификацию PAP, CHAP, EAP.
  • предоставляет более 50 пар атрибут/значение с возможностью создавать специфичные для производителя пары
  • учетные данные могут хранится локально или во внешних источниках (базы SQL, Kerberos, LDAP, Active Directory)


Рис. Запрос клиента и варианты ответа сервера RADIUS

Пользователь посылает свои данные для аутентификации и авторизации серверу (FTP,POP,WWW,PROXY и т.д.), такие серверы называются Network Access Server (NAS).

Сервер NAS и сервер RADIUS используют общий секретный ключ (для аутентификации друг друга, и хэширования открытых паролей пользователей).

NAS (клиент) формирует запрос серверу RADIUS Access Request, сервер RADIUS может ответить:

Ac­cess-Chal­lenge - запрос дополнительной информации от пользователя, например, второй пароль, пин-код, номер карты и т.п.

Access Request - может содержать:

Ответ Ac­cess-Chal­lenge может использоваться для посылки случайного числа пользователю, для дальнейшего хеширования его с паролем (см. CHAP).

При выполнении всех условий в отклик Access-Accept включается список всех конфигурационных параметров для данного пользователя.

К таким параметрам относятся тип сервиса (например, SLIP, PPP, Login User) и все требуемые для предоставления этого сервиса значения.

Для протоколов SLIP и PPP могут включаться такие параметры, как

Взаимодействие с PAP и CHAP

PAP

CHAP

NAS передает запрос Access-Request серверу RADIUS со значением CHAP username для атрибута User-Name и значениями CHAP ID и CHAP-отклик в качестве CHAP-Password.

сервер RADIUS находит пароль для пользователя "User-Name", хэширует (CHAP ID+пароль+CHAP challenge) и сравнивает результат с атрибутом CHAP-Password.

DIAMETER

Название DIAMETER - игра слов, отражающая превосходство нового протокола над предшественником RADIUS (диаметр - удвоенный радиус).

В общем случае термин TCP/IP обозначает целое семейство протоколов: TCP (Transmission Control Protocol/Internet Protocol) для надежной доставки данных, UDP (User Datagram Protocol) для негарантированной доставки, IP (Internet Protocol) и других прикладных служб.

TCP/IP является открытым коммуникационным протоколом. Открытость означает, что он обеспечивает связь в любых комбинациях устройств независимо от того, насколько они различаются на физическом уровне.

Международная организация по стандартизации (ISO, International Organization for Standardization) разработала эталонную модель взаимодействия открытых систем (OSI, Open Systems Interconnection) в 1978/1979 годах для упрощения открытого взаимодействия компьютерных систем. Открытым называется взаимодействие, которое может поддерживаться в неоднородных средах, содержащих системы разных поставщиков. Модель OSI устанавливает глобальный стандарт, определяющий состав функциональных уровней при открытом взаимодействии между компьютерами.

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

Эталонная модель TCP / IP

В отличие от эталонной модели OSI, модель ТСР/IP в большей степени ориентируется на обеспечение сетевых взаимодействий, нежели на жесткое разделение функциональных уровней. Для этой цели она признает важность иерархической структуры функций, но предоставляет проектировщикам протоколов достаточную гибкость в реализации. Соответственно, эталонная модель OSI гораздо лучше подходит для объяснения механики межкомпьютерных взаимодействий, но протокол TCP/IP стал основным межсетевым протоколом.

Гибкость эталонной модель TCP/IP по сравнению с эталонной моделью OSI продемонстрирована на рисунке.

Стек протоколов TCP/IP состоит из четырех функциональных уровней: прикладного, межхостового, межсетевого и уровня сетевого доступа.

Прикладной уровень

Межхостовой уровень

К функциям этого уровня относится сегментирование данных в приложениях для пересылки по сети, выполнение математических проверок целостности принятых данных и мультиплексирование потоков данных ( как передаваемых, так и принимаемых) для нескольких приложений одновременно. Отсюда следует, что межхостовой уровень располагает средствами идентификации приложений и умеет переупорядочивать данные, принятые не в том порядке.

В настоящее время межхостовой уровень состоит из двух протоколов: протокола управления передачей TCP и протокола пользовательских дейтаграмм UDP. С учетом того, что Интернет становится все более транзакционно-ориентированным, был определен третий протокол, условно названный протоколом управления транзакциями/передачей T/TCP (Transaction/Transmission Control Protocol). Тем не менее, в большинстве прикладных сервисов Интернета на межхостовом уровне используются протоколы TCP и UDP.

Межсетевой уровень

Межсетевой уровень IPv4 состоит из всех протоколов и процедур, позволяющих потоку данных между хостами проходить по нескольким сетям. Следовательно, пакеты, в которых передаются данные, должны быть маршрутизируемыми. За маршрутизируемость пакетов отвечает протокол IP (Internet Protocol).

Межсетевой уровень должен поддерживать маршрутизацию и функции управления маршрутами. Эти функции предоставляются внешними протоколами, которые называются протоколами маршрутизации. К их числу относятся протоколы IGP (Interior Gateway Protocols) и EGP (Exterior Gateway Protocols).

Уровень сетевого доступа

Уровень сетевого доступа состоит из всех функций, необходимых для физического подключения и передачи данных по сети. В эталонной модели OSI (Open Systems Interconnection) этот набор функций разбит на два уровня: физический и канальный. Эталонная модель TCP/IP создавалась после протоколов, присутствующих в ее названии, и в ней эти два уровня были слиты воедино, поскольку различные протоколы IP останавливаются на межсетевом уровне. Протокол IP предполагает, что все низкоуровневые функции предоставляются либо локальной сетью, либо подключением через последовательный интерфейс.

Протокол TCP/IP обеспечивает возможность межплатформенных сетевых взаимодействий ( то есть связи в разнородных сетях). Например, сеть под управлением Windows NT/2000 может содержать рабочие станции Unix и Macintosh, и даже другие сети более низкого порядка. TCP/IP обладает следующими характеристиками:

o Хорошие средства восстановления после сбоев.

o Возможность добавления новых сетей без прерывания текущей работы.

o Устойчивость к ошибкам.

o Независимость от платформы реализации.

o Низкие непроизводительные затраты на пересылку служебных данных.

Уровни и протоколы TCP/ IP

Протоколы TCP и IP совместно управляют потоками данных ( как входящими, так и исходящими) в сети. Но если протокол IP просто передает пакеты, не обращая внимания на результат, TCP должен проследить за тем, чтобы пакеты прибыли в положенное место. В частности, TCP отвечает за выполнение следующих задач:

o Открытие и закрытие сеанса.

o Управление пакетами.

o Управление потоком данных.

o Обнаружение и обработка ошибок.

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

Семейство протоколов IP состоит из нескольких протоколов, часто обозначаемых общим термином “TCP/IP”:

o IP – протокол межсетевого уровня;

o TCP – протокол межхостового уровня, обеспечивающий надежную доставку;

o UDP – протокол межхостового уровня, не обеспечивающий надежной доставки;

o ICMP – многоуровневый протокол, упрощающий контроль, тестирование и управление в сетях IP. Различные протоколы ICMP распространяются на межхостовой и прикладной уровни.

Связи между этими протоколами изображены на рисунке.

Благодаря неустанной работе IETF протокол IP постоянно развивается. В последующих RFC (Request for Comments) были добавлены многочисленные новые возможности. Тем не менее, все они строятся на основе, заложенной в RFC 791. С архитектурной точки зрения текущая версия IP имеет номер 4 (Ipv4). Со временем новая версия (Ipv6) постепенно вытеснит Ipv4, но в настоящее время повсеместно поддерживается стандарт Ipv4.

Задачи протокола IP

Заголовок пакета IP содержит всю информацию, необходимую для выполнения основных сетевых операций. К числу таких операций относятся:

o адресация и маршрутизация;

o фрагментация и повторная сборка;

o выявление и исправление данных, поврежденных в процессе пересылки;

Протокол TCP (Transmission Control Protocol) пользуется сервисом IP для обеспечения надежной доставки прикладных данных. ТСР создает между двумя или более хостами сеанс, ориентированный на соединение. Он обладает такими возможностями, как поддержка нескольких потоков данных, координация потока и контроль ошибок и даже восстановление нарушенного порядка пакетов. Протокол ТСР также разрабатывался посредством публикации общедоступных документов RFC группой IETF.

Задачи протокола ТСР

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

o мультиплексирование данных между приложениями и сетью;

o проверка целостности полученных данных;

o восстановление нарушенного порядка данных;

o подтверждение успешного получения данных;

o регулирование скорости передачи данных;

o измерение временных характеристик;

o координация повторной передачи данных, поврежденных или потерянных в процессе пересылки.

Задачи протокола UDP

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

UDP не обладает ни одной из нетривиальных возможностей, обеспечиваемых протоколом ТСР. В нем не предусмотрены таймеры, средства управления потоком или регулировки скорости передачи, подтверждения, механизмы ускоренной доставки срочных данных и т.д. Протокол UDP просто пытается доставить дейтаграмму. Если попытка по какой-либо причине завершается неудачей, дейтаграмма теряется без каких-либо попыток повторной передачи данных.

В системах Unix поддержка FTP обычно обеспечивается программами ftpd и ftp. По умолчанию протокол FTP работает на портах 20 (пересылка данных) и 21 (пересылка команд). FTP отличается от всех остальных протоколов ТСР/IP тем, что команды могут передаваться одновременно с передачей данных в реальном времени; у других протоколов подобная возможность отсутствует.

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

Название протокола TFTP (Trivial FTP) выбрано весьма удачно. TFTP поддерживает лишь малое подмножество функций FTP. Он работает на базе протокола UDP. TFTP не следит за доставкой пакетов и практически не обладает средствами обработки ошибок. С другой стороны, эти ограничения снижают непроизводительные затраты при пересылке. TFTP не выполняет аутентификации; он просто устанавливает соединение. В качестве защитной меры TFTP позволяет перемещать только общедоступные файлы.

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

Протокол SMTP (Simple Mail Transfer Protocol) является фактическим стандартом пересылки электронной почты в сетях, особенно в Интернете. Во всех операционных системах имеются почтовые клиенты с поддержкой SMTP, а большинство поставщиков услуг Интернета использует SMTP для работы с исходящей почтой. Серверы SMTP существуют для всех операционных систем, включая Windows 9x/NT/2K, MacOS, семейство Unix, Linux, BeOS, и даже AmigaOS.

Файловая система NFS (Network File System) создавалась компанией Sun Microsystems, Inc. для решения проблем в сетях с несколькими операционными системами. NFS поддерживает только совместны доступ к файлам и является компонентом многих операционных систем семейства Unix. Кроме того, NFS хорошо поддерживается большинством других операционных систем.

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

Начиная с NFS версии 3, в качестве транспортного протокола может использоваться TCP. Впрочем, появившаяся в NFS 3 поддержка TCP не оптимизирована. При использовании TCP в качестве транспортного протокола NFS может использовать надежность ТСР для повышения качества доставки по ненадежным каналам. Соответственно, NFS версии 3 лучше работает в глобальных сетях и в Интернет.

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

Сетевые устройства передают информацию о себе через базу управляющей информации MIB (Management Information Base). Эти данные, описывающие устройство, передаются станции управления SNMP (SNMP Management Station), которая поочередно идентифицирует каждое устройство и сохраняет информацию о нем. Станция управляет всеми SNMP-совместимыми устройствами. Для каждого устройства запускается агент SNMP, представляющий клиентскую сторону операций с устройствами. Когда станция управления запрашивает информацию о порте командой GET, агент возвращает эту информацию.

World Wide Web часто называют технологическим прорывом 1990-х годов. Web стала величайшим достижением с первых дней революции, произведенной широким внедрением персональных компьютеров.

Концепция World Wide Web разрабатывалась в Европейской лаборатории по ядерным исследованиям (CERN) для упрощения совместного доступа к файлам и обмена информацией между учеными-физиками. В 1993 году в Национальном центре по использованию суперкомпьютеров (NCSA) был разработан первый графический браузер Mosaic. С разработки этого web-клиента началась World Wide Web в том виде, в котором она существует сегодня.

Семейство протоколов TCP/IP (включая UDP и ICMP) удовлетворяло быстро растущие потребности пользователей и приложений более 20 лет. За это время протоколы постоянно обновлялись, что объяснялось новыми технологическими разработками и превращением Интернета из исследовательской среды с ограниченным кругом пользователей в общедоступную коммерческую инфраструктуру.

Коммерциализация Интернета вызвала бурный рост сообщества пользователей и изменила его демографическую структуру. В свою очередь, это обусловило необходимость в новых адресах и поддержки новых типов сервиса на уровне Интернета. Ограниченные возможности Ipv4 привели к разработке совершенно новой версии протокола. Новой версии IP был присвоен номер 6 (Ipv6), но также часто используется термин Ipng (Internet Protocol: Next Generation).

TCP / IP . Для профессионалов. 3-е издание / Т. Паркер, К. Сиян –СПб.: Питер, 2004

Персональные компьютеры в сетях TCP/IP / Крейг Хант; перев. с англ. - BHV-Киев, 1997.

Высокопроизводительные сети. Энциклопедия пользователя / Марк А. Спортак и др.; перев. с англ. - Киев, ДиаСофт, 1998

Сети ЭВМ: протоколы, стандарты, интерфейсы / Ю. Блэк; перев. с англ. - М.: Мир, 1990.

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

Цикл (или проход) состоит из шагов (действий, англ. step, action) — конкретных законченных действий, выполняемых участником протокола. Например:

Можно сказать, что протокол прескрептивно описывает правила поведения каждой роли в протоколе. А сеанс это дескриптивное описание (возможно теоретически) состоявшейся в прошлом реализации протокола.

Пример описания протокола.

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

Запись протоколов

  • Алиса, Боб (от англ. A, B) — отправитель и получатель.
  • Карл, Клара, Чарли (от англ. C) — равноправная третья сторона.
  • Ева (от англ. eavesdropper) — пассивный криптоаналитик.
  • Меллори (от англ. malicious) — активный криптоаналитик.
  • Трент (от англ. trust) — доверенная сторона.
  • Предварительный этап.
    • Все стороны выбрали общие и .
    • Алиса генерирует случайное .
    • Алиса вычисляет .
    • Алиса отправляет Бобу .
    • Боб принимает от Алисы .
    • Боб генерирует случайное .
    • Боб вычисляет .
    • Боб отправляет Алисе .
    • Боб вычисляет .
    • Алиса принимает от Боба .
    • Алиса вычисляет .
    • Стороны вычислили общий сеансовый ключ .


    В краткой записи опускаются инициализация и предварительные требования, вычисления непередаваемых данных (в данном примере — общего сеансового ключа ), а также любые проверки.

    В данном пособии мы будем придерживаться промежуточного формата записи.

    1. Алиса генерирует .
      .
    2. Боб генерирует .
      Боб вычисляет .
      .
    3. Алиса вычисляет .


    Либо, отводя отдельный столбец для каждого участника.


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

    Свойства безопасности протоколов

    Защищённая система и, соответственно, защищённый протокол могут выполнять разные функции безопасности. Многие из этих функций или целей (англ. goals) можно сформулировать как устойчивость к определённому классу атак. Наиболее полным и актуальным считается перечисление и толкование этих целей в документе проекта AVISPA (англ. Automated Validation of Internet Security Protocols and Applications) [AVISPA], суммирующим описания из различных документов IETF (англ. Internet Engineering Task Force). Данные цели принято считать формализируемыми — то есть такими, что для отдельных протоколов есть возможность формально доказать или опровергнуть достижение этих целей.

      Аутентификация (однонаправленная).
      англ. Authentication (unicast).
        (G1) Аутентификация субъекта.
        англ. Entity authentication (Peer Entity Authentication).

        (G7) Аутентификация ключа.
        англ. Key authentication.

        (G13) Защита идентификаторов от прослушивания (несвязываемость).
        англ. Identity Protection against Eavesdroppers.

        (G17) Подотчётность.
        англ. Accountability.


      Классификация протоколов

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

      • Классификация по целевому назначению протокола:
        • … обеспечения целостности,
        • … цифровой подписи,
        • … идентификации,
        • … конфиденциальности,
        • … распределения ключей,
        • … и т. п.
        • примитивные, используются как базовый компонент при построении прикладных протоколов;
        • промежуточные;
        • прикладные, предназначены для решения практических задач.

        Атаки на протоколы

        Защищённые свойства протоколов могут быть заявленными, когда о них заявляют сами авторы протокола (и, обычно, приводят различные аргументы в пользу выполнения данных функций), и подразумеваемыми, когда авторы некоторой системы рассчитывают на реализацию защищённых свойств некоторым протоколом.

        Атака считается успешной, если нарушено хотя бы одно из заявленных или подразумеваемых свойств протокола.

        В случае успешной атаки на подразумеваемые свойства будем уточнять, что успешна атака на использование протокола в некоторой системе. Это будет говорить, разумеется, не о недостатках самого протокола, но о неверном выборе протокола (или его настроек) авторами системы.

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

        (Дальше идут разделы с описанием конкретных протоколов.)

        Ссылки

        Послесловие


        Автор будет благодарен за фактические и другие замечания к тексту. Презентация и текст подготовлены во многом по замечательной лекции Черёмушкина (ссылка выше).

        Читайте также: