Эллиптическая криптография интернета вещей

Материал из testwiki
Версия от 16:05, 4 марта 2025; imported>Sldst-bot ш:Изолированная статья добавлена дата установки: 2018-12-06)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Эллиптическая криптография интернета вещей (Шаблон:Lang-en)[1] — криптографический протокол, основанный на эллиптической криптографии, целью которого является защита связи между устройствами, работающими в соответствии с технологией «интернета вещей», то есть защита связи между устройствами «интернета вещей» и сервером.

«Интернет вещей» (Шаблон:Lang-en) представляет собой сеть, где устройства, подключённые к интернету, взаимодействуют с облаком для того, чтобы обмениваться информацией через интернет. С помощью этой технологии существует возможность управлять несколькими устройствами удалённо. Поскольку устройства подключены к сети интернет, возникает проблема безопасности «интернета вещей» при использовании этой технологии. Устройства «интернета вещей» могут подвергаться различным видам атак. Для того чтобы устранить уязвимость устройств, существует защищенный протокол ECIOT. В соответствии с данным протоколом устройство устанавливает секретный ключ сеанса с сервером используя протокол Диффи-Хеллмана на основе кривой NIST p-192. Последующая связь выполняется с помощью симметричного шифра ключа Ex-OR, что подразумевает под собой шифр с использованием проективной системы координат с методом вычитания сложения с использованием ключа ECIOT[1].

Введение

Выбор основных составляющих криптографического протокола ECIOT напрямую зависит от архитектуры сети, использующей технологию «Интернет вещей». Специфика устройств «интернета вещей» накладывает ограничения на использование криптографических примитивов с точки зрения памяти и вычислительной мощности. Архитектура «интернета вещей» позволяет проследить как и где проявляются уязвимости[1].

Архитектура «Интернета вещей»

В общем случае «Интернет вещей» состоит из беспроводных сенсорных узлов, которые собирают информацию и отправляют её на ближайшую базовую станцию, называемую «шлюзом», которая, в свою очередь, связывается с общим или частным облаком. Особенности топологии могут варьироваться, например, в некоторых случаях шлюз может находиться на устройстве. Устройства, используемые в таких топологиях, могут быть построены специально для «Интернета вещей» (greenfield) или могут быть устаревшими устройствами, которые имеют возможности поддержки технологии, добавленные после их установки (brownfield)[2].

Задачи безопасности

Цели безопасности для «Интернета вещей» остаются такими же как и в других компьютерных сетях, однако появляются и некоторые уникальные проблемы, связанные с использованием криптографии с открытым ключом, которая необходима для защиты связи между узлами датчиков. Криптографические алгоритмы с открытым ключом обычно реализуются сложным образом, что приводит к значительным накладным расходам по отношению к времени выполнения и энергопотреблению. Основными проблемами в топологии «Интернета вещей» являются датчики. Эти миниатюрные устройства предназначены для малого потребления энергии, они имеют небольшой кремниевый форм-фактор, имеют ограниченную пропускную способность и вычислительную мощность из-за 8/16 битного микропроцессора с очень низкой тактовой частотой (≤10 МГц). Хранение информации на этих устройствах также ограничено, так как большая часть хранилища занята прикладным программным обеспечением, оставляя очень ограниченное пространство для протоколов безопасности: ОЗУ занимает всего несколько килобайт, а флэш-память имеет до 256 КБ для хранения программного кода[3]. Шаблон:Нет АИ 2

Защита и проверка безопасности «Интернета вещей» должна осуществляться на протяжении всего жизненного цикла устройства, начиная от первоначальной конфигурации и заканчивая оперативной средой, которая включает в себя безопасную загрузку путем проверки цифровых подписей, контроля доступа, аутентификации устройства, межсетевых экранов и IPS и т. д.[1]

Схема ECIOT

