СПОСОБ ПРЕДОТВРАЩЕНИЯ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ ПАКЕТОВ ЦИФРОВЫХ ДАННЫХ В СЕТЕВОЙ СИСТЕМЕ ПЕРЕДАЧИ ДАННЫХ
METHOD OF PREVENTING DIGITAL DATA PACKET REUSE IN NETWORK DATA TRANSMISSION SYSTEM

Область техники, к которой относится изобретение
Предлагаемое изобретение относится к способам обеспечения безопасности в сетях передачи данных и, в частности, к способам предотвращения повторного использования пакетов цифровых данных при передаче в сетях передачи данных.
Уровень техники
В сети передачи данных с использованием пакетов данных, например по протоколу IP, могут использоваться различные протоколы для обеспечения безопасности IP сетей, например протокол IPsec [1, 2].
В протоколе IPsec предусмотрен способ предотвращения повторного использования (Anty-replay) пакетов цифровых данных в процессе установленного соединения между компьютерами в сети. Этот способ включает использование автоматической нумерации передаваемых пакетов после установления соединения, включения номера передаваемого пакета в стандартный заголовок пакета и учета номеров принятых пакетов.
При приеме очередного пакета в компьютере, принимающем сообщения, происходит процедура номера принятого пакета в списке ранее принятых пакетов, и, если пакет был ранее принят, то он отклоняется. Если же пакет не был ранее принят, то его номер вносится в список, и пакет принимается и обрабатывается.
При приеме зашифрованных пакетов применяются предварительно операции расшифрования и контроля целостности.
Недостатками способа является необходимость протокола согласования счетчиков и, как следствие, необходимость двухсторонней фиксации факта создания соединения.
Известен также способ предотвращения повторного использования пакетов цифровых данных в сетевой системе передачи данных [3], реализуемый с помощью системы, включающей
- компьютеры, отправляющие сообщения в виде последовательности пакетов цифровых данных через сеть передачи данных, и
- компьютеры, принимающие сообщения и связанные с другими компьютерами через сеть передачи данных;
способ, заключающийся в том, что
- формируют полезные данные для каждого отправляемого пакета;
- формируют метаданные для каждого отправляемого пакета, причем метаданные включают время отправки пакета данных (временную метку, pseudo-time stamp);
- формируют пакет, включающий полезные данные и метаданные;
- шифруют пакет вместе с метаданными;
- отправляют пакет через сеть передачи данных через компьютер, отправляющий сообщения;
- устанавливают на компьютере, принимающем сообщения, допустимую величину промежутка времени рассогласования;
- принимают пакет, включающий полезные данные и метаданные;
- расшифровывают пакет вместе с метаданными, включая время отправки пакета данных;
- проверяют целостность метаданных принятого пакета, используя данные для проверки целостности метаданных;
- проводят проверку на повтор принятого пакета, выполняя следующие действия:
- если время отправки принятого пакета выходит за пределы промежутка времени рассогласования, то отклоняют пакет;
- если время отправки пакета находится в пределах промежутка времени рассогласования, то принимают пакет для последующей обработки.
Для формирования времени отправки пакета данных в компьютере, отправляющем сообщения, могут использоваться встроенные (локальные) часы или значение, полученное от внешнего сервера.
Для контроля времени отправки пакета данных в компьютере, принимающем сообщения, предусмотрено использование встроенных (локальных) часов.
Описанный способ принимается за прототип.
Этот способ избавлен от указанных выше недостатков, но требует точной синхронизации времени между узлами обмена. Так, при недостаточно точной синхронизации времени требуется больший интервал допустимого отклонения пришедшей временной метки от текущего времени в компьютере, принимающем сообщения, что приводит к большому объему данных, которые можно повторно послать на этот компьютер. Например, при значении интервала времени допустимого отклонения в 1 с и использовании для передачи данных магистрального канала с пропускной способностью 1 Гбит/с объем повторно переданного трафика достигнет величины 1 Гбит, что может оказаться неприемлемым.
Необходимость точной синхронизации времени между компьютерами, отправляющими и принимающими сообщения, является недостатком известного способа, препятствующим надежному устранению повторного приема пакетов в установленном промежутке времени рассогласования.
Раскрытие изобретения
Техническим результатом является предотвращение (устранение возможности) повторного приема пакетов в установленном промежутке времени рассогласования.
Дополнительным техническим результатом является отсутствие необходимости двухсторонней фиксации факта создания соединения.
Для этого предлагается способ, реализуемый с помощью системы, включающей
- компьютеры, отправляющие сообщения в виде последовательности пакетов цифровых данных через сеть передачи данных, и
- компьютеры, принимающие сообщения и связанные с другими компьютерами через сеть передачи данных;
способ, заключающийся в том, что
- формируют полезные данные для каждого отправляемого пакета;
- формируют метаданные для каждого отправляемого пакета, причем метаданные включают
- порядковый номер пакета;
- время отправки пакета данных;
- формируют пакет, включающий
- полезные данные,
- метаданные и
- данные для проверки целостности метаданных;
- отправляют пакет через сеть передачи данных;
- устанавливают на компьютере, принимающем сообщения, допустимую величину промежутка времени рассогласования;
- формируют в памяти компьютера области для хранения
- времени отправки последнего принятого пакета;
- порядкового номера последнего принятого пакета;
- списка порядковых номеров ранее принятых пакетов;
- принимают пакет, включающий полезные данные и метаданные;
- проверяют целостность метаданных принятого пакета, используя данные для проверки целостности метаданных;
- проводят проверку на повтор принятого пакета, выполняя следующие действия:
- если время отправки принятого пакета выходит за пределы промежутка времени рассогласования, то отклоняют пакет;
- если время отправки пакета находится в пределах промежутка времени рассогласования, то
- сравнивают время отправки принятого пакета с временем отправки последнего принятого пакета;
- если время отправки принятого пакета больше времени отправки последнего принятого пакета, то
- заменяют время отправки последнего принятого пакета на время отправки принятого пакета;
- заменяют номер последнего принятого пакета на номер принятого пакета;
- заносят номер принятого пакета в список порядковых номеров ранее принятых пакетов;
- принимают пакет;
- если время отправки принятого пакета не превышает времени отправки последнего принятого пакета, то
- сравнивают номер последнего принятого пакета с номером принятого пакета;
- если номер последнего принятого пакета меньше номера принятого пакета, то
- заменяют номер последнего принятого пакета на номер принятого пакета;
- заносят номер принятого пакета в список порядковых номеров ранее принятых пакетов;
- принимают пакет;
- если номер последнего принятого пакета больше или равен номеру принятого пакета, то
- проводят поиск номера принятого пакета в списке порядковых номеров ранее принятых пакетов;
- если номер принятого пакета найден в списке порядковых номеров ранее принятых пакетов, то отклоняют принятый пакет;
- если номер принятого пакета не найден в списке порядковых номеров ранее принятых пакетов, то
- заносят номер принятого пакета в список порядковых номеров ранее принятых пакетов и
- принимают принятый пакет.
Процесс проверки на повтор принятого пакета поясняется схемой, приведенной на чертеже.
В схеме использованы следующие обозначения:
Т - текущее время;
Δ - величина промежутка времени рассогласования;
R
T - время отправки принятого пакета;
R
N - номер принятого пакета;
L
T - время последнего принятого пакета;
L
N - номер последнего принятого пакета.
В отличие от прототипа, в предложенном способе используется также номер принятого пакета.
Это позволяет успешно избегать повторов пакета в случаях, когда, в частности, точности временной метки не хватило, и временные метки нескольких пакетов совпали, также данное условие позволяет принимать пакеты в ситуации, когда компьютер, отправляющий сообщения, перевел время назад.
Кроме того, при передаче данных в сети может происходить перемешивание порядка следования пакетов данных, соответственно, использование предложенного способа позволяет с помощью списка принятых пакетов контролировать прием пакетов данных с меньшим порядковым номером, чем раннее принятые.
В результате, предотвращается повторный прием пакетов в установленном промежутке времени рассогласования.
R
L,
Наличие временной метки позволяет отказаться от двухсторонней фиксации факта создания соединения. Например, можно рассмотреть самый неблагоприятный случай для данного способа. Если по каким-либо причинам источник обнулил счетчик исходящих пакетов и перевел время назад в рамках промежутка рассогласования времени, то в этом случае приемник начнет принимать пакеты в предельном случае не позднее чем через 2А, так как первый же пакет, для которого выполнится условие T>T переведет информацию об источнике в актуальное состояние. Причем, если происходит только обнуление счетчика или только перевод времени, приемник сохраняет способность принимать пакеты от источника.
Краткое описание чертежей
На чертеже показана схема, поясняющая процесс проверки на повтор принятого пакета.
Осуществление изобретения
Рассмотрим пример реализации предложенного способа в сети для компьютерной системы, включающей компьютеры, отправляющие сообщения в виде последовательности пакетов цифровых данных через сеть передачи данных, и компьютеры, принимающие сообщения и связанные с другими компьютерами через сеть передачи данных.
В качестве программного обеспечения (ПО), обеспечивающего выполнение действий предложенного способа, могут быть использованы специально разработанные (доработанные) программы или функции в составе стандартного сетевого ПО.
Компьютеры в сети могут работать под управлением операционной системы (ОС) общего назначения, например Microsoft Windows 7.
Обмен между отправителем и получателем может быть организован с помощью UDP протокола, где формат тела UDP дейтаграммы имеет следующий вид, поясняемый приведенной ниже таблицей.
← 8 байт →
← 8 байт →
← 8 байт →
← 0 и более байт →
Порядковыйномер
Времяотправки
Имитовставка
Полезные данные
В дейтаграмме используются следующие параметры. Порядковый номер - 64-разрядное число, формируемое отправителем. Время отправки - время, закодированное в 64-разрядное число, например Unix время.
Имитовставка - данные для проверки целостности, например, в соответствии с ГОСТ 28147-89. Контроль целостности может осуществляется как для всего пакета (с полем "Имитовставка" равным 0), так и только для метаданных (порядковый номер, время отправки).
Полезные данные - это данные, для которых применяется механизм предотвращения повторов.
Для непосредственного использования предложенного способа на компьютеры в сети загружаются соответствующие программные модули с предварительно заданным и введенным значением Δ (величина промежутка времени рассогласования).
Величина промежутка времени рассогласования определяется исходя из желаемого времени восстановления связи между отправителем и получателем и допустимой разности показания локальных часов на отправителе и получателе. Для большинства случаев приемлемым будет Д=5 минут.
Программный модуль подготавливает область памяти для счетчика порядковых номеров пакетов на отправку. Для каждого отправителя, от которого будут приниматься пакеты, подготавливается область памяти для хранения времени отправки последнего принятого пакета, порядкового номера последнего принятого пакета, списка порядковых номеров ранее принятых пакетов. Список порядковых номеров ранее принятых пакетов можно организовать в виде битового массива, например, так, как это предложено в описании протокола IPsec [1,2].
Затем программный модуль-отправитель формирует пакет, включающий: полезные данные, порядковый номер, время отправки, имитовставку. В поле "Порядковый номер" сохраняется значение счетчика порядковых номеров пакетов на отправку, затем значение счетчика увеличивается на единицу. Поле "Время отправки" содержит значение времени на момент отправки. Поле "Имитовставка" содержит значение имитовставки, рассчитанное по ГОСТ 28147-89 для метаданных (порядковый номер, время отправки).
Программный модуль приемника принимает пакет, проверяет целостность метаданных с помощь имитовставки. Если значение имитовставки, рассчитанное в компьютере-приемнике, не совпадает с содержащимся в пакете значением, то пакет отклоняется. Если значение имитовставки совпало, то выполняется проверка на повтор.
Проверка на повтор принятого пакета состоит из следующих действий:
- если время отправки принятого пакета выходит за пределы промежутка времени рассогласования, то отклоняют пакет;
- если время отправки пакета находится в пределах промежутка времени рассогласования, то
- сравнивают время отправки принятого пакета с временем отправки последнего принятого пакета;
- если время отправки принятого пакета больше времени отправки последнего принятого пакета, то
- заменяют время отправки последнего принятого пакета на время отправки принятого пакета;
- заменяют номер последнего принятого пакета на номер принятого пакета;
- заносят номер принятого пакета в список порядковых номеров ранее принятых пакетов;
- принимают пакет;
- если время отправки принятого пакета не превышает времени отправки последнего принятого пакета, то
- сравнивают номер последнего принятого пакета с номером принятого пакета;
- если номер последнего принятого пакета меньше номера принятого пакета, то
- заменяют номер последнего принятого пакета на номер принятого пакета;
- заносят номер принятого пакета в список порядковых номеров ранее принятых пакетов;
- принимают пакет;
- если номер последнего принятого пакета больше или равен номеру принятого пакета, то
- проводят поиск номера принятого пакета в списке порядковых номеров ранее принятых пакетов;
- если номер принятого пакета найден в списке порядковых номеров ранее принятых пакетов, то отклоняют принятый пакет;
- если номер принятого пакета не найден в списке порядковых номеров ранее принятых пакетов, то
- заносят номер принятого пакета в список порядковых номеров ранее принятых пакетов и
- принимают принятый пакет.
Необходимо отметить, что возможны и другие варианты реализации предложенного способа, отличающиеся от описанного выше и зависящие от личных предпочтений при программировании отдельных действий и функций.
Источники информации, принятые во внимание при составлении заявки
1. RFC 4302 - Идентификационный заголовок IP, 2005, материал по адресу http://rfc2.ru/4302.rfc.
2. RFC 4303 - Инкапсуляция защищенных данных IP (ESP), материал по адресу http://rfc2.ru/4303.rfc.
3. Заявка США №20080260151, приоритет от 23.10.2008 г., МКИ Н04К 1/00.