СПОСОБ ИЗОЛЯЦИИ ПАКЕТОВ ДАННЫХ, ПЕРЕДАВАЕМЫХ ПО СЕТЯМ ОБЩЕГО ПОЛЬЗОВАНИЯ В ФОРМАТЕ ПРОТОКОЛОВ СЕМЕЙСТВА TCP/IP, С ПОМОЩЬЮ КОМБИНАЦИИ СПОСОБОВ МАСКИРОВАНИЯ, ШИФРОВАНИЯ И КОНТРОЛЯ ПОЛУЧАЕМЫХ ДАННЫХ
METHOD FOR ISOLATING DATA PACKETS TRANSMITTED OVER PUBLIC NETWORKS IN THE TCP/IP FAMILY PROTOCOL FORMAT USING A COMBINATION OF MASKING, ENCRYPTION AND CONTROL METHODS FOR THE RECEIVED DATA

Область техники, к которой относится изобретение
Изобретение относится к области передачи цифровой информации, и более конкретно к способу изоляции пакетов данных, передаваемых по сетям общего пользования, для создания безопасной среды взаимодействия между узлами распределённой информационной системы. Применение способа согласно изобретению обеспечивает создание безопасной среды взаимодействия между узлами распределенной частной информационной системы.
Уровень техники
В источнике CN 110941862 A (POI T GUANGZHOU IND INTERNET CO LTD, опубликовано 31.03.2020) раскрыта система изоляции данных на основе программируемой логической интегральной схемы (FPGA), содержащая приёмопередающий модуль Интранет, модуль шифрования и дешифрования пакетов данных, модуль подписи пакетов данных и модуль хранения данных, реализованные на стороне FPGA, а также модуль анализа управления доступом к среде (MAC), модуль брандмауэра, первый высокоскоростной приёмопередающий модуль интерфейса, второй высокоскоростной приёмопередающий модуль интерфейса, модуль выбора сетевого протокола, модуль протокола передачи и приёмопередающий модуль для внешних сетей передачи данных. К недостаткам данного известного решения можно отнести то, что оно реализовано с привлечением большого количества аппаратных средств, вследствие чего для реализации изоляции пакетов данных в сетях общего пользования необходимо дополнение стандартного оборудования, задействованного в обмене данными, большим количеством дополнительных аппаратных модулей, что усложняет аппаратную реализацию системы и снижает её пригодность для использования при обмене данными в сетях общего пользования.
В источнике CN 111711615 A (CHENGDU JINSUNZHIAN TECH CO LTD, опубликовано 25.09.2020) раскрыта система синхронизации информации в базах данных и способ, реализуемый в вычислительном узле системы защиты информации. Известная система содержит внешний сетевой узел, внешний блок обработки, область пересылки изолируемых данных, внутренний блок обработки и внутренний сетевой узел. Внешний сетевой узел передаёт информацию, подлежащую синхронизации, во внешний блок обработки, который осуществляет разложение принятого пакета данных по протоколу TCP/IP и переупаковывает пакет данных по протоколу TCP/IP в пакет данных по специальному протоколу. Область пересылки изолируемых данных последовательно соединена с внешним блоком обработки и внутренним блоком обработки и осуществляет пересылку пакета данных по специальному протоколу во внутренний блок обработки, который переупаковывает пакет данных по специальному протоколу в пакет данных по протоколу TCP/IP, который затем пересылает на внутренний сетевой узел, обрабатывающий принятый пакет для получения данных синхронизации базы данных и осуществляющий синхронизацию в соответствии с установленной стратегией синхронизации. К недостаткам данного известного решения можно отнести то, что использование специального протокола демаскирует защищённую передачу данных, указывая потенциальному злоумышленнику на то, что в данный момент осуществляется защищённая передача данных.
Раскрытие изобретения
Данный раздел, раскрывающий различные аспекты и варианты выполнения заявляемого изобретения, предназначен для представления краткой характеристики заявляемых объектов изобретения и вариантов его выполнения. Подробная характеристика технических средств и методов, реализующих сочетания признаков заявляемых изобретений, приведена ниже. Ни данное раскрытие изобретения, ни нижеприведённое подробное описание и сопровождающие чертежи не следует рассматривать как определяющие объём заявляемого изобретения. Объём правовой охраны заявляемого изобретения определяется исключительно прилагаемой формулой изобретения.
С учётом вышеуказанных недостатков уровня техники, проблема, решаемая предлагаемым изобретением, состоит в защите данных, передаваемых по существующим сетям передачи данных, с минимальной модификацией аппаратного и/или программного обеспечения, задействованных в обмене данными, таким образом, что потенциальный внешний наблюдатель не будет иметь сведений о том, что осуществляется защищённая передача данных, а также о том, какими именно средствами защищаются передаваемые данные.
Технический результат, достигаемый при использовании заявляемого изобретения, состоит в повышении безопасности обмена данными в сети передачи данных.
Задача изобретения состоит в создании способа изоляции пакетов данных, который обеспечивал бы надёжную защищённую передачу данных при минимальной модификации существующей сети передачи данных как в части программного и/или аппаратного обеспечения, так и в части протоколов и/или правил, применяемых при передаче данных.
В первом аспекте настоящего изобретения задача решается модулем изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, который встроен между сетевым адаптером и модулем протоколов канального уровня, при этом модуль изоляции пакетов данных выполнен с возможностью обработки пакетов данных, передаваемых с уровня сетевых протоколов на уровень сетевых адаптеров и с уровня сетевых адаптеров на уровень сетевых протоколов, для преобразования пакетов данных, при этом преобразование пакетов данных содержит:
определение идентификатора соединения для получателя обрабатываемого пакета данных;
вычисление смещения относительно начала обрабатываемого пакета данных и размера исходных данных для сжатия и/или зашифровывания;
создание копии исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку;
инициализацию и заполнение структуры сопроводительных данных для обрабатываемого пакета данных;
вычисление диверсифицированного ключа на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных;
шифрование данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных;
шифрование части структуры сопроводительных данных;
вычисление контрольной суммы всех зашифрованных данных и помещение вычисленной контрольной суммы в структуру сопроводительных данных;
вычисление значения маскированного идентификатора способа на основании значений идентификатора способа и контрольной суммы зашифрованных данных, и помещение вычисленного значения маскированного идентификатора способа в структуру сопроводительных данных;
формирование ключа шифрования для идентификатора соединения на основании значений идентификатора способа, маскированного идентификатора способа и значения из области данных D;
шифрование идентификатора соединения и помещение зашифрованного значения идентификатора соединения в структуру сопроводительных данных;
вычисление смещения для структуры сопроводительных данных в пакете обрабатываемых данных;
повторное вычисление контрольной суммы IP-заголовка и запись повторно вычисленной контрольной суммы в структуре пакета обрабатываемых данных; и
модуль изоляции пакетов данных выполнен с возможностью передачи данных от отправителя получателю через стандартные сетевые маршрутизирующие устройства в сетях общего пользования и/или в локальных сетях, при этом передаваемые данные содержат пакеты данных, преобразованные посредством модуля изоляции пакетов данных.
Во втором аспекте задача изобретения решается способом изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, причём способ содержит этапы, на которых:
принимают посредством модуля изоляции пакетов данных, встроенного между сетевым адаптером и модулем протоколов канального уровня, пакеты данных, передаваемые с уровня сетевых протоколов на уровень сетевых адаптеров и с уровня сетевых адаптеров на уровень сетевых протоколов;
выполняют посредством модуля изоляции пакетов данных преобразование принимаемых пакетов данных в формат, в котором пакеты данных не дают стороннему наблюдателю информации об истинных протоколах взаимодействия между сторонами сетевого обмена и об источнике и приемнике данных и способах воздействия на них, при этом преобразование пакетов данных содержит этапы, на которых:
определяют идентификатор соединения для получателя обрабатываемого пакета данных;
вычисляют смещение относительно начала обрабатываемого пакета данных и размер исходных данных для сжатия и/или зашифровывания;
создают копию исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку;
инициализируют и заполняют структуру сопроводительных данных для обрабатываемого пакета данных;
вычисляют диверсифицированный ключ на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных;
выполняют шифрование данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных;
выполняют шифрование части структуры сопроводительных данных;
вычисляют контрольную сумму всех зашифрованных данных и помещают вычисленную контрольную сумму в структуру сопроводительных данных;
вычисляют значение маскированного идентификатора способа на основании значений идентификатора способа и контрольной суммы зашифрованных данных, и помещают вычисленное значение маскированного идентификатора способа в структуру сопроводительных данных;
формируют ключ шифрования для идентификатора соединения на основании значений идентификатора способа, маскированного идентификатора способа и значения из области данных D;
выполняют шифрование идентификатора соединения и помещают зашифрованное значение идентификатора соединения в структуру сопроводительных данных;
вычисляют смещение для структуры сопроводительных данных в пакете обрабатываемых данных;
повторно вычисляют контрольную сумму IP-заголовка и записывают повторно вычисленную контрольную сумму в структуре пакета обрабатываемых данных; и
передают данные от отправителя получателю через стандартные сетевые маршрутизирующие устройства в сетях общего пользования и/или в локальных сетях, при этом передаваемые данные содержат пакеты данных, преобразованные посредством модуля изоляции пакетов данных.
Специалистам в данной области техники будет очевидно, что помимо вышеперечисленных объектов изобретения изобретательский замысел, лежащий в основе настоящего изобретения, может быть реализован в форме других объектов изобретения.
Краткое описание чертежей
Чертежи приведены в настоящем документе для облегчения понимания сущности настоящего изобретения. Чертежи являются схематичными и выполнены не в масштабе. Чертежи служат исключительно в качестве иллюстрации и не предназначены для определения объема настоящего изобретения.
На Фиг. 1 показана условная блок-схема модуля изоляции пакетов данных согласно изобретению и проиллюстрировано встраивание модуля согласно изобретению между уровнем сетевых протоколов и сетевым адаптером.
На Фиг. 2 показана блок-схема примерного варианта осуществления способа изоляции пакетов данных согласно изобретению.
На Фиг. 3 показана схема обработки пакета данных перед передачей пакета на отправку в соответствии со способом изоляции пакетов данных согласно изобретению.
Осуществление изобретения
Учитывая недостатки известных решений, рассмотренных выше, настоящее изобретение направлено на создание способа изоляции пакетов данных, передаваемых между узлами сети передачи данных общего пользования. Предложенный способ изоляции пакетов данных по существу обеспечивает протокол, выполняющий задачу построения частных и корпоративных вычислительных сетей с высокой степенью защищенности от внешних атак, направленных как на проникновение в частную или корпоративную сеть, так и на похищение частных или корпоративных данных, передаваемых по сетям общего пользования. Свойства протокола обеспечивают его применение с минимальными затратами благодаря наложению способа изоляции пакетов данных на уже имеющуюся инфраструктуру частной или корпоративной сети. Предлагаемый способ реализуется модулем изоляции пакетов данных, встраиваемым в существующую сеть передачи данных между сетевым адаптером и модулем протоколов канального уровня.
К ключевым характеристикам способа изоляции пакетов данных согласно изобретению следует отнести операции, связанные с дополнением передаваемых данных идентификаторами, что позволяет исключить этап аутентификации отправителя данных на стороне получателя и использовать симметричные методы шифрования данных, передаваемых по информационным каналам связи как в локальных сетях, так и в сетях общего назначения. В основе изобретательского замысла, реализуемого предлагаемой группой изобретений, лежит дополнение передаваемых данных двумя видами идентификаторов, которые размещаются по определённым правилам в блоках (пакетах) данных, передаваемых по сетям передачи данных:
1. Идентификатор применения к обрабатываемому пакету данных способа изоляции пакетов данных согласно изобретению. Наличие данного идентификатора в принимаемых данных в явном или преобразованном виде указывает на применение предлагаемого способа изоляции пакетов данных. Смещение положения идентификатора в принимаемом блоке данных (пакете) относительно начала данных является настраиваемым параметром для соединения в каждом конкретном варианте выполнения способа согласно изобретению.
2. Идентификатор соединения. Данный идентификатор указывает на применение однозначно связанного с ним ключа шифрования для преобразования данных в соответствии со способом согласно изобретению. Смещение положения идентификатора в передаваемом блоке данных (пакете) относительно начала данных является настраиваемым параметром для соединения в каждом конкретном варианте выполнения способа согласно изобретению.
Ниже будут описаны конкретные данные, которыми дополняются пакеты данных, преобразуемые предлагаемым способом изоляции пакетов данных согласно изобретению, а также конкретные операции с этими данными, включающие в себя, в частности, перемещение данных в составе пакета, зашифровывание всех данных или их части с применением соответствующего алгоритма и/или ключа шифрования, вычисление контрольной суммы и т.п. Следует понимать, что описываемые действия не относятся лишь к математическим методам, правилам интеллектуальной деятельности, представлению информации и т.п. как таковым, а представляют собой в известном смысле операции, выполняемые над материальным объектом (в частности, сигналом) материальными средствами (в частности, вычислительными средствами одного или более компьютеров, процессоров, интегральных схем и т.п.) с получением технического результата, который состоит в повышении безопасности обмена данными в сети передачи данных, как указано выше.
Модуль изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, согласно изобретению встроен между сетевым адаптером и модулем протоколов канального уровня. Модуль изоляции пакетов данных согласно изобретению может содержать по меньшей мере блок обработки информационных запросов и команд управления, блок обработки принимаемых пакетов и блок обработки отправляемых пакетов. Модуль изоляции пакетов данных взаимодействует с интерфейсом взаимодействия сетевого адаптера с модулем стека протоколов TCP/IP, с одной стороны, и с модулем стека протоколов TCP/IP, с другой стороны. Следует отметить, что варианты реализации модуля изоляции пакетов данных согласно изобретению могут представлять собой различные сочетания аппаратных и программных компонентов, и объём изобретения не ограничен каким-либо конкретным сочетанием аппаратных и/или программных компонентов, реализующим модуль изоляции пакетов данных, осуществляющий способ изоляции пакетов данных согласно изобретению. Конкретные сочетания материально-технических средств, реализующих модуль и/или способ изоляции пакетов данных согласно изобретению, будут очевидны специалистам в данной области техники. Следует отметить, однако, что для реализации изобретения существуют в общем следующие условия.
Способ изоляции пакетов данных согласно изобретению осуществляется в условиях обмена данными между сетевыми узлами по сети связи (сети передачи данных). Соответственно, для его реализации необходимо соответствующее вычислительное и связное оборудование, конкретные примеры которого сами по себе хорошо известны специалистам в данной области техники, и которое должно иметь следующие компоненты:
- процессор или программируемую логическую интегральную схему для реализации алгоритма преобразования обрабатываемых пакетов данных;
- постоянное запоминающее устройство для хранения данных;
- оперативную память для размещения данных, участвующих в преобразовании обрабатываемых пакетов данных;
- сетевой адаптер, позволяющий модулю изоляции пакетов данных взаимодействовать с другими устройствами в сети;
- шины данных, соединяющие между собой компоненты, перечисленные выше.
Кроме того, способ согласно изобретению реализуется в условиях операционной системы, управляющей одним или более компьютерами, выполняющими функции узлов-участников обмена данными. Способ согласно изобретению может быть реализован в условиях по существу любой из известных специалистам в данной области техники операционных систем. В качестве неограничивающего примера, возможность встраивания модуля, реализующего способ изоляции пакетов данных согласно изобретению, обеспечивается операционными системами (ОС) семейства Windows начиная с 98SE до 10, а также MacOS, Linux.
Модуль изоляции пакетов данных, реализующий способ изоляции пакетов данных в соответствии с изобретением, может быть встроен между сетевым адаптером и модулем, реализующим протоколы канального уровня (в качестве неограничивающего примера, протоколы семейства TCP/IP), называемым в контексте настоящего документа модулем протоколов канального уровня. Под встраиванием в контексте заявляемого изобретения следует понимать следующее: модуль изоляции пакетов данных встраивается согласно изобретению в цепочку обработки всех сетевых пакетов, отправляемых с уровня сетевых протоколов на уровни сетевых адаптеров и принимаемых с уровня сетевых адаптеров и направляемых на уровень сетевых протоколов. Кроме того, модуль изоляции пакетов данных выполнен с возможностью перехвата и изменения (модификации) команд управления и запросов, направляемых на уровень сетевых адаптеров.
Способ согласно изобретению обеспечивает возможность передачи модулям протоколов (например, модулю протоколов канального уровня) информации об уменьшении максимального размера пакета данных для реализации описываемого способа, что подразумевает снижение полезной нагрузки пакета на некоторую величину. Уменьшение максимального размера пакета данных согласно предлагаемому способу необходимо, в частности, для обеспечения возможности дополнения обрабатываемых пакетов данных структурой сопроводительных данных, как будет подробно описано ниже.
Способ согласно изобретению обеспечивает возможность маскирования и/или отключения возможностей сетевого адаптера, препятствующих осуществлению способа изоляции пакетов данных согласно изобретению.
В соответствии с изобретением, сторона (сетевой узел), принимающая устанавливаемые соединения, имеет постоянный IP-адрес, или существует маршрутизирующий узел с таким IP-адресом, который доставит пакет обрабатываемых данных упомянутому сетевому узлу, произведя сетевую трансляцию адреса получателя пакета (NAT). Сторона (сетевой узел), инициирующая установление соединения, обладает информацией об IP-адресе стороны, принимающей устанавливаемые соединения или, обладая информацией о доменном имени стороны (сетевого узла), принимающей устанавливаемые соединения, может получить IP-адрес от публичной или частной сетевой службы доменных имен.
Для реализации способа согласно изобретению на сетевом узле, участвующем в реализации способа, имеются вычислительные мощности для выполнения математических вычислений, обеспечивающих сжатие данных, шифрование данных, расчет криптографических контрольных сумм. Кроме того, на сетевом узле обеспечена возможность размещения в его оперативной памяти данных, необходимых для осуществления способа согласно изобретению модулем изоляции пакетов данных, как будет более подробно описано ниже.
К общим параметрам сетевых узлов распределённой информационной системы, которые необходимы для осуществления способа согласно изобретению, относятся следующие параметры.
M
1. Идентификатор признака применения к передаваемому пакету способа согласно изобретению (далее IdTech). На основе принятого общего идентификатора для каждого отправляемого пакета данных вычисляется маскированный идентификатор (далее IdTech) посредством необратимого преобразования значений идентификатора IdTech и криптографической контрольной суммы (т.е. хэш-суммы) зашифрованных данных передаваемого пакета.
2. Размер структуры сопроводительных данных, применяемой в способе согласно изобретению (далее TechHdrLen).
3. Размеры и положение отдельных элементов структуры сопроводительных данных.
4. Список IP протоколов и их параметров (для TCP/UDP – диапазоны портов), которыми могут маскироваться реальные протоколы.
5. Выбранный вариант размещения структуры сопроводительных данных, применяемой в способе согласно изобретению, в передаваемом пакете.
В последнем случае структура сопроводительных данных может быть размещена в передаваемом пакете, в качестве неограничивающего примера, либо после заголовка протокола маскирования, либо в конце пакета. Кроме того, в способе согласно изобретению также возможно переменное смещение структуры сопроводительных данных в составе передаваемого пакета. В качестве неограничивающего примера, переменное смещение структуры сопроводительных данных может быть вычислено для каждого передаваемого пакета на основании следующих критериев:
- размера текущего передаваемого пакета;
- размера заголовка пакета;
- размера выбранного протокола маскирования.
Для того чтобы сетевой узел, принимающий передаваемый пакет, мог воспроизвести вычисление смещения структуры сопроводительных данных для данного передаваемого пакета, смещение структуры сопроводительных данных должно вычисляться на сетевом узле, передающем пакет, после выполнения сжатия и шифрования данных.
После операций сжатия и шифрования данных, а также добавления структуры сопроводительных данных в пакет выполняется вычисление нового значения длины пакета. Для этого используется следующая формула:
IpLen = IpLenOriginal – CompressDecBytes + EncryptIncBytes + TechHdrLen + ProtSubstLen,
где IpLen – длина пакета в байтах после сжатия, шифрования и увеличения на величину, равную сумме размеров структуры сопроводительных данных и заголовка маскирования; IpLenOriginal – начальная длина пакета данных в байтах, полученная из заголовка пакета до его обработки способом согласно изобретению; CompressDecBytes – количество байт, на которое уменьшается размер начального пакета данных в результате выполнения сжатия данных пакета; EncryptIncBytes – количество байт, на которое увеличивается размер обрабатываемого пакета данных в результате выполнения шифрования в случае необходимости дополнения данных пакета до целого числа блоков; TechHdrLen – длина структуры сопроводительных данных, добавляемой в обрабатываемый пакет данных согласно предлагаемому способу; и ProtSubstLen – длина заголовка выбранного протокола маскирования в байтах.
Функция вычисления смещения структуры сопроводительных данных относительно начала обрабатываемого пакета данных имеет четыре параметра:
offset
TechHdrOffset = f(IpLen, IpHdrLen, ProtSubstHdrLen, TechHdrLen, kOffset),
где TechHdrOffset - смещение структуры сопроводительных данных в байтах относительно начала обрабатываемого пакета данных (в качестве неограничивающего примера, IP-пакета); IpLen - длина обрабатываемого пакета данных в байтах после сжатия, зашифровывания и увеличения на величину, равную размеру структуры сопроводительных данных; IpHdrLen – длина заголовка пакета обрабатываемых данных в байтах, полученная из заголовка пакета; ProtSubstHdrLen – длина заголовка выбранного протокола эмуляции в байтах; TechHdrLen – длина структуры сопроводительных данных (постоянная величина).
Тогда смещение данных относительно начала обрабатываемого пакета данных IpDataOffset=IpHdrLen+ProtSubstHdrLen, а размер данных IpDataLen=IpLen-(IpHdrLen+ProtSubstHdrLen+TechHdrLen).
TechHdrOffset=IpDataOffset+IpDataLen-IpDataLen/kOffset,
где kOffset – коэффициент смещения, представляющий собой целое положительное число (также может называться в контексте настоящей заявки коэффициентом смещения структуры дополняемых данных).
Если k=1, то структура сопроводительных данных размещается в начале обрабатываемого пакета данных, после заголовка протокола маскирования. Если kOffset > IpDataLen, то структура сопроводительных данных размещается в конце обрабатываемого пакета данных. Если необходимо, чтобы структура сопроводительных данных всегда размещалась в конце обрабатываемого пакета данных, kOffset должен быть больше величины максимальной длины обрабатываемого пакета данных за вычетом минимально возможных размеров заголовков (65535 – (20 + 8 + TechHdrLen)). Перед перемещением данных в обрабатываемом пакете данных на новое место на основании вычисленного коэффициента смещения обрабатываемые данные необходимо копировать во временный буфер. После сохранения обрабатываемых данных во временном буфере производится перенос данных пакета обрабатываемых данных из места, в котором необходимо разместить обрабатываемые данные, на место, освобожденное от них. После переноса обрабатываемых данных структура сопроводительных данных копируется на новое место на основании вычисленного смещения от начала пакета обрабатываемых данных.
Одним из ключевых аспектов способа изоляции пакетов данных согласно изобретению является дополнение пакетов данных, обрабатываемых заявляемым способом и передаваемых по сети передачи данных, структурой сопроводительных данных.Это подразумевает дополнение обрабатываемых согласно способу пакетов, передаваемых по сети передачи данных, данными, позволяющими принимающей стороне выполнить контроль целостности принятых данных и произвести обратные преобразования: идентификацию применения к пакету способа изоляции пакетов данных согласно изобретению, идентификацию отправителя пакета данных, дешифрование и распаковку данных, преобразование принятого пакета данных к исходному состоянию. Для обеспечения этих преобразований каждый пакет дополняется следующими данными, включёнными в структуру сопроводительных данных:
- данные диверсификации D, используемые для вычисления ключа шифрования данных пакета обрабатываемых данных. При инициализации заполняется значением, способ получения которого будет далее описан более подробно;
M
M
M
- маскированный идентификатор признака применения способа изоляции данных согласно изобретению IdTech. Вычисление значения маскированного идентификатора упомянутого признака осуществляется по формуле, которая должна обеспечивать необратимое преобразование: IdTech=f(IdTech, PacketDataHash);
Enc
- зашифрованный вспомогательным алгоритмом идентификатор соединения IdCon.
M
Ключ шифрования для получения упомянутого зашифрованного идентификатора создается на основе идентификатора признака применения способа согласно изобретению IdTech, маскированного идентификатора признака применения способа согласно изобретению IdTech и данных диверсификации D. Значение зашифрованного идентификатора соединения вычисляется по следующей формуле:
Enc
M
IdCon=ENC(IdCon, KEY(IdTech, IdTech, D)).
Исходное значение идентификатора соединения вычисляется по следующей формуле:
Enc
M
IdCon=DEC(IdCon, KEY( IdTech, IdTech, D));
- криптографическая контрольная сумма зашифрованных данных пакета, обрабатываемого способом изоляции пакетов данных согласно изобретению, PacketDataHash. Значение криптографической контрольной суммы вычисляется по следующей формуле:
PacketDataHash=HASH(IpDataEnc, IpLengthOrigin-IpHdrLen-CompressDecBytes+EncryptIncBytes).
Кроме того, согласно одному или более вариантам выполнения изобретения в вычисление криптографической контрольной суммы PacketDataHash могут дополнительно быть включены зашифрованные значения следующих элементов структуры сопроводительных данных:
- количество добавленных байтов при зашифровывании данных пакета обрабатываемых данных EncryptIncBytes;
- исходный размер в байтах пакета обрабатываемых данных, полученный из заголовка исходного пакета обрабатываемых данных до начала его преобразования способом согласно изобретению;
- исходный тип IP-протокола, полученный из заголовка пакета обрабатываемых данных до начала преобразования пакета способом согласно изобретению; и
- идентификатор применяемого способа сжатия данных перед шифрованием. Если идентификатор имеет значение «0», то сжатие данных не применялось.
Структура сопроводительных данных пакета обрабатываемых данных в способе согласно изобретению проиллюстрирована ниже в Таблице 1. В правом столбце Таблицы 1 показано, зашифрованы ли данные на диверсифицированном ключе соединения, как будет более подробно пояснено ниже.
Таблица 1. Структура сопроводительных данных пакета
Наименование
Описание
Данные зашифрованы?
D
Данные, используемые для диверсификации исходного ключа соединения
Нет
IdTech<sub>M</sub>
Маскированный идентификатор способа преобразования
Нет
IdCon<sub>Enc</sub>
Зашифрованный идентификатор соединения
Нет
PacketDataHash
Криптографическая контрольная сумма  зашифрованных данных пакета
Нет
EncryptIncBytes
Количество добавленных байтов при зашифровывании данных. Размер области дополнения
Да
IpLengthOrigin
Исходный размер в байтах IP пакета, изъятый из заголовка IP-пакета до начала преобразования
Да
IpProtocolOrigin
Исходный тип IP протокола, изъятый из заголовка IP-пакета до начала преобразования
Да
IdCompress
Идентификатор применяемого способа сжатия данных перед шифрованием
Да
Перед передачей пакета область, включающая в себя элементы области сопроводительных данных, описываемые в 5-8 строках Таблицы 1, зашифровывается с использованием диверсифицированного для данного конкретного пакета обрабатываемых данных ключа соединения. В связи с этим необходимо, чтобы суммарный размер в байтах этой части структуры сопроводительных данных мог быть обработан основным алгоритмом шифрования без дополнения.
В соответствии с одним или более вариантами выполнения способа согласно изобретению обработка пакетов данных включает в себя следующие этапы, проиллюстрированные на Фиг. 2.
На этапе S1 выполняется определение идентификатора соединения для получателя пакета данных. Данная операция производится для узлов клиента, партнера и сервера. Результатом выполнения данной операции является извлечение из собственной базы данных, которая будет описана ниже, идентификатора признака применения к пакету обрабатываемых данных способа изоляции пакетов данных согласно изобретению, а также идентификатора соединения. Если получатель пакета данных не идентифицирован, дальнейшая обработка пакета данных в соответствии с предлагаемым способом не производится, и пакет может быть передан как есть (без обработки по изоляции) или отброшен, в зависимости от настроек. Последовательность определения идентификатора соединения для получателя пакета данных состоит в следующем:
а) выполняется поиск значения идентификатора соединения в динамическом списке партнеров (TL) собственной базы данных на основании IP-адреса получателя пакета. Если значение идентификатора соединения найдено, производится назначение роли «партнера» своему узлу в контексте обработки данного пакета;
б) выполняется поиск значения идентификатора соединения в динамическом списке серверов (SL) собственной базы данных на основании IP-адреса получателя пакета. Если значение идентификатора соединения найдено, производится назначение роли «клиента» своему узлу в контексте обработки данного пакета;
в) если записи в таблице клиентов собственной базы данных отсутствуют, пакет данных может быть передан вышележащему протоколу или отброшен, в зависимости от настроек;
г) выполняется поиск значения идентификатора соединения в динамическом списке клиентов (CL) собственной базы данных на основании IP-адреса получателя (реального или присвоенного). Если идентификатор соединения найден, производится назначение роли «сервера» своему узлу в контексте обработки данного пакета и осуществляется переход к пункту 2, указанному ниже;
д) если поиск в таблице клиентов собственной базы данных не был успешным, пакет может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.
На этапе S2 в случае фрагментированной отправки пакета данных выполняется полная сборка (дефрагментация) всего отправляемого пакета данных.
На этапе S3 выполняется вычисление смещения относительно начала обрабатываемого пакета данных и размера исходных данных для сжатия и/или зашифровывания.
На этапе S4 создаётся копия исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку. После создания копии в пакете содержатся четыре области:
- область пакета, содержащая исходный IP-заголовок пакета, размером 20 байт и более. Размер IP-заголовка зависит от версии протокола IP и используемых опций протокола;
- область пакета, следующая за IP-заголовком пакета, оставляется свободной от данных пакета. Размер области определяется выбранным протоколом маскирования и составляет 8 байт для UDP и 20 байт для TCP;
- область пакета для размещения структуры сопроводительных данных;
- область пакета, содержащая исходные данные пакета, размером равным размеру исходного IP-пакета за вычетом размера IP-заголовка. В случае использования алгоритма шифрования с постоянным размером блока эта область дополняется до размера кратного размеру блока шифрования.
На этапе S5 осуществляется первичное формирование (инициализация) структуры сопроводительных данных с заполнением следующих элементов структуры:
- область данных, используемых для вычисления диверсифицированного ключа;
- идентификатор признака данного способа;
- идентификатор получателя пакета (идентификатора соединения);
- поле контрольной суммы зашифрованных данных пакета;
- поле исходного размера в байтах IP-пакета (Значение из IP- заголовка);
- поле исходного типа IP-протокола (Значение из IP-заголовка);
- поле используемого типа сжатия данных.
На этапе S6, если выбран метод сжатия данных, осуществляется сжатие данных. После сжатия данных вычисляется количество байтов, на которое уменьшился размер данных, и производится запись этого значения в структуру сопроводительных данных.
На этапе S7 вычисляется размер дополнения данных для обеспечения задачи шифрования и запись вычисленного значения в структуру сопроводительных данных. Дополненные байты инициируются псевдослучайным значением.
На этапе S8 осуществляется вычисление диверсифицированного ключа на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных, используемых для вычисления диверсифицированного ключа.
На этапе S9 осуществляется зашифровывание данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных.
На этапе S10 осуществляется зашифровывание части структуры сопроводительных данных за исключением элементов структуры, содержащих данные диверсификации, идентификатор способа, идентификатор соединения и область для контрольной суммы зашифрованных данных.
На этапе S11 осуществляется вычисление контрольной суммы всех зашифрованных данных и помещение ее в структуру сопроводительных данных.
На этапе S12 выполняется вычисление значения маскированного идентификатора способа согласно изобретению на основании значений идентификатора способа и контрольной суммы зашифрованных данных. Вычисленное значение маскированного идентификатора способа помещается в структуру сопроводительных данных.
На этапе S13 формируется ключ шифрования для идентификатора соединения на основании значений идентификатора способа, маскированного идентификатора способа и значения из области данных D.
На этапе S14 идентификатор соединения зашифровывается, и зашифрованное значение идентификатора соединения помещается в структуру сопроводительных данных.
На этапе S15 формируется новый заголовок UDP или TCP с вычислением новой контрольной суммы для выбранного протокола.
На этапе S16 вычисляется смещение согласно настройкам способа для структуры сопроводительных данных в пакете обрабатываемых данных. В случае, если текущее положение структуры сопроводительных данных в пакете обрабатываемых данных не соответствует требуемому (kOffset не равен 1), данные структуры сопроводительных данных переносятся в область данных в соответствии с вычисленным смещением. Данные, ранее находившиеся в рассматриваемой области, переносятся на место, которое ранее занимала структура сопроводительных данных.
На этапе S17 осуществляется фрагментация пакета, если производилась его полная сборка (дефрагментация).
На этапе S18 повторно вычисляется контрольная сумма IP-заголовка, которая записывается в структуре пакета обрабатываемых данных, после чего один или более пакетов обрабатываемых данных отправляются в сетевой адаптер.
Собственная база данных, применяемая в способе согласно изобретению, состоит из статических таблиц, динамических таблиц и связанных списков, которые вместе обеспечивают информационное обеспечение способа изоляции пакетов данных согласно изобретению. Статические таблицы хранятся в постоянной памяти модуля изоляции пакетов данных согласно изобретению. При загрузке модуля изоляции пакетов данных согласно изобретению данные из статических таблиц передаются в оперативную память модуля изоляции пакетов данных.
В нижеприведённой таблице 2 проиллюстрирован пример параметров, используемых в способе согласно изобретению, сохраняемых в статической таблице собственной базы данных.
Таблица 2. Статическая таблица параметров
Наименование
Описание
Размер данных
AllowNotIp
Разрешает или запрещает прием/отправку пакетов, не относящихся к семейству протоколов TCP/IP (пакетов, не имеющих IP-заголовка, за исключением ARP и RARP) без преобразования
2 бита
AllowUnicastIP
Разрешает или запрещает прием/отправку однонаправленных пакетов, относящихся к семейству протоколов TCP/IP и имеющих конкретный IP-адрес получателя пакета, без преобразования
2 бита
AllowMulticastIp
Разрешает или запрещает прием/отправку пакетов, относящихся к семейству протоколов TCP/IP и имеющих в качестве IP-адреса получателя пакетов групповой адрес, соответствующий группе сетевых узлов, без преобразования
2 бита
AllowBroadcastIP
Разрешает или запрещает прием/отправку пакетов, относящихся к семейству протоколов TCP/IP и имеющих в качестве IP-адреса получателя пакета широковещательный адрес, соответствующий всем сетевым узлам подсети, без преобразования
2 бита
IpProtocolSubst
Выбранный протокол маскирования
1 байт
PortSubst
Выбранный порт маскирования
2 байта
TimerFunctionPeriod
Интервал вызова функции периодического таймера (в секундах)
2 байта
kOffset
Коэффициент смещения структуры дополняемых данных в пакете
2 байта
В нижеприведённой таблице 3 проиллюстрирован пример таблицы узлов партнера в подсети партнёров в соответствии с изобретением.
Таблица 3. Таблица партнеров
Наименование
Описание
Размер данных
IDcon
Идентификатор соединения
4 или более байт
IP
IP–адрес партнера или подсети партнеров
4 байта
IPmask
Маска значимых двоичных разрядов, начиная со старшего, для значения IP (1-32). Если задано значение вне диапазона 1-32, то оно считается равным 32
6 бит
Password or Key
Пароль или исходный ключ соединения
Произвольный или зависит от алгоритма
Description
Наименование соединения
Произвольный
В нижеприведённой таблице 4 проиллюстрирован пример таблицы узлов сервера в подсети серверов в соответствии с изобретением.
Таблица 4. Таблица серверов
Наименование
Описание
Размер данных
IDcon
Идентификатор соединения
4 или более байт
IP
IP–адрес сервера или подсети серверов
4 байта
IPmask
Маска значимых двоичных разрядов, начиная со старшего, для значения IP (1-32). Если задано значение вне диапазона 1-32, то оно считается равным 32
6 бит
Password or Key
Пароль или исходный ключ соединения
Произвольный или зависит от алгоритма
Description
Наименование соединения
Произвольный
В нижеприведённой таблице 5 проиллюстрирован пример таблицы узлов клиента в подсети клиентов в соответствии с изобретением.
Таблица 5. Таблица клиентов
Наименование
Описание столбца таблицы
Размер данных
IDcon
Идентификатор соединения
4 или более байт
IP
IP–адрес клиента, может быть не задан (0.0.0.0)
4 байта
IPmask
Маска значимых двоичных разрядов, начиная со старшего, для значения IP (1-32). Если задано значение вне диапазона 1-32, то оно считается равным 32
6 бит
Password or Key
Пароль или исходный ключ соединения
Произвольный или зависимый от алгоритма
Description
Наименование соединения
Произвольный
Динамические данные формируются в процессе загрузки, настройки и работы модуля изоляции пакетов данных согласно изобретению.
Список параметров соединений уровня протоколов IP (PL) содержит записи для каждого активного соединения. Записи добавляются при создании соединений (приеме или отправке пакета с указанными в записи таблицы значениями, кроме значений времени приема и отправки последнего пакета) и удаляются по истечении предела времени неактивности соединения. Ниже приведена структура элемента списка (PLI), проиллюстрированная в Таблице 6.
Таблица 6. Параметры соединений уровня протоколов IP
Наименование
Описание
Pointer2NextItem
Указатель на следующий блок параметров соединений
LocalIpAddr
IP-адрес локального узла
RemoteIpAddr
IP-адрес удаленного узла
IpProtocolSubst
Протокол маскирования, замещающий исходный в IP-заголовке пакета, используемый для данного соединения
LocalPortSubst
Порт локального узла протокола маскирования
RemotePortSubst
Порт удаленного компьютера протокола маскирования
IpProtocolOrigin
Исходный протокол данного соединения, находящийся в IP-заголовке отправляемого пакета до преобразования данным способом
LocalPortOrigin
Порт локального узла исходного протокола
RemotePortOrigin
Порт удаленного компьютера исходного протокола
LastSystemTimeReceive
Время, в которое был принят последний пакет
LastSystemTimeSend
Время, в которое был отправлен последний пакет
Связанные списки партнеров, клиентов и серверов формируются путем загрузки данных из статических таблиц, хранящихся в постоянной памяти (ПЗУ) модуля изоляции пакетов согласно изобретению, в оперативную память (ОЗУ) модуля согласно изобретению. Связанные списки партнёров, клиентов и серверов могут быть модифицированы в процессе работы модуля изоляции пакетов данных согласно изобретению.
В таблице 7 ниже проиллюстрированы параметры, определяющие структуру элемента списка (TLI) партнеров (туннельных соединений) (TL).
Таблица 7. Параметры элемента списка партнёров
Наименование
Описание
Pointer2NextItem
Указатель на следующий элемент в списке
ID
Идентификатор партнера
IPaddress
IP-адрес партнера(партнерской подсети)
IPmask
IP-маска партнерской подсети
1stRecvSysTime
Системное время приёма первого пакета
LastRecvSysTime
Системное время приёма последнего пакета
Pointer2ConnectionsList
Указатель на связанный список соединений для указанного партнерского ID
Password
Пароль для данного партнера (партнерской подсети). На основе пароля формируется исходный ключ шифрования
Key
Указатель на область памяти, в которой размещен ключ шифрования для данного партнера (партнерской подсети). Ключ может формироваться при необходимости преобразования пакета при отправке или получении и удаляться при отсутствии взаимодействия с данным партнером (партнерской подсетью)
В Таблице 8 ниже приведена структура элемента списка (SLI) серверов (SL).
Таблица 8. Параметры структуры элемента списка серверов (SLI)
Наименование
Описание
Pointer2NextItem
Указатель на следующий элемент в списке
ID
Идентификатор партнера
IPaddress
IP-адрес сервера (серверной подсети)
IPmask
IP-маска серверной подсети
1stRecvSysTime
Системное время приёма первого пакета
LstRecvSysTime
Системное время приёма последнего пакета
Pointer2ConnectionsList
Указатель на связанный список соединений для данного серверного ID
Password
Пароль для данного сервера (серверной подсети). На основании пароля формируется исходный ключ шифрования
Key
Указатель на область памяти, в которой размещен ключ шифрования для данного сервера (серверной подсети). Ключ может создаваться при необходимости преобразования пакета при отправке или получении и удаляться при отсутствии взаимодействия с данным сервером (серверной подсетью)
В Таблице 9 ниже приведена структура элемента списка (CLI) клиентов (CL).
Таблица 9. Параметры структуры элемента списка клиентов (CLI)
Наименование
Описание
Pointer2NextItem
Указатель на следующий элемент в списке
ID
Идентификатор клиента
IPaddress
IP-адрес клиента, реальный или присвоенный ему для идентификации при отправке
CurrentIPaddress
Текущий IP-адрес узла-клиента, с которого на узел-сервер приходят от него пакеты и на который отправляет пакеты сервер
1stRecvSysTime
Системное время приёма первого пакета
LstRecvSysTime
Системное время приёма последнего пакета
Pointer2ConnectionsList
Указатель на связанный список соединений для данного клиентского ID
Password
Пароль для данного клиента (клиентской подсети). На основании пароля создается исходный ключ шифрования
Key
Указатель на область памяти, где размещен ключ шифрования для данного клиента (клиентской подсети). Ключ может формироваться при необходимости преобразования пакета при отправке или получении и удаляться при отсутствии взаимодействия с данным сервером (серверной подсетью)
В таблице 10 ниже проиллюстрированы связанные списки накопления фрагментов пакетов. Используются два изолированных связанных списка: для дефрагментации пакетов при приеме и при отправке.
Таблица 10. Параметры элемента списка накопления фрагментов пакетов
Наименование
Описание
SystemTime
Время, в которое был обработан последний фрагмент пакета
Counter
Счетчик обработанных фрагментов
BytesWritten
Количество сохраненных байтов данных пакета
BytesNeeded
Ожидаемое количество байтов данных пакета
IpHeader
Заголовок IP-пакета
IpDataSize
Размер буфера хранения данных
IpData
Буфер данных IP-пакета
Далее поясняется алгоритм шифрования, применяемый в способе изоляции пакетов данных согласно изобретению. Следует понимать, что изобретение не ограничено подробностями характеристики алгоритма шифрования, и вместо описанного в качестве примера алгоритма может быть применён другой аналогичный или эквивалентный алгоритм, как будет очевидно специалистам в данной области техники.
В способе изоляции пакетов данных согласно изобретению предусмотрено два назначения применения алгоритмов криптографических преобразований:
а) основной алгоритм шифрования данных пакета на диверсифицируемом ключе соединения;
б) вспомогательный алгоритм шифрования значения идентификатора соединения в области дополняемых данных пакета на ключе, формируемом с использованием идентификатора признака применения способа изоляции пакетов данных согласно изобретению, маскированного идентификатора признака применения способа согласно изобретению и значения из области сопроводительных данных пакета D.
Общие характеристики алгоритмов следующие:
а) симметричный алгоритм, т.е. при зашифровывании и расшифровывании данных используется один и тот же криптографический ключ;
б) блочный алгоритм - данные разделяются на части (блоки), определяемого алгоритмом размера и с каждой частью производятся криптографические преобразования;
в) алгоритм с возможностью быстрой диверсификации (модификации) ключа при зашифровывании и расшифровывании каждого нового пакета данных. Для каждого пакета и идентификатора соединения используется свой ключ зашифровывания, полученный путем преобразования исходного ключа. Преобразование должно быть воспроизводимым на стороне приема пакета.
Основной алгоритм шифрования дополнительно должен обладать одним из свойств:
1) осуществлять криптографическое преобразование данных, оперируя постоянным размером блока. В этом случае область данных зашифровывается блоками равного размера, определяемого выбранным алгоритмом. Если размер последнего участка данных менее размера блока, он дополняется до размера блока. Максимальный размер дополнения равен размеру блока, уменьшенному на 1. В связи с этим целесообразно использовать алгоритм с размером блока не более 8 байтов. При расшифровывании область данных расшифровывается блоками, а затем, если последний участок дополнялся некоторым количеством байт, размер области данных уменьшается на это значение,
2) осуществлять криптографическое преобразование данных, оперируя переменным размером блока, позволяющим проводить операции с пакетом данных размером от 20 до 65535 байт без увеличения размера шифрованных данных относительно размера исходных данных или с незначительным увеличением до 8 байтов.
Для вспомогательного алгоритма шифрования определяются следующие требуемые характеристики. Существует быстрый алгоритм создания диверсифицированного ключа на базе значений идентификатора признака применения способа, маскированного идентификатора признака применения способа и данных, используемых для диверсификации ключа. Размер блока применяемого алгоритма является постоянным и всегда равен или кратен размеру в байтах, определенному для зашифрованного идентификатора соединения.
Для повышения стойкости криптозащиты передаваемой информации каждый передаваемый блок информации (пакет) должен быть зашифрован на уникальном ключе. Для этого применяется метод диверсификации исходного ключа. В соответствии с изобретением в применяемых алгоритмах шифрования обеспечивается многообразие ключа шифрования с использованием следующего принципа:
d
d
K=f(K,D), где
d
d
d
K - диверсифицированный ключ для передачи пакета между двумя узлами, K - исходный ключ соединения между двумя узлами, D - данные, используемые для получения диверсифицированного ключа K; f(…) - псевдослучайная функция диверсификации.
В качестве данных, используемых для получения диверсифицированного ключа, в соответствии с изобретением предлагается использовать псевдослучайную величину, значение текущего времени, их сочетание или контрольную сумму значений. Основная задача применяемого метода диверсификации исходного ключа состоит в обеспечении надежной изменчивости данных D.
Далее будет рассмотрена обработка данных пакетов, изолируемых способом согласно предлагаемому изобретению, при приёме и передаче данных, соответственно. Для начала будет описана процедура обработки данных при передаче.
При передаче пакетов данных, обрабатываемых способом согласно изобретению, производятся следующие последовательные действия.
Сначала определяется идентификатор соединения для получателя пакета данных. Данная операция производится для узлов клиента, партнера и сервера. Результатом выполнения данной операции является извлечение из собственной базы данных идентификатора признака применения к передаваемому пакету способа согласно изобретению и идентификатора соединения. Если получатель пакета не идентифицирован, дальнейшая обработка передаваемого пакета не производится (то есть, в зависимости от настроек, пакет может быть передан как есть или отброшен). Последовательность определения идентификатора соединения и идентификатора признака применения к передаваемому пакету способа согласно изобретению следующая.
Сначала производится поиск по IP-адресу получателя пакета значения идентификатора соединения в динамическом списке партнеров (TL) собственной базы данных. Если идентификатор соединения найден, производится назначение роли «партнера» своему узлу в контексте обработки данного пакета и осуществляется переход к полной сборке (дефрагментации) всего отправляемого пакета данных в случае фрагментированной отправки.
Далее производится поиск по IP-адресу получателя пакета значения идентификатора соединения в динамическом списке серверов (SL) собственной базы данных. Если идентификатор соединения найден, производится назначение роли «клиента» своему узлу в контексте обработки данного пакета, после чего, опять же, в случае необходимости осуществляется переход к полной сборке (дефрагментации) всего отправляемого пакета данных в случае фрагментированной отправки.
Если записи в таблице клиентов собственной базы данных отсутствуют, обрабатываемый пакет данных может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.
Далее производится поиск по IP-адресу получателя (реальному или присвоенному) значения идентификатора соединения в динамическом списке клиентов (CL) собственной базы данных. Если идентификатор соединения найден, производится назначение роли «сервера» своему узлу в контексте обработки данного пакета после чего, опять же, в случае необходимости осуществляется переход к полной сборке (дефрагментации) всего отправляемого пакета данных в случае фрагментированной отправки. Если поиск в таблице клиентов собственной базы данных не выдал соответствующую запись в базе данных, пакет может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.
Затем, в случае фрагментированной отправки, при необходимости производится полная сборка (дефрагментация) всего отправляемого пакета данных. После этого вычисляется смещение относительно начала пакета и размер исходных данных для сжатия и (или) зашифровывания. Создаётся копия исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку. После создания копии в пакете содержатся четыре области:
а) область пакета, содержащая исходный IP-заголовок пакета, размером 20 байт и более. Размер IP-заголовка зависит от версии протокола IP и используемых опций протокола;
б) область пакета, следующая за IP-заголовком пакета, оставляется свободной от данных пакета. Размер области определяется выбранным протоколом маскирования и составляет 8 байт для UDP и 20 байт для TCP;
в) область пакета для размещения структуры сопроводительных данных;
г) область пакета, содержащая исходные данные пакета, имеющая размер, равный размеру исходного IP-пакета за вычетом размера IP-заголовка. В случае использования алгоритма шифрования с постоянным размером блока эта область дополняется до размера, кратного размеру блока шифрования.
Далее осуществляется первичное формирование (инициализация) структуры сопроводительных данных с заполнением следующих элементов структуры:
а) инициализация области данных, используемых для вычисления диверсифицированного ключа;
б) запись идентификатора признака применения к передаваемому пакету способа согласно изобретению;
в) запись идентификатора  получателя пакета (идентификатора соединения);
г) инициализация поля контрольной суммы зашифрованных данных пакета;
д) запись исходного размера в байтах IP-пакета (значение из IP-заголовка);
е) запись исходного типа IP-протокола (3начение из IP-заголовка);
ж) запись используемого типа сжатия данных.
Далее, если выбран способ сжатия, выполняется сжатие данных обрабатываемого пакета, после чего выполняется вычисление количества байтов, на которое уменьшился размер данных обрабатываемого пакета, и производится запись этого значения в структуру сопроводительных данных. После этого вычисляется размер дополнения данных для обеспечения задачи шифрования, и вычисленное значение записывается в структуру сопроводительных данных. При этом дополненные байты инициируются псевдослучайным значением.
Диверсифицированный ключ шифрования вычисляется на основании ключа, соответствующего идентификатору соединения и значению из структуры сопроводительных данных, используемых для вычисления диверсифицированного ключа. Затем данные обрабатываемого пакета зашифровываются на диверсифицированном ключе. Кроме того, зашифровывается часть структуры сопроводительных данных за исключением элементов структуры, содержащих данные диверсификации, идентификатор признака применения способа согласно изобретению, идентификатор соединения и область для контрольной суммы зашифрованных данных.
Для всех зашифрованных данных вычисляется контрольная сумма, которая помещается в структуру сопроводительных данных. Кроме того, вычисляется значение маскированного идентификатора признака применения способа согласно изобретению на основании значений идентификатора признака применения способа согласно изобретению и контрольной суммы зашифрованных данных, вычисление которой произведено выше. Вычисленное значение маскированного идентификатора признака применения способа согласно изобретению помещается в структуру сопроводительных данных обрабатываемого пакета.
Затем для идентификатора соединения формируется ключ шифрования на основании значений идентификатора признака применения способа согласно изобретению, маскированного идентификатора признака применения способа согласно изобретению, а также значения из области данных D.
Далее зашифровывается идентификатор соединения. Зашифрованное значение идентификатора соединения помещается в структуру сопроводительных данных. Затем формируется новый заголовок UDP или TCP с вычислением новой контрольной суммы для выбранного протокола. Кроме того, для структуры сопроводительных данных в обрабатываемом пакете данных вычисляется смещение согласно конкретным настройкам способа согласно изобретению для данного случая передачи данных. В случае, если текущее положение структуры в пакете не соответствует требуемому (kOffset не равен 1), данные структуры сопроводительных данных переносятся в область данных в соответствии с вычисленным смещением. Те данные, что находились в этой области ранее, переносятся на место, которое ранее занимала структура сопроводительных данных.
Затем, если ранее осуществлялась полная сборка (дефрагментация) обрабатываемого пакета данных, выполняется его фрагментация. Осуществляется повторное вычисление и запись контрольной суммы IP-заголовка. Наконец, обрабатываемый(е) пакет(ы) данных в соответствии со способом согласно изобретению передаются на отправку в сетевой адаптер.
При приеме данных производится обработка данных в обратном порядке, а именно выполняется следующая последовательность операций.
Сначала определяется тип и идентификатор соединения, по которому принят обрабатываемый пакет данных. Для этого выполняются следующие операции. Осуществляется поиск по IP-адресу отправителя значения идентификатора соединения в таблице партнеров собственной базы данных. Если идентификатор соединения найден, производится назначение роли «партнера» своему узлу в контексте обработки данного пакета обрабатываемых данных и осуществляется переход к получению всего принимаемого пакета обрабатываемых данных.
Выполняется поиск по IP-адресу отправителя значения идентификатора соединения в таблице серверов собственной базы данных. Если идентификатор соединения найден, производится назначение роли «клиента» своему узлу в контексте обработки данного пакета и, опять же, осуществляется переход к получению всего принимаемого пакета обрабатываемых данных.
Если записи в таблице клиентов собственной базы данных отсутствуют, пакет может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.
Далее назначается роль «сервера» своему узлу в контексте обработки принимаемого пакета обрабатываемых данных. Для этого получают весь принимаемый пакет данных, определяют по заданным параметрам местоположение в принятом пакете структуры сопроводительных данных, извлекают из структуры сопроводительных данных значения маскированного идентификатора признака применения способа согласно изобретению и контрольной суммы зашифрованных данных.
Ожидаемое значение маскированного идентификатора признака применения способа согласно изобретению получается на основании заданного идентификатора признака применения способа согласно изобретению и контрольной суммы зашифрованных данных. Вычисленное значение маскированного идентификатора признака применения способа согласно изобретению сравнивают со значением, извлеченным из принятого пакета данных. Если упомянутые значения не совпали, дальнейшая обработка пакета не производится (пакет может быть передан вышележащему протоколу или отброшен, в зависимости от конкретных настроек).
Далее создаётся ключ шифрования для идентификатора соединения на базе значений идентификатора признака применения способа согласно изобретению, маскированного идентификатора признака применения способа согласно изобретению и данных диверсификации.
Из структуры сопроводительных данных извлекается зашифрованный идентификатор соединения, который после извлечения расшифровывается. В случае ролей «клиента» и «партнера», производится сравнение полученного идентификатора соединения с найденным в таблице по IP-адресу. В случае несовпадения пакет отбрасывается.
Далее осуществляется поиск в собственной базе данных ключа шифрования, применяемого для определенного ранее идентификатора соединения. В случае  если  запись для идентификатора соединения отсутствует, дальнейшая обработка и прием пакета не производится (пакет должен быть отброшен).
В случае необходимости (если kOffset не равен 1) выполняется операция, обратная описанной выше в контексте передачи обрабатываемых пакетов данных, а именно копирование данных размером, равным размеру структуры сопроводительных данных, из начала данных пакета на место, занимаемое структурой сопроводительных данных. Структура сопроводительных данных копируется в начало области данных пакета. Далее вычисляется контрольная сумма всех зашифрованных данных, и вычисленная контрольная сумма сравнивается с контрольной суммой, извлеченной из структуры сопроводительных данных. В случае несовпадения значений сравниваемых контрольных сумм пакет отбрасывается.
Затем вычисляется диверсифицированный ключ на основании ключа, соответствующему идентификатору соединения и значения из структуры сопроводительных данных, используемых для вычисления диверсифицированного ключа. Часть структуры сопроводительных данных, за исключением элементов структуры сопроводительных данных, содержащих идентификатор признака применения способа согласно изобретению, идентификатор соединения и область для контрольной суммы зашифрованных данных на диверсифицированном ключе соединения, расшифровывается. Данные расшифровываются на диверсифицированном ключе соединения.
Размер данных после расшифровывания определяется следующим образом:
IpDataLen=IpLen-ProtSubstHdrLen+TechHdrLen+EncryptIncBytes
Если требуется распаковка данных обрабатываемого пакета данных определяется требуемый размер буфера в соответствии со следующим выражением:
CompressDecBytes=IpLenOrigin +ProtSubstHdrLen+TechHdrLen+EncryptIncBytes-IpLength
После определения требуемого размера буфера, если данные обрабатываемого пакета были сжаты, производится распаковка данных. Перед распаковкой необходимо увеличить размер буфера пакета на величину:
IpDataIncLen=CompressDecBytes- EncryptIncBytes.
Далее IP-заголовок пакета редактируется для восстановления поля исходной длины пакета значением IpLengthOrigin и поля протокола значением IpProtocolOrigin из структуры сопроводительных данных обрабатываемого пакета данных. Далее область структуры сопроводительных данных и область заголовка протокола маскирования изымается из пакета. Контрольные суммы TCP/UDP и IP повторно вычисляются и записываются. После этого обрабатываемый(ые) пакет(ы) данных передаётся (передаются) на прием модулю сетевых протоколов узла-получателя пакета(ов).
В соответствии со способом согласно изобретению, к вычислению контрольных сумм предъявляются следующие требования. Алгоритм вычисления криптографической контрольной суммы должен обеспечивать малую вероятность коллизий (одинаковых значений для разных наборов данных), криптографическую стойкость и контроль целостности данных.
Как отмечено выше, для повышения безопасности и защищённости обмена данными с применением способа согласно изобретению в обрабатываемый пакет данных включается признак применения к пакету данных способа изоляции пакетов данных согласно изобретению. Для затруднения идентификации пакета, преобразованного способом изоляции пакетов данных в соответствии с изобретением, со стороны потенциального внешнего наблюдателя (условной стороны, перехватывающей пакеты), необходимо избегать передачи повторяющейся в каждом пакете последовательности байтов. Для этого в способе согласно изобретению применяется метод маскирования той части передаваемой информации, которая не может быть зашифрована, а именно упомянутого выше идентификатора признака применения к пакету способа изоляции пакетов данных согласно изобретению. Маскирование реализуется по следующему принципу:
M
M
IdTech=f(IdTech, PacketDataHash), где
M
M
IdTech - вычисляемое значение маскированного идентификатора способа преобразования, f (...) - функция маскирования, IdTech -исходное значение идентификатора признака применения к пакету способа согласно изобретению, PacketDataHash - криптографическая контрольная сумма (хэш-сумма) зашифрованных данных.
M
M
Отправляющая обрабатываемый пакет данных сторона на основании заданного IdTech и вычисленного после зашифровывания данных значения PacketDataHash вычисляет значение IdTech, помещает его и PacketDataHash в структуру сопроводительных данных обрабатываемого пакета данных и отправляет получателю. Принимающая обрабатываемый пакет сторона извлекает из структуры сопроводительных данных контрольную сумму PacketDataHash, вычисляет значение IdTech и сравнивает полученное значение со значением, помещенным отправителем в структуру сопроводительных данных. Если полученные значения совпадают, это означает, что принят пакет, преобразованный способом изоляции пакетов данных согласно изобретению. Если полученные значения не совпадают, это означает, что принят обычный пакет, не обработанный способом согласно изобретению, или произошло искажение данных в процессе передачи по каналам связи.
В соответствии с изобретением, в структуре обрабатываемого пакета данных предусмотрена резервная область дополнения исходных данных до размера, равного минимальному размеру шифруемого блока данных. При инициализации область дополнения исходных данных заполняется случайным значением. Необходимое количество байт из резервной области добавляется к области данных пакета, подлежащей зашифровыванию. В случае, если размер зашифрованных данных равен размеру данных до шифрования, резервная область отсутствует.
Далее будут описаны процедуры, используемые для идентификации принимаемых пакетов сторонами сетевого обмена в соответствии со способом согласно изобретению.
Чтобы инициирующая соединение сторона (узел-клиент или узел-партнер) могла начать сетевое взаимодействие с применением способа изоляции пакетов данных в соответствии с предлагаемым изобретением, ей должен быть известен IP-адрес принимающей стороны. В этом случае узел-сервер или узел-партнер должен иметь постоянный (статический или динамический с резервированием) IP-адрес, известный узлу-клиенту, по которому и происходит идентификация. Узел-клиент может не иметь постоянного или заранее известного IP-адреса. Узлу-серверу для идентификации клиента не нужно «знать» его IP-адрес. Если узел-сервер или узел-партнер имеют локальный IP-адрес и опубликованы в глобальной сети (WAN) с помощью маршрутизирующего сетевого оборудования с использованием способа преобразования сетевых адресов (NAT), другой стороне сетевого взаимодействия (узлу-клиенту или другому узлу-партнеру, соответственно), должен быть известен только глобальный IP-адрес, на котором они опубликованы. В таблице 11 ниже приведены возможные варианты IP-адресов для разных ролей сетевого узла в рамках способа согласно изобретению.
Таблица 11. Типы IP-адресов для разных ролей сетевого узла
Роль сетевого узла
Тип IP-адреса
Локальный (LAN)
Глобальный (WAN)
Статический
Динамический с резервированием
Динамический без резервирования
Статический
Клиент
Да
Да
Да
Да
Сервер
Да
Да
Нет
Да
Партнер
Да
Да
Нет
Да
Идентификация пакетов узлом-сервером основана на присваивании клиенту соединения условного IP-адреса при приеме от него первого пакета. Присваивание состоит в изменении IP-адреса источника пакета на присвоенный условный адрес. Отправка пакетов клиенту до этого момента (до получения пакета от клиента и идентификации) невозможна. Назначение условного адреса клиенту может производиться как заранее, так и из пула зарезервированных для этих целей адресов из внутренней базы модуля изоляции пакетов данных, реализующего способ изоляции пакетов данных согласно изобретению. У каждого идентифицированного клиента условный IP-адрес должен быть уникальным. Кроме того, необходимо иметь возможность выполнить обратное преобразование адреса назначения из условного IP-адреса в реальный IP-адрес при отправке пакета клиенту.
Идентификация пакетов сервером при приеме производится путем извлечения из структуры сопроводительных данных пакета данных, обработанного способом изоляции пакетов данных согласно изобретению, идентификатора соединения ID. По найденному идентификатору соединения ID осуществляется поиск соответствующего элемента списка в связанном списке клиентов. После идентификации клиента модуль изоляции пакетов данных, реализующий способ согласно изобретению, в узле-сервере обновляет блок соединения (CLI) и формирует блок параметров соединения (PLI) для связанного списка параметров соединения (PL) следующим образом:
а) Перед преобразованием пакета к исходному состоянию (включая дешифрование данных и восстановление IP-заголовка) в блоке соединения, соответствующем найденному идентификатору, обновляется или получается впервые значение текущего значения IP-адреса клиента CurrentIPaddress и времени приёма последнего пакета LastRecvSysTime. В случае отсутствия криптографического ключа соединения создается криптографический ключ соединения,
б) Перед преобразованием пакета к исходному состоянию (включая дешифрование, распаковку данных и восстановление IP-заголовка) в формируемом блоке параметров соединения сохраняются значения IP-протокола маскирования в IpProtocolSubst и пары портов (источника в RemotePortSubst и приемника в LocalPortSubst), если в качестве протокола маскирования использовался протокол TCP или UDP,
в) Из пакета удаляется область маскированного протокола,
г) Дешифруется часть сопроводительной структуры пакета,
д) Дешифруются данные пакета. Размер дешифруемой области определяется по формуле:
BytesForDecrypt=IpLen-IpHdrLen-ProtSubstHdrLen-TechHdrLen,
е) Если при передаче обрабатываемого пакета данных использовалось сжатие, распаковываются данные пакета. Размер данных для распаковки определяется вычислением по формуле:
BytesForDecompress=BytesForDecrypt-EncryptIncBytes,
ж) В формируемом блоке параметров соединения сохраняются значения IP-источника в RemoteIpAddr, IP-приемника в LocalIpAddr, настоящего IP-протокола в IpProtocolOrigin и пары портов (источника в RemotePortOrigin и приемника в LocalPortOrigin), если этот протокол  TCP либо UDP,
з) Производится редактирование IP-заголовка, что включает в себя следующие операции:
- восстанавливается исходное значение длины IP-пакета в IP-заголовке. Исходное значение длины пакета определяется по значению IpLengthOrigin, которое находится в структуре сопроводительных данных обрабатывамого пакета данных;
- выполняется замена IP-адреса источника на условный IP-адрес IPaddress из блока соединения CLI, присвоенный заранее или назначенный из пула клиенту, как указано выше. Настоящий IP-адрес клиента остается в блоке параметров соединения как RemoteIpAddr;
- если протокол, на основе которого осуществляется сетевое взаимодействие – это протокол TCP или UDP, производится замена порта источника на порт источника протокола маскирования RemotePortSubst из блока параметров соединения. Исходный порт источника остается в блоке параметров соединения как RemotePortOrigin,
и) Производится поиск по списку блоков параметров соединения PL блока PLI с данными, эквивалентными данным вновь сформированного блока, за исключением данных о времени приема и отправки. Если блок не найден, список блоков параметров дополняется вновь сформированным блоком. Затем обновляется поле времени последнего приема в блоке LastSystemTimeReceive из поля LastRecvSysTime блока соединения CLI,
к) Пакет передается на прием протокольной части системы.
Идентификация пакетов сервером при отправке клиенту производится на основании условного IP-адреса, присвоенного клиенту. При этом выполняется поиск совпадения IP-адреса получателя с условным IP-адресом IPaddress блока соединения CLI по всему списку блоков соединений CL. Если поиск не дал результатов, дальнейшая обработка не производится. Пакет может быть отброшен или передан на отправку, в зависимости от настроек. Кроме того, для найденного блока соединения CL производится поиск блока параметров соединения в списке блоков PL. Блок считается относящимся к данному соединению, если выполнены все следующие условия:
- IP-протокол в заголовке пакета равен IP-протоколу IpProtocolOrigin в блоке параметров соединения;
- порт источника в заголовке пакета равен LocalPortOrigin в блоке параметров соединения;
- порт приемника в заголовке пакета равен RemotePortSubst в блоке параметров соединения.
Далее обновляется значение поля LastSystemTimeSend в найденном блоке параметром соединения текущим значением времени. Производится редактирование заголовка IP-пакета, а именно: в IP-заголовке IP-адрес приемника заменяется значением RemoteIpAddr из найденного блока параметров соединения. В том случае, если используемый при реализации способа изоляции пакетов данных согласно изобретению IP-протокол является протоколом TCP или UDP, редактируется и заголовок протокола, а именно: порт приемника заменяется значением RemotePortOrigin из найденного блока параметров соединения. Далее производится формирование блока сопроводительных данных. Затем производится сжатие данных, если это предусмотрено настройками реализуемого способа. Производится шифрование данных. Редактируется IP заголовок пакета посредством следующих операций:
- IP-адрес приемника заменяется значением CurrentIpAddress из блока соединения CLI;
- IP-протокол заменяется значением IpProtocolSubst из блока параметров соединения.
Непосредственно за IP-заголовком пакета создается заголовок протокола в соответствии со значением IpProtocolSubst, размером 8 или 20 байтов. Для этого порт приемника заменяется значением RemotePortSubst из блока параметров соединения. Порт источника заменяется значением LocalPortSubst из блока параметров соединения. Также производится вычисление и запись в заголовок протокола контрольной суммы для протокола IpProtocolSubst. Производится повторное вычисление и запись в IP-заголовок контрольной суммы IP. После этого обрабатываемый пакет данных в соответствии со способом изоляции пакетов данных в соответствии с изобретением передается на отправку.
Идентификация пакетов узлом клиента состоит в определении идентификатора соединения с сервером для данного обрабатываемого пакета данных. Идентификация пакетов при приеме осуществляется на основе поиска по IP-адресу отправителя пакета, находящегося в IP-заголовке, в связанном списке серверов (SL) блока соединения (SLI) с искомым значением IP-адреса в поле IPaddress. После идентификации соединения с сервером модуль изоляции пакетов данных, реализующий способ согласно изобретению на стороне клиента, обновляет блок соединения (SLI) и формирует блок параметров соединения (PLI).
Перед преобразованием пакета к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в блоке соединения, соответствующему найденному идентификатору обновляется значение времени приёма последнего пакета LstRecvSysTime. В случае отсутствия криптографического ключа соединения, создается криптографический ключ соединения.
Перед преобразованием пакета к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в формируемом блоке параметров соединения сохраняются значения IP-протокола маскирования в IpProtocolSubst и пары портов (источника в RemotePortSubst и приемника в LocalPortSubst), если в качестве протокола маскирования использовался протокол TCP либо UDP.
Структура сопроводительных данных дешифруется на диверсифицированном ключе соединения. После возвращения перемещенных данных из области структуры сопроводительных данных в IP-заголовок, дешифрования и распаковки данных пакета в формируемом блоке параметров соединения сохраняются значения IP-источника в RemoteIpAddr, IP-приемника в LocalIpAddr, настоящего IP-протокола в IpProtocolOrigin и пары портов (источника в RemotePortOrigin и приемника в LocalPortOrigin), если этот протокол является протоколом TCP или UDP.
Производится поиск по списку блоков параметров соединения PL блока PLI с данными, эквивалентными данным вновь сформированного блока за исключением данных о времени приема и отправки обрабатываемого пакета данных. Если блок не найден, пакет отбрасывается, т.к. инициатором соединения может быть только клиент и блок должен быть сформирован при отправке первого обрабатываемого пакета данных этому серверу. Обновляется поле времени последнего приема в блоке LastSystemTimeReceive из поля LastRecvSysTime блока соединения CLI. После этого обрабатываемый пакет данных передается на прием.
Идентификация пакетов при отправке происходит на основе поиска по IP-адресу получателя пакета, находящегося в IP-заголовке. Для этого выполняется поиск совпадения IP-адреса назначения с IP-адресом IPaddress блока соединения (SLI) по всему списку блоков соединений SL. Если поиск не дал результатов, дальнейшая обработка пакета не производится. Пакет может быть отброшен или передан на отправку, в зависимости от настроек. Далее производится поиск блока параметров соединения в списке блоков PL для найденного блока соединения CL. Блок считается относящимся к данному соединению, если выполнены все следующие условия:
а) IP-протокол в заголовке пакета равен IP-протоколу IpProtocolOrigin в блоке параметров соединения;
б) если IP-протокол TCP или UDP, проверяется выполнение условия: порт источника в заголовке пакета обрабатываемых данных равен LocalPortOrigin в блоке параметров соединения;
в) если IP-протокол представляет собой протокол TCP или UDP, проверяется выполнение условия: порт приемника в заголовке пакета равен RemotePortOrigin в блоке параметров соединения;
г) если блок параметров соединения, относящийся к данному соединению, не найден, то такой блок создается и добавляется к списку блоков параметров соединения для данного соединения. Для вновь создаваемого блока инициализируются следующие параметры:
- протокол маскирования IpProtocolSubst текущим значением, из внутренней базы модуля;
- порт приемника RemotePortSubst текущим значением, из внутренней базы модуля;
- порт источника LocalPortSubst назначается из пула значений допустимых динамических портов внутренней базы модуля изоляции пакетов данных в соответствии с изобретением.
Далее значение поля LastSystemTimeSend в найденном или созданном блоке параметров соединения обновляется текущим значением времени. Обрабатываемый пакет данных дополняется областью сопроводительных данных. Производится инициализация области сопроводительных данных. Далее при необходимости, если это предусмотрено настройками способа, производится сжатие данных пакета. Производится зашифровывание данных пакета и области сопроводительных данных.
Затем редактируется IP-заголовок пакета: IP-протокол заменяется значением IpProtocolSubst из блока параметров соединения.
На участке данных, следующем за IP-заголовком создается заголовок протокола, соответствующий значению IpProtocolSubst. Порт приемника заменяется значением RemotePortSubst из блока параметров соединения. Порт источника заменяется значением LocalPortSubst из блока параметров соединения. Производится вычисление и запись в заголовок протокола контрольной суммы для протокола IpProtocolSubst. Далее производится повторное вычисление и запись в IP-заголовок контрольной суммы IP, после чего пакет обрабатываемых данных передается на отправку.
Идентификация пакетов узлом-партнером происходит на основе поиска, по IP-адресу получателя пакета при отправке пакета обрабатываемых данных и по IP-адресу отправителя при приеме пакета обрабатываемых данных, идентификатора соединения во внутренней базе данных для получения информации, позволяющей произвести обработку пакета обрабатываемых данных способом согласно изобретению.
Идентификация пакетов при приеме происходит на основе поиска по IP-адресу отправителя пакета, находящегося в IP-заголовке, в связанном списке партнеров (TL) блока соединения (TLI) с искомым значением IP-адреса в поле IPaddress. После идентификации соединения с сервером модуль способа обновляет блок соединения (TLI) и формирует блок параметров соединения (PLI).
Перед преобразованием пакета к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в блоке соединения, соответствующем найденному идентификатору соединения, обновляется значение текущего значения IP-адреса клиента CurrentIPaddress и времени приёма последнего пакета LastRecvSysTime. В случае отсутствия криптографического ключа соединения создается криптографический ключ соединения.
Перед преобразованием обрабатываемого пакета данных к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в формируемом блоке параметров соединения сохраняются значения IP-протокола маскирования в IpProtocolSubst и пары портов (источника в RemotePortSubst и приемника в LocalPortSubst), если в качестве протокола маскирования использовался протокол TCP либо UDP.
Далее дешифруется часть структуры сопроводительных данных, зашифрованная отправителем на диверсифицированном ключе соединения. После возвращения перемещенных данных из области структуры сопроводительных данных в IP-заголовок, дешифрования и распаковки данных пакета в формируемом блоке параметров соединения сохраняются значения IP-источника в RemoteIpAddr, IP-приемника в LocalIpAddr, настоящего IP-протокола в IpProtocolOrigin и пары портов (источника в RemotePortOrigin и приемника в LocalPortOrigin), если используемый протокол – это протокол TCP либо UDP.
Производится поиск по списку блоков параметров соединения PL блока PLI с данными, эквивалентными данным вновь сформированного блока, за исключением данных о времени приема и отправки. Если блок не найден, пакет отбрасывается, т.к. инициатором соединения может быть только клиент, и блок должен быть сформирован при отправке первого пакета этому серверу. Поле времени последнего приема в блоке LastSystemTimeReceive обновляется из поля LastRecvSysTime блока соединения CLI. После этого пакет передается на прием.
Идентификация пакетов при отправке осуществляется на основе поиска по IP-адресу получателя пакета, находящегося в IP-заголовке. Для этого сначала выполняется поиск совпадения IP-адреса назначения с IP-адресом IPaddress блока соединения (TLI) по всему списку блоков соединений TL. Если поиск не дал результатов, дальнейшая обработка не производится. Пакет может быть отброшен или передан на отправку, в зависимости от настроек.
Затем производится поиск блока параметров соединения в списке блоков PL для найденного блока соединения TLI. Блок считается относящимся к данному соединению, если выполнены все следующие условия:
- IP-протокол в заголовке пакета равен IP-протоколу IpProtocolOrigin в блоке параметров соединения;
- если IP-протокол представляет собой TCP или UDP, проверяется выполнение условия:
а) порт источника в заголовке пакета равен LocalPortOrigin в блоке параметров соединения;
б) порт приемника в заголовке пакета равен RemotePortOrigin в блоке параметров соединения.
Если блок параметров соединения, относящийся к данному соединению, не найден, то такой блок создается и добавляется к списку блоков параметров соединения для данного соединения. Для вновь создаваемого блока инициализируются следующие параметры:
1) протокол маскирования IpProtocolSubst текущим значением, из внутренней базы модуля;
2) порт приемника RemotePortSubst текущим значением, из внутренней базы модуля;
3) порт источника LocalPortSubst назначается из пула значений допустимых динамических портов внутренней базы модуля.
Далее обновляется значение поля LastSystemTimeSend в найденном или созданном блоке параметром соединения текущим значением времени. Пакет дополняется областью сопроводительных данных. Производится инициализация области сопроводительных данных, как описано выше. После этого производится сжатие данных пакета, следующих за IP-заголовком, если это предусмотрено.
Далее выполняется зашифровывание данных пакета, следующих за IP-заголовком. Зашифровывается часть данных в области сопроводительных данных пакета.
Выполняется редактирование IP-заголовка пакета: IP-протокол заменяется значением IpProtocolSubst из блока параметров соединения. На участке данных, следующих за IP-заголовком, создается заголовок протокола, соответствующий значению IpProtocolSubst. Порт приемника заменяется значением RemotePortSubst из блока параметров соединения. Порт источника заменяется значением LocalPortSubst из блока параметров соединения. Производится вычисление и запись в заголовок протокола контрольной суммы для протокола IpProtocolSubst. Затем производится повторное вычисление и запись в IP-заголовок контрольной суммы IP, после чего пакет передается на отправку.
Следует отметить, что важной особенностью способа изоляции пакетов данных согласно изобретению является то, что данный способ предполагает изменение параметров протокола маскирования в процессе сетевого взаимодействия. Это позволяет дополнительно затруднить внешнему наблюдателю определение применения сторонами сетевого обмена способа изоляции пакетов данных согласно изобретению. Исходя из заданных общих данных, узел-клиент или узел-партнер могут псевдослучайным образом изменять порт назначения протокола маскирования, а также сам протокол маскирования.
Кроме того, при реализации способа изоляции пакетов данных согласно изобретению выполняются периодические операции, связанные с необходимостью очистки динамических списков внутренней базы от неиспользуемых элементов списков. Время неактивности соединения, после которого информация о нем может быть удалена, задается в виде параметра во внутренней базе данных. Периодичность работы функции очистки также задается в виде параметра во внутренней базе данных. Частота вызова функции очистки должна быть связана со значением времени неактивности соединения, после которого динамические данные о соединении удаляются.
Обработка запросов с уровня сетевых протоколов на уровень сетевых адаптеров в соответствии со способом согласно изобретению состоит в следующем.
Основной запрос, который должен быть обработан, представляет собой запрос о максимальном размере пакета, который может быть передан через сетевой адаптер. Данные, получаемые в ответ на этот запрос, должны быть отредактированы до того момента, как они попадут к инициатору запроса. Значение максимального размера пакета должно быть уменьшено на сумму трех величин: размер структуры сопроводительных данных, максимально возможный размер дополнения данных при шифровании и размер заголовка протокола маскирования. В соответствии с изобретением, возможны разновидности запросов о максимальном размере: о максимальном размере пакета, включая заголовок канального уровня и без него.
Способ изоляции пакетов данных согласно изобретению предусматривает освобождение модуля изоляции пакетов данных от вычисления контрольных сумм IP, TCP и UDP в отправляемых пакетах, если сетевой адаптер обладает возможностью таких расчетов.
Применение способа изоляции пакетов данных, осуществляемого модулем изоляции пакетов данных согласно изобретению обеспечивает по меньшей мере следующие технические эффекты, повышающие безопасность обмена данными:
- сокрытие реальных данных об истинных протоколах взаимодействия между узлами (сторонами) сетевого обмена данными и обо всех параметрах, позволяющих постороннему внешнему наблюдателю делать вывод об источнике  и приемнике данных и способах воздействия на них;
- защиту от сканирования портов серверов соединения с сетью компьютерными преступниками с дальнейшими деструктивными целями;
- повышенную стойкость к DoS и DDoS-атакам;
- проверку целостности исходных данных принимающей стороной при помощи расчета и сохранения криптографической контрольной суммы зашифрованных данных отправляющей стороной;
- конфиденциальность данных, передаваемых протоколам канального уровня, путем их преобразования с помощью симметричных блочных алгоритмов шифрования;
- изоляцию сетевых узлов, применяющих способ изоляции пакетов данных согласно изобретению, от обычных сетевых узлов;
- сжатие исходных данных;
- передачу данных от отправителя получателю через стандартные сетевые маршрутизирующие устройства и в сетях общего пользования и в локальных сетях;
- создание двух видов соединения  между приемо-передающими устройствами в сети:
а) соединение типа «Клиент-Сервер», обеспечивающее соединение, инициированное клиентом; и
б) соединение типа «Сервер-Сервер» («Партнер-Партнер»), обеспечивающее соединение, инициированное любой из сторон.
Кроме того, описанный выше способ изоляции пакетов данных согласно изобретению, реализуемый модулем изоляции пакетов данных, характеризуется следующими свойствами:
1) масштабируемость: способ обеспечивает возможность построения изолированной среды сетевого взаимодействия как в локальной системе, так и в системе, взаимодействующей через глобальную сеть (распределенной системе);
2) непрозрачность: отсутствует возможность сбора данных внешними наблюдателями, анализирующими перехватываемые сетевые пакеты, о реальных протоколах взаимодействия между узлами и сегментами системы;
3) скрытность: отсутствует возможность сбора данных о сетевом узле, настроенном для работы в режиме изоляции, с помощью любых способов сканирования портов;
4) защищенность: передаваемые по сети пакеты, обрабатываемые способом согласно изобретению, не имеют незашифрованных частей реальных данных;
5) надежность: целостность получаемых данных проверяется с помощью криптографической контрольной суммы;
6) управляемость: на базе данного способа возможно развертывание защищенной системы администрирования и управления сетевыми узлами в сети;
7) гибкость: с помощью способа согласно изобретению можно обрабатывать как однонаправленные пакеты (адресованные одному компьютеру), так и широковещательные (адресованные компьютерам, находящимся в одной подсети) и групповые (адресованные компьютерам, объединенным в группу по принципу работы с некой общей программой или сервисом);
8) адаптивность: реализация способа согласно изобретению для конкретных целей может иметь целый ряд отличительных особенностей, включая алгоритмы шифрования, сжатия данных, расчета криптографических контрольных сумм и другие, как подробно описано выше;
9) универсальность (многоцелевое назначение): не являясь способом VPN, способ согласно изобретению добавляет к любому VPN свои свойства; не являясь брандмауэром, способ (модуль) согласно изобретению эффективно решает основные задачи защиты от вторжения; не являясь средством удаленного управления, способ (модуль) согласно изобретению позволяет применять безопасно большинство из этих средств;
10) многоплатформенность (кроссплатформенность): анализ архитектуры сетевых подсистем в различных операционных системах позволяет утверждать, что возможно создание реализаций способа согласно изобретению для большинства из них; возможна как аппаратная, так и программная реализация способа согласно изобретению, при этом объём изобретения не ограничен конкретным сочетанием программных и аппаратных средств, как описано выше, и может быть реализован посредством любых пригодных сочетаний аппаратных и программных средств, как будет очевидно специалистам в данной области техники на основании сведений, приведённых в настоящем описании изобретения.
Специалистам в данной области техники будет понятно, что выше описаны и показаны на чертежах лишь некоторые из возможных примеров технических приемов и материально–технических средств, которыми могут быть реализованы варианты выполнения настоящего изобретения. Приведенное выше подробное описание вариантов выполнения изобретения не предназначено для ограничения или определения объема правовой охраны настоящего изобретения.
Другие варианты выполнения, которые могут входить в объем настоящего изобретения, могут быть предусмотрены специалистами в данной области техники после внимательного прочтения вышеприведенного описания с обращением к сопровождающим чертежам, и все такие очевидные модификации, изменения и/или эквивалентные замены считаются входящими в объем настоящего изобретения. Все источники из уровня техники, приведенные и рассмотренные в настоящем документе, настоящим включены в данное описание путем ссылки, насколько это применимо.
При том, что настоящее изобретение описано и проиллюстрировано с обращением к различным вариантам его выполнения, специалистам в данной области техники будет понятно, что в нем могут быть выполнены различные изменения в его форме и конкретных подробностях, не выходящие за рамки объема настоящего изобретения, который определяется только нижеприведенной формулой изобретения и ее эквивалентами.