RU2762157C1 - 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 - Google Patents

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 Download PDF

Info

Publication number
RU2762157C1
RU2762157C1 RU2021104412A RU2021104412A RU2762157C1 RU 2762157 C1 RU2762157 C1 RU 2762157C1 RU 2021104412 A RU2021104412 A RU 2021104412A RU 2021104412 A RU2021104412 A RU 2021104412A RU 2762157 C1 RU2762157 C1 RU 2762157C1
Authority
RU
Russia
Prior art keywords
data
packet
identifier
network
module
Prior art date
Application number
RU2021104412A
Other languages
Russian (ru)
Inventor
Вячеслав Германович Кочанов
Серафим Игоревич Федоров
Антон Владимирович Фролов
Original Assignee
Вячеслав Германович Кочанов
Серафим Игоревич Федоров
Антон Владимирович Фролов
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Вячеслав Германович Кочанов, Серафим Игоревич Федоров, Антон Владимирович Фролов filed Critical Вячеслав Германович Кочанов
Priority to RU2021104412A priority Critical patent/RU2762157C1/en
Application granted granted Critical
Publication of RU2762157C1 publication Critical patent/RU2762157C1/en
Priority to PCT/RU2022/050052 priority patent/WO2022177477A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

FIELD: information protection.
SUBSTANCE: invention relates to the field of digital information transmission. A data packet isolation module is proposed, which is made with the possibility of embedding between the network adapter and the channel layer protocol module for processing data packets. The module performs the transformation of data packets, in particular, determining the connection identifier for the recipient of the processed data packet; calculation of the offset relative to the beginning of the processed data packet and the size of the source data for compression and/or encryption; creation of a copy of the source packet with its addition with data areas that ensure its further processing; initialization and filling in the structure of the accompanying data for the processed data packet. Data is transmitted from the sender to the recipient via standard network routing devices in public networks and/or in local networks, while the transmitted data contains data packets converted by means of a data packet isolation module.
EFFECT: increase in the security of data exchange in the data transmission network.
16 cl, 3 dwg, 11 tbl

Description

Область техники, к которой относится изобретениеThe technical field to which the invention relates

Изобретение относится к области передачи цифровой информации, и более конкретно к способу изоляции пакетов данных, передаваемых по сетям общего пользования, для создания безопасной среды взаимодействия между узлами распределённой информационной системы. Применение способа согласно изобретению обеспечивает создание безопасной среды взаимодействия между узлами распределенной частной информационной системы.The invention relates to the field of digital information transmission, and more specifically to a method for isolating data packets transmitted over public networks to create a secure environment for interaction between nodes of a distributed information system. Application of the method according to the invention creates a secure environment for interaction between nodes of a distributed private information system.

Уровень техникиState of the art

В источнике CN 110941862 A (POI T GUANGZHOU IND INTERNET CO LTD, опубликовано 31.03.2020) раскрыта система изоляции данных на основе программируемой логической интегральной схемы (FPGA), содержащая приёмопередающий модуль Интранет, модуль шифрования и дешифрования пакетов данных, модуль подписи пакетов данных и модуль хранения данных, реализованные на стороне FPGA, а также модуль анализа управления доступом к среде (MAC), модуль брандмауэра, первый высокоскоростной приёмопередающий модуль интерфейса, второй высокоскоростной приёмопередающий модуль интерфейса, модуль выбора сетевого протокола, модуль протокола передачи и приёмопередающий модуль для внешних сетей передачи данных. К недостаткам данного известного решения можно отнести то, что оно реализовано с привлечением большого количества аппаратных средств, вследствие чего для реализации изоляции пакетов данных в сетях общего пользования необходимо дополнение стандартного оборудования, задействованного в обмене данными, большим количеством дополнительных аппаратных модулей, что усложняет аппаратную реализацию системы и снижает её пригодность для использования при обмене данными в сетях общего пользования.Source CN 110941862 A (POI T GUANGZHOU IND INTERNET CO LTD, published 03/31/2020) discloses a data isolation system based on a programmable logic integrated circuit (FPGA), containing an Intranet transceiver module, a data packet encryption and decryption module, a data packet signature module and storage module implemented on the FPGA side, as well as a media access control (MAC) analysis module, firewall module, first high-speed transceiver interface module, second high-speed transceiver interface module, network protocol selection module, transmission protocol module and transceiver module for external networks data transmission. The disadvantages of this known solution include the fact that it is implemented with the involvement of a large amount of hardware, as a result of which, to implement the isolation of data packets in public networks, it is necessary to supplement the standard equipment involved in data exchange with a large number of additional hardware modules, which complicates the hardware implementation. system and reduces its suitability for use when exchanging data in public networks.

В источнике CN 111711615 A (CHENGDU JINSUNZHIAN TECH CO LTD, опубликовано 25.09.2020) раскрыта система синхронизации информации в базах данных и способ, реализуемый в вычислительном узле системы защиты информации. Известная система содержит внешний сетевой узел, внешний блок обработки, область пересылки изолируемых данных, внутренний блок обработки и внутренний сетевой узел. Внешний сетевой узел передаёт информацию, подлежащую синхронизации, во внешний блок обработки, который осуществляет разложение принятого пакета данных по протоколу TCP/IP и переупаковывает пакет данных по протоколу TCP/IP в пакет данных по специальному протоколу. Область пересылки изолируемых данных последовательно соединена с внешним блоком обработки и внутренним блоком обработки и осуществляет пересылку пакета данных по специальному протоколу во внутренний блок обработки, который переупаковывает пакет данных по специальному протоколу в пакет данных по протоколу TCP/IP, который затем пересылает на внутренний сетевой узел, обрабатывающий принятый пакет для получения данных синхронизации базы данных и осуществляющий синхронизацию в соответствии с установленной стратегией синхронизации. К недостаткам данного известного решения можно отнести то, что использование специального протокола демаскирует защищённую передачу данных, указывая потенциальному злоумышленнику на то, что в данный момент осуществляется защищённая передача данных.The source CN 111711615 A (CHENGDU JINSUNZHIAN TECH CO LTD, published 09/25/2020) discloses a system for synchronizing information in databases and a method implemented in the computing node of the information security system. The known system comprises an external network node, an external processing unit, an isolated data transfer area, an internal processing unit, and an internal network node. An external network node transmits information to be synchronized to an external processing unit, which decomposes the received data packet using the TCP / IP protocol and repackages the data packet using the TCP / IP protocol into a data packet using a special protocol. The isolated data transfer area is serially connected to the external processing unit and the internal processing unit and transfers the data packet using a special protocol to the internal processing unit, which repackages the data packet using a special protocol into a data packet using the TCP / IP protocol, which is then forwarded to the internal network node processing the received packet to obtain database synchronization data and performing synchronization in accordance with the established synchronization strategy. The disadvantages of this known solution include the fact that the use of a special protocol unmasks secure data transmission, indicating to a potential attacker that secure data transmission is being carried out at the moment.

Раскрытие изобретенияDisclosure of invention

Данный раздел, раскрывающий различные аспекты и варианты выполнения заявляемого изобретения, предназначен для представления краткой характеристики заявляемых объектов изобретения и вариантов его выполнения. Подробная характеристика технических средств и методов, реализующих сочетания признаков заявляемых изобретений, приведена ниже. Ни данное раскрытие изобретения, ни нижеприведённое подробное описание и сопровождающие чертежи не следует рассматривать как определяющие объём заявляемого изобретения. Объём правовой охраны заявляемого изобретения определяется исключительно прилагаемой формулой изобретения.This section, which discloses various aspects and options for carrying out the claimed invention, is intended to provide a brief description of the claimed subject matter and variants of its implementation. A detailed description of the technical means and methods that implement the combination of features of the claimed inventions is given below. Neither this disclosure nor the following detailed description and accompanying drawings should be construed as defining the scope of the claimed invention. The scope of legal protection of the claimed invention is determined exclusively by the attached claims.

С учётом вышеуказанных недостатков уровня техники, проблема, решаемая предлагаемым изобретением, состоит в защите данных, передаваемых по существующим сетям передачи данных, с минимальной модификацией аппаратного и/или программного обеспечения, задействованных в обмене данными, таким образом, что потенциальный внешний наблюдатель не будет иметь сведений о том, что осуществляется защищённая передача данных, а также о том, какими именно средствами защищаются передаваемые данные.Taking into account the above-mentioned disadvantages of the prior art, the problem solved by the proposed invention is to protect data transmitted over existing data transmission networks, with minimal modification of the hardware and / or software involved in the data exchange, so that a potential external observer will not have information that secure data transmission is being carried out, as well as with what means the transmitted data is protected.

Технический результат, достигаемый при использовании заявляемого изобретения, состоит в повышении безопасности обмена данными в сети передачи данных.The technical result achieved when using the claimed invention is to improve the security of data exchange in the data transmission network.

Задача изобретения состоит в создании способа изоляции пакетов данных, который обеспечивал бы надёжную защищённую передачу данных при минимальной модификации существующей сети передачи данных как в части программного и/или аппаратного обеспечения, так и в части протоколов и/или правил, применяемых при передаче данных.The objective of the invention is to create a method for isolating data packets that would ensure reliable secure data transmission with minimal modification of the existing data transmission network both in terms of software and / or hardware and in terms of protocols and / or rules used in data transmission.

В первом аспекте настоящего изобретения задача решается модулем изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, который встроен между сетевым адаптером и модулем протоколов канального уровня, при этом модуль изоляции пакетов данных выполнен с возможностью обработки пакетов данных, передаваемых с уровня сетевых протоколов на уровень сетевых адаптеров и с уровня сетевых адаптеров на уровень сетевых протоколов, для преобразования пакетов данных, при этом преобразование пакетов данных содержит:In the first aspect of the present invention, the problem is solved by a module for isolating data packets transmitted over public networks and / or over local networks, which is built between the network adapter and the module of link layer protocols, while the module for isolating data packets is configured to process data packets transmitted from the level of network protocols to the level of network adapters and from the level of network adapters to the level of network protocols, for converting data packets, while the conversion of data packets contains:

определение идентификатора соединения для получателя обрабатываемого пакета данных;determining the connection identifier for the recipient of the processed data packet;

вычисление смещения относительно начала обрабатываемого пакета данных и размера исходных данных для сжатия и/или зашифровывания;calculating an offset relative to the beginning of the processed data packet and the size of the original data for compression and / or encryption;

создание копии исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку;creating a copy of the original package with the addition of data areas to ensure its further processing;

инициализацию и заполнение структуры сопроводительных данных для обрабатываемого пакета данных;initialization and filling of the accompanying data structure for the processed data packet;

вычисление диверсифицированного ключа на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных;calculating a diversified key based on the key corresponding to the connection identifier and the value from the augmented data structure;

шифрование данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных;data encryption using a diversified key for each package of processed data;

шифрование части структуры сопроводительных данных;encryption of part of the accompanying data structure;

вычисление контрольной суммы всех зашифрованных данных и помещение вычисленной контрольной суммы в структуру сопроводительных данных;calculating a checksum of all encrypted data and placing the calculated checksum in the accompanying data structure;

вычисление значения маскированного идентификатора способа на основании значений идентификатора способа и контрольной суммы зашифрованных данных, и помещение вычисленного значения маскированного идентификатора способа в структуру сопроводительных данных;calculating the masked method identifier value based on the values of the method identifier and the checksum of the encrypted data, and placing the calculated masked method identifier value in the accompanying data structure;

формирование ключа шифрования для идентификатора соединения на основании значений идентификатора способа, маскированного идентификатора способа и значения из области данных D;generating an encryption key for the connection identifier based on the values of the method identifier, the masked method identifier, and the value from the data area D;

шифрование идентификатора соединения и помещение зашифрованного значения идентификатора соединения в структуру сопроводительных данных;encrypting the connection identifier and placing the encrypted connection identifier value in the accompanying data structure;

вычисление смещения для структуры сопроводительных данных в пакете обрабатываемых данных;calculating an offset for the accompanying data structure in the processed data packet;

повторное вычисление контрольной суммы IP-заголовка и запись повторно вычисленной контрольной суммы в структуре пакета обрабатываемых данных; иrecalculating the checksum of the IP header and writing the recalculated checksum in the structure of the processed data packet; and

модуль изоляции пакетов данных выполнен с возможностью передачи данных от отправителя получателю через стандартные сетевые маршрутизирующие устройства в сетях общего пользования и/или в локальных сетях, при этом передаваемые данные содержат пакеты данных, преобразованные посредством модуля изоляции пакетов данных.The data packet isolation module is configured to transmit data from the sender to the recipient through standard network routing devices in public networks and / or local networks, while the transmitted data contains data packets converted by the data packet isolation module.

Во втором аспекте задача изобретения решается способом изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, причём способ содержит этапы, на которых:In a second aspect, the object of the invention is solved by a method for isolating data packets transmitted over public networks and / or over local networks, the method comprising the steps of:

принимают посредством модуля изоляции пакетов данных, встроенного между сетевым адаптером и модулем протоколов канального уровня, пакеты данных, передаваемые с уровня сетевых протоколов на уровень сетевых адаптеров и с уровня сетевых адаптеров на уровень сетевых протоколов;receive, by means of the data packet isolation module built between the network adapter and the data link layer protocol module, data packets transmitted from the network protocol layer to the network adapter layer and from the network adapter layer to the network protocol layer;

выполняют посредством модуля изоляции пакетов данных преобразование принимаемых пакетов данных в формат, в котором пакеты данных не дают стороннему наблюдателю информации об истинных протоколах взаимодействия между сторонами сетевого обмена и об источнике и приемнике данных и способах воздействия на них, при этом преобразование пакетов данных содержит этапы, на которых:by means of the data packet isolation module, the received data packets are converted into a format in which the data packets do not give an outside observer information about the true communication protocols between the parties to the network exchange and about the source and the receiver of data and how to influence them, while the conversion of data packets contains the steps, where:

определяют идентификатор соединения для получателя обрабатываемого пакета данных;determine the connection identifier for the recipient of the processed data packet;

вычисляют смещение относительно начала обрабатываемого пакета данных и размер исходных данных для сжатия и/или зашифровывания;calculate the offset relative to the beginning of the processed data packet and the size of the original data for compression and / or encryption;

создают копию исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку;create a copy of the original package with the addition of data areas to ensure its further processing;

инициализируют и заполняют структуру сопроводительных данных для обрабатываемого пакета данных;initialize and fill the structure of the accompanying data for the processed data packet;

вычисляют диверсифицированный ключ на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных;calculating a diversified key based on the key corresponding to the connection identifier and the value from the structure of the augmented data;

выполняют шифрование данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных;performing data encryption using a diversified key for each package of processed data;

выполняют шифрование части структуры сопроводительных данных;encrypting a portion of the accompanying data structure;

вычисляют контрольную сумму всех зашифрованных данных и помещают вычисленную контрольную сумму в структуру сопроводительных данных;calculating a checksum of all encrypted data and placing the calculated checksum in the accompanying data structure;

вычисляют значение маскированного идентификатора способа на основании значений идентификатора способа и контрольной суммы зашифрованных данных, и помещают вычисленное значение маскированного идентификатора способа в структуру сопроводительных данных;calculating the value of the masked method identifier based on the values of the method identifier and the checksum of the encrypted data, and placing the calculated value of the masked method identifier in the accompanying data structure;

формируют ключ шифрования для идентификатора соединения на основании значений идентификатора способа, маскированного идентификатора способа и значения из области данных D;generating an encryption key for the connection identifier based on the values of the method identifier, the masked method identifier and the value from the data area D;

выполняют шифрование идентификатора соединения и помещают зашифрованное значение идентификатора соединения в структуру сопроводительных данных;encrypting the connection identifier and placing the encrypted connection identifier value in the accompanying data structure;

вычисляют смещение для структуры сопроводительных данных в пакете обрабатываемых данных;calculating an offset for the accompanying data structure in the processed data packet;

повторно вычисляют контрольную сумму IP-заголовка и записывают повторно вычисленную контрольную сумму в структуре пакета обрабатываемых данных; иrecalculating the checksum of the IP header and writing the recalculated checksum in the structure of the processed data packet; and

передают данные от отправителя получателю через стандартные сетевые маршрутизирующие устройства в сетях общего пользования и/или в локальных сетях, при этом передаваемые данные содержат пакеты данных, преобразованные посредством модуля изоляции пакетов данных.transmit data from the sender to the recipient through standard network routing devices in public networks and / or local networks, while the transmitted data contains data packets converted by the data packet isolation module.

Специалистам в данной области техники будет очевидно, что помимо вышеперечисленных объектов изобретения изобретательский замысел, лежащий в основе настоящего изобретения, может быть реализован в форме других объектов изобретения.It will be apparent to those skilled in the art that, in addition to the foregoing aspects of the invention, the inventive concept underlying the present invention may be embodied in other aspects of the invention.

Краткое описание чертежейBrief Description of Drawings

Чертежи приведены в настоящем документе для облегчения понимания сущности настоящего изобретения. Чертежи являются схематичными и выполнены не в масштабе. Чертежи служат исключительно в качестве иллюстрации и не предназначены для определения объема настоящего изобретения.The drawings are provided in this document to facilitate understanding of the essence of the present invention. The drawings are schematic and not to scale. The drawings are for illustrative purposes only and are not intended to define the scope of the present invention.

На Фиг. 1 показана условная блок-схема модуля изоляции пакетов данных согласно изобретению и проиллюстрировано встраивание модуля согласно изобретению между уровнем сетевых протоколов и сетевым адаптером.FIG. 1 shows a schematic block diagram of a data packet isolation module according to the invention and illustrates the embedding of the module according to the invention between the network protocol layer and the network adapter.

На Фиг. 2 показана блок-схема примерного варианта осуществления способа изоляции пакетов данных согласно изобретению.FIG. 2 shows a flow diagram of an exemplary embodiment of a data packet isolation method according to the invention.

На Фиг. 3 показана схема обработки пакета данных перед передачей пакета на отправку в соответствии со способом изоляции пакетов данных согласно изобретению.FIG. 3 shows a diagram of the processing of a data packet before transmitting the packet for sending in accordance with the data packet isolation method according to the invention.

Осуществление изобретенияImplementation of the invention

Учитывая недостатки известных решений, рассмотренных выше, настоящее изобретение направлено на создание способа изоляции пакетов данных, передаваемых между узлами сети передачи данных общего пользования. Предложенный способ изоляции пакетов данных по существу обеспечивает протокол, выполняющий задачу построения частных и корпоративных вычислительных сетей с высокой степенью защищенности от внешних атак, направленных как на проникновение в частную или корпоративную сеть, так и на похищение частных или корпоративных данных, передаваемых по сетям общего пользования. Свойства протокола обеспечивают его применение с минимальными затратами благодаря наложению способа изоляции пакетов данных на уже имеющуюся инфраструктуру частной или корпоративной сети. Предлагаемый способ реализуется модулем изоляции пакетов данных, встраиваемым в существующую сеть передачи данных между сетевым адаптером и модулем протоколов канального уровня.Considering the disadvantages of the known solutions discussed above, the present invention is aimed at providing a method for isolating data packets transmitted between nodes of a public data network. The proposed method for isolating data packets essentially provides a protocol that performs the task of building private and corporate computer networks with a high degree of protection against external attacks aimed both at penetrating a private or corporate network and at stealing private or corporate data transmitted over public networks ... The properties of the protocol ensure its use at minimal cost due to the imposition of a method for isolating data packets on the existing infrastructure of a private or corporate network. The proposed method is implemented by a data packet isolation module built into an existing data transmission network between a network adapter and a data link layer protocol module.

К ключевым характеристикам способа изоляции пакетов данных согласно изобретению следует отнести операции, связанные с дополнением передаваемых данных идентификаторами, что позволяет исключить этап аутентификации отправителя данных на стороне получателя и использовать симметричные методы шифрования данных, передаваемых по информационным каналам связи как в локальных сетях, так и в сетях общего назначения. В основе изобретательского замысла, реализуемого предлагаемой группой изобретений, лежит дополнение передаваемых данных двумя видами идентификаторов, которые размещаются по определённым правилам в блоках (пакетах) данных, передаваемых по сетям передачи данных:The key characteristics of the method for isolating data packets according to the invention include operations related to the addition of identifiers to the transmitted data, which makes it possible to exclude the stage of authentication of the data sender on the receiver's side and to use symmetric methods of encryption of data transmitted over information communication channels both in local networks and in general purpose networks. The inventive concept implemented by the proposed group of inventions is based on the addition of the transmitted data with two types of identifiers, which are placed according to certain rules in data blocks (packets) transmitted over data transmission networks:

1. Идентификатор применения к обрабатываемому пакету данных способа изоляции пакетов данных согласно изобретению. Наличие данного идентификатора в принимаемых данных в явном или преобразованном виде указывает на применение предлагаемого способа изоляции пакетов данных. Смещение положения идентификатора в принимаемом блоке данных (пакете) относительно начала данных является настраиваемым параметром для соединения в каждом конкретном варианте выполнения способа согласно изобретению.1. Application identifier of the data packet isolation method according to the invention to the data packet being processed. The presence of this identifier in the received data in explicit or transformed form indicates the use of the proposed method for isolating data packets. The offset of the position of the identifier in the received data block (packet) relative to the beginning of the data is a tunable parameter for the connection in each particular embodiment of the method according to the invention.

