Способ расширения адресного пространства в системе связи
METHOD FOR EXPANDING ADDRESS SPACE IN COMMUNICATION SYSTEM

Изобретение относится к сетям и к способам защиты данных беспроводных приемопередающих конечных устройств, объединенных в сети посредством беспроводной связи, и может быть использовано для увеличения количества используемых конечных устройств в сети и для беспроводной передачи информации и сбора данных от них без необходимости увеличения объема передаваемой информации.
Из уровня техники известен способ замены идентификатора конечного устройства беспроводной сети в сообщении, передаваемом конечным устройством серверу сети, который по технической сущности является наиболее близким решением к предложенному способу. Такой способ реализуется путем генерации конечным устройством идентификатора в каждом передаваемом сообщении в соответствии со значением счетчика конечного устройства, измененяемым, начиная с начального значения, на заданное значение через заданный интервал времени после предыдущего изменения и непосредственно после передачи сообщения на сервер сети. Сервер сети конечных устройств генерирует идентификатор каждого конечного устройства в соответствии со значением счетчика сервера, хранит в памяти ряд последовательно сгенерированных идентификаторов каждого конечного устройства вместе с уникальным идентификатором этого конечного устройства, сравнивает идентификатор в полученном сообщении с рядом последовательно сгенерированных идентификаторов каждого конечного устройства, выявляет передавшее сообщение конечное устройство, соответствующее идентификатору конечного устройства в полученном сообщении, и приводит в соответствие, при необходимости, значение счетчика сервера со значением счетчика каждого конечного устройства, соответствующее идентификатору этого конечного устройства в полученном сообщении (см. Патент RU 2712653, опубликован 30.01.2020).
Недостатком такого способа является необходимость генерирования каждый раз при каждой новой передаче сообщений нового идентификатора, что ведет к необходимости осуществления большого количества расчетов на принимающей стороне, так как перерасчет нужно делать практически каждый раз после принятия нового сообщения.
Технической проблемой, решаемой изобретением, является исключение необходимости увеличения адресного пространства конечных устройств в сети и снижение энергозатрат за счет сокращения объема передаваемой информации при передаче конечными устройствами сообщений.
Техническим результатом изобретения является обеспечение возможности использования адресов конечных устройств любой длины, исключение коллизий между передаваемыми пакетами данных при передаче конечными устройствами сообщений ограниченной длины, повышение надежности передачи сообщений и их защищенности, повышение экономичности энергопотребления конечными устройствами при передаче ими сообщений.
Технический результат изобретения достигается благодаря реализации способа расширения адресного пространства конечного устройства в системе связи, который заключается в том, что при формировании конечным устройством сообщений, каждое из которых включает идентификатор конечного устройства, полезную информацию и имитовставку, шифруют каждое сообщение, причем шифрование идентификатора, шифрование полезной информации и формирование имитовставки каждого сообщения осуществляют с помощью гаммы или блочного шифра, передают конечным устройством зашифрованные сообщения на сервер сети, причем каждое переданное сообщение включает часть результата шифрования идентификатора, часть результата формирования имитовставки и зашифрованную полезную информацию, на сервере сети осуществляют обработку каждого принятого сообщения путем поиска и сопоставления информации из части результата шифрования идентификатора обрабатываемого сообщения с такой же информацией на сервере сети и при успешном сопоставлении дальнейшим сопоставлением части результата формирования имитовставки для нескольких разных значений по меньшей мере одного счетчика конечного устройства с успешно сопоставленной частью результата шифрования идентификатора, и при положительной обработке на сервере сети осуществляет расшифровку полезной информации и отправку пользователю расшифрованной полезной информации и расшифрованного открытого идентификатора. При необходимости могут дополнительно осуществлять отправку пользователю значение по меньшей мере одного счетчика конечного устройства.
Кроме того, шифрование полезной информации каждого сообщения могут осуществлять с помощью соответствующего сеансового ключа, который основан на информации о корневом ключе конечного устройства и значении первого счетчика конечного устройства, которое меняется периодически на заданное значение через заданный интервал времени после предыдущего изменения.
Кроме того, шифрование идентификатора каждого сообщения могут осуществлять с помощью соответствующего сеансового ключа, при этом открытый текст процедуры шифрования идентификатора основан на соответствующем значении первого счетчика конечного устройства.
Кроме того, формирование имитовставки каждого сообщения могут осуществлять шифрованием с помощью соответствующего сеансового ключа, при этом открытый текст для формирования имитовставки основан на части информации об идентификаторе конечного устройства, части полезной информации, соответствующем значении второго счетчика конечного устройства, которое меняется периодически на заданное значение через заданный интервал времени после предыдущего изменения и непосредственно после передачи сообщения.
Кроме того, гамма может быть образована частью результата шифрования информации с помощью соответствующего сеансового ключа, открытый текст которой включает соответствующее значение второго счетчика, которое меняется периодически на заданное значение через заданный интервал времени после предыдущего изменения и непосредственно после передачи сообщения.
Сервер сети может формировать базу данных из информации об идентификаторе, результатах шифрования идентификатора конечного устройства с учетом значений первого счетчика, а также из сеансовых ключей.
Кроме того, на сервере сети по результатам приема и обработки сообщений могут осуществлять синхронизацию значений по меньшей мере одного счетчика конечного устройства.
Изобретение поясняется чертежами, где на фиг. 1 схематично показана связь элементов, с помощью которых осуществляется предложенный способ; на фиг. 2 схематично показан алгоритм формирования сообщений конечным устройством.
Предложенный способ расширения адресного пространства конечных устройств 1 в системе связи предназначен для возможности использования конечными устройствами 1 в сети 2 связи различного множества индивидуальных адресов (UID) любой длины, в том числе (но не обязательно) без необходимости организации разделения таких адресов среди производителей конечных устройств 1 и среди сетей связи. Также предложенный способ позволяет сократить размер адреса конечного устройства 1 в передаваемом сообщении и при этом минимизировать до приемлемого уровня коллизии в сети 2 связи при передаче множеством конечных устройств 1 (имеющих собственные индивидуальные адреса любой длины) сообщений.
Предложенный способ расширения адресного пространства конечных устройств 1 в системе связи реализуется с помощью совокупности технических средств и систем, которые объединены в единую сеть, связаны беспроводными каналами связи и включают в себя (не ограничиваясь): множество конечных устройств 1, сеть 2 связи (сеть передачи данных с оконечными устройствами, в том числе сетевыми серверами (серверами сети), связанными каналами связи); специальное программное обеспечение 3 пользователя (приложение пользователя, сервис), которое может быть реализовано либо на любом электронном устройстве конечного пользователя (телефон, смартфон, планшет, ноутбук, персональный компьютер или иное устройство), либо может быть реализовано на любом внешнем сервере (серверах) обработки информации (данных), причем такой сервер может быть частью программного обеспечения 3 пользователя, либо может быть реализовано на любых других средствах обработки информации.
Далее рассмотрен пример осуществления предложенного способа при отправке сообщений одним из конечных устройств 1. При этом следует понимать, что реализация предложенного способа возможна при одновременной передаче сообщений различным множеством конечных устройств 1, каждый из которых имеет свой собственный уникальный публичный идентификационный номер (адрес, идентификационные данные, UID).
При осуществлении предложенного способа конечное устройство 1 (каждое конечное устройство 1 из множества конечных устройств 1) формирует сообщения для передачи их в сеть 2 связи (в том числе на сервер сети). Каждое сообщение от конечного устройства 1 включает идентификатор 4 конечного устройства 1 (собственный адрес, идентификационные данные конечного устройства, UID), полезную информацию 5 (поле данных Payload), а также имитовставку 6 (специальное поле MIC).
При формировании конечным устройством 1 сообщений ведутся следующие счетчики конечного устройства 1:
N1 – первый счетчик (счетчик эпох), который увеличивается (меняется) периодически на заданное значение через заданный интервал времени после предыдущего изменения, начиная с начального значения (с момента активации конечного устройства 1 и его регистрации в сети 2 связи). Периоды увеличения значений первого счетчика могут быть любыми, настраиваемыми при подготовке конечного устройства 1 к работе. При этом значение первого счетчика N1 может увеличиваться периодически, например, один раз в четыре часа или один раз в двенадцать часов, или один раз в сутки и т.п. (возможна настройка любого необходимого периода). Таким образом, первый счетчик N1 определяет номер интервала времени работы конечного устройства 1 с момента его активации (и имеет определенную длину, например, 16 бит).
N2 – второй счетчик, который увеличивается (меняется) непосредственно после каждого отправленного сообщения на заданное значение через заданный интервал времени после предыдущего изменения, начиная с начального значения. Второй счетчик N2 представляет собой своего рода счетчик отправленных сообщений и/или счетчик времени (например, минут) внутри эпохи, т.е. внутри периода работы счетчика N1 (счетчик N2 также имеет определенную длину, например, 16 бит).
При формировании конечным устройством 1 сообщений, которые необходимо передать в сеть 2 связи (и перед их отправкой на сервер сети) каждое сообщение шифруют. Шифрование каждого сообщения осуществляют с помощью сеансового (временного) ключа шифрования (Ke), который пересчитывается периодически в соответствии со значением первого счетчика N1 (например, один раз в четыре часа и т.п.).
Сеансовый ключ (Ke) основан на информации о корневом (постоянном) ключе K0 (выработан на преобразовании K0), т.е. либо на части, либо на всей информации о корневом ключе конечного устройства 1 (K0) и значении первого счетчика N1 конечного устройства 1 (т.е. основан на информации из K0 и N1). Ключ K0 является корневым (постоянным) секретным ключом конечного устройства 1 (имеет длину, например, 256 бит).
При осуществлении предложенного способа возможна процедура активации конечного устройства 1, которая устанавливает начальные значения счетчиков N1, N2, и вырабатывает новое значение корневого секретного ключа, причем оптимальный способ зависит от вида используемой сети 2 связи. Кроме того, может быть предусмотрена возможность смены корневого ключа конечного устройства 1 пользователем в процедуре активации устройства 1 в сети 2.
Для каждого конечного устройства 1, после проведения процедуры его активации, на сервере сети 2 (в привязке к его UID) хранится секретный корневой ключ K0 конечного устройства 1 и начальное значение поправки времени DT = 0 (где DT – коррекция времени конечного устройства 1 на сервере в минутах, имеет длину, например, 8 бит).
При осуществлении предложенного способа, а именно при формировании конечным устройством 1 сообщений, которые направляются в сеть 2 связи, осуществляют отдельное шифрование составляющих каждого сообщения (шифруют собственный идентификатор UID, шифруют полезную информацию Payload и формируют имитовставку MIC). Причем шифрование идентификатора (UID) каждого сообщения осуществляют с помощью произвольного блочного шифра или с помощью гаммы, формирование имитовставки MIC каждого сообщения осуществляют также с помощью произвольного блочного шифра или с помощью гаммы, шифрование полезной информации каждого сообщения осуществляют с помощью гаммы (методом гаммирования) или с помощью блочного шифра.
При этом при шифровании (формировании) соответствующих составляющих каждого сообщения могут использовать либо единый сеансовый ключ Ke, либо разные для каждого поля сообщения сеансовые ключи, которые соответствуют каждой составляющей сообщений.
Т.е., например, шифрование идентификатора каждого сообщения могут осуществлять с помощью соответствующего сеансового ключа Ke, при этом открытый текст процедуры шифрования идентификатора (который шифруется) основан на соответствующем значении первого счетчика N1 конечного устройства 1. Остальное заполнение может быть произвольным, например, нули и фиксированные значения. После шифрования идентификатора UID получают временный ID, который меняется один раз в эпоху в соответствии со значением счетчика N1.
Шифрование полезной информации каждого сообщения могут осуществлять также с помощью этого же сеансового ключа Ke, либо с помощью другого соответствующего сеансового ключа Kei, который основан на информации о корневом ключе K0 конечного устройства 1, значении первого счетчика N1 конечного устройства 1, а также включает некое заполнение, отличное от заполнения, присутствующего в Ke.
Шифрование полезной информации осуществляется путем наложения так называемой гаммы на данные, которые необходимо передать. Преимущественным при шифровании полезной информации является применение именно гаммирования, так как это позволяет шифровать короткие сообщение, в отличие от блочного шифрования, где размер зашифрованных данных кратен или 128 или 256 битам (однако в некоторых случаях возможно применение блочного шифра). В свою очередь гамма получается, как часть результата шифрования или использования блочного шифра в режиме выработки гаммы. Например, от всей гаммы в 128 или 256 бит берут часть нужной длинны, например, 16 бит. Ключом шифрования выступает соответствующий сеансовый ключ. Выработка гаммы организовывается таким образом, что она обязательно зависит от значения счетчика N2 и, не обязательно, счетчика N1. Например, N1 и N2 могут являться составной частью открытого текста в процедуре шифрования, используемого для выработки гаммы. Заполнение необходимо для обеспечения требуемой блочной шифром длинны (например, 128 или 256 бит) открытого текста.
Исходные данные полезной информации при необходимости также могут быть дополнительно зашифрованы ключом приложения пользователя, в том числе с использованием в качестве дополнительных открытых данных значения счетчиков N1 и N2.
Формирование имитовставки каждого сообщения могут осуществлять шифрованием открытого текста с помощью соответствующего сеансового ключа Ke, который основан на информации о корневом ключе K0 конечного устройства 1, значении первого счетчика N1 конечного устройства 1, а также может включать заполнение. При этом открытый текст для формирования имитовставки основан на части информации об идентификаторе конечного устройства 1, части полезной информации, соответствующем значении второго счетчика N2 и необязательно соответствующем значении первого счетчика N1 конечного устройства 1 (т.е. открытый текст может включать либо часть, любо всю информацию о них). Также открытый текст может включать некоторое заполнение для получения нужной длины. Имитовставка необходима для проверки сообщений сервером сети 2 при их обработке, а также для защиты от искажения и подмены сообщений.
После того, как сообщение сформировано и зашифровано, конечное устройство 1 передает такое сообщение в сеть 2 связи (на сервер сети 2). Причем каждое передаваемое сообщение включает только часть результата шифрования идентификатора, часть результата формирования имитовставки и полностью (либо необходимую часть) зашифрованную полезную информацию. Т.е. от сформированного зашифрованного сообщения для отправки его в сеть 2 связи от результата шифрования (результата формирования) берется только часть, соответствующая размеру (формату) сообщения. Важным является то, что результат шифрования в современных блочных шифрах 128 и более бит (например, 256 бит), при этом для отправки могут браться, например, старшие 24 бита от 128 бит результата шифрования.
Сразу после того, как сообщение поступило на сервер сети 2, на нем осуществляют обработку принятого сообщения. Причем на сервере по крайней мере один раз в определенный период времени формируется список из части результата шифрования идентификатора. Такой список пересчитывают в этот период времени, который равен изменению счетчика N1 (например, счетчик N1 увеличивается один раз в 4 часа, при этом он увеличивается на всех устройствах 1 и на сервере сети 2).
Обработка каждого принятого сообщения осуществляется путем поиска информации из части результата шифрования идентификатора принятого и обрабатываемого конкретного сообщения и такой же информации из сформированного на сервере списка части результата шифрования. Если сервер нашел такую информацию, то он сопоставляет информацию из части результата шифрования идентификатора принятого обрабатываемого сообщения с информацией из части результата шифрования идентификатора, хранимой на сервере. При успешном сопоставлении такой информации сервер далее осуществляет сопоставление части результата формирования имитовставки обрабатываемого сообщения для нескольких разных значений счетчика N2 конечного устройства 1 с частью результата формирования имитовставки.
Сервер сети не реже чем, например, каждые 2 часа обновляет реестр временных адресов (ID(i) и ID(i+1)) и номер текущей эпохи (текущее значение первого счетчика N1i).
При получении сообщений от множества конечных устройств 1, в реестре сервера сети 2 допустимо появление более чем одного одинакового временного идентификатора (временного адреса ID) для различных конечных устройств 1.
При получении сообщения для всех конечных устройств 1 с одинаковым текущим временным адресом (ID) в реестре проверяется (рассчитывается) MIC. У разных конечных устройств 1 разные сеансовые ключи Ke, Kei, Kem и разные счетчики N1, N2, и MIC не будет для них совпадать. При этом возможно, что из-за рассинхронизации счетчиков N2 нужно будет рассчитать MIC для N2+1, N2+2 и т.д.
Если текущее принимаемое сервером сообщение имеет адрес ID, совпадающий хотя бы с одним из адресов из реестра временных адресов, то проводится проверка его аутентичности. Проверка аутентичности происходит на нескольких допустимых вариантах значений второго счетчика (N2-1, N2, N2+1, N2+2). Проверка аутентичности осуществляется по совпадению расчетного и полученного значения имитовставки (MIC). Расчетное значение MIC получается по процедуре, аналогичной созданию MIC на конечном устройстве 1 при формировании сообщения.
Совпадение временных адресов (ID) у разных конечных устройств 1 возможно по следующим причинам:
а) в качестве временного адреса (передаваемого зашифрованного идентификатора ID) берется только часть результата шифрования. У разных конечных устройств 1 при выработке ID получается разный результат шифрования, но одинаковые, например, 24 старших бита. Решение этой ситуации осуществляется расчетом MIC.
б) прием помехи из радиоэфира – шум в эфире принят за сообщение. Решение этой ситуации также осуществляется расчетом MIC.
в) отправка поддельного сообщения с подслушанным ранее ID. Решение этой ситуации также осуществляется расчетом MIC.
г) полный повтор перехваченного ранее сообщения. Ситуация решается расчетом MIC, так как счетчик N2 увеличивается после каждого отправленного сообщения.
Если в процессе обработки сообщений при проверке имитовставки (MIC) все значения совпали у более, чем одного сообщения, то такие сообщения отбрасываются и не рассматриваются. Вероятность такого совпадения существенно ниже, чем вероятность недоставки сообщения по радиоканалу и не уменьшит надежность системы.
На сервере сети 2 по результатам приема и обработки сообщений осуществляют синхронизацию значений счетчика N1 и счетчика N2 конечного устройства 1. Синхронизация счетчиков осуществляется после успешного приема сообщения и проверки с MIC путем присвоения счетчикам N1 и N2 значений из совпавшего MIC.
При положительной обработке принятого сообщения, т.е. когда информация из части идентификатора и MIC совпали для данного сообщения, на сервере сети 2 осуществляют расшифровку полезной информации из такого сообщения и отправку пользователю расшифрованной полезной информации и расшифрованного открытого идентификатора конечного устройства 1. Расшифровку полученной полезной информации из сообщения осуществляют на основе рассчитанных в процессе приема сообщений значений сеансовых ключей Ke и Kei.
Отправленная пользователю полезная информация также расшифровывается приложением 3 пользователя, если оно было дополнительно зашифровано на ключе пользователя. При этом для расшифровки полезной информации пользователю передают зашифрованную полезную информацию и уникальные значения счетчиков N1 и N2.
Если пользователь самостоятельно сменил значение ключа пользователя на устройстве 1 и на своем приложении 3, то сервер сети 2 не имеет доступа к информации пользователя.
Благодаря осуществлению предложенного способа реальные адреса конечных устройств 1 (UID) можно делать любой длины до 128 (или 256) бит. Таким образом, обеспечивается возможность расширения адресного пространства конечных устройств 1 в сети 2 связи. Это обеспечивается за счет того, что в передаваемых сообщениях присутствует только часть зашифрованного идентификатора, которая может иметь длину, например, равную 24 бита. Благодаря использованию соответствующей имитовставки при обработке сообщений полностью исключаются коллизии между передаваемыми пакетами данных при передаче конечными устройствами 1 сообщений. Уникальные сформированные имитовставки для каждого передаваемого сообщения позволяют осуществить проверку каждого сообщения на истинность, и его соответствие для конкретного конечного устройства 1, отбросить ложные и повторяющиеся сообщения. При этом повышается надежность и защищенность передаваемых сообщений.
Передача лишь части зашифрованной информации из сообщений (а не всей длины сообщений) позволяет также снизить энергопотребление конечными устройствами 1 при передаче ими сообщений, поскольку на передачу части информации затрачивается существенно меньше энергии, чем на всю информацию из сообщений. В результате существенно экономится энергопотребление, нет необходимости постоянной замены батареек конечных устройств 1.
При использовании предложенного способа в сетях радиосвязи существенно сокращается время передачи. Особенно эта проблема актуальна в сетях LPWAN, где скорости передачи низки (порядка 100 бод) и применяется помехозащищенное кодирование, которое увеличивает время передачи в 1,5-2 раза. Сокращение объема передаваемого сообщения на 2-4 байта приводит к сокращению времени передачи на 0,32 секунды. Что в свою очередь позволяет расширить количество передаваемых сообщений и увеличить пропускную способность всей сети радиосвязи.
Наличие сеансового ключа Kе позволяет сильно сократить расчеты на принимающей стороне, так как перерасчет надо делать не постоянно при передаче каждого сообщения, а, например, один раз в 4 часа. При этом использование сеансовых ключей также повышает надежность передачи сообщений и их защищенности, и снижает энергозатраты за счет исключения необходимости проведения постоянных перерасчетов.
Обеспечение безопасности при приеме сообщений реализуется благодаря тому, что:
- если сообщение с рассчитанными значениями счетчика N2 уже было принято ранее, то новое принятое сообщение бракуется;
- если в реестре временных адресов сервера присутствует более одного временного адреса, то проверяется корректность MIC для каждого из них, если MIC корректный более чем для одного из них, то принятое сообщение бракуется;
- если появляется поток бракованных сообщений, привязанных к одному временному адресу, например, более 100 ложных сообщений за время его действия (например, 4 часа), то это определяется как DDoS атака и прием сообщений по этому временному адресу блокируется до конца действия текущей эпохи.