Протокол ECIOT используется для шифрования и дешифрования сообщений на основе эллиптической кривой для связи между шлюзом и устройством «интернета вещей». Устройства IoT будут использовать симметричные ключи протокола Ex-OR для шифрования и дешифрования сообщения. В протоколе Ex-OR ключ отправителя и получателя должны быть одинаковыми, так как это протокол симметричного ключа. Но обмен этим ключом по небезопасному каналу является рискованным из-за возможности их перехвата хакером. Поэтому, устройство, использующее технологию «Интернет вещей», в схеме ECIOT должно использовать Протокол Диффи — Хеллмана на эллиптических кривых[4] для установления пары ключей с сервером. Использование этого протокола на беспроводных сенсорных узлах наиболее выгодно, так как из-за меньшего размера ключевых устройств пропускная способность и требования к хранению значительно сократятся по сравнению с протоколом RSA. Также реализация протокола ECIOT в криптографической библиотеке MIRACL[5] показывает, что протокол Диффи Хеллмана на эллиптической кривой потребляет меньше ресурсов по сравнению с протоколом Диффи Хеллмана по факториальной проблеме.

Описание алгоритма ECIOT

Протокол Диффи — Хеллмана на эллиптических кривых[4] позволяет двум сторонам, имеющим пары открытый/закрытый ключ на эллиптических кривых, получить общий секретный ключ, используя незащищённый от прослушивания канал связи. Этот общий секретный ключ используется устройствами IoT для шифрования и расшифровки последующих сообщений с использованием шифра Ex-OR. Рассмотрим Протокол Диффи — Хеллмана на эллиптических кривых подробнее.

В этом протоколе QA и QB являются открытыми ключами устройства «интернета вещей» и сервера соответственно, тогда KA и KB являются закрытыми ключами. Базовая точка G является точкой на эллиптической кривой. Устройство «интернета вещей» и сервер умножают базовую точку G на свои закрытые ключи, чтобы получить ещё одну точку на эллиптической кривой, которую называют открытым ключом и пересылают друг с другу. Общий секретный ключ — это координата X результирующей точки, которую они получают после умножения их соответствующих секретных ключей на открытый ключ друг друга[1].

Алгоритм

  • Базовая точка на кривой G
  • Пара открытый/закрытый ключ на устройстве (QA,KA), где QA=KA*G
  • Пара открытый/закрытый ключ на сервере (QB,KB), где QB=KB*G
  • IoT-устройство вычисляет (XK,YK)=KA*QB=KA*KB*G
  • Сервер вычисляет (XK,YK)=KB*QA=KB*KA*G
  • Общий секретный ключ XK

Реализация

В протоколе используется эллиптическая кривая NIST p-192[6], уравнение кривой y2=x3+Ax+Bmodp, где A, B и p предопределены в форме Вейерштрасса над конечным полем FP, где p>3 и является простым, A и B ∈ FP[7]. Для ускорения вычислений на IoT в протоколе ECIOT использовались такие значения A, B и p эллиптической кривой[1]:

  • p ="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"
  • A ="-3"
  • B ="64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1"
  • Координаты G(X, Y):
   X =“188DA80EB03090F67CBF20EB43A18800F4FFOAFD82FF1012”
   Y =“07192B95FFC8DA78631011ED6B24CDD573F977A11E794811”

Устройство IoT и сервер выбирают любое положительное целое число случайным образом в качестве своего закрытого ключа и умножают базовую точку G (X, Y) на эллиптическую кривую для генерации своего открытого ключа.

  • Закрытый ключ устройства IoT = 2455155546008943817740293915197451784769108058161191238065
  • Закрытый ключ сервера = 156204924171171345230889264615265264018234269657

Устройство и сервер вычисляют ключ сеанса путем умножения открытых ключей друг друга на их закрытые ключи.

  • Устройство IoT вычисляет ключ сеанса = 2013290534764576415020157484388000712366938431147014905701
  • Сервер вычисляет ключ сеанса = 2013290534764576415020157484388000712366938431147014905701

Ключи сеанса совпадают, они находится в сжатом формате. Использование метода сжатия позволяет экономить пропускную способность, поскольку для того, чтобы воссоздать точку необходимо передавать только одну координату ключа эллиптической кривой вместе с младшим значащим битом Y-координаты. Для оптимизации протокола ECIOT была использована проективная система координат с методом вычитания сложения для целочисленной перекодировки. Использование проективных координат помогает протоколу избежать модульной операции инверсии, которая является энергозатратной с вычислительной точки зрения для 8/16-битных устройств «интернета вещей», что позволяет продлить ему срок службы[1].

Примечания

Шаблон:Примечания Шаблон:Изолированная статья