2. Идентификатор соединения. Данный идентификатор указывает на применение однозначно связанного с ним ключа шифрования для преобразования данных в соответствии со способом согласно изобретению. Смещение положения идентификатора в передаваемом блоке данных (пакете) относительно начала данных является настраиваемым параметром для соединения в каждом конкретном варианте выполнения способа согласно изобретению.2. Connection identifier. This identifier indicates the use of a uniquely associated encryption key for transforming data in accordance with the method according to the invention. The offset of the position of the identifier in the transmitted data block (packet) relative to the beginning of the data is a tunable parameter for the connection in each particular embodiment of the method according to the invention.

Ниже будут описаны конкретные данные, которыми дополняются пакеты данных, преобразуемые предлагаемым способом изоляции пакетов данных согласно изобретению, а также конкретные операции с этими данными, включающие в себя, в частности, перемещение данных в составе пакета, зашифровывание всех данных или их части с применением соответствующего алгоритма и/или ключа шифрования, вычисление контрольной суммы и т.п. Следует понимать, что описываемые действия не относятся лишь к математическим методам, правилам интеллектуальной деятельности, представлению информации и т.п. как таковым, а представляют собой в известном смысле операции, выполняемые над материальным объектом (в частности, сигналом) материальными средствами (в частности, вычислительными средствами одного или более компьютеров, процессоров, интегральных схем и т.п.) с получением технического результата, который состоит в повышении безопасности обмена данными в сети передачи данных, как указано выше.Below, specific data will be described that supplement the data packets that are converted by the proposed method for isolating data packets according to the invention, as well as specific operations with this data, including, in particular, moving data as part of a packet, encrypting all or part of the data using the appropriate algorithm and / or encryption key, checksum calculation, etc. It should be understood that the described actions do not relate only to mathematical methods, rules of intellectual activity, presentation of information, etc. as such, but represent, in a certain sense, operations performed on a material object (in particular, a signal) by material means (in particular, by computing means of one or more computers, processors, integrated circuits, etc.) to obtain a technical result that consists in increasing the security of data exchange in the data transmission network, as indicated above.

Модуль изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, согласно изобретению встроен между сетевым адаптером и модулем протоколов канального уровня. Модуль изоляции пакетов данных согласно изобретению может содержать по меньшей мере блок обработки информационных запросов и команд управления, блок обработки принимаемых пакетов и блок обработки отправляемых пакетов. Модуль изоляции пакетов данных взаимодействует с интерфейсом взаимодействия сетевого адаптера с модулем стека протоколов TCP/IP, с одной стороны, и с модулем стека протоколов TCP/IP, с другой стороны. Следует отметить, что варианты реализации модуля изоляции пакетов данных согласно изобретению могут представлять собой различные сочетания аппаратных и программных компонентов, и объём изобретения не ограничен каким-либо конкретным сочетанием аппаратных и/или программных компонентов, реализующим модуль изоляции пакетов данных, осуществляющий способ изоляции пакетов данных согласно изобретению. Конкретные сочетания материально-технических средств, реализующих модуль и/или способ изоляции пакетов данных согласно изобретению, будут очевидны специалистам в данной области техники. Следует отметить, однако, что для реализации изобретения существуют в общем следующие условия.The module for isolating data packets transmitted over public networks and / or over local networks, according to the invention, is built between the network adapter and the module of the link layer protocols. The data packet isolation module according to the invention may comprise at least a unit for processing information requests and control commands, a unit for processing received packets and a unit for processing sent packets. The data packet isolation module interacts with the interface of the network adapter with the TCP / IP protocol stack module, on the one hand, and with the TCP / IP protocol stack module, on the other hand. It should be noted that embodiments of the data packet isolation module according to the invention may be various combinations of hardware and software components, and the scope of the invention is not limited to any particular combination of hardware and / or software components implementing a data packet isolation module implementing a data packet isolation method according to the invention. Specific combinations of material and technical means implementing the module and / or method of isolating data packets according to the invention will be obvious to those skilled in the art. It should be noted, however, that in general the following conditions exist for the implementation of the invention.

Способ изоляции пакетов данных согласно изобретению осуществляется в условиях обмена данными между сетевыми узлами по сети связи (сети передачи данных). Соответственно, для его реализации необходимо соответствующее вычислительное и связное оборудование, конкретные примеры которого сами по себе хорошо известны специалистам в данной области техники, и которое должно иметь следующие компоненты:The method for isolating data packets according to the invention is carried out under conditions of data exchange between network nodes over a communication network (data transmission network). Accordingly, its implementation requires appropriate computing and communication equipment, specific examples of which are themselves well known to those skilled in the art, and which should have the following components:

- процессор или программируемую логическую интегральную схему для реализации алгоритма преобразования обрабатываемых пакетов данных;- a processor or programmable logic integrated circuit for implementing the algorithm for converting the processed data packets;

- постоянное запоминающее устройство для хранения данных;- read-only memory for storing data;

- оперативную память для размещения данных, участвующих в преобразовании обрабатываемых пакетов данных;- random access memory to accommodate data involved in the transformation of processed data packets;

- сетевой адаптер, позволяющий модулю изоляции пакетов данных взаимодействовать с другими устройствами в сети;- a network adapter that allows the data packet isolation module to interact with other devices on the network;

- шины данных, соединяющие между собой компоненты, перечисленные выше.- data buses connecting the components listed above.

Кроме того, способ согласно изобретению реализуется в условиях операционной системы, управляющей одним или более компьютерами, выполняющими функции узлов-участников обмена данными. Способ согласно изобретению может быть реализован в условиях по существу любой из известных специалистам в данной области техники операционных систем. В качестве неограничивающего примера, возможность встраивания модуля, реализующего способ изоляции пакетов данных согласно изобретению, обеспечивается операционными системами (ОС) семейства Windows начиная с 98SE до 10, а также MacOS, Linux.In addition, the method according to the invention is implemented under the conditions of an operating system that controls one or more computers performing the functions of nodes participating in data exchange. The method according to the invention can be implemented under conditions of essentially any operating system known to those skilled in the art. As a non-limiting example, the possibility of embedding a module that implements the method for isolating data packets according to the invention is provided by operating systems (OS) of the Windows family from 98SE to 10, as well as MacOS, Linux.

Модуль изоляции пакетов данных, реализующий способ изоляции пакетов данных в соответствии с изобретением, может быть встроен между сетевым адаптером и модулем, реализующим протоколы канального уровня (в качестве неограничивающего примера, протоколы семейства TCP/IP), называемым в контексте настоящего документа модулем протоколов канального уровня. Под встраиванием в контексте заявляемого изобретения следует понимать следующее: модуль изоляции пакетов данных встраивается согласно изобретению в цепочку обработки всех сетевых пакетов, отправляемых с уровня сетевых протоколов на уровни сетевых адаптеров и принимаемых с уровня сетевых адаптеров и направляемых на уровень сетевых протоколов. Кроме того, модуль изоляции пакетов данных выполнен с возможностью перехвата и изменения (модификации) команд управления и запросов, направляемых на уровень сетевых адаптеров.A data packet isolation module implementing the data packet isolation method in accordance with the invention may be embedded between a network adapter and a data link protocol module (TCP / IP family protocols, as a non-limiting example), referred to in the context of this document as a data link protocol module. ... Embedding in the context of the claimed invention should be understood as follows: the data packet isolation module is embedded according to the invention into the processing chain of all network packets sent from the network protocol layer to the network adapter layer and received from the network adapter layer and sent to the network protocol layer. In addition, the data packet isolation module is configured to intercept and modify (modify) control commands and requests sent to the network adapter layer.

Способ согласно изобретению обеспечивает возможность передачи модулям протоколов (например, модулю протоколов канального уровня) информации об уменьшении максимального размера пакета данных для реализации описываемого способа, что подразумевает снижение полезной нагрузки пакета на некоторую величину. Уменьшение максимального размера пакета данных согласно предлагаемому способу необходимо, в частности, для обеспечения возможности дополнения обрабатываемых пакетов данных структурой сопроводительных данных, как будет подробно описано ниже.The method according to the invention makes it possible to transmit information to the protocol modules (for example, the protocol module of the data link layer) about the reduction of the maximum data packet size for the implementation of the described method, which implies a decrease in the payload of the packet by a certain amount. Reducing the maximum size of the data packet according to the proposed method is necessary, in particular, to make it possible to supplement the processed data packets with an accompanying data structure, as will be described in detail below.

Способ согласно изобретению обеспечивает возможность маскирования и/или отключения возможностей сетевого адаптера, препятствующих осуществлению способа изоляции пакетов данных согласно изобретению.The method according to the invention makes it possible to mask and / or disable the capabilities of the network adapter that impede the implementation of the method for isolating data packets according to the invention.

В соответствии с изобретением, сторона (сетевой узел), принимающая устанавливаемые соединения, имеет постоянный IP-адрес, или существует маршрутизирующий узел с таким IP-адресом, который доставит пакет обрабатываемых данных упомянутому сетевому узлу, произведя сетевую трансляцию адреса получателя пакета (NAT). Сторона (сетевой узел), инициирующая установление соединения, обладает информацией об IP-адресе стороны, принимающей устанавливаемые соединения или, обладая информацией о доменном имени стороны (сетевого узла), принимающей устанавливаемые соединения, может получить IP-адрес от публичной или частной сетевой службы доменных имен.In accordance with the invention, the party (network node) receiving the established connections has a permanent IP address, or there is a routing node with such an IP address that will deliver a packet of processed data to the said network node by performing a network translation of the packet recipient address (NAT). The party (network node) initiating the connection establishment has information about the IP address of the party that receives the connections being established or, having information about the domain name of the party (network node) that receives the connections being established, it can obtain the IP address from the public or private network domain service names.

Для реализации способа согласно изобретению на сетевом узле, участвующем в реализации способа, имеются вычислительные мощности для выполнения математических вычислений, обеспечивающих сжатие данных, шифрование данных, расчет криптографических контрольных сумм. Кроме того, на сетевом узле обеспечена возможность размещения в его оперативной памяти данных, необходимых для осуществления способа согласно изобретению модулем изоляции пакетов данных, как будет более подробно описано ниже. To implement the method according to the invention, the network node participating in the implementation of the method has computing power for performing mathematical calculations that provide data compression, data encryption, and calculation of cryptographic checksums. In addition, the network node is provided with the possibility of placing in its random-access memory the data necessary for the implementation of the method according to the invention by the data packet isolation module, as will be described in more detail below.

К общим параметрам сетевых узлов распределённой информационной системы, которые необходимы для осуществления способа согласно изобретению, относятся следующие параметры.The general parameters of network nodes of a distributed information system, which are necessary for the implementation of the method according to the invention, include the following parameters.

1. Идентификатор признака применения к передаваемому пакету способа согласно изобретению (далее IdTech). На основе принятого общего идентификатора для каждого отправляемого пакета данных вычисляется маскированный идентификатор (далее IdTechM) посредством необратимого преобразования значений идентификатора IdTech и криптографической контрольной суммы (т.е. хэш-суммы) зашифрованных данных передаваемого пакета.1. The identifier of the feature of application to the transmitted packet of the method according to the invention (hereinafter IdTech). Based on the received common identifier for each sent data packet, a masked identifier (hereinafter IdTech M ) is calculated by irreversible transformation of the IdTech identifier values and the cryptographic checksum (i.e., hash sum) of the encrypted data of the transmitted packet.

2. Размер структуры сопроводительных данных, применяемой в способе согласно изобретению (далее TechHdrLen).2. The size of the accompanying data structure used in the method according to the invention (hereinafter TechHdrLen).

3. Размеры и положение отдельных элементов структуры сопроводительных данных.3. The size and position of the individual elements of the accompanying data structure.

4. Список IP протоколов и их параметров (для TCP/UDP – диапазоны портов), которыми могут маскироваться реальные протоколы.4. List of IP protocols and their parameters (for TCP / UDP - port ranges) that can mask real protocols.

5. Выбранный вариант размещения структуры сопроводительных данных, применяемой в способе согласно изобретению, в передаваемом пакете.5. The selected variant of placing the structure of the accompanying data used in the method according to the invention in the transmitted packet.

В последнем случае структура сопроводительных данных может быть размещена в передаваемом пакете, в качестве неограничивающего примера, либо после заголовка протокола маскирования, либо в конце пакета. Кроме того, в способе согласно изобретению также возможно переменное смещение структуры сопроводительных данных в составе передаваемого пакета. В качестве неограничивающего примера, переменное смещение структуры сопроводительных данных может быть вычислено для каждого передаваемого пакета на основании следующих критериев:In the latter case, the structure of the accompanying data can be placed in the transmitted packet, as a non-limiting example, either after the header of the masking protocol, or at the end of the packet. In addition, in the method according to the invention, a variable displacement of the structure of the accompanying data in the transmitted packet is also possible. As a non-limiting example, the variable offset of the accompanying data structure can be calculated for each transmitted packet based on the following criteria:

- размера текущего передаваемого пакета;- the size of the currently transmitted packet;

- размера заголовка пакета;- the size of the packet header;

- размера выбранного протокола маскирования.- the size of the selected masking protocol.

Для того чтобы сетевой узел, принимающий передаваемый пакет, мог воспроизвести вычисление смещения структуры сопроводительных данных для данного передаваемого пакета, смещение структуры сопроводительных данных должно вычисляться на сетевом узле, передающем пакет, после выполнения сжатия и шифрования данных.In order for the network node receiving the transmitted packet to reproduce the computation of the structure offset of the accompanying data for a given packet to be transmitted, the structure offset of the accompanying data must be calculated at the network node transmitting the packet after the compression and encryption of the data is performed.

После операций сжатия и шифрования данных, а также добавления структуры сопроводительных данных в пакет выполняется вычисление нового значения длины пакета. Для этого используется следующая формула:After the data compression and encryption operations, as well as the addition of the accompanying data structure to the packet, a new value for the packet length is calculated. For this, the following formula is used:

IpLen = IpLenOriginal – CompressDecBytes + EncryptIncBytes + TechHdrLen + ProtSubstLen,IpLen = IpLenOriginal - CompressDecBytes + EncryptIncBytes + TechHdrLen + ProtSubstLen,

где IpLen – длина пакета в байтах после сжатия, шифрования и увеличения на величину, равную сумме размеров структуры сопроводительных данных и заголовка маскирования; IpLenOriginal – начальная длина пакета данных в байтах, полученная из заголовка пакета до его обработки способом согласно изобретению; CompressDecBytes – количество байт, на которое уменьшается размер начального пакета данных в результате выполнения сжатия данных пакета; EncryptIncBytes – количество байт, на которое увеличивается размер обрабатываемого пакета данных в результате выполнения шифрования в случае необходимости дополнения данных пакета до целого числа блоков; TechHdrLen – длина структуры сопроводительных данных, добавляемой в обрабатываемый пакет данных согласно предлагаемому способу; и ProtSubstLen – длина заголовка выбранного протокола маскирования в байтах.where IpLen is the packet length in bytes after compression, encryption and increase by an amount equal to the sum of the sizes of the accompanying data structure and the masking header; IpLenOriginal is the initial length of the data packet in bytes obtained from the packet header before it is processed by the method according to the invention; CompressDecBytes - the number of bytes by which the size of the initial data packet is reduced as a result of compressing the packet data; EncryptIncBytes - the number of bytes by which the size of the processed data packet is increased as a result of encryption if it is necessary to supplement the packet data to an integer number of blocks; TechHdrLen - the length of the accompanying data structure added to the processed data packet according to the proposed method; and ProtSubstLen is the length of the header of the selected masking protocol in bytes.

Функция вычисления смещения структуры сопроводительных данных относительно начала обрабатываемого пакета данных имеет четыре параметра:The function for calculating the offset of the accompanying data structure relative to the beginning of the data packet being processed has four parameters:

TechHdrOffset = foffset(IpLen, IpHdrLen, ProtSubstHdrLen, TechHdrLen, kOffset),TechHdrOffset = f offset (IpLen, IpHdrLen, ProtSubstHdrLen, TechHdrLen, kOffset),

где TechHdrOffset - смещение структуры сопроводительных данных в байтах относительно начала обрабатываемого пакета данных (в качестве неограничивающего примера, IP-пакета); IpLen - длина обрабатываемого пакета данных в байтах после сжатия, зашифровывания и увеличения на величину, равную размеру структуры сопроводительных данных; IpHdrLen – длина заголовка пакета обрабатываемых данных в байтах, полученная из заголовка пакета; ProtSubstHdrLen – длина заголовка выбранного протокола эмуляции в байтах; TechHdrLen – длина структуры сопроводительных данных (постоянная величина).where TechHdrOffset is the offset of the accompanying data structure in bytes relative to the beginning of the processed data packet (as a non-limiting example, an IP packet); IpLen - the length of the processed data packet in bytes after compression, encryption and increase by an amount equal to the size of the accompanying data structure; IpHdrLen - the length of the processed data packet header in bytes, obtained from the packet header; ProtSubstHdrLen - length of the header of the selected emulation protocol in bytes; TechHdrLen - Length of the accompanying data structure (constant).

Тогда смещение данных относительно начала обрабатываемого пакета данных IpDataOffset=IpHdrLen+ProtSubstHdrLen, а размер данных IpDataLen=IpLen-(IpHdrLen+ProtSubstHdrLen+TechHdrLen).Then the data offset relative to the beginning of the processed data packet IpDataOffset = IpHdrLen + ProtSubstHdrLen, and the data size IpDataLen = IpLen- (IpHdrLen + ProtSubstHdrLen + TechHdrLen).

TechHdrOffset=IpDataOffset+IpDataLen-IpDataLen/kOffset,TechHdrOffset = IpDataOffset + IpDataLen-IpDataLen / kOffset,

где kOffset – коэффициент смещения, представляющий собой целое положительное число (также может называться в контексте настоящей заявки коэффициентом смещения структуры дополняемых данных).where kOffset is an offset coefficient, which is a positive integer (can also be referred to in the context of this application as the offset coefficient of the structure of the padded data).

Если k=1, то структура сопроводительных данных размещается в начале обрабатываемого пакета данных, после заголовка протокола маскирования. Если kOffset > IpDataLen, то структура сопроводительных данных размещается в конце обрабатываемого пакета данных. Если необходимо, чтобы структура сопроводительных данных всегда размещалась в конце обрабатываемого пакета данных, kOffset должен быть больше величины максимальной длины обрабатываемого пакета данных за вычетом минимально возможных размеров заголовков (65535 – (20 + 8 + TechHdrLen)). Перед перемещением данных в обрабатываемом пакете данных на новое место на основании вычисленного коэффициента смещения обрабатываемые данные необходимо копировать во временный буфер. После сохранения обрабатываемых данных во временном буфере производится перенос данных пакета обрабатываемых данных из места, в котором необходимо разместить обрабатываемые данные, на место, освобожденное от них. После переноса обрабатываемых данных структура сопроводительных данных копируется на новое место на основании вычисленного смещения от начала пакета обрабатываемых данных.If k = 1, then the structure of the accompanying data is placed at the beginning of the processed data packet, after the header of the masking protocol. If kOffset> IpDataLen, then the accompanying data structure is placed at the end of the processed data packet. If it is necessary that the structure of accompanying data always be placed at the end of the processed data packet, kOffset must be greater than the maximum length of the processed data packet minus the minimum possible header sizes (65535 - (20 + 8 + TechHdrLen)). Before moving the data in the processed data packet to a new location based on the calculated offset factor, the processed data must be copied to a temporary buffer. After saving the processed data in a temporary buffer, the data of the processed data packet is transferred from the place where the processed data must be placed to the place freed from them. After transferring the processed data, the accompanying data structure is copied to a new location based on the calculated offset from the beginning of the processed data packet.

Одним из ключевых аспектов способа изоляции пакетов данных согласно изобретению является дополнение пакетов данных, обрабатываемых заявляемым способом и передаваемых по сети передачи данных, структурой сопроводительных данных. Это подразумевает дополнение обрабатываемых согласно способу пакетов, передаваемых по сети передачи данных, данными, позволяющими принимающей стороне выполнить контроль целостности принятых данных и произвести обратные преобразования: идентификацию применения к пакету способа изоляции пакетов данных согласно изобретению, идентификацию отправителя пакета данных, дешифрование и распаковку данных, преобразование принятого пакета данных к исходному состоянию. Для обеспечения этих преобразований каждый пакет дополняется следующими данными, включёнными в структуру сопроводительных данных:One of the key aspects of the method for isolating data packets according to the invention is the addition of data packets processed by the claimed method and transmitted over a data network with an accompanying data structure. This implies the addition of the packets processed according to the method, transmitted over the data transmission network, with data allowing the receiving party to check the integrity of the received data and to perform inverse transformations: identifying the application of the data packet isolation method according to the invention to the packet, identifying the sender of the data packet, decrypting and unpacking the data, converting the received data packet to its original state. To ensure these transformations, each package is supplemented with the following data included in the accompanying data structure:

- данные диверсификации D, используемые для вычисления ключа шифрования данных пакета обрабатываемых данных. При инициализации заполняется значением, способ получения которого будет далее описан более подробно;- diversification data D used to calculate the data encryption key of the processed data packet. During initialization, it is filled with a value, the method of obtaining which will be described in more detail below;

- маскированный идентификатор признака применения способа изоляции данных согласно изобретению IdTechM. Вычисление значения маскированного идентификатора упомянутого признака осуществляется по формуле, которая должна обеспечивать необратимое преобразование: IdTechM=fM(IdTech, PacketDataHash);- masked identifier of the feature of the application of the data isolation method according to the invention of IdTech M. The calculation of the value of the masked identifier of the mentioned feature is carried out according to the formula, which should provide an irreversible transformation: IdTech M = f M (IdTech, PacketDataHash);

- зашифрованный вспомогательным алгоритмом идентификатор соединения IdConEnc. - connection identifier encrypted by the auxiliary algorithm IdCon Enc .

Ключ шифрования для получения упомянутого зашифрованного идентификатора создается на основе идентификатора признака применения способа согласно изобретению IdTech, маскированного идентификатора признака применения способа согласно изобретению IdTechM и данных диверсификации D. Значение зашифрованного идентификатора соединения вычисляется по следующей формуле:An encryption key for obtaining said encrypted identifier is created on the basis of the identifier of the application feature of the method according to the invention IdTech, the masked identifier of the application feature of the method according to the invention IdTech M and the diversification data D. The value of the encrypted connection identifier is calculated according to the following formula:

IdConEnc=ENC(IdCon, KEY(IdTechM, IdTech, D)).IdCon Enc = ENC (IdCon, KEY (IdTech M , IdTech, D)).

Исходное значение идентификатора соединения вычисляется по следующей формуле:The initial value of the connection ID is calculated using the following formula:

IdCon=DEC(IdConEnc, KEY( IdTechM, IdTech, D));IdCon = DEC (IdCon Enc , KEY (IdTech M , IdTech, D));

- криптографическая контрольная сумма зашифрованных данных пакета, обрабатываемого способом изоляции пакетов данных согласно изобретению, PacketDataHash. Значение криптографической контрольной суммы вычисляется по следующей формуле:- a cryptographic checksum of the encrypted data of the packet processed by the data packet isolation method according to the invention, PacketDataHash. The cryptographic checksum value is calculated using the following formula:

PacketDataHash=HASH(IpDataEnc, IpLengthOrigin-IpHdrLen-CompressDecBytes+EncryptIncBytes).PacketDataHash = HASH (IpDataEnc, IpLengthOrigin-IpHdrLen-CompressDecBytes + EncryptIncBytes).

Кроме того, согласно одному или более вариантам выполнения изобретения в вычисление криптографической контрольной суммы PacketDataHash могут дополнительно быть включены зашифрованные значения следующих элементов структуры сопроводительных данных:In addition, according to one or more embodiments of the invention, encrypted values of the following elements of the accompanying data structure may be further included in the calculation of the cryptographic checksum of the PacketDataHash:

- количество добавленных байтов при зашифровывании данных пакета обрабатываемых данных EncryptIncBytes;- the number of bytes added when encrypting the data of the packet of processed data EncryptIncBytes;

- исходный размер в байтах пакета обрабатываемых данных, полученный из заголовка исходного пакета обрабатываемых данных до начала его преобразования способом согласно изобретению;- the original size in bytes of the processed data packet obtained from the header of the original processed data packet before starting its transformation by the method according to the invention;

- исходный тип IP-протокола, полученный из заголовка пакета обрабатываемых данных до начала преобразования пакета способом согласно изобретению; и- the original type of the IP-protocol, obtained from the header of the packet of the processed data before starting the transformation of the packet by the method according to the invention; and

- идентификатор применяемого способа сжатия данных перед шифрованием. Если идентификатор имеет значение «0», то сжатие данных не применялось.- identifier of the applied data compression method before encryption. If the identifier is "0", no data compression has been applied.

Структура сопроводительных данных пакета обрабатываемых данных в способе согласно изобретению проиллюстрирована ниже в Таблице 1. В правом столбце Таблицы 1 показано, зашифрованы ли данные на диверсифицированном ключе соединения, как будет более подробно пояснено ниже.The structure of the accompanying data of the processed data packet in the method according to the invention is illustrated in Table 1 below. The right column of Table 1 shows whether the data is encrypted on the diversified connection key, as will be explained in more detail below.

Таблица 1. Структура сопроводительных данных пакетаTable 1. Structure of accompanying data of the package

НаименованиеName ОписаниеDescription Данные зашифрованы?Is the data encrypted? DD Данные, используемые для диверсификации исходного ключа соединенияData used to diversify the original join key НетNot IdTechM IdTech M Маскированный идентификатор способа преобразованияConversion method masked identifier НетNot IdConEnc IdCon Enc Зашифрованный идентификатор соединения Encrypted connection identifier НетNot PacketDataHashPacketDataHash Криптографическая контрольная сумма зашифрованных данных пакетаCryptographic checksum of encrypted packet data НетNot EncryptIncBytesEncryptIncBytes Количество добавленных байтов при зашифровывании данных. Размер области дополненияThe number of bytes added when encrypting data. Padding area size ДаYes IpLengthOriginIpLengthOrigin Исходный размер в байтах IP пакета, изъятый из заголовка IP-пакета до начала преобразованияThe original size in bytes of the IP packet taken from the header of the IP packet prior to conversion ДаYes IpProtocolOriginIpProtocolOrigin Исходный тип IP протокола, изъятый из заголовка IP-пакета до начала преобразованияThe original type of the IP protocol, stripped from the header of the IP packet prior to conversion ДаYes IdCompressIdCompress Идентификатор применяемого способа сжатия данных перед шифрованиемThe identifier of the compression method used before encryption ДаYes

Перед передачей пакета область, включающая в себя элементы области сопроводительных данных, описываемые в 5-8 строках Таблицы 1, зашифровывается с использованием диверсифицированного для данного конкретного пакета обрабатываемых данных ключа соединения. В связи с этим необходимо, чтобы суммарный размер в байтах этой части структуры сопроводительных данных мог быть обработан основным алгоритмом шифрования без дополнения.Before the packet is transmitted, the area including the elements of the accompanying data area described in 5-8 lines of Table 1 is encrypted using a connection key diversified for this particular packet of processed data. In this regard, it is necessary that the total size in bytes of this part of the accompanying data structure can be processed by the basic encryption algorithm without padding.

В соответствии с одним или более вариантами выполнения способа согласно изобретению обработка пакетов данных включает в себя следующие этапы, проиллюстрированные на Фиг. 2.In accordance with one or more embodiments of the method according to the invention, processing data packets includes the following steps, illustrated in FIG. 2.

На этапе S1 выполняется определение идентификатора соединения для получателя пакета данных. Данная операция производится для узлов клиента, партнера и сервера. Результатом выполнения данной операции является извлечение из собственной базы данных, которая будет описана ниже, идентификатора признака применения к пакету обрабатываемых данных способа изоляции пакетов данных согласно изобретению, а также идентификатора соединения. Если получатель пакета данных не идентифицирован, дальнейшая обработка пакета данных в соответствии с предлагаемым способом не производится, и пакет может быть передан как есть (без обработки по изоляции) или отброшен, в зависимости от настроек. Последовательность определения идентификатора соединения для получателя пакета данных состоит в следующем:In step S1, a connection identifier is determined for the recipient of the data packet. This operation is performed for the client, partner and server nodes. The result of performing this operation is to retrieve from its own database, which will be described below, the identifier of the flag of the application to the data packet of the data packet isolation method according to the invention, as well as the connection identifier. If the recipient of the data packet is not identified, further processing of the data packet in accordance with the proposed method is not performed, and the packet can be transmitted as is (without isolation processing) or discarded, depending on the settings. The sequence for determining the connection identifier for the recipient of the data packet is as follows:

а) выполняется поиск значения идентификатора соединения в динамическом списке партнеров (TL) собственной базы данных на основании IP-адреса получателя пакета. Если значение идентификатора соединения найдено, производится назначение роли «партнера» своему узлу в контексте обработки данного пакета;a) looking for the value of the connection identifier in the dynamic list of partners (TL) of its own database based on the IP address of the recipient of the packet. If the value of the connection identifier is found, the "partner" role is assigned to its node in the context of processing this packet;

б) выполняется поиск значения идентификатора соединения в динамическом списке серверов (SL) собственной базы данных на основании IP-адреса получателя пакета. Если значение идентификатора соединения найдено, производится назначение роли «клиента» своему узлу в контексте обработки данного пакета;b) the search for the value of the connection identifier in the dynamic server list (SL) of its own database based on the IP address of the recipient of the packet. If the value of the connection identifier is found, the "client" role is assigned to its node in the context of processing this package;

в) если записи в таблице клиентов собственной базы данных отсутствуют, пакет данных может быть передан вышележащему протоколу или отброшен, в зависимости от настроек;c) if there are no entries in the client table of its own database, the data packet can be transferred to the superior protocol or discarded, depending on the settings;

г) выполняется поиск значения идентификатора соединения в динамическом списке клиентов (CL) собственной базы данных на основании IP-адреса получателя (реального или присвоенного). Если идентификатор соединения найден, производится назначение роли «сервера» своему узлу в контексте обработки данного пакета и осуществляется переход к пункту 2, указанному ниже;d) the search for the value of the connection identifier in the dynamic list of clients (CL) of its own database based on the IP address of the recipient (real or assigned). If the connection identifier is found, the "server" role is assigned to its node in the context of processing this package and the transition to point 2 below is carried out;

д) если поиск в таблице клиентов собственной базы данных не был успешным, пакет может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.e) if the lookup in the client table of its own database was not successful, the packet can be transferred to the superior protocol or discarded, depending on the settings.

На этапе S2 в случае фрагментированной отправки пакета данных выполняется полная сборка (дефрагментация) всего отправляемого пакета данных.In step S2, in the case of fragmented data packet sending, complete assembly (defragmentation) of the entire data packet to be sent is performed.

На этапе S3 выполняется вычисление смещения относительно начала обрабатываемого пакета данных и размера исходных данных для сжатия и/или зашифровывания.In step S3, an offset is calculated from the start of the data packet being processed and the size of the original data for compression and / or encryption.

На этапе S4 создаётся копия исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку. После создания копии в пакете содержатся четыре области:At step S4, a copy of the original packet is created with the addition of data areas to ensure its further processing. After the copy is created, the package contains four areas:

- область пакета, содержащая исходный IP-заголовок пакета, размером 20 байт и более. Размер IP-заголовка зависит от версии протокола IP и используемых опций протокола;- packet area containing the original IP-header of the packet, 20 bytes or more. The size of the IP header depends on the version of the IP protocol and the protocol options used;

- область пакета, следующая за IP-заголовком пакета, оставляется свободной от данных пакета. Размер области определяется выбранным протоколом маскирования и составляет 8 байт для UDP и 20 байт для TCP;- The area of the packet following the IP header of the packet is left free of packet data. The size of the area is determined by the selected masking protocol and is 8 bytes for UDP and 20 bytes for TCP;

- область пакета для размещения структуры сопроводительных данных;- package area for placing the structure of the accompanying data;

- область пакета, содержащая исходные данные пакета, размером равным размеру исходного IP-пакета за вычетом размера IP-заголовка. В случае использования алгоритма шифрования с постоянным размером блока эта область дополняется до размера кратного размеру блока шифрования.- the packet area containing the original packet data, equal to the size of the original IP packet minus the size of the IP header. In the case of using a constant block size encryption algorithm, this area is padded to a multiple of the encryption block size.

На этапе S5 осуществляется первичное формирование (инициализация) структуры сопроводительных данных с заполнением следующих элементов структуры:At step S5, the initial formation (initialization) of the accompanying data structure is carried out with the filling of the following structure elements:

- область данных, используемых для вычисления диверсифицированного ключа;- the area of data used to calculate the diversified key;

- идентификатор признака данного способа;- identifier of the feature of this method;

- идентификатор получателя пакета (идентификатора соединения);- packet recipient identifier (connection identifier);

- поле контрольной суммы зашифрованных данных пакета;- field of the checksum of the encrypted packet data;

- поле исходного размера в байтах IP-пакета (Значение из IP- заголовка);- the field of the initial size in bytes of the IP packet (Value from the IP header);

- поле исходного типа IP-протокола (Значение из IP-заголовка);- field of the original type of the IP-protocol (Value from the IP-header);

- поле используемого типа сжатия данных.- field of the used data compression type.

На этапе S6, если выбран метод сжатия данных, осуществляется сжатие данных. После сжатия данных вычисляется количество байтов, на которое уменьшился размер данных, и производится запись этого значения в структуру сопроводительных данных.In step S6, if a data compression method is selected, the data is compressed. After the data is compressed, the number of bytes by which the data size has been reduced is calculated, and this value is written to the accompanying data structure.

На этапе S7 вычисляется размер дополнения данных для обеспечения задачи шифрования и запись вычисленного значения в структуру сопроводительных данных. Дополненные байты инициируются псевдослучайным значением.In step S7, the padding size is calculated to support the encryption task, and the calculated value is written to the accompanying data structure. Padded bytes are initiated with a pseudo-random value.

На этапе S8 осуществляется вычисление диверсифицированного ключа на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных, используемых для вычисления диверсифицированного ключа.In step S8, the diversified key is computed based on the key corresponding to the connection identifier and the value from the augmented data structure used to calculate the diversified key.

На этапе S9 осуществляется зашифровывание данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных.In step S9, the data is encrypted using the diversified key for each packet of data being processed.

На этапе S10 осуществляется зашифровывание части структуры сопроводительных данных за исключением элементов структуры, содержащих данные диверсификации, идентификатор способа, идентификатор соединения и область для контрольной суммы зашифрованных данных.In step S10, a part of the accompanying data structure is encrypted, except for the structure elements containing the diversification data, the method identifier, the connection identifier, and the checksum area of the encrypted data.

На этапе S11 осуществляется вычисление контрольной суммы всех зашифрованных данных и помещение ее в структуру сопроводительных данных.In step S11, a checksum of all encrypted data is calculated and placed in the accompanying data structure.

На этапе S12 выполняется вычисление значения маскированного идентификатора способа согласно изобретению на основании значений идентификатора способа и контрольной суммы зашифрованных данных. Вычисленное значение маскированного идентификатора способа помещается в структуру сопроводительных данных.In step S12, the computation of the masked method identifier value according to the invention is performed based on the method identifier and the checksum values of the encrypted data. The computed value of the masked method identifier is placed in the accompanying data structure.

На этапе S13 формируется ключ шифрования для идентификатора соединения на основании значений идентификатора способа, маскированного идентификатора способа и значения из области данных D.In step S13, an encryption key for the connection identifier is generated based on the values of the method identifier, the masked method identifier, and the value from data area D.

На этапе S14 идентификатор соединения зашифровывается, и зашифрованное значение идентификатора соединения помещается в структуру сопроводительных данных.In step S14, the connection identifier is encrypted and the encrypted connection identifier value is placed in the accompanying data structure.

На этапе S15 формируется новый заголовок UDP или TCP с вычислением новой контрольной суммы для выбранного протокола.In step S15, a new UDP or TCP header is generated with a new checksum calculated for the selected protocol.

На этапе S16 вычисляется смещение согласно настройкам способа для структуры сопроводительных данных в пакете обрабатываемых данных. В случае, если текущее положение структуры сопроводительных данных в пакете обрабатываемых данных не соответствует требуемому (kOffset не равен 1), данные структуры сопроводительных данных переносятся в область данных в соответствии с вычисленным смещением. Данные, ранее находившиеся в рассматриваемой области, переносятся на место, которое ранее занимала структура сопроводительных данных.In step S16, an offset is calculated according to the method settings for the accompanying data structure in the processed data packet. If the current position of the accompanying data structure in the processed data packet does not correspond to the required one (kOffset is not equal to 1), the data of the accompanying data structure is transferred to the data area in accordance with the calculated offset. The data previously located in the considered area is transferred to the place that was previously occupied by the structure of the accompanying data.

На этапе S17 осуществляется фрагментация пакета, если производилась его полная сборка (дефрагментация).In step S17, the packet is fragmented if it has been fully assembled (defragmented).

На этапе S18 повторно вычисляется контрольная сумма IP-заголовка, которая записывается в структуре пакета обрабатываемых данных, после чего один или более пакетов обрабатываемых данных отправляются в сетевой адаптер.In step S18, the IP header checksum is recalculated, which is written in the structure of the processing data packet, after which one or more processed data packets are sent to the network adapter.

Собственная база данных, применяемая в способе согласно изобретению, состоит из статических таблиц, динамических таблиц и связанных списков, которые вместе обеспечивают информационное обеспечение способа изоляции пакетов данных согласно изобретению. Статические таблицы хранятся в постоянной памяти модуля изоляции пакетов данных согласно изобретению. При загрузке модуля изоляции пакетов данных согласно изобретению данные из статических таблиц передаются в оперативную память модуля изоляции пакетов данных.The native database used in the method according to the invention consists of static tables, dynamic tables and linked lists, which together provide information support for the method for isolating data packets according to the invention. The static tables are stored in the permanent memory of the data packet isolation module according to the invention. When the data packet isolation module is loaded according to the invention, the data from the static tables is transferred to the RAM of the data packet isolation module.

В нижеприведённой таблице 2 проиллюстрирован пример параметров, используемых в способе согласно изобретению, сохраняемых в статической таблице собственной базы данных.Table 2 below illustrates an example of parameters used in the method according to the invention, stored in a static table in its own database.

Таблица 2. Статическая таблица параметровTable 2. Static parameter table

НаименованиеName ОписаниеDescription Размер данныхData size AllowNotIpAllowNotIp Разрешает или запрещает прием/отправку пакетов, не относящихся к семейству протоколов TCP/IP (пакетов, не имеющих IP-заголовка, за исключением ARP и RARP) без преобразованияEnables or disables sending / receiving packets that do not belong to the TCP / IP protocol family (packets without an IP header, except for ARP and RARP) without conversion 2 бита2 bits AllowUnicastIPAllowUnicastIP Разрешает или запрещает прием/отправку однонаправленных пакетов, относящихся к семейству протоколов TCP/IP и имеющих конкретный IP-адрес получателя пакета, без преобразованияAllows or denies sending / receiving unidirectional packets belonging to the TCP / IP protocol family and having a specific IP address of the packet recipient, without conversion 2 бита2 bits AllowMulticastIpAllowMulticastIp Разрешает или запрещает прием/отправку пакетов, относящихся к семейству протоколов TCP/IP и имеющих в качестве IP-адреса получателя пакетов групповой адрес, соответствующий группе сетевых узлов, без преобразованияAllows or denies sending / receiving packets belonging to the TCP / IP protocol family and having a multicast address corresponding to a group of network nodes as the IP address of the packet recipient, without conversion 2 бита2 bits AllowBroadcastIPAllowBroadcastIP Разрешает или запрещает прием/отправку пакетов, относящихся к семейству протоколов TCP/IP и имеющих в качестве IP-адреса получателя пакета широковещательный адрес, соответствующий всем сетевым узлам подсети, без преобразованияAllows or denies sending / receiving packets belonging to the TCP / IP protocol family and having a broadcast address corresponding to all network nodes of the subnet as the IP address of the packet recipient, without conversion 2 бита2 bits IpProtocolSubstIpProtocolSubst Выбранный протокол маскированияSelected masking protocol 1 байт1 byte PortSubstPortSubst Выбранный порт маскированияSelected masking port 2 байта2 bytes TimerFunctionPeriodTimerFunctionPeriod Интервал вызова функции периодического таймера (в секундах)Periodic timer function call interval (in seconds) 2 байта2 bytes kOffsetkOffset Коэффициент смещения структуры дополняемых данных в пакетеCoefficient of displacement of the structure of augmented data in a packet 2 байта2 bytes

В нижеприведённой таблице 3 проиллюстрирован пример таблицы узлов партнера в подсети партнёров в соответствии с изобретением.Table 3 below illustrates an example of a peer node table in a peer subnet in accordance with the invention.

Таблица 3. Таблица партнеровTable 3. Partner table

НаименованиеName ОписаниеDescription Размер данныхData size IDconIDcon Идентификатор соединенияConnection ID 4 или более байт4 or more bytes IPIP IP–адрес партнера или подсети партнеровPartner IP address or partner subnets 4 байта4 bytes IPmaskIPmask Маска значимых двоичных разрядов, начиная со старшего, для значения IP (1-32). Если задано значение вне диапазона 1-32, то оно считается равным 32Significant bit mask, starting with the most significant, for the IP value (1-32). If set to a value outside the range of 1-32, then it is considered to be 32 6 бит6 bit Password or KeyPassword or Key Пароль или исходный ключ соединенияPassword or original connection key Произвольный или зависит от алгоритмаArbitrary or depends on the algorithm DescriptionDescription Наименование соединенияConnection name ПроизвольныйArbitrary

В нижеприведённой таблице 4 проиллюстрирован пример таблицы узлов сервера в подсети серверов в соответствии с изобретением.Table 4 below illustrates an example of a server node table in a server subnet in accordance with the invention.

Таблица 4. Таблица серверовTable 4. Server table

НаименованиеName ОписаниеDescription Размер данныхData size IDconIDcon Идентификатор соединенияConnection ID 4 или более байт4 or more bytes IPIP IP–адрес сервера или подсети серверовServer IP address or server subnet 4 байта4 bytes IPmaskIPmask Маска значимых двоичных разрядов, начиная со старшего, для значения IP (1-32). Если задано значение вне диапазона 1-32, то оно считается равным 32Significant bit mask, starting with the most significant, for the IP value (1-32). If set to a value outside the range of 1-32, then it is considered to be 32 6 бит6 bit Password or KeyPassword or Key Пароль или исходный ключ соединенияPassword or original connection key Произвольный или зависит от алгоритмаArbitrary or depends on the algorithm DescriptionDescription Наименование соединенияConnection name ПроизвольныйArbitrary

В нижеприведённой таблице 5 проиллюстрирован пример таблицы узлов клиента в подсети клиентов в соответствии с изобретением.Table 5 below illustrates an example of a client node table in a client subnet in accordance with the invention.

Таблица 5. Таблица клиентовTable 5. Customer table

НаименованиеName Описание столбца таблицыTable Column Description Размер данныхData size IDconIDcon Идентификатор соединенияConnection ID 4 или более байт4 or more bytes IPIP IP–адрес клиента, может быть не задан (0.0.0.0)Client IP address, may not be set (0.0.0.0) 4 байта4 bytes IPmaskIPmask Маска значимых двоичных разрядов, начиная со старшего, для значения IP (1-32). Если задано значение вне диапазона 1-32, то оно считается равным 32Significant bit mask, starting with the most significant, for the IP value (1-32). If set to a value outside the range of 1-32, then it is considered to be 32 6 бит6 bit Password or KeyPassword or Key Пароль или исходный ключ соединенияPassword or original connection key Произвольный или зависимый от алгоритмаArbitrary or algorithm dependent DescriptionDescription Наименование соединенияConnection name ПроизвольныйArbitrary

Динамические данные формируются в процессе загрузки, настройки и работы модуля изоляции пакетов данных согласно изобретению.Dynamic data is generated during the loading, configuration and operation of the data packet isolation module according to the invention.

Список параметров соединений уровня протоколов IP (PL) содержит записи для каждого активного соединения. Записи добавляются при создании соединений (приеме или отправке пакета с указанными в записи таблицы значениями, кроме значений времени приема и отправки последнего пакета) и удаляются по истечении предела времени неактивности соединения. Ниже приведена структура элемента списка (PLI), проиллюстрированная в Таблице 6.The IP Protocol Layer (PL) connection parameter list contains entries for each active connection. Records are added when connections are created (when a packet is received or sent with the values specified in the table record, except for the values of the receive and send times of the last packet) and are deleted when the connection inactivity timeout expires. The following is the list item (PLI) structure illustrated in Table 6.

Таблица 6. Параметры соединений уровня протоколов IPTable 6. Parameters of IP protocol layer connections

НаименованиеName ОписаниеDescription Pointer2NextItemPointer2NextItem Указатель на следующий блок параметров соединенийPointer to next block of connection parameters LocalIpAddrLocalIpAddr IP-адрес локального узлаLocal host IP RemoteIpAddrRemoteIpAddr IP-адрес удаленного узлаRemote host IP address IpProtocolSubstIpProtocolSubst Протокол маскирования, замещающий исходный в IP-заголовке пакета, используемый для данного соединенияA masking protocol that replaces the original in the IP header of the packet used for this connection LocalPortSubstLocalPortSubst Порт локального узла протокола маскированияMasking protocol local host port RemotePortSubstRemotePortSubst Порт удаленного компьютера протокола маскированияMasking protocol remote computer port IpProtocolOriginIpProtocolOrigin Исходный протокол данного соединения, находящийся в IP-заголовке отправляемого пакета до преобразования данным способомThe original protocol of this connection, which is in the IP header of the packet being sent before it is converted by this method LocalPortOriginLocalPortOrigin Порт локального узла исходного протокола Source protocol local host port RemotePortOriginRemotePortOrigin Порт удаленного компьютера исходного протоколаSource protocol remote computer port LastSystemTimeReceiveLastSystemTimeReceive Время, в которое был принят последний пакетThe time at which the last packet was received LastSystemTimeSendLastSystemTimeSend Время, в которое был отправлен последний пакетThe time at which the last packet was sent

Связанные списки партнеров, клиентов и серверов формируются путем загрузки данных из статических таблиц, хранящихся в постоянной памяти (ПЗУ) модуля изоляции пакетов согласно изобретению, в оперативную память (ОЗУ) модуля согласно изобретению. Связанные списки партнёров, клиентов и серверов могут быть модифицированы в процессе работы модуля изоляции пакетов данных согласно изобретению.Linked lists of partners, clients and servers are generated by loading data from static tables stored in the read-only memory (ROM) of the packet isolation module according to the invention into the random access memory (RAM) of the module according to the invention. The linked lists of partners, clients and servers can be modified during the operation of the data packet isolation module according to the invention.

В таблице 7 ниже проиллюстрированы параметры, определяющие структуру элемента списка (TLI) партнеров (туннельных соединений) (TL).Table 7 below illustrates the parameters that define the structure of the TLIs.

Таблица 7. Параметры элемента списка партнёровTable 7. Parameters of the partner list element

НаименованиеName ОписаниеDescription Pointer2NextItemPointer2NextItem Указатель на следующий элемент в спискеPointer to the next item in the list IDID Идентификатор партнераPartner ID IPaddressIpaddress IP-адрес партнера(партнерской подсети)Partner IP address (partner subnet) IPmaskIPmask IP-маска партнерской подсетиPartner subnet IP mask 1stRecvSysTime1stRecvSysTime Системное время приёма первого пакетаSystem time of reception of the first packet LastRecvSysTimeLastRecvSysTime Системное время приёма последнего пакетаSystem time of the last packet received Pointer2ConnectionsListPointer2ConnectionsList Указатель на связанный список соединений для указанного партнерского IDPointer to the linked list of connections for the specified partner ID PasswordPassword Пароль для данного партнера (партнерской подсети). На основе пароля формируется исходный ключ шифрованияPassword for this partner (partner subnet). Based on the password, the initial encryption key is generated KeyKey Указатель на область памяти, в которой размещен ключ шифрования для данного партнера (партнерской подсети). Ключ может формироваться при необходимости преобразования пакета при отправке или получении и удаляться при отсутствии взаимодействия с данным партнером (партнерской подсетью)Pointer to the memory area that contains the encryption key for this partner (partner subnet). The key can be generated if it is necessary to convert a packet when sending or receiving and deleted if there is no interaction with this partner (partner subnet)

В Таблице 8 ниже приведена структура элемента списка (SLI) серверов (SL).Table 8 below shows the structure of the Server List Item (SLI) (SLI).

Таблица 8. Параметры структуры элемента списка серверов (SLI)Table 8. Parameters of the server list element structure (SLI)

НаименованиеName ОписаниеDescription Pointer2NextItemPointer2NextItem Указатель на следующий элемент в спискеPointer to the next item in the list IDID Идентификатор партнераPartner ID IPaddressIpaddress IP-адрес сервера (серверной подсети)Server IP address (server subnet) IPmaskIPmask IP-маска серверной подсетиServer subnet IP mask 1stRecvSysTime1stRecvSysTime Системное время приёма первого пакетаSystem time of reception of the first packet LstRecvSysTimeLstRecvSysTime Системное время приёма последнего пакетаSystem time of the last packet received Pointer2ConnectionsListPointer2ConnectionsList Указатель на связанный список соединений для данного серверного IDPointer to the linked list of connections for the given server ID PasswordPassword Пароль для данного сервера (серверной подсети). На основании пароля формируется исходный ключ шифрованияPassword for this server (server subnet). Based on the password, the initial encryption key is generated KeyKey Указатель на область памяти, в которой размещен ключ шифрования для данного сервера (серверной подсети). Ключ может создаваться при необходимости преобразования пакета при отправке или получении и удаляться при отсутствии взаимодействия с данным сервером (серверной подсетью)Pointer to the memory area that contains the encryption key for this server (server subnet). The key can be created when it is necessary to transform a packet when sending or receiving and deleted if there is no interaction with this server (server subnet)

В Таблице 9 ниже приведена структура элемента списка (CLI) клиентов (CL).Table 9 below shows the structure of the client (CLI) list item (CLI).

Таблица 9. Параметры структуры элемента списка клиентов (CLI)Table 9. Parameters of the structure of the client list item (CLI)

НаименованиеName ОписаниеDescription Pointer2NextItemPointer2NextItem Указатель на следующий элемент в спискеPointer to the next item in the list IDID Идентификатор клиентаClient ID IPaddressIpaddress IP-адрес клиента, реальный или присвоенный ему для идентификации при отправкеClient IP-address, real or assigned to it for identification during sending CurrentIPaddressCurrentIPaddress Текущий IP-адрес узла-клиента, с которого на узел-сервер приходят от него пакеты и на который отправляет пакеты серверThe current IP address of the client node from which packets come to the server node and to which the server sends packets 1stRecvSysTime1stRecvSysTime Системное время приёма первого пакетаSystem time of reception of the first packet LstRecvSysTimeLstRecvSysTime Системное время приёма последнего пакетаSystem time of the last packet received Pointer2ConnectionsListPointer2ConnectionsList Указатель на связанный список соединений для данного клиентского IDPointer to the linked list of connections for the given client ID PasswordPassword Пароль для данного клиента (клиентской подсети). На основании пароля создается исходный ключ шифрованияPassword for this client (client subnet). An initial encryption key is generated based on the password. KeyKey Указатель на область памяти, где размещен ключ шифрования для данного клиента (клиентской подсети). Ключ может формироваться при необходимости преобразования пакета при отправке или получении и удаляться при отсутствии взаимодействия с данным сервером (серверной подсетью)Pointer to the memory area where the encryption key for this client (client subnet) is located. The key can be generated if it is necessary to transform a packet when sending or receiving and deleted if there is no interaction with this server (server subnet)

В таблице 10 ниже проиллюстрированы связанные списки накопления фрагментов пакетов. Используются два изолированных связанных списка: для дефрагментации пакетов при приеме и при отправке.Table 10 below illustrates the associated packet fragment accumulation lists. Two isolated linked lists are used: for defragmenting packets on receiving and on sending.

Таблица 10. Параметры элемента списка накопления фрагментов пакетовTable 10. Parameters of the element of the list of accumulation of packet fragments

НаименованиеName ОписаниеDescription SystemTimeSystemTime Время, в которое был обработан последний фрагмент пакетаThe time at which the last fragment of the packet was processed CounterCounter Счетчик обработанных фрагментовCounter of processed fragments BytesWrittenBytesWritten Количество сохраненных байтов данных пакетаNumber of Packet Data Bytes Stored BytesNeededBytesNeeded Ожидаемое количество байтов данных пакетаExpected number of bytes of packet data IpHeaderIpHeader Заголовок IP-пакетаIP packet header IpDataSizeIpDataSize Размер буфера хранения данныхStorage buffer size IpDataIpData Буфер данных IP-пакетаIP packet data buffer

Далее поясняется алгоритм шифрования, применяемый в способе изоляции пакетов данных согласно изобретению. Следует понимать, что изобретение не ограничено подробностями характеристики алгоритма шифрования, и вместо описанного в качестве примера алгоритма может быть применён другой аналогичный или эквивалентный алгоритм, как будет очевидно специалистам в данной области техники.The following explains the encryption algorithm used in the method for isolating data packets according to the invention. It should be understood that the invention is not limited to the details of the characteristics of the encryption algorithm, and instead of the algorithm described by way of example, another similar or equivalent algorithm may be employed as will be apparent to those skilled in the art.

В способе изоляции пакетов данных согласно изобретению предусмотрено два назначения применения алгоритмов криптографических преобразований:In the method for isolating data packets according to the invention, there are two purposes of applying cryptographic transformation algorithms:

а) основной алгоритм шифрования данных пакета на диверсифицируемом ключе соединения;a) the main encryption algorithm for packet data on a diversified connection key;

б) вспомогательный алгоритм шифрования значения идентификатора соединения в области дополняемых данных пакета на ключе, формируемом с использованием идентификатора признака применения способа изоляции пакетов данных согласно изобретению, маскированного идентификатора признака применения способа согласно изобретению и значения из области сопроводительных данных пакета D.b) an auxiliary encryption algorithm for the value of the connection identifier in the area of supplemented data of the packet on the key generated using the identifier of the application feature of the method for isolating data packets according to the invention, the masked identifier of the feature of the application of the method according to the invention and the value from the accompanying data area of the packet D.

Общие характеристики алгоритмов следующие:The general characteristics of the algorithms are as follows:

а) симметричный алгоритм, т.е. при зашифровывании и расшифровывании данных используется один и тот же криптографический ключ;a) symmetric algorithm, i.e. when encrypting and decrypting data, the same cryptographic key is used;

б) блочный алгоритм - данные разделяются на части (блоки), определяемого алгоритмом размера и с каждой частью производятся криптографические преобразования;b) block algorithm - the data is divided into parts (blocks) of the size determined by the algorithm and cryptographic transformations are performed with each part;

в) алгоритм с возможностью быстрой диверсификации (модификации) ключа при зашифровывании и расшифровывании каждого нового пакета данных. Для каждого пакета и идентификатора соединения используется свой ключ зашифровывания, полученный путем преобразования исходного ключа. Преобразование должно быть воспроизводимым на стороне приема пакета.c) an algorithm with the ability to quickly diversify (modify) the key when encrypting and decrypting each new data packet. Each packet and connection identifier uses its own encryption key obtained by transforming the original key. The transformation must be reproducible on the receiving side of the packet.

Основной алгоритм шифрования дополнительно должен обладать одним из свойств:The main encryption algorithm must additionally have one of the following properties:

1) осуществлять криптографическое преобразование данных, оперируя постоянным размером блока. В этом случае область данных зашифровывается блоками равного размера, определяемого выбранным алгоритмом. Если размер последнего участка данных менее размера блока, он дополняется до размера блока. Максимальный размер дополнения равен размеру блока, уменьшенному на 1. В связи с этим целесообразно использовать алгоритм с размером блока не более 8 байтов. При расшифровывании область данных расшифровывается блоками, а затем, если последний участок дополнялся некоторым количеством байт, размер области данных уменьшается на это значение,1) carry out cryptographic data transformation in terms of a constant block size. In this case, the data area is encrypted in blocks of equal size, determined by the selected algorithm. If the size of the last piece of data is less than the block size, it is padded to the block size. The maximum padding size is equal to the block size reduced by 1. Therefore, it is advisable to use an algorithm with a block size of no more than 8 bytes. During decryption, the data area is decrypted in blocks, and then, if the last section was supplemented with a certain number of bytes, the size of the data area is reduced by this value,

2) осуществлять криптографическое преобразование данных, оперируя переменным размером блока, позволяющим проводить операции с пакетом данных размером от 20 до 65535 байт без увеличения размера шифрованных данных относительно размера исходных данных или с незначительным увеличением до 8 байтов.2) to carry out cryptographic data transformation, operating with a variable block size, which allows operations with a data packet ranging in size from 20 to 65535 bytes without increasing the size of the encrypted data relative to the size of the original data or with a slight increase up to 8 bytes.

Для вспомогательного алгоритма шифрования определяются следующие требуемые характеристики. Существует быстрый алгоритм создания диверсифицированного ключа на базе значений идентификатора признака применения способа, маскированного идентификатора признака применения способа и данных, используемых для диверсификации ключа. Размер блока применяемого алгоритма является постоянным и всегда равен или кратен размеру в байтах, определенному для зашифрованного идентификатора соединения.The following required characteristics are defined for the auxiliary encryption algorithm. There is a fast algorithm for creating a diversified key based on the values of the identifier of the method application indicator, the masked identifier of the method application indicator and the data used to diversify the key. The block size of the algorithm applied is constant and is always equal to or multiples of the byte size specified for the encrypted connection identifier.

Для повышения стойкости криптозащиты передаваемой информации каждый передаваемый блок информации (пакет) должен быть зашифрован на уникальном ключе. Для этого применяется метод диверсификации исходного ключа. В соответствии с изобретением в применяемых алгоритмах шифрования обеспечивается многообразие ключа шифрования с использованием следующего принципа:To increase the strength of the cryptographic protection of the transmitted information, each transmitted block of information (packet) must be encrypted with a unique key. For this, the method of diversifying the original key is used. In accordance with the invention, the encryption algorithms used provide a variety of encryption keys using the following principle:

Kd=fd(K,D), гдеK d = f d (K, D), where

Kd - диверсифицированный ключ для передачи пакета между двумя узлами, K - исходный ключ соединения между двумя узлами, D - данные, используемые для получения диверсифицированного ключа Kd; fd(…) - псевдослучайная функция диверсификации.K d is a diversified key for transmitting a packet between two nodes, K is the original key of the connection between two nodes, D is the data used to obtain a diversified key K d ; f d (…) - pseudo-random diversification function.

В качестве данных, используемых для получения диверсифицированного ключа, в соответствии с изобретением предлагается использовать псевдослучайную величину, значение текущего времени, их сочетание или контрольную сумму значений. Основная задача применяемого метода диверсификации исходного ключа состоит в обеспечении надежной изменчивости данных D.As the data used to obtain the diversified key, in accordance with the invention, it is proposed to use a pseudo-random value, the value of the current time, their combination or a checksum of values. The main task of the applied method of diversification of the original key is to ensure reliable variability of data D.

Далее будет рассмотрена обработка данных пакетов, изолируемых способом согласно предлагаемому изобретению, при приёме и передаче данных, соответственно. Для начала будет описана процедура обработки данных при передаче.Next, we will consider the processing of packet data, isolated by the method according to the proposed invention, when receiving and transmitting data, respectively. To begin with, the procedure for processing data during transmission will be described.

При передаче пакетов данных, обрабатываемых способом согласно изобретению, производятся следующие последовательные действия.When transmitting data packets processed by the method according to the invention, the following sequential steps are performed.

Сначала определяется идентификатор соединения для получателя пакета данных. Данная операция производится для узлов клиента, партнера и сервера. Результатом выполнения данной операции является извлечение из собственной базы данных идентификатора признака применения к передаваемому пакету способа согласно изобретению и идентификатора соединения. Если получатель пакета не идентифицирован, дальнейшая обработка передаваемого пакета не производится (то есть, в зависимости от настроек, пакет может быть передан как есть или отброшен). Последовательность определения идентификатора соединения и идентификатора признака применения к передаваемому пакету способа согласно изобретению следующая.First, the connection identifier for the recipient of the data packet is determined. This operation is performed for the client, partner and server nodes. The result of performing this operation is to retrieve from the own database the identifier of the application to the transmitted packet of the method according to the invention and the identifier of the connection. If the recipient of the packet is not identified, further processing of the transmitted packet is not performed (that is, depending on the settings, the packet can be sent as is or discarded). The sequence of determining the connection identifier and the identifier of the application feature to the transmitted packet of the method according to the invention is as follows.

Сначала производится поиск по IP-адресу получателя пакета значения идентификатора соединения в динамическом списке партнеров (TL) собственной базы данных. Если идентификатор соединения найден, производится назначение роли «партнера» своему узлу в контексте обработки данного пакета и осуществляется переход к полной сборке (дефрагментации) всего отправляемого пакета данных в случае фрагментированной отправки.First, the IP address of the packet recipient is searched for the connection identifier value in the dynamic partner list (TL) of its own database. If the connection identifier is found, the "partner" role is assigned to its node in the context of processing this packet, and the transition to a complete assembly (defragmentation) of the entire sent data packet is performed in the event of a fragmented send.

Далее производится поиск по IP-адресу получателя пакета значения идентификатора соединения в динамическом списке серверов (SL) собственной базы данных. Если идентификатор соединения найден, производится назначение роли «клиента» своему узлу в контексте обработки данного пакета, после чего, опять же, в случае необходимости осуществляется переход к полной сборке (дефрагментации) всего отправляемого пакета данных в случае фрагментированной отправки.Next, the IP address of the packet recipient is searched for the connection identifier value in the dynamic server list (SL) of its own database. If the connection identifier is found, the "client" role is assigned to its node in the context of processing this packet, after which, again, if necessary, a transition is made to complete assembly (defragmentation) of the entire sent data packet in case of fragmented sending.

Если записи в таблице клиентов собственной базы данных отсутствуют, обрабатываемый пакет данных может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.If there are no entries in the client table of its own database, the processed data packet may be transferred to the higher-level protocol or discarded, depending on the settings.

Далее производится поиск по IP-адресу получателя (реальному или присвоенному) значения идентификатора соединения в динамическом списке клиентов (CL) собственной базы данных. Если идентификатор соединения найден, производится назначение роли «сервера» своему узлу в контексте обработки данного пакета после чего, опять же, в случае необходимости осуществляется переход к полной сборке (дефрагментации) всего отправляемого пакета данных в случае фрагментированной отправки. Если поиск в таблице клиентов собственной базы данных не выдал соответствующую запись в базе данных, пакет может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.Next, a search is performed by the recipient's IP address (real or assigned) for the connection identifier value in the dynamic client list (CL) of its own database. If the connection identifier is found, the "server" role is assigned to its node in the context of processing this packet, after which, again, if necessary, a transition is made to complete assembly (defragmentation) of the entire sent data packet in case of fragmented sending. If a lookup in the client table of its own database does not return a corresponding entry in the database, the packet may be passed to the higher protocol or discarded, depending on the configuration.

Затем, в случае фрагментированной отправки, при необходимости производится полная сборка (дефрагментация) всего отправляемого пакета данных. После этого вычисляется смещение относительно начала пакета и размер исходных данных для сжатия и (или) зашифровывания. Создаётся копия исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку. После создания копии в пакете содержатся четыре области:Then, in the case of fragmented sending, if necessary, a complete assembly (defragmentation) of the entire sent data packet is performed. After that, the offset relative to the beginning of the packet and the size of the original data for compression and (or) encryption are calculated. A copy of the original package is created with the addition of data areas to ensure its further processing. After the copy is created, the package contains four areas:

а) область пакета, содержащая исходный IP-заголовок пакета, размером 20 байт и более. Размер IP-заголовка зависит от версии протокола IP и используемых опций протокола;a) the packet area containing the original IP-header of the packet, 20 bytes or more. The size of the IP header depends on the version of the IP protocol and the protocol options used;

б) область пакета, следующая за IP-заголовком пакета, оставляется свободной от данных пакета. Размер области определяется выбранным протоколом маскирования и составляет 8 байт для UDP и 20 байт для TCP;b) the area of the packet following the IP header of the packet is left free of packet data. The size of the area is determined by the selected masking protocol and is 8 bytes for UDP and 20 bytes for TCP;

в) область пакета для размещения структуры сопроводительных данных;c) the package area for placing the structure of the accompanying data;

г) область пакета, содержащая исходные данные пакета, имеющая размер, равный размеру исходного IP-пакета за вычетом размера IP-заголовка. В случае использования алгоритма шифрования с постоянным размером блока эта область дополняется до размера, кратного размеру блока шифрования.d) the packet area containing the original data of the packet and having a size equal to the size of the original IP packet minus the size of the IP header. If a constant block size encryption algorithm is used, this area is padded to a multiple of the encryption block size.

Далее осуществляется первичное формирование (инициализация) структуры сопроводительных данных с заполнением следующих элементов структуры:Next, the primary formation (initialization) of the accompanying data structure is carried out with the filling of the following structure elements:

а) инициализация области данных, используемых для вычисления диверсифицированного ключа;a) initialization of the data area used to calculate the diversified key;

б) запись идентификатора признака применения к передаваемому пакету способа согласно изобретению;b) recording the identifier of the feature of application to the transmitted packet of the method according to the invention;

в) запись идентификатора получателя пакета (идентификатора соединения);c) record of the packet recipient's identifier (connection identifier);

г) инициализация поля контрольной суммы зашифрованных данных пакета;d) initialization of the checksum field of the encrypted data of the packet;

д) запись исходного размера в байтах IP-пакета (значение из IP-заголовка);e) record of the initial size in bytes of the IP packet (value from the IP header);

е) запись исходного типа IP-протокола (3начение из IP-заголовка);f) record of the original type of the IP-protocol (value from the IP-header);

ж) запись используемого типа сжатия данных.g) a record of the type of data compression used.

Далее, если выбран способ сжатия, выполняется сжатие данных обрабатываемого пакета, после чего выполняется вычисление количества байтов, на которое уменьшился размер данных обрабатываемого пакета, и производится запись этого значения в структуру сопроводительных данных. После этого вычисляется размер дополнения данных для обеспечения задачи шифрования, и вычисленное значение записывается в структуру сопроводительных данных. При этом дополненные байты инициируются псевдослучайным значением.Further, if the compression method is selected, the data of the processed packet is compressed, after which the number of bytes by which the size of the data of the processed packet has been reduced is calculated, and this value is written to the accompanying data structure. The padding size is then calculated to support the encryption task, and the calculated value is written to the accompanying data structure. In this case, padded bytes are initiated with a pseudo-random value.

Диверсифицированный ключ шифрования вычисляется на основании ключа, соответствующего идентификатору соединения и значению из структуры сопроводительных данных, используемых для вычисления диверсифицированного ключа. Затем данные обрабатываемого пакета зашифровываются на диверсифицированном ключе. Кроме того, зашифровывается часть структуры сопроводительных данных за исключением элементов структуры, содержащих данные диверсификации, идентификатор признака применения способа согласно изобретению, идентификатор соединения и область для контрольной суммы зашифрованных данных.The diversified encryption key is calculated based on the key corresponding to the connection identifier and the value from the accompanying data structure used to calculate the diversified key. Then the data of the processed packet is encrypted using a diversified key. In addition, a part of the accompanying data structure is encrypted, with the exception of the structure elements containing diversification data, an identifier of an application of the method according to the invention, a connection identifier and an area for the checksum of the encrypted data.

Для всех зашифрованных данных вычисляется контрольная сумма, которая помещается в структуру сопроводительных данных. Кроме того, вычисляется значение маскированного идентификатора признака применения способа согласно изобретению на основании значений идентификатора признака применения способа согласно изобретению и контрольной суммы зашифрованных данных, вычисление которой произведено выше. Вычисленное значение маскированного идентификатора признака применения способа согласно изобретению помещается в структуру сопроводительных данных обрабатываемого пакета.A checksum is calculated for all encrypted data and placed in the accompanying data structure. In addition, the value of the masked identifier of the application feature of the method according to the invention is calculated based on the values of the identifier of the application feature of the method according to the invention and the encrypted data checksum calculated above. The computed value of the masked identifier of the application feature of the method according to the invention is placed in the accompanying data structure of the packet being processed.

Затем для идентификатора соединения формируется ключ шифрования на основании значений идентификатора признака применения способа согласно изобретению, маскированного идентификатора признака применения способа согласно изобретению, а также значения из области данных D.An encryption key is then generated for the connection identifier based on the values of the identifier of the application feature of the method according to the invention, the masked identifier of the application feature of the method according to the invention, and the value from data area D.

Далее зашифровывается идентификатор соединения. Зашифрованное значение идентификатора соединения помещается в структуру сопроводительных данных. Затем формируется новый заголовок UDP или TCP с вычислением новой контрольной суммы для выбранного протокола. Кроме того, для структуры сопроводительных данных в обрабатываемом пакете данных вычисляется смещение согласно конкретным настройкам способа согласно изобретению для данного случая передачи данных. В случае, если текущее положение структуры в пакете не соответствует требуемому (kOffset не равен 1), данные структуры сопроводительных данных переносятся в область данных в соответствии с вычисленным смещением. Те данные, что находились в этой области ранее, переносятся на место, которое ранее занимала структура сопроводительных данных.Next, the connection identifier is encrypted. The encrypted connection identifier value is placed in the accompanying data structure. Then a new UDP or TCP header is formed with the calculation of a new checksum for the selected protocol. In addition, for the structure of the accompanying data in the processed data packet, an offset is calculated according to the specific settings of the method according to the invention for the given case of data transmission. If the current position of the structure in the packet does not correspond to the required one (kOffset is not equal to 1), the data of the accompanying data structure is transferred to the data area in accordance with the calculated offset. The data that was in this area earlier is transferred to the place that was previously occupied by the structure of the accompanying data.

Затем, если ранее осуществлялась полная сборка (дефрагментация) обрабатываемого пакета данных, выполняется его фрагментация. Осуществляется повторное вычисление и запись контрольной суммы IP-заголовка. Наконец, обрабатываемый(е) пакет(ы) данных в соответствии со способом согласно изобретению передаются на отправку в сетевой адаптер.Then, if a complete assembly (defragmentation) of the processed data packet was previously performed, its fragmentation is performed. The checksum of the IP header is recalculated and written. Finally, the data packet (s) to be processed (s) in accordance with the method according to the invention are sent for sending to the network adapter.

При приеме данных производится обработка данных в обратном порядке, а именно выполняется следующая последовательность операций.When receiving data, the data is processed in the reverse order, namely, the following sequence of operations is performed.

Сначала определяется тип и идентификатор соединения, по которому принят обрабатываемый пакет данных. Для этого выполняются следующие операции. Осуществляется поиск по IP-адресу отправителя значения идентификатора соединения в таблице партнеров собственной базы данных. Если идентификатор соединения найден, производится назначение роли «партнера» своему узлу в контексте обработки данного пакета обрабатываемых данных и осуществляется переход к получению всего принимаемого пакета обрабатываемых данных.First, the type and identifier of the connection through which the processed data packet was received is determined. For this, the following operations are performed. The IP address of the sender is searched for the connection ID value in the partner table of its own database. If the connection identifier is found, the "partner" role is assigned to its node in the context of processing this packet of processed data and the transition is made to receive the entire received packet of processed data.

Выполняется поиск по IP-адресу отправителя значения идентификатора соединения в таблице серверов собственной базы данных. Если идентификатор соединения найден, производится назначение роли «клиента» своему узлу в контексте обработки данного пакета и, опять же, осуществляется переход к получению всего принимаемого пакета обрабатываемых данных.The IP address of the sender is searched for the connection ID value in the server table of its own database. If the connection identifier is found, the "client" role is assigned to its node in the context of processing this packet and, again, the transition is made to receive the entire received packet of processed data.

Если записи в таблице клиентов собственной базы данных отсутствуют, пакет может быть передан вышележащему протоколу или отброшен, в зависимости от настроек.If there are no entries in the client table of its own database, the packet can be forwarded to the superior protocol or dropped, depending on the settings.

Далее назначается роль «сервера» своему узлу в контексте обработки принимаемого пакета обрабатываемых данных. Для этого получают весь принимаемый пакет данных, определяют по заданным параметрам местоположение в принятом пакете структуры сопроводительных данных, извлекают из структуры сопроводительных данных значения маскированного идентификатора признака применения способа согласно изобретению и контрольной суммы зашифрованных данных.Next, the "server" role is assigned to its node in the context of processing the received packet of processed data. For this, the entire received data packet is obtained, the location of the accompanying data structure in the received packet is determined according to the given parameters, the masked identifier of the application of the method according to the invention and the checksum of the encrypted data are extracted from the accompanying data structure.

Ожидаемое значение маскированного идентификатора признака применения способа согласно изобретению получается на основании заданного идентификатора признака применения способа согласно изобретению и контрольной суммы зашифрованных данных. Вычисленное значение маскированного идентификатора признака применения способа согласно изобретению сравнивают со значением, извлеченным из принятого пакета данных. Если упомянутые значения не совпали, дальнейшая обработка пакета не производится (пакет может быть передан вышележащему протоколу или отброшен, в зависимости от конкретных настроек).The expected value of the masked feature identifier of the application feature of the method according to the invention is obtained on the basis of the predetermined feature identifier of the application feature of the method according to the invention and the checksum of the encrypted data. The computed value of the masked feature identifier of the application of the method according to the invention is compared with the value extracted from the received data packet. If the mentioned values do not match, no further processing of the packet is performed (the packet can be forwarded to the superior protocol or discarded, depending on the specific settings).

Далее создаётся ключ шифрования для идентификатора соединения на базе значений идентификатора признака применения способа согласно изобретению, маскированного идентификатора признака применения способа согласно изобретению и данных диверсификации.Next, an encryption key for the connection identifier is generated on the basis of the values of the identifier of the application feature of the method according to the invention, the masked identifier of the application feature of the method according to the invention, and the diversification data.

Из структуры сопроводительных данных извлекается зашифрованный идентификатор соединения, который после извлечения расшифровывается. В случае ролей «клиента» и «партнера», производится сравнение полученного идентификатора соединения с найденным в таблице по IP-адресу. В случае несовпадения пакет отбрасывается.An encrypted connection identifier is extracted from the accompanying data structure, which is decrypted after extraction. In the case of the "client" and "partner" roles, the received connection identifier is compared with the one found in the table by the IP address. If there is a mismatch, the packet is dropped.

Далее осуществляется поиск в собственной базе данных ключа шифрования, применяемого для определенного ранее идентификатора соединения. В случае если запись для идентификатора соединения отсутствует, дальнейшая обработка и прием пакета не производится (пакет должен быть отброшен).Next, a search is carried out in its own database for the encryption key used for the previously defined connection identifier. If there is no entry for the connection identifier, further processing and reception of the packet is not performed (the packet must be discarded).

В случае необходимости (если kOffset не равен 1) выполняется операция, обратная описанной выше в контексте передачи обрабатываемых пакетов данных, а именно копирование данных размером, равным размеру структуры сопроводительных данных, из начала данных пакета на место, занимаемое структурой сопроводительных данных. Структура сопроводительных данных копируется в начало области данных пакета. Далее вычисляется контрольная сумма всех зашифрованных данных, и вычисленная контрольная сумма сравнивается с контрольной суммой, извлеченной из структуры сопроводительных данных. В случае несовпадения значений сравниваемых контрольных сумм пакет отбрасывается.If necessary (if kOffset is not equal to 1), an operation is performed that is the opposite of the one described above in the context of transmitting processed data packets, namely, copying data with a size equal to the size of the accompanying data structure from the beginning of the packet data to the place occupied by the accompanying data structure. The structure of the accompanying data is copied to the beginning of the data area of the package. Next, a checksum of all encrypted data is calculated, and the calculated checksum is compared with the checksum extracted from the accompanying data structure. If the values of the compared checksums do not match, the packet is discarded.

Затем вычисляется диверсифицированный ключ на основании ключа, соответствующему идентификатору соединения и значения из структуры сопроводительных данных, используемых для вычисления диверсифицированного ключа. Часть структуры сопроводительных данных, за исключением элементов структуры сопроводительных данных, содержащих идентификатор признака применения способа согласно изобретению, идентификатор соединения и область для контрольной суммы зашифрованных данных на диверсифицированном ключе соединения, расшифровывается. Данные расшифровываются на диверсифицированном ключе соединения.The diversified key is then computed based on the key corresponding to the connection identifier and the value from the accompanying data structure used to compute the diversified key. Part of the structure of the accompanying data, with the exception of the elements of the structure of the accompanying data, containing the identifier of the application of the method according to the invention, the connection identifier and the area for the checksum of the encrypted data on the diversified connection key, is decrypted. The data is decrypted using a diversified connection key.

Размер данных после расшифровывания определяется следующим образом:The size of the data after decryption is determined as follows:

IpDataLen=IpLen-ProtSubstHdrLen+TechHdrLen+EncryptIncBytesIpDataLen = IpLen-ProtSubstHdrLen + TechHdrLen + EncryptIncBytes

Если требуется распаковка данных обрабатываемого пакета данных определяется требуемый размер буфера в соответствии со следующим выражением:If you need to unpack the data of the processed data packet, the required buffer size is determined in accordance with the following expression:

CompressDecBytes=IpLenOrigin +ProtSubstHdrLen+TechHdrLen+EncryptIncBytes-IpLengthCompressDecBytes = IpLenOrigin + ProtSubstHdrLen + TechHdrLen + EncryptIncBytes-IpLength

После определения требуемого размера буфера, если данные обрабатываемого пакета были сжаты, производится распаковка данных. Перед распаковкой необходимо увеличить размер буфера пакета на величину:After determining the required buffer size, if the data of the processed packet has been compressed, the data is unpacked. Before unpacking, it is necessary to increase the size of the packet buffer by the amount:

IpDataIncLen=CompressDecBytes- EncryptIncBytes.IpDataIncLen = CompressDecBytes- EncryptIncBytes.

Далее IP-заголовок пакета редактируется для восстановления поля исходной длины пакета значением IpLengthOrigin и поля протокола значением IpProtocolOrigin из структуры сопроводительных данных обрабатываемого пакета данных. Далее область структуры сопроводительных данных и область заголовка протокола маскирования изымается из пакета. Контрольные суммы TCP/UDP и IP повторно вычисляются и записываются. После этого обрабатываемый(ые) пакет(ы) данных передаётся (передаются) на прием модулю сетевых протоколов узла-получателя пакета(ов).Further, the IP-header of the packet is edited to restore the field of the original packet length with the value IpLengthOrigin and the field of the protocol with the value IpProtocolOrigin from the structure of the accompanying data of the data packet being processed. Further, the area of the structure of the accompanying data and the area of the header of the masking protocol are removed from the packet. The TCP / UDP and IP checksums are recalculated and written. After that, the processed data packet (s) is transmitted (transmitted) for reception to the network protocol module of the receiving node of the packet (s).

В соответствии со способом согласно изобретению, к вычислению контрольных сумм предъявляются следующие требования. Алгоритм вычисления криптографической контрольной суммы должен обеспечивать малую вероятность коллизий (одинаковых значений для разных наборов данных), криптографическую стойкость и контроль целостности данных.In accordance with the method according to the invention, the following requirements are imposed on the calculation of checksums. The algorithm for calculating the cryptographic checksum should provide a low probability of collisions (the same values for different data sets), cryptographic strength and data integrity control.

Как отмечено выше, для повышения безопасности и защищённости обмена данными с применением способа согласно изобретению в обрабатываемый пакет данных включается признак применения к пакету данных способа изоляции пакетов данных согласно изобретению. Для затруднения идентификации пакета, преобразованного способом изоляции пакетов данных в соответствии с изобретением, со стороны потенциального внешнего наблюдателя (условной стороны, перехватывающей пакеты), необходимо избегать передачи повторяющейся в каждом пакете последовательности байтов. Для этого в способе согласно изобретению применяется метод маскирования той части передаваемой информации, которая не может быть зашифрована, а именно упомянутого выше идентификатора признака применения к пакету способа изоляции пакетов данных согласно изобретению. Маскирование реализуется по следующему принципу:As noted above, in order to increase the safety and security of data exchange using the method according to the invention, a feature of applying the data packet isolation method according to the invention to the data packet is included in the processed data packet. To make it difficult for a potential external observer to identify a packet transformed by the data packet isolation method in accordance with the invention by a potential external observer (the conditional party that intercepts the packets), it is necessary to avoid transmitting a sequence of bytes repeated in each packet. To this end, the method according to the invention uses the method of masking that part of the transmitted information that cannot be encrypted, namely the above-mentioned identifier of the feature of applying the method of isolating data packets according to the invention to a packet. Masking is implemented according to the following principle:

IdTechM=fM(IdTech, PacketDataHash), гдеIdTech M = f M (IdTech, PacketDataHash), where

IdTechM - вычисляемое значение маскированного идентификатора способа преобразования, fM (...) - функция маскирования, IdTech -исходное значение идентификатора признака применения к пакету способа согласно изобретению, PacketDataHash - криптографическая контрольная сумма (хэш-сумма) зашифрованных данных.IdTech M is the computed value of the masked identifier of the transformation method, f M (...) is the masking function, IdTech is the initial value of the identifier of the feature of application to the package of the method according to the invention, PacketDataHash is the cryptographic checksum (hash) of the encrypted data.

Отправляющая обрабатываемый пакет данных сторона на основании заданного IdTech и вычисленного после зашифровывания данных значения PacketDataHash вычисляет значение IdTechM, помещает его и PacketDataHash в структуру сопроводительных данных обрабатываемого пакета данных и отправляет получателю. Принимающая обрабатываемый пакет сторона извлекает из структуры сопроводительных данных контрольную сумму PacketDataHash, вычисляет значение IdTechM и сравнивает полученное значение со значением, помещенным отправителем в структуру сопроводительных данных. Если полученные значения совпадают, это означает, что принят пакет, преобразованный способом изоляции пакетов данных согласно изобретению. Если полученные значения не совпадают, это означает, что принят обычный пакет, не обработанный способом согласно изобретению, или произошло искажение данных в процессе передачи по каналам связи.The party sending the processed data packet, based on the specified IdTech and the PacketDataHash value calculated after data encryption, calculates the IdTech M value, places it and PacketDataHash in the accompanying data structure of the data packet being processed and sends it to the recipient. The receiving party of the processed packet extracts the PacketDataHash checksum from the accompanying data structure, calculates the IdTech M value and compares the received value with the value placed by the sender in the accompanying data structure. If the obtained values match, it means that a packet has been received that has been transformed by the data packet isolation method according to the invention. If the obtained values do not coincide, this means that a normal packet is received that has not been processed by the method according to the invention, or data corruption has occurred during transmission over communication channels.

В соответствии с изобретением, в структуре обрабатываемого пакета данных предусмотрена резервная область дополнения исходных данных до размера, равного минимальному размеру шифруемого блока данных. При инициализации область дополнения исходных данных заполняется случайным значением. Необходимое количество байт из резервной области добавляется к области данных пакета, подлежащей зашифровыванию. В случае, если размер зашифрованных данных равен размеру данных до шифрования, резервная область отсутствует.In accordance with the invention, in the structure of the data packet being processed, a spare area for complementing the original data to a size equal to the minimum size of the encrypted data block is provided. During initialization, the padding area of the initial data is filled with a random value. The required number of bytes from the spare area is added to the data area of the packet to be encrypted. If the size of the encrypted data is equal to the size of the data before encryption, there is no spare area.

Далее будут описаны процедуры, используемые для идентификации принимаемых пакетов сторонами сетевого обмена в соответствии со способом согласно изобретению.The following will describe the procedures used to identify the received packets by the parties to the network exchange in accordance with the method according to the invention.

Чтобы инициирующая соединение сторона (узел-клиент или узел-партнер) могла начать сетевое взаимодействие с применением способа изоляции пакетов данных в соответствии с предлагаемым изобретением, ей должен быть известен IP-адрес принимающей стороны. В этом случае узел-сервер или узел-партнер должен иметь постоянный (статический или динамический с резервированием) IP-адрес, известный узлу-клиенту, по которому и происходит идентификация. Узел-клиент может не иметь постоянного или заранее известного IP-адреса. Узлу-серверу для идентификации клиента не нужно «знать» его IP-адрес. Если узел-сервер или узел-партнер имеют локальный IP-адрес и опубликованы в глобальной сети (WAN) с помощью маршрутизирующего сетевого оборудования с использованием способа преобразования сетевых адресов (NAT), другой стороне сетевого взаимодействия (узлу-клиенту или другому узлу-партнеру, соответственно), должен быть известен только глобальный IP-адрес, на котором они опубликованы. В таблице 11 ниже приведены возможные варианты IP-адресов для разных ролей сетевого узла в рамках способа согласно изобретению.In order for the initiating party (client node or partner node) to initiate a network interaction using the data packet isolation method in accordance with the invention, it must know the IP address of the receiving party. In this case, the server node or partner node must have a permanent (static or dynamic with redundancy) IP address, known to the client node, by which identification occurs. The client node may not have a permanent or known IP address. A server node does not need to "know" its IP address to identify a client. If a server or partner node has a local IP address and is published on the wide area network (WAN) by routing network equipment using a network address translation (NAT) method, the other side of the network communication (client node or other partner node, respectively), only the global IP address on which they are published should be known. Table 11 below shows possible variants of IP addresses for different roles of a network node in the framework of the method according to the invention.

Таблица 11. Типы IP-адресов для разных ролей сетевого узлаTable 11. Types of IP addresses for different roles of a network host

Роль сетевого узлаRole of the network node Тип IP-адресаIP address type Локальный (LAN)Local (LAN) Глобальный (WAN)Global (WAN) СтатическийStatic Динамический с резервированиемDynamic redundant Динамический без резервированияDynamic without redundancy СтатическийStatic КлиентCustomer ДаYes ДаYes ДаYes ДаYes СерверServer ДаYes ДаYes НетNot ДаYes ПартнерPartner ДаYes ДаYes НетNot ДаYes

Идентификация пакетов узлом-сервером основана на присваивании клиенту соединения условного IP-адреса при приеме от него первого пакета. Присваивание состоит в изменении IP-адреса источника пакета на присвоенный условный адрес. Отправка пакетов клиенту до этого момента (до получения пакета от клиента и идентификации) невозможна. Назначение условного адреса клиенту может производиться как заранее, так и из пула зарезервированных для этих целей адресов из внутренней базы модуля изоляции пакетов данных, реализующего способ изоляции пакетов данных согласно изобретению. У каждого идентифицированного клиента условный IP-адрес должен быть уникальным. Кроме того, необходимо иметь возможность выполнить обратное преобразование адреса назначения из условного IP-адреса в реальный IP-адрес при отправке пакета клиенту.The identification of packets by the server node is based on assigning a conditional IP address to the client of the connection when it receives the first packet from it. Assignment consists in changing the source IP address of the packet to the assigned conditional address. Sending packets to the client until this moment (until the packet is received from the client and identified) is not possible. The assignment of a conditional address to a client can be done both in advance and from a pool of addresses reserved for these purposes from the internal database of the data packet isolation module, which implements the data packet isolation method according to the invention. Each identified client must have a unique IP address. In addition, you need to be able to reverse the mapping of the destination address from a conditional IP address to a real IP address when sending a packet to a client.

Идентификация пакетов сервером при приеме производится путем извлечения из структуры сопроводительных данных пакета данных, обработанного способом изоляции пакетов данных согласно изобретению, идентификатора соединения ID. По найденному идентификатору соединения ID осуществляется поиск соответствующего элемента списка в связанном списке клиентов. После идентификации клиента модуль изоляции пакетов данных, реализующий способ согласно изобретению, в узле-сервере обновляет блок соединения (CLI) и формирует блок параметров соединения (PLI) для связанного списка параметров соединения (PL) следующим образом:The identification of the packets by the server upon receipt is performed by extracting from the accompanying data structure of the data packet processed by the data packet isolation method according to the invention, the connection identifier ID. The found connection identifier ID is used to search for the corresponding list item in the linked list of clients. After identifying the client, the data packet isolation module implementing the method according to the invention in the server node updates the connection block (CLI) and generates a connection parameter block (PLI) for the linked list of connection parameters (PL) as follows:

а) Перед преобразованием пакета к исходному состоянию (включая дешифрование данных и восстановление IP-заголовка) в блоке соединения, соответствующем найденному идентификатору, обновляется или получается впервые значение текущего значения IP-адреса клиента CurrentIPaddress и времени приёма последнего пакета LastRecvSysTime. В случае отсутствия криптографического ключа соединения создается криптографический ключ соединения,a) Before converting the packet to its original state (including decrypting data and restoring the IP header) in the connection block corresponding to the found identifier, the value of the current value of the client's IP address CurrentIPaddress and the time when the last LastRecvSysTime packet was received is updated or obtained for the first time. In the absence of a cryptographic connection key, a cryptographic connection key is generated,

б) Перед преобразованием пакета к исходному состоянию (включая дешифрование, распаковку данных и восстановление IP-заголовка) в формируемом блоке параметров соединения сохраняются значения IP-протокола маскирования в IpProtocolSubst и пары портов (источника в RemotePortSubst и приемника в LocalPortSubst), если в качестве протокола маскирования использовался протокол TCP или UDP,b) Before converting the packet to its original state (including decryption, unpacking and restoring the IP header), the values of the IP masking protocol in IpProtocolSubst and the port pair (source in RemotePortSubst and receiver in LocalPortSubst) are saved in the generated block of connection parameters, if the protocol is masking protocol TCP or UDP was used,

в) Из пакета удаляется область маскированного протокола,c) The masked protocol area is removed from the packet,

г) Дешифруется часть сопроводительной структуры пакета,d) Part of the accompanying structure of the package is deciphered,

д) Дешифруются данные пакета. Размер дешифруемой области определяется по формуле:e) The packet data is decrypted. The size of the decrypted area is determined by the formula:

BytesForDecrypt=IpLen-IpHdrLen-ProtSubstHdrLen-TechHdrLen,BytesForDecrypt = IpLen-IpHdrLen-ProtSubstHdrLen-TechHdrLen,

е) Если при передаче обрабатываемого пакета данных использовалось сжатие, распаковываются данные пакета. Размер данных для распаковки определяется вычислением по формуле:f) If compression was used during transmission of the data packet being processed, the packet data is decompressed. The size of the data to be unpacked is determined by the formula:

BytesForDecompress=BytesForDecrypt-EncryptIncBytes,BytesForDecompress = BytesForDecrypt-EncryptIncBytes,

ж) В формируемом блоке параметров соединения сохраняются значения IP-источника в RemoteIpAddr, IP-приемника в LocalIpAddr, настоящего IP-протокола в IpProtocolOrigin и пары портов (источника в RemotePortOrigin и приемника в LocalPortOrigin), если этот протокол TCP либо UDP,g) In the generated block of connection parameters, the values of the IP source in RemoteIpAddr, the IP destination in LocalIpAddr, the real IP protocol in IpProtocolOrigin, and pairs of ports (source in RemotePortOrigin and destination in LocalPortOrigin) are stored if this protocol is TCP or UDP,

з) Производится редактирование IP-заголовка, что включает в себя следующие операции:h) Editing of the IP-header is performed, which includes the following operations:

- восстанавливается исходное значение длины IP-пакета в IP-заголовке. Исходное значение длины пакета определяется по значению IpLengthOrigin, которое находится в структуре сопроводительных данных обрабатывамого пакета данных;- the original value of the IP packet length in the IP header is restored. The initial value of the packet length is determined by the value of IpLengthOrigin, which is located in the accompanying data structure of the data packet being processed;

- выполняется замена IP-адреса источника на условный IP-адрес IPaddress из блока соединения CLI, присвоенный заранее или назначенный из пула клиенту, как указано выше. Настоящий IP-адрес клиента остается в блоке параметров соединения как RemoteIpAddr;- replacing the source IP address with the conditional IP address IPaddress from the CLI connection block, assigned in advance or assigned from the pool to the client, as described above. The client's real IP address remains in the connection parameter block as RemoteIpAddr;

- если протокол, на основе которого осуществляется сетевое взаимодействие – это протокол TCP или UDP, производится замена порта источника на порт источника протокола маскирования RemotePortSubst из блока параметров соединения. Исходный порт источника остается в блоке параметров соединения как RemotePortOrigin,- if the protocol on the basis of which the network interaction is carried out is the TCP or UDP protocol, the source port is replaced with the source port of the masking protocol RemotePortSubst from the connection parameters block. The original source port remains in the connection parameter block as RemotePortOrigin,

и) Производится поиск по списку блоков параметров соединения PL блока PLI с данными, эквивалентными данным вновь сформированного блока, за исключением данных о времени приема и отправки. Если блок не найден, список блоков параметров дополняется вновь сформированным блоком. Затем обновляется поле времени последнего приема в блоке LastSystemTimeReceive из поля LastRecvSysTime блока соединения CLI,i) A search is made through the list of blocks of connection parameters PL of the PLI block with data equivalent to the data of the newly formed block, except for the data on the time of receiving and sending. If the block is not found, the list of parameter blocks is supplemented with the newly formed block. Then the last receive time field in the LastSystemTimeReceive block is updated from the LastRecvSysTime field of the CLI connection block.

к) Пакет передается на прием протокольной части системы.j) The packet is sent to receive the protocol part of the system.

Идентификация пакетов сервером при отправке клиенту производится на основании условного IP-адреса, присвоенного клиенту. При этом выполняется поиск совпадения IP-адреса получателя с условным IP-адресом IPaddress блока соединения CLI по всему списку блоков соединений CL. Если поиск не дал результатов, дальнейшая обработка не производится. Пакет может быть отброшен или передан на отправку, в зависимости от настроек. Кроме того, для найденного блока соединения CL производится поиск блока параметров соединения в списке блоков PL. Блок считается относящимся к данному соединению, если выполнены все следующие условия:Packets are identified by the server when they are sent to the client based on the conditional IP address assigned to the client. This searches for a match of the recipient's IP address with the conditional IP address IPaddress of the CLI connection block in the entire list of CLI connection blocks. If the search did not return any results, no further processing is performed. The packet can be dropped or sent for sending, depending on the settings. In addition, for the found CL connection block, the connection parameter block is searched for in the PL block list. A block is considered to belong to a given connection if all of the following conditions are met:

- IP-протокол в заголовке пакета равен IP-протоколу IpProtocolOrigin в блоке параметров соединения;- IP-protocol in the packet header is equal to the IP-protocol IpProtocolOrigin in the block of connection parameters;

- порт источника в заголовке пакета равен LocalPortOrigin в блоке параметров соединения;- source port in the packet header is equal to LocalPortOrigin in the block of connection parameters;

- порт приемника в заголовке пакета равен RemotePortSubst в блоке параметров соединения.- the receiver port in the packet header is equal to RemotePortSubst in the connection parameters block.

Далее обновляется значение поля LastSystemTimeSend в найденном блоке параметром соединения текущим значением времени. Производится редактирование заголовка IP-пакета, а именно: в IP-заголовке IP-адрес приемника заменяется значением RemoteIpAddr из найденного блока параметров соединения. В том случае, если используемый при реализации способа изоляции пакетов данных согласно изобретению IP-протокол является протоколом TCP или UDP, редактируется и заголовок протокола, а именно: порт приемника заменяется значением RemotePortOrigin из найденного блока параметров соединения. Далее производится формирование блока сопроводительных данных. Затем производится сжатие данных, если это предусмотрено настройками реализуемого способа. Производится шифрование данных. Редактируется IP заголовок пакета посредством следующих операций:Next, the value of the LastSystemTimeSend field in the found block is updated with the connection parameter with the current time value. The IP packet header is edited, namely: in the IP header, the receiver's IP address is replaced with the RemoteIpAddr value from the found block of connection parameters. If the IP protocol used in the implementation of the method for isolating data packets according to the invention is a TCP or UDP protocol, the protocol header is also edited, namely: the receiver port is replaced with the RemotePortOrigin value from the found block of connection parameters. Next, a block of accompanying data is generated. Then the data is compressed, if it is provided by the settings of the implemented method. Data encryption is in progress. The IP header of the packet is edited by the following operations:

- IP-адрес приемника заменяется значением CurrentIpAddress из блока соединения CLI;- The receiver's IP address is replaced by the CurrentIpAddress value from the CLI connection block;

- IP-протокол заменяется значением IpProtocolSubst из блока параметров соединения.- The IP protocol is replaced by the IpProtocolSubst value from the connection parameter block.

Непосредственно за IP-заголовком пакета создается заголовок протокола в соответствии со значением IpProtocolSubst, размером 8 или 20 байтов. Для этого порт приемника заменяется значением RemotePortSubst из блока параметров соединения. Порт источника заменяется значением LocalPortSubst из блока параметров соединения. Также производится вычисление и запись в заголовок протокола контрольной суммы для протокола IpProtocolSubst. Производится повторное вычисление и запись в IP-заголовок контрольной суммы IP. После этого обрабатываемый пакет данных в соответствии со способом изоляции пакетов данных в соответствии с изобретением передается на отправку.Directly following the IP header of the packet, a protocol header is generated according to the IpProtocolSubst value, 8 or 20 bytes in size. To do this, the receiver port is replaced with the RemotePortSubst value from the connection parameter block. The source port is replaced with the LocalPortSubst value from the connection parameter block. The checksum for the IpProtocolSubst protocol is also calculated and written to the protocol header. The IP checksum is recalculated and written to the IP header. Thereafter, the processed data packet is sent for sending in accordance with the data packet isolation method according to the invention.

Идентификация пакетов узлом клиента состоит в определении идентификатора соединения с сервером для данного обрабатываемого пакета данных. Идентификация пакетов при приеме осуществляется на основе поиска по IP-адресу отправителя пакета, находящегося в IP-заголовке, в связанном списке серверов (SL) блока соединения (SLI) с искомым значением IP-адреса в поле IPaddress. После идентификации соединения с сервером модуль изоляции пакетов данных, реализующий способ согласно изобретению на стороне клиента, обновляет блок соединения (SLI) и формирует блок параметров соединения (PLI).The identification of packets by the client node consists in determining the identifier of the connection to the server for the given data packet being processed. Identification of packets upon receipt is based on the search by the IP address of the sender of the packet in the IP header in the linked list of servers (SL) of the connection unit (SLI) with the desired value of the IP address in the IPaddress field. After identifying the connection to the server, the data packet isolation module implementing the method according to the invention on the client side updates the connection block (SLI) and generates the connection parameter block (PLI).

Перед преобразованием пакета к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в блоке соединения, соответствующему найденному идентификатору обновляется значение времени приёма последнего пакета LstRecvSysTime. В случае отсутствия криптографического ключа соединения, создается криптографический ключ соединения.Before converting the packet to its original state (decrypting the data and restoring the IP header) in the connection block corresponding to the found identifier, the value of the time of receiving the last LstRecvSysTime packet is updated. In the absence of a cryptographic connection key, a cryptographic connection key is generated.

Перед преобразованием пакета к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в формируемом блоке параметров соединения сохраняются значения IP-протокола маскирования в IpProtocolSubst и пары портов (источника в RemotePortSubst и приемника в LocalPortSubst), если в качестве протокола маскирования использовался протокол TCP либо UDP.Before converting the packet to its original state (decrypting data and restoring the IP header) in the generated block of connection parameters, the values of the IP masking protocol in IpProtocolSubst and port pairs (source in RemotePortSubst and receiver in LocalPortSubst) are saved if TCP was used as the masking protocol, or UDP.

Структура сопроводительных данных дешифруется на диверсифицированном ключе соединения. После возвращения перемещенных данных из области структуры сопроводительных данных в IP-заголовок, дешифрования и распаковки данных пакета в формируемом блоке параметров соединения сохраняются значения IP-источника в RemoteIpAddr, IP-приемника в LocalIpAddr, настоящего IP-протокола в IpProtocolOrigin и пары портов (источника в RemotePortOrigin и приемника в LocalPortOrigin), если этот протокол является протоколом TCP или UDP.The structure of the accompanying data is decrypted on the diversified connection key. After returning the transferred data from the area of the accompanying data structure to the IP header, decrypting and unpacking the packet data in the generated block of connection parameters, the values of the IP source in RemoteIpAddr, the IP receiver in LocalIpAddr, the real IP protocol in IpProtocolOrigin and port pairs (source in RemotePortOrigin and destination to LocalPortOrigin) if this protocol is TCP or UDP.

Производится поиск по списку блоков параметров соединения PL блока PLI с данными, эквивалентными данным вновь сформированного блока за исключением данных о времени приема и отправки обрабатываемого пакета данных. Если блок не найден, пакет отбрасывается, т.к. инициатором соединения может быть только клиент и блок должен быть сформирован при отправке первого обрабатываемого пакета данных этому серверу. Обновляется поле времени последнего приема в блоке LastSystemTimeReceive из поля LastRecvSysTime блока соединения CLI. После этого обрабатываемый пакет данных передается на прием.A search is made through the list of blocks of connection parameters PL of the PLI block with data equivalent to the data of the newly formed block, except for the data on the time of receiving and sending the processed data packet. If the block is not found, the packet is discarded. connection initiator can only be the client and the block must be formed when sending the first processed data packet to this server. The last receive time field in the LastSystemTimeReceive block is updated from the LastRecvSysTime field in the CLI connection block. After that, the processed data packet is transmitted for reception.

Идентификация пакетов при отправке происходит на основе поиска по IP-адресу получателя пакета, находящегося в IP-заголовке. Для этого выполняется поиск совпадения IP-адреса назначения с IP-адресом IPaddress блока соединения (SLI) по всему списку блоков соединений SL. Если поиск не дал результатов, дальнейшая обработка пакета не производится. Пакет может быть отброшен или передан на отправку, в зависимости от настроек. Далее производится поиск блока параметров соединения в списке блоков PL для найденного блока соединения CL. Блок считается относящимся к данному соединению, если выполнены все следующие условия:The identification of packets when sending is based on the search by the IP address of the recipient of the packet, which is in the IP header. To do this, the entire list of SLI connection blocks is searched for a match between the destination IP address and the IP address of the connection block (SLI). If the search does not return any results, no further processing of the package is performed. The packet can be dropped or sent for sending, depending on the settings. Then the block of connection parameters is searched for in the list of PL blocks for the found connection block CL. A block is considered to belong to a given connection if all of the following conditions are met:

а) IP-протокол в заголовке пакета равен IP-протоколу IpProtocolOrigin в блоке параметров соединения;a) the IP-protocol in the packet header is equal to the IP-protocol IpProtocolOrigin in the block of connection parameters;

б) если IP-протокол TCP или UDP, проверяется выполнение условия: порт источника в заголовке пакета обрабатываемых данных равен LocalPortOrigin в блоке параметров соединения;b) if the IP protocol is TCP or UDP, the following condition is checked: the source port in the header of the processed data packet is equal to LocalPortOrigin in the block of connection parameters;

в) если IP-протокол представляет собой протокол TCP или UDP, проверяется выполнение условия: порт приемника в заголовке пакета равен RemotePortOrigin в блоке параметров соединения;c) if the IP protocol is a TCP or UDP protocol, the following condition is checked: the receiver port in the packet header is equal to RemotePortOrigin in the connection parameters block;

г) если блок параметров соединения, относящийся к данному соединению, не найден, то такой блок создается и добавляется к списку блоков параметров соединения для данного соединения. Для вновь создаваемого блока инициализируются следующие параметры:d) if the block of connection parameters related to this connection is not found, then such a block is created and added to the list of blocks of connection parameters for this connection. For the newly created block, the following parameters are initialized:

- протокол маскирования IpProtocolSubst текущим значением, из внутренней базы модуля;- masking protocol IpProtocolSubst with the current value from the internal base of the module;

- порт приемника RemotePortSubst текущим значением, из внутренней базы модуля;- receiver port RemotePortSubst with the current value from the internal base of the module;

- порт источника LocalPortSubst назначается из пула значений допустимых динамических портов внутренней базы модуля изоляции пакетов данных в соответствии с изобретением.- the source port LocalPortSubst is assigned from the pool of valid dynamic ports in the internal database of the data packet isolation module in accordance with the invention.

Далее значение поля LastSystemTimeSend в найденном или созданном блоке параметров соединения обновляется текущим значением времени. Обрабатываемый пакет данных дополняется областью сопроводительных данных. Производится инициализация области сопроводительных данных. Далее при необходимости, если это предусмотрено настройками способа, производится сжатие данных пакета. Производится зашифровывание данных пакета и области сопроводительных данных.Further, the value of the LastSystemTimeSend field in the found or created block of connection parameters is updated with the current time value. The data packet being processed is supplemented with an accompanying data area. The accompanying data area is initialized. Further, if necessary, if it is provided by the method settings, the packet data is compressed. The packet data and the accompanying data area are encrypted.

Затем редактируется IP-заголовок пакета: IP-протокол заменяется значением IpProtocolSubst из блока параметров соединения.Then the IP header of the packet is edited: the IP protocol is replaced with the IpProtocolSubst value from the connection parameters block.

На участке данных, следующем за IP-заголовком создается заголовок протокола, соответствующий значению IpProtocolSubst. Порт приемника заменяется значением RemotePortSubst из блока параметров соединения. Порт источника заменяется значением LocalPortSubst из блока параметров соединения. Производится вычисление и запись в заголовок протокола контрольной суммы для протокола IpProtocolSubst. Далее производится повторное вычисление и запись в IP-заголовок контрольной суммы IP, после чего пакет обрабатываемых данных передается на отправку.In the piece of data following the IP header, a protocol header is generated that matches the IpProtocolSubst value. The receiver port is replaced by the RemotePortSubst value from the connection parameter block. The source port is replaced with the LocalPortSubst value from the connection parameter block. The checksum for the IpProtocolSubst protocol is calculated and written into the protocol header. Next, the IP checksum is recalculated and written into the IP header, after which the packet of processed data is sent for sending.

Идентификация пакетов узлом-партнером происходит на основе поиска, по IP-адресу получателя пакета при отправке пакета обрабатываемых данных и по IP-адресу отправителя при приеме пакета обрабатываемых данных, идентификатора соединения во внутренней базе данных для получения информации, позволяющей произвести обработку пакета обрабатываемых данных способом согласно изобретению.The identification of packets by the partner node occurs on the basis of a search, by the IP address of the recipient of the packet when sending a packet of processed data and by the IP address of the sender when receiving a packet of processed data, the connection identifier in the internal database to obtain information that allows processing the packet of processed data by according to the invention.

Идентификация пакетов при приеме происходит на основе поиска по IP-адресу отправителя пакета, находящегося в IP-заголовке, в связанном списке партнеров (TL) блока соединения (TLI) с искомым значением IP-адреса в поле IPaddress. После идентификации соединения с сервером модуль способа обновляет блок соединения (TLI) и формирует блок параметров соединения (PLI).Identification of packets upon receipt is based on the search by the IP address of the sender of the packet in the IP header in the linked list of partners (TL) of the connection unit (TLI) with the desired value of the IP address in the IPaddress field. After identifying the connection to the server, the method module updates the connection block (TLI) and generates the connection parameter block (PLI).

Перед преобразованием пакета к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в блоке соединения, соответствующем найденному идентификатору соединения, обновляется значение текущего значения IP-адреса клиента CurrentIPaddress и времени приёма последнего пакета LastRecvSysTime. В случае отсутствия криптографического ключа соединения создается криптографический ключ соединения.Before converting the packet to its original state (decrypting data and restoring the IP header) in the connection block corresponding to the found connection identifier, the value of the current value of the client's IP address CurrentIPaddress and the time of receiving the last LastRecvSysTime packet are updated. In the absence of a cryptographic connection key, a cryptographic connection key is generated.

Перед преобразованием обрабатываемого пакета данных к исходному состоянию (дешифрование данных и восстановление IP-заголовка) в формируемом блоке параметров соединения сохраняются значения IP-протокола маскирования в IpProtocolSubst и пары портов (источника в RemotePortSubst и приемника в LocalPortSubst), если в качестве протокола маскирования использовался протокол TCP либо UDP.Before converting the processed data packet to its original state (decrypting the data and restoring the IP header), the values of the IP masking protocol in IpProtocolSubst and the port pair (source in RemotePortSubst and receiver in LocalPortSubst) are stored in the generated block of connection parameters if the protocol was used as the masking protocol TCP or UDP.

Далее дешифруется часть структуры сопроводительных данных, зашифрованная отправителем на диверсифицированном ключе соединения. После возвращения перемещенных данных из области структуры сопроводительных данных в IP-заголовок, дешифрования и распаковки данных пакета в формируемом блоке параметров соединения сохраняются значения IP-источника в RemoteIpAddr, IP-приемника в LocalIpAddr, настоящего IP-протокола в IpProtocolOrigin и пары портов (источника в RemotePortOrigin и приемника в LocalPortOrigin), если используемый протокол – это протокол TCP либо UDP.Next, a part of the accompanying data structure, encrypted by the sender on the diversified connection key, is decrypted. After returning the transferred data from the area of the accompanying data structure to the IP header, decrypting and unpacking the packet data in the generated block of connection parameters, the values of the IP source in RemoteIpAddr, the IP receiver in LocalIpAddr, the real IP protocol in IpProtocolOrigin and port pairs (source in RemotePortOrigin and destination in LocalPortOrigin) if the protocol being used is TCP or UDP.

Производится поиск по списку блоков параметров соединения PL блока PLI с данными, эквивалентными данным вновь сформированного блока, за исключением данных о времени приема и отправки. Если блок не найден, пакет отбрасывается, т.к. инициатором соединения может быть только клиент, и блок должен быть сформирован при отправке первого пакета этому серверу. Поле времени последнего приема в блоке LastSystemTimeReceive обновляется из поля LastRecvSysTime блока соединения CLI. После этого пакет передается на прием.A search is made through the list of blocks of connection parameters PL of the PLI block with data equivalent to the data of the newly formed block, except for the data on the time of receiving and sending. If the block is not found, the packet is discarded. only the client can initiate the connection, and the block must be formed when the first packet is sent to this server. The Last Receive Time field in the LastSystemTimeReceive block is updated from the LastRecvSysTime field in the CLI connection block. After that, the packet is sent to receive.

Идентификация пакетов при отправке осуществляется на основе поиска по IP-адресу получателя пакета, находящегося в IP-заголовке. Для этого сначала выполняется поиск совпадения IP-адреса назначения с IP-адресом IPaddress блока соединения (TLI) по всему списку блоков соединений TL. Если поиск не дал результатов, дальнейшая обработка не производится. Пакет может быть отброшен или передан на отправку, в зависимости от настроек.When sending packets, identification of packets is carried out based on the search by the IP address of the recipient of the packet, which is in the IP header. It does this by first looking for a match between the destination IP address and the IP address of the connection block (TLI) in the entire list of TL connection blocks. If the search did not return any results, no further processing is performed. The packet can be dropped or sent for sending, depending on the settings.

Затем производится поиск блока параметров соединения в списке блоков PL для найденного блока соединения TLI. Блок считается относящимся к данному соединению, если выполнены все следующие условия:Then, the connection parameter block is searched for in the PL block list for the found TLI connection block. A block is considered to belong to a given connection if all of the following conditions are met:

- IP-протокол в заголовке пакета равен IP-протоколу IpProtocolOrigin в блоке параметров соединения;- IP-protocol in the packet header is equal to the IP-protocol IpProtocolOrigin in the block of connection parameters;

- если IP-протокол представляет собой TCP или UDP, проверяется выполнение условия:- if the IP protocol is TCP or UDP, the condition is checked:

а) порт источника в заголовке пакета равен LocalPortOrigin в блоке параметров соединения;a) the source port in the packet header is equal to LocalPortOrigin in the block of connection parameters;

б) порт приемника в заголовке пакета равен RemotePortOrigin в блоке параметров соединения.b) the port of the receiver in the packet header is equal to RemotePortOrigin in the block of connection parameters.

Если блок параметров соединения, относящийся к данному соединению, не найден, то такой блок создается и добавляется к списку блоков параметров соединения для данного соединения. Для вновь создаваемого блока инициализируются следующие параметры:If a connection parameter block related to this connection is not found, then such a block is created and added to the list of connection parameter blocks for this connection. For the newly created block, the following parameters are initialized:

1) протокол маскирования IpProtocolSubst текущим значением, из внутренней базы модуля;1) protocol of masking IpProtocolSubst with the current value from the internal base of the module;

2) порт приемника RemotePortSubst текущим значением, из внутренней базы модуля;2) the port of the receiver RemotePortSubst with the current value from the internal base of the module;

3) порт источника LocalPortSubst назначается из пула значений допустимых динамических портов внутренней базы модуля.3) the source port LocalPortSubst is assigned from the pool of values of valid dynamic ports in the internal base of the module.

Далее обновляется значение поля LastSystemTimeSend в найденном или созданном блоке параметром соединения текущим значением времени. Пакет дополняется областью сопроводительных данных. Производится инициализация области сопроводительных данных, как описано выше. После этого производится сжатие данных пакета, следующих за IP-заголовком, если это предусмотрено.Next, the value of the LastSystemTimeSend field in the found or created block is updated with the connection parameter with the current time value. The package is complemented by an accompanying data area. The accompanying data area is initialized as described above. The packet data following the IP header is then compressed, if provided.

Далее выполняется зашифровывание данных пакета, следующих за IP-заголовком. Зашифровывается часть данных в области сопроводительных данных пакета.Next, the packet data following the IP header is encrypted. Part of the data in the accompanying data area of the packet is encrypted.

Выполняется редактирование IP-заголовка пакета: IP-протокол заменяется значением IpProtocolSubst из блока параметров соединения. На участке данных, следующих за IP-заголовком, создается заголовок протокола, соответствующий значению IpProtocolSubst. Порт приемника заменяется значением RemotePortSubst из блока параметров соединения. Порт источника заменяется значением LocalPortSubst из блока параметров соединения. Производится вычисление и запись в заголовок протокола контрольной суммы для протокола IpProtocolSubst. Затем производится повторное вычисление и запись в IP-заголовок контрольной суммы IP, после чего пакет передается на отправку.Editing the IP header of the packet: the IP protocol is replaced by the IpProtocolSubst value from the connection parameters block. In the piece of data following the IP header, a protocol header is generated that matches the IpProtocolSubst value. The receiver port is replaced by the RemotePortSubst value from the connection parameter block. The source port is replaced with the LocalPortSubst value from the connection parameter block. The checksum for the IpProtocolSubst protocol is calculated and written to the protocol header. Then the IP checksum is recalculated and written into the IP header, after which the packet is sent for sending.

Следует отметить, что важной особенностью способа изоляции пакетов данных согласно изобретению является то, что данный способ предполагает изменение параметров протокола маскирования в процессе сетевого взаимодействия. Это позволяет дополнительно затруднить внешнему наблюдателю определение применения сторонами сетевого обмена способа изоляции пакетов данных согласно изобретению. Исходя из заданных общих данных, узел-клиент или узел-партнер могут псевдослучайным образом изменять порт назначения протокола маскирования, а также сам протокол маскирования.It should be noted that an important feature of the method for isolating data packets according to the invention is that this method involves changing the parameters of the masking protocol in the course of network interaction. This makes it even more difficult for an outside observer to determine whether the network exchange parties are using the data packet isolation method according to the invention. Based on the given common data, the client or partner node can pseudo-randomly change the destination port of the masking protocol, as well as the masking protocol itself.

Кроме того, при реализации способа изоляции пакетов данных согласно изобретению выполняются периодические операции, связанные с необходимостью очистки динамических списков внутренней базы от неиспользуемых элементов списков. Время неактивности соединения, после которого информация о нем может быть удалена, задается в виде параметра во внутренней базе данных. Периодичность работы функции очистки также задается в виде параметра во внутренней базе данных. Частота вызова функции очистки должна быть связана со значением времени неактивности соединения, после которого динамические данные о соединении удаляются.In addition, when implementing the method for isolating data packets according to the invention, periodic operations are performed related to the need to clear the dynamic lists of the internal database from unused list items. The time of connection inactivity, after which information about it can be deleted, is set as a parameter in the internal database. The frequency of the cleaning function is also set as a parameter in the internal database. The frequency with which the cleanup function is called must be related to the value of the connection inactivity time after which the dynamic connection data is deleted.

Обработка запросов с уровня сетевых протоколов на уровень сетевых адаптеров в соответствии со способом согласно изобретению состоит в следующем.The processing of requests from the layer of network protocols to the layer of network adapters in accordance with the method according to the invention is as follows.

Основной запрос, который должен быть обработан, представляет собой запрос о максимальном размере пакета, который может быть передан через сетевой адаптер. Данные, получаемые в ответ на этот запрос, должны быть отредактированы до того момента, как они попадут к инициатору запроса. Значение максимального размера пакета должно быть уменьшено на сумму трех величин: размер структуры сопроводительных данных, максимально возможный размер дополнения данных при шифровании и размер заголовка протокола маскирования. В соответствии с изобретением, возможны разновидности запросов о максимальном размере: о максимальном размере пакета, включая заголовок канального уровня и без него.The main request to be processed is a request for the maximum packet size that can be sent through the network adapter. The data received in response to this request must be edited before it reaches the initiator of the request. The value of the maximum packet size should be reduced by the sum of three values: the size of the accompanying data structure, the maximum possible size of the data padding during encryption, and the size of the masking protocol header. In accordance with the invention, there are several types of requests for the maximum size: the maximum size of the packet, including the header of the link layer and without it.

Способ изоляции пакетов данных согласно изобретению предусматривает освобождение модуля изоляции пакетов данных от вычисления контрольных сумм IP, TCP и UDP в отправляемых пакетах, если сетевой адаптер обладает возможностью таких расчетов.The method for isolating data packets according to the invention provides for freeing the data packet isolation module from calculating IP, TCP and UDP checksums in outgoing packets, if the network adapter has the capability of such calculations.

Применение способа изоляции пакетов данных, осуществляемого модулем изоляции пакетов данных согласно изобретению обеспечивает по меньшей мере следующие технические эффекты, повышающие безопасность обмена данными:The application of the data packet isolation method carried out by the data packet isolation module according to the invention provides at least the following technical effects that increase the security of data exchange:

- сокрытие реальных данных об истинных протоколах взаимодействия между узлами (сторонами) сетевого обмена данными и обо всех параметрах, позволяющих постороннему внешнему наблюдателю делать вывод об источнике и приемнике данных и способах воздействия на них;- concealment of real data about the true protocols of interaction between nodes (parties) of network data exchange and about all parameters that allow an outside observer to make a conclusion about the source and receiver of data and how to influence them;

- защиту от сканирования портов серверов соединения с сетью компьютерными преступниками с дальнейшими деструктивными целями;- protection against scanning of ports of servers connecting to the network by computer criminals with further destructive purposes;

- повышенную стойкость к DoS и DDoS-атакам;- increased resistance to DoS and DDoS attacks;

- проверку целостности исходных данных принимающей стороной при помощи расчета и сохранения криптографической контрольной суммы зашифрованных данных отправляющей стороной;- checking the integrity of the original data by the receiving party by calculating and storing the cryptographic checksum of the encrypted data by the sending party;

- конфиденциальность данных, передаваемых протоколам канального уровня, путем их преобразования с помощью симметричных блочных алгоритмов шифрования;- confidentiality of data transmitted to the link layer protocols by transforming them using symmetric block encryption algorithms;

- изоляцию сетевых узлов, применяющих способ изоляции пакетов данных согласно изобретению, от обычных сетевых узлов;- isolation of network nodes using the method of isolating data packets according to the invention from ordinary network nodes;

- сжатие исходных данных;- compression of the original data;

- передачу данных от отправителя получателю через стандартные сетевые маршрутизирующие устройства и в сетях общего пользования и в локальных сетях;- data transmission from the sender to the recipient through standard network routing devices and in public networks and local networks;

- создание двух видов соединения между приемо-передающими устройствами в сети:- creation of two types of connection between transceiver devices in the network:

а) соединение типа «Клиент-Сервер», обеспечивающее соединение, инициированное клиентом; иa) connection of the "Client-Server" type, providing a connection initiated by the client; and

б) соединение типа «Сервер-Сервер» («Партнер-Партнер»), обеспечивающее соединение, инициированное любой из сторон.b) a connection of the "Server-Server" type ("Partner-Partner"), providing a connection initiated by any of the parties.

Кроме того, описанный выше способ изоляции пакетов данных согласно изобретению, реализуемый модулем изоляции пакетов данных, характеризуется следующими свойствами:In addition, the above-described method for isolating data packets according to the invention, implemented by the data packet isolation module, is characterized by the following properties:

1) масштабируемость: способ обеспечивает возможность построения изолированной среды сетевого взаимодействия как в локальной системе, так и в системе, взаимодействующей через глобальную сеть (распределенной системе);1) scalability: the method provides the ability to build an isolated environment for network interaction both in a local system and in a system interacting through a global network (distributed system);

2) непрозрачность: отсутствует возможность сбора данных внешними наблюдателями, анализирующими перехватываемые сетевые пакеты, о реальных протоколах взаимодействия между узлами и сегментами системы;2) opacity: there is no possibility of collecting data by external observers analyzing intercepted network packets about real protocols of interaction between nodes and system segments;

3) скрытность: отсутствует возможность сбора данных о сетевом узле, настроенном для работы в режиме изоляции, с помощью любых способов сканирования портов;3) stealth: it is not possible to collect data about a network node configured to work in isolation mode using any port scanning method;

4) защищенность: передаваемые по сети пакеты, обрабатываемые способом согласно изобретению, не имеют незашифрованных частей реальных данных;4) security: packets transmitted over the network, processed by the method according to the invention, do not have unencrypted parts of real data;

5) надежность: целостность получаемых данных проверяется с помощью криптографической контрольной суммы;5) reliability: the integrity of the received data is checked using a cryptographic checksum;

6) управляемость: на базе данного способа возможно развертывание защищенной системы администрирования и управления сетевыми узлами в сети;6) manageability: on the basis of this method, it is possible to deploy a secure system of administration and management of network nodes in the network;

7) гибкость: с помощью способа согласно изобретению можно обрабатывать как однонаправленные пакеты (адресованные одному компьютеру), так и широковещательные (адресованные компьютерам, находящимся в одной подсети) и групповые (адресованные компьютерам, объединенным в группу по принципу работы с некой общей программой или сервисом);7) flexibility: using the method according to the invention, it is possible to process both unidirectional packets (addressed to one computer) and broadcast (addressed to computers located in the same subnet) and multicast (addressed to computers united in a group according to the principle of working with a certain common program or service );

8) адаптивность: реализация способа согласно изобретению для конкретных целей может иметь целый ряд отличительных особенностей, включая алгоритмы шифрования, сжатия данных, расчета криптографических контрольных сумм и другие, как подробно описано выше;8) adaptability: the implementation of the method according to the invention for specific purposes can have a number of distinctive features, including algorithms for encryption, data compression, calculation of cryptographic checksums and others, as described in detail above;

9) универсальность (многоцелевое назначение): не являясь способом VPN, способ согласно изобретению добавляет к любому VPN свои свойства; не являясь брандмауэром, способ (модуль) согласно изобретению эффективно решает основные задачи защиты от вторжения; не являясь средством удаленного управления, способ (модуль) согласно изобретению позволяет применять безопасно большинство из этих средств;9) universality (multipurpose): not being a VPN method, the method according to the invention adds its properties to any VPN; not being a firewall, the method (module) according to the invention effectively solves the main problems of intrusion protection; while not being a means of remote control, the method (module) according to the invention makes it possible to use securely most of these means;

10) многоплатформенность (кроссплатформенность): анализ архитектуры сетевых подсистем в различных операционных системах позволяет утверждать, что возможно создание реализаций способа согласно изобретению для большинства из них; возможна как аппаратная, так и программная реализация способа согласно изобретению, при этом объём изобретения не ограничен конкретным сочетанием программных и аппаратных средств, как описано выше, и может быть реализован посредством любых пригодных сочетаний аппаратных и программных средств, как будет очевидно специалистам в данной области техники на основании сведений, приведённых в настоящем описании изобретения.10) multi-platform (cross-platform): analysis of the architecture of network subsystems in various operating systems suggests that it is possible to create implementations of the method according to the invention for most of them; both hardware and software implementation of the method according to the invention is possible, the scope of the invention is not limited to a specific combination of software and hardware, as described above, and can be implemented by means of any suitable combinations of hardware and software, as will be obvious to specialists in the art based on the information provided in the present description of the invention.

Специалистам в данной области техники будет понятно, что выше описаны и показаны на чертежах лишь некоторые из возможных примеров технических приемов и материально–технических средств, которыми могут быть реализованы варианты выполнения настоящего изобретения. Приведенное выше подробное описание вариантов выполнения изобретения не предназначено для ограничения или определения объема правовой охраны настоящего изобретения.Specialists in the art will understand that the above described and shown in the drawings are only some of the possible examples of techniques and material and technical means, which can be implemented in the embodiments of the present invention. The foregoing detailed description of embodiments of the invention is not intended to limit or define the scope of the present invention.

Другие варианты выполнения, которые могут входить в объем настоящего изобретения, могут быть предусмотрены специалистами в данной области техники после внимательного прочтения вышеприведенного описания с обращением к сопровождающим чертежам, и все такие очевидные модификации, изменения и/или эквивалентные замены считаются входящими в объем настоящего изобретения. Все источники из уровня техники, приведенные и рассмотренные в настоящем документе, настоящим включены в данное описание путем ссылки, насколько это применимо.Other embodiments that may fall within the scope of the present invention may be contemplated by those skilled in the art upon carefully reading the above description with reference to the accompanying drawings, and all such obvious modifications, changes and / or equivalent substitutions are considered to be within the scope of the present invention. All prior art sources cited and discussed herein are hereby incorporated into this description by reference as applicable.

При том, что настоящее изобретение описано и проиллюстрировано с обращением к различным вариантам его выполнения, специалистам в данной области техники будет понятно, что в нем могут быть выполнены различные изменения в его форме и конкретных подробностях, не выходящие за рамки объема настоящего изобретения, который определяется только нижеприведенной формулой изобретения и ее эквивалентами.While the present invention has been described and illustrated with reference to various embodiments, it will be understood by those skilled in the art that various changes may be made in its form and specific details without departing from the scope of the present invention, which is defined only the following claims and their equivalents.

Claims (64)

1. Модуль изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, отличающийся тем, что модуль изоляции пакетов данных встроен между сетевым адаптером и модулем протоколов канального уровня,1. The module for isolating data packets transmitted over public networks and / or over local networks, characterized in that the module for isolating data packets is built-in between the network adapter and the module of the link layer protocols, при этом модуль изоляции пакетов данных выполнен с возможностью обработки пакетов данных, передаваемых с уровня сетевых протоколов на уровень сетевых адаптеров и с уровня сетевых адаптеров на уровень сетевых протоколов, для преобразования пакетов данных, при этом преобразование пакетов данных содержит:At the same time, the data packet isolation module is configured to process data packets transmitted from the network protocol layer to the network adapter layer and from the network adapter layer to the network protocol layer to convert data packets, while the transformation of data packets contains: определение идентификатора признака применения изоляции пакетов данных для получателя пакета данных;determining the identifier of the sign of the application of isolation of data packets for the recipient of the data packet; определение идентификатора соединения для получателя обрабатываемого пакета данных;determining the connection identifier for the recipient of the processed data packet; определение местоположения идентификатора соединения в пакете данных путем вычисления смещения относительно начала пакета данных и размера исходных данных для сжатия и/или зашифровывания;determining the location of the connection identifier in the data packet by calculating an offset from the beginning of the data packet and the size of the original data for compression and / or encryption; создание копии исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку;creating a copy of the original package with the addition of data areas to ensure its further processing; инициализацию и заполнение структуры сопроводительных данных для обрабатываемого пакета данных;initialization and filling of the accompanying data structure for the processed data packet; вычисление диверсифицированного ключа на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных;calculating a diversified key based on the key corresponding to the connection identifier and the value from the augmented data structure; шифрование данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных;data encryption using a diversified key for each package of processed data; шифрование части структуры сопроводительных данных;encryption of part of the accompanying data structure; вычисление контрольной суммы всех зашифрованных данных и помещение вычисленной контрольной суммы в структуру сопроводительных данных;calculating a checksum of all encrypted data and placing the calculated checksum in the accompanying data structure; вычисление значения маскированного идентификатора признака применения изоляции пакетов данных на основании значений идентификатора признака применения изоляции пакетов данных и контрольной суммы зашифрованных данных, и помещение вычисленного значения маскированного идентификатора признака применения изоляции пакетов данных в структуру сопроводительных данных;calculating the masked identifier value of the data packet isolation application flag based on the values of the data packet isolation application flag identifier and the encrypted data checksum, and placing the computed value of the masked data packet isolation application flag identifier in the accompanying data structure; формирование ключа шифрования для идентификатора соединения на основании значений идентификатора признака применения изоляции пакетов данных, маскированного идентификатора признака применения изоляции пакетов данных и значения из области данных;generating an encryption key for the connection identifier based on the values of the identifier of the sign of using isolation of data packets, the masked identifier of the sign of using the isolation of data packets, and values from the data area; шифрование идентификатора соединения и помещение зашифрованного значения идентификатора соединения в структуру сопроводительных данных;encrypting the connection identifier and placing the encrypted connection identifier value in the accompanying data structure; определение места размещения структуры сопроводительных данных в пакете обрабатываемых данных;determination of the location of the structure of accompanying data in the package of processed data; повторное вычисление контрольной суммы IP-заголовка и запись повторно вычисленной контрольной суммы в структуре пакета обрабатываемых данных; иrecalculating the checksum of the IP header and writing the recalculated checksum in the structure of the processed data packet; and модуль изоляции пакетов данных выполнен с возможностью передачи данных от отправителя получателю через стандартные сетевые маршрутизирующие устройства в сетях общего пользования и/или в локальных сетях, при этом передаваемые данные содержат пакеты данных, преобразованные посредством модуля изоляции пакетов данных.The data packet isolation module is configured to transmit data from the sender to the receiver through standard network routing devices in public networks and / or local networks, while the transmitted data contains data packets converted by the data packet isolation module. 2. Модуль по п. 1, отличающийся тем, что структура сопроводительных данных содержит:2. The module according to claim 1, characterized in that the structure of the accompanying data contains: - область данных, используемых для вычисления диверсифицированного ключа;- the area of data used to calculate the diversified key; - идентификатор признака применения изоляции пакетов данных;- identifier of the sign of the application of isolation of data packets; - идентификатор получателя пакета (идентификатора соединения);- packet recipient identifier (connection identifier); - поле контрольной суммы зашифрованных данных пакета;- field of the checksum of the encrypted packet data; - поле исходного размера в байтах IP-пакета (Значение из IP-заголовка);- the field of the initial size in bytes of the IP packet (Value from the IP header); - поле исходного типа IP-протокола (Значение из IP-заголовка);- field of the original type of the IP-protocol (Value from the IP-header); - поле используемого типа сжатия данных.- field of the used data compression type. 3. Модуль по п. 1, отличающийся тем, что модуль изоляции пакетов данных дополнительно содержит блок обработки информационных запросов и команд управления, выполненный с возможностью перехвата и модификации команд управления и информационных запросов, направляемых на уровень сетевых адаптеров.3. The module according to claim 1, characterized in that the data packet isolation module further comprises a block for processing information requests and control commands, configured to intercept and modify control commands and information requests sent to the network adapters level. 4. Модуль по п. 1, отличающийся тем, что модуль выполнен с возможностью передачи на уровень сетевых протоколов информации об уменьшении максимального размера пакета для снижения полезной нагрузки пакета.4. The module according to claim 1, characterized in that the module is configured to transmit information about reducing the maximum packet size to the network protocols layer to reduce the payload of the packet. 5. Модуль по п. 1, отличающийся тем, что модуль выполнен с возможностью маскирования и/или отключения возможностей по меньшей мере одного сетевого адаптера с уровня сетевых адаптеров.5. The module according to claim 1, characterized in that the module is configured to mask and / or disable the capabilities of at least one network adapter from the level of network adapters. 6. Модуль по п. 1, отличающийся тем, что модуль выполнен с возможностью создания экземпляров встраивания для каждого сетевого адаптера уровня сетевых адаптеров.6. The module of claim 1, wherein the module is configured to create embedding instances for each network adapter at the network adapter level. 7. Модуль по п. 1, дополнительно содержащий блок обработки отправляемых пакетов и блок обработки принимаемых пакетов, при этом:7. The module according to claim 1, additionally containing a block for processing sent packets and a block for processing received packets, while: блок обработки отправляемых пакетов выполнен с возможностью создания копий исходных пакетов данных и последующего преобразования пакетов данных для изоляции пакетов данных;the outgoing packet processing unit is configured to create copies of the original data packets and then convert the data packets to isolate the data packets; блок обработки принимаемых пакетов выполнен с возможностью непосредственного преобразования исходных пакетов данных.the received packet processing unit is configured to directly transform the original data packets. 8. Модуль по п. 1, отличающийся тем, что модуль изоляции пакетов данных выполнен с возможностью изоляции сетевых узлов, передающих и/или принимающих обрабатываемые пакеты данных, от других сетевых узлов.8. The module according to claim 1, characterized in that the data packet isolation module is configured to isolate network nodes transmitting and / or receiving processed data packets from other network nodes. 9. Способ изоляции пакетов данных, передаваемых по сетям общего пользования и/или по локальным сетям, причём способ содержит этапы, на которых:9. A method for isolating data packets transmitted over public networks and / or over local networks, and the method contains the stages at which: принимают посредством модуля изоляции пакетов данных, встроенного между сетевым адаптером и модулем протоколов канального уровня, пакеты данных, передаваемые с уровня сетевых протоколов на уровень сетевых адаптеров и с уровня сетевых адаптеров на уровень сетевых протоколов;receive, by means of the data packet isolation module built between the network adapter and the link layer protocol module, data packets transmitted from the network protocol layer to the network adapter layer and from the network adapter layer to the network protocol layer; выполняют посредством модуля изоляции пакетов данных преобразование принимаемых пакетов данных в формат, в котором пакеты данных не дают стороннему наблюдателю информации об истинных протоколах взаимодействия между сторонами сетевого обмена и об источнике и приемнике данных и способах воздействия на них, при этом преобразование пакетов данных содержит этапы, на которых:by means of the data packet isolation module, the received data packets are converted into a format in which the data packets do not give an outside observer information about the true communication protocols between the parties to the network exchange and about the source and the receiver of data and how to influence them, while converting the data packets contains the steps, where: определяют идентификатор соединения для получателя обрабатываемого пакета данных;determine the connection identifier for the recipient of the processed data packet; вычисляют относительно начала полного пакета данных смещение и размер данных, обрабатываемых сжатием и/или зашифровыванием;calculate the offset and size of the data processed by compression and / or encryption relative to the beginning of the complete data packet; создают копию исходного пакета с дополнением его областями данных, обеспечивающими его дальнейшую обработку;create a copy of the original package with the addition of data areas to ensure its further processing; инициализируют и заполняют структуру сопроводительных данных для обрабатываемого пакета данных;initialize and fill the structure of the accompanying data for the processed data packet; вычисляют диверсифицированный ключ на основании ключа, соответствующего идентификатору соединения и значения из структуры дополняемых данных;calculating a diversified key based on the key corresponding to the connection identifier and the value from the structure of the augmented data; выполняют шифрование данных с применением диверсифицированного ключа для каждого пакета обрабатываемых данных;performing data encryption using a diversified key for each package of processed data; выполняют шифрование части структуры сопроводительных данных;encrypting a portion of the accompanying data structure; вычисляют контрольную сумму всех зашифрованных данных и помещают вычисленную контрольную сумму в структуру сопроводительных данных;calculating a checksum of all encrypted data and placing the calculated checksum in the accompanying data structure; вычисляют значение маскированного идентификатора признака применения изоляции пакетов данных на основании значений идентификатора признака применения изоляции пакетов данных и контрольной суммы зашифрованных данных, и помещают вычисленное значение маскированного идентификатора признака применения изоляции пакетов данных в структуру сопроводительных данных;calculating the value of the masked identifier of the data packet isolation application flag based on the values of the identifier of the data packet isolation application flag and the encrypted data checksum, and placing the calculated value of the masked data packet isolation application flag identifier in the accompanying data structure; формируют ключ шифрования для идентификатора соединения на основании значений идентификатора признака применения изоляции пакетов данных, маскированного идентификатора признака применения изоляции пакетов данных и значения из области данных;generating an encryption key for the connection identifier based on the values of the identifier of the sign of using data packet isolation, the masked identifier of the sign of using the isolation of data packets and the values from the data area; выполняют шифрование идентификатора соединения и помещают зашифрованное значение идентификатора соединения в структуру сопроводительных данных;encrypting the connection identifier and placing the encrypted connection identifier value in the accompanying data structure; определяют местоположение для встраивания структуры сопроводительных данных в пакет обрабатываемых данных путем вычисления смещения относительно начала обрабатываемых данных;determining the location for embedding the structure of the accompanying data in the packet of the processed data by calculating an offset from the beginning of the processed data; повторно вычисляют контрольную сумму IP-заголовка и записывают повторно вычисленную контрольную сумму в структуре пакета обрабатываемых данных; иrecalculating the checksum of the IP header and writing the recalculated checksum in the structure of the processed data packet; and передают данные от отправителя получателю через стандартные сетевые маршрутизирующие устройства в сетях общего пользования и/или в локальных сетях, при этом передаваемые данные содержат пакеты данных, преобразованные посредством модуля изоляции пакетов данных.transmit data from the sender to the recipient through standard network routing devices in public networks and / or local networks, while the transmitted data contains data packets converted by the data packet isolation module. 10. Способ по п. 9, в котором структура сопроводительных данных содержит:10. The method of claim 9, wherein the accompanying data structure comprises: - область данных, используемых для вычисления диверсифицированного ключа;- the area of data used to calculate the diversified key; - идентификатор признака применения изоляции пакетов данных;- identifier of the sign of the application of isolation of data packets; - идентификатор получателя пакета (идентификатора соединения);- packet recipient identifier (connection identifier); - поле контрольной суммы зашифрованных данных пакета;- field of the checksum of the encrypted packet data; - поле исходного размера в байтах IP-пакета (Значение из IP-заголовка);- the field of the initial size in bytes of the IP packet (Value from the IP header); - поле исходного типа IP-протокола (Значение из IP-заголовка);- field of the original type of the IP-protocol (Value from the IP-header); - поле используемого типа сжатия данных.- field of the used data compression type. 11. Способ по п. 9, дополнительно содержащий этап, на котором перехватывают и модифицируют команды управления и запросы, направляемые на уровень сетевых адаптеров.11. The method of claim 9, further comprising the step of intercepting and modifying control commands and requests directed to the network adapter layer. 12. Способ по п. 9, дополнительно содержащий этап, на котором передают на уровень сетевых протоколов информацию об уменьшении максимального размера пакета для снижения полезной нагрузки пакета.12. The method according to claim 9, further comprising the step of transmitting to the network protocols layer information about reducing the maximum packet size to reduce the payload of the packet. 13. Способ по п. 9, дополнительно содержащий этап, на котором маскируют и/или отключают возможности по меньшей мере одного сетевого адаптера с уровня сетевых адаптеров.13. The method according to claim 9, further comprising the step of masking and / or disabling the capabilities of at least one network adapter from the level of network adapters. 14. Способ по п. 9, дополнительно содержащий этап, на котором создают копии исходных пакетов данных перед преобразованием пакетов данных для изоляции пакетов данных.14. The method of claim 9, further comprising the step of making copies of the original data packets before converting the data packets to isolate the data packets. 15. Способ по п. 9, дополнительно содержащий этап, на котором изолируют посредством модуля изоляции пакетов данных сетевые узлы, передающие и/или принимающие обрабатываемые пакеты данных, от других сетевых узлов.15. The method according to claim 9, further comprising the step of isolating, by means of the data packet isolation module, the network nodes transmitting and / or receiving the processed data packets from other network nodes. 16. Способ по п. 9, дополнительно содержащий этап, на котором сторона, принимающая обрабатываемые пакеты данных, проверяет контрольную сумму данных, содержащих пакеты данных, преобразованные посредством модуля изоляции пакетов данных, отправленные стороной, отправляющей обрабатываемые пакеты данных.16. The method according to claim 9, further comprising the step of verifying the checksum of the data containing the data packets converted by the data packet isolation module sent by the party sending the processed data packets.
RU2021104412A 2021-02-20 2021-02-20 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 RU2762157C1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2021104412A RU2762157C1 (en) 2021-02-20 2021-02-20 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
PCT/RU2022/050052 WO2022177477A1 (en) 2021-02-20 2022-02-17 Method for isolating data packets transmitted over networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2021104412A RU2762157C1 (en) 2021-02-20 2021-02-20 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

Publications (1)

Publication Number Publication Date
RU2762157C1 true RU2762157C1 (en) 2021-12-16

Family

ID=79175322

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2021104412A RU2762157C1 (en) 2021-02-20 2021-02-20 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

Country Status (2)

Country Link
RU (1) RU2762157C1 (en)
WO (1) WO2022177477A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2798799C1 (en) * 2022-07-01 2023-06-27 Общество с ограниченной ответственностью фирма "Интерсвязь" Method for collecting and storing network data obtained from broadcasting an ip address

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2182355C1 (en) * 2001-10-03 2002-05-10 ООО "Микротест-ТЕЛ" Method and system for protecting corporate virtual private computer network against unauthorized data exchange with public transport network
RU130429U1 (en) * 2013-04-01 2013-07-20 Общество с ограниченной ответственностью "Инновационно-производственный центр "Нейтральные компьютерные системы" TERMINAL AND PROTECTED COMPUTER SYSTEM INCLUDING TERMINAL
CN110941862A (en) * 2019-12-11 2020-03-31 博依特(广州)工业互联网有限公司 Data isolation system based on FPGA + ARM
CN111711615A (en) * 2020-05-29 2020-09-25 成都金隼智安科技有限公司 Knowledge base information synchronization system and method for edge security computing node

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070027991A1 (en) * 2005-07-14 2007-02-01 Mistletoe Technologies, Inc. TCP isolation with semantic processor TCP state machine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2182355C1 (en) * 2001-10-03 2002-05-10 ООО "Микротест-ТЕЛ" Method and system for protecting corporate virtual private computer network against unauthorized data exchange with public transport network
RU130429U1 (en) * 2013-04-01 2013-07-20 Общество с ограниченной ответственностью "Инновационно-производственный центр "Нейтральные компьютерные системы" TERMINAL AND PROTECTED COMPUTER SYSTEM INCLUDING TERMINAL
CN110941862A (en) * 2019-12-11 2020-03-31 博依特(广州)工业互联网有限公司 Data isolation system based on FPGA + ARM
CN111711615A (en) * 2020-05-29 2020-09-25 成都金隼智安科技有限公司 Knowledge base information synchronization system and method for edge security computing node

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2798799C1 (en) * 2022-07-01 2023-06-27 Общество с ограниченной ответственностью фирма "Интерсвязь" Method for collecting and storing network data obtained from broadcasting an ip address

Also Published As

Publication number Publication date
WO2022177477A1 (en) 2022-08-25

Similar Documents

Publication Publication Date Title
JP4707992B2 (en) Encrypted communication system
US7346770B2 (en) Method and apparatus for traversing a translation device with a security protocol
US7287269B2 (en) System and method for authenticating and configuring computing devices
US6826684B1 (en) Sliding scale adaptive self-synchronized dynamic address translation
US8510548B1 (en) Method and discovery system for discovering encrypted peer-to-peer (EP2P) nodes associated with a particular EP2P network
US8364948B2 (en) System and method for supporting secured communication by an aliased cluster
US20100274923A1 (en) Method and apparatus for dynamic mapping
Du et al. Implementation and performance analysis of SNMP on a TLS/TCP base
WO1998032065A2 (en) Improved network security device
CN110690962B (en) Application method and device of service node
KR100748698B1 (en) Apparatus and method of packet processing in security communication system
CN114844729B (en) Network information hiding method and system
US20050135359A1 (en) System and method for IPSEC-compliant network address port translation
CN113347198B (en) ARP message processing method, device, network equipment and storage medium
CN110832806B (en) ID-based data plane security for identity-oriented networks
CN111835613B (en) Data transmission method of VPN server and VPN server
RU2762157C1 (en) 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
US8670565B2 (en) Encrypted packet communication system
Bittau et al. TCP-ENO: Encryption negotiation option
CN110381034B (en) Message processing method, device, equipment and readable storage medium
CN102546307A (en) Method and system for realizing proxy ARP (Address Resolution Protocol) function based on DHCP (Dynamic Host Configuration Protocol) interception
US20080222693A1 (en) Multiple security groups with common keys on distributed networks
US20200177540A1 (en) In-line transmission control protocol processing engine using a systolic array
US7466711B2 (en) Synchronous system and method for processing a packet
JP6075871B2 (en) Network system, communication control method, communication control apparatus, and communication control program