ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к способу защиты нейронных сетей различных топологий от несанкционированного использования, тиражирования, исследования, воспроизведения и программно-аппаратным решениям для осуществления такого способа и может быть использовано для защиты нейронных моделей при их использовании на таких программно-аппаратных комплексах, например на электронно-вычислительных машинах, контроллерах, других программируемых компьютерных устройствах.
Нейронные сети и машинное обучение становятся неотъемлемой частью повседневной жизни. Доход от внедрения нейронных сетей и искусственного интеллекта вырос за период с 2015 по 202 год с $600 М до $6,5 млрд. Ожидается, что размер рынка нейронных сетей и машинного обучения к 2024 году составит $20,83 млрд с CAGR около 44%.
Разработка нейронной сети требует существенных ресурсов. Так, в процессе разработки необходимо решить задачи проектирования, выбора надлежащей топологии, сбора массива исходных данных (дата-сета) для обучения, разметки этого массива для выделения зон интереса, которые будут влиять на результат выполнения (инференса) нейронной сети. Данная работа является ресурсоемкой и требует затрат, зачастую существенных. Результатом труда является продукт, представляющий коммерческую ценность.
На текущий момент времени для разработки нейронных сетей активно применяются специализированные фреймворки программные платформы, определяющая структуру программной системы, и облегчающая разработку и объединение разных компонентов проекта. Примером таких фреймворков являются TensorFlow, OpenVINO, PyTorch, Keras и другие, которые могут быть с открытым и закрытым исходным кодом.
Особенности реализации нейронных сетей позволяют использовать существующие нейронные сети для их же копирования. Совсем необязательно иметь доступ к аппаратной части для дублирования нейронной сети путем копирования файлов. Например, возможно использовать существующую нейронную сеть для разметки другого дата-сета с последующим обучением. Результатом будет являться полная копия изначальной нейронной сети.
Это побуждает разработчиков искать способы защиты нейронных сетей от несанкционированного использования, тиражирования, исследования (далее - защита).
УРОВЕНЬ ТЕХНИКИ
На текущий момент для защиты нейронных сетей используются следующий способы.
Watermarking - нанесение цифровых водяных знаков на модели машинного обучения. Не является в полном смысле механизмом защиты, а лишь позволяет обеспечить возможность проверки, является ли данная нейронная сеть скопированной. Для этого в исходный дата-сет, состоящий из пар типа данные-класс, при обучении нейронной модели добавляется так называемый «шум», представляющий из себя модифицированные данные, не влияющие на качество обучения модели. Однако при использовании такой обученной модели со специфическими входными данными, результатом исполнения нейронной сети (инференса) будут данные, прямо коррелирующие с шумом, что позволит доказать авторство. Например, если в нейронную сеть в качестве шума внесены изображения кошки, приписанное к классу «собаки», то автор может идентифицировать свою нейронную сеть пропусканием через нее изображения кошек - каждая из них будет определена, как собака. Основным недостатком такого решения является отсутствие возможности предотвратить копирование.
Использование программных методов защиты. Один из вариантов защиты, реализованный компанией Intel в их Фреймворке OpenVINO (https://docs.openvinotoolkit.org/latest/openvino_docs_IE_DG_protecting_model_guide.html), предполагает использование прямого шифрования нейронной модели, с использованием способов, известных специалистам отрасли. При этом в процессе хранения либо распространения модель является зашифрованной, однако при выполнении модель подвергается расшифровке. Поскольку модели используются с opensource-фреймворками, то для специалиста в отрасли не представляет большого труда получить исходную модель с использованием особенностей функционирования таких фреймворков путем, например, перехвата вызовов функций. Таким образом, основным недостатком такой защиты является ее низкая надежность.
Другой вариант такой защиты также реализован компанией Intel в как часть фреймворка OpenVINO (https://docs.openvinotoolkit.org/latest/ovsa get started.html). Защита реализуется через шифрование исходной модели и пользовательские лицензии, позволяющие расшифровать модель. Особенностью решения является использование нескольких виртуальных машин, на каждой из которых реализуется определенная часть функционала - одна виртуальная машина работает с промежуточным представлением модели, вторая используется под лицензирующий сервер, третья - как сервер для инференса расшифрованной модели нейронной сети. Недостатком предложенного решения являются следующие моменты: необходимость разворачивания специализированного программного окружения для реализации защиты; как следствие, высокие требования к производительности оборудования, на котором реализуется такая защита; размещение в памяти после успешной процедуры расшифровки итоговой нейронной модели, что позволяет специалистам в отрасли получить к ней доступ с возможностью копирования; динамическая архитектура фреймворка, подразумевающая возможность перехвата вызовов функций подключаемых динамических библиотек программного решения с возможностью подмены таких вызовов для обхода защиты.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задачей изобретения является разработка способа защиты нейронных сетей с высоким уровнем защиты модели нейронной сети от копирования или несанкционированного использования; с низкими требованиями к производительности исполнительных устройств; не требующего в процессе функционирования применения специализированного программного окружения; обеспечивающих отсутствие нахождения в произвольный момент времени полного экземпляра нейронной модели в памяти устройства, и программно-аппаратного комплекса, позволяющего этот способ реализовать.
Общая схема, поясняющая сущность изобретения, изображена на Фиг. 1
В предпочтительном варианте реализации заявлен способ защиты моделей нейронных сетей, реализуемый на базе исполнительного устройства, фреймворка для машинного обучения и аппаратного ключа шифрования, заключающийся в том, что
функции программной логики инференса модели нейронной сети и используемая для корректного функционирования этой логики часть фреймворка, за исключением файла самой модели нейронной сети, упаковывается в один исполняемый файл, исключая необходимость вызова функций из-за пределов данного исполняемого файла;
по меньшей мере одна функция фреймворка или/и программной логики инференса модели нейронной сети выносится из полученного исполняемого файла на аппаратный ключ шифрования;
полученный исполняемый файл с вынесенной на аппаратный ключ шифрования по меньшей мере одной функцией фреймворка или/и программной логики инференса модели нейронной сети, а также модель нейронной сети шифруется с помощью аппаратного ключа шифрования.
В еще одном варианте реализации заявлен способ защиты моделей нейронных сетей, реализуемый на базе исполнительного устройства, фреймворка для машинного обучения и аппаратного ключа шифрования, заключающийся в том, что
функции программной логики инференса модели нейронной сети и используемая для корректного функционирования этой логики часть фреймворка, за исключением файла самой модели нейронной сети, упаковывается в один исполняемый файл, исключая необходимость вызова функций из-за пределов данного исполняемого файла;
по меньшей мере одна функция фреймворка или/и программной логики инференса модели нейронной сети изменяется обратимым образом так, что может быть преобразована в исходный вариант с помощью аппаратного ключа шифрования;
полученный исполняемый файл с по меньшей мере одной измененной функцией фреймворка или/и программной логики инференса модели нейронной сети, а также модель нейронной сети шифруется с помощью аппаратного ключа шифрования.
Возможен другой вариант, когда дополнительно изменяется значение указателя адреса месторасположения в памяти исполнительного устройства значений весов и/или слоев модели нейронной сети.
Заявленное решение также осуществляется за счет программно-аппаратного комплекса, содержащего связанные между собой исполнительное устройство с развернутыми на нем программными средствами, и ключ шифрования, обеспечивающего выполнение любого из вариантов описанного способа.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:
Фиг. 1 иллюстрирует общую схему реализации заявленного способа и программно-аппаратного комплекса;
Фиг. 2 иллюстрирует аппаратный ключ шифрования.
ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту, будет очевидно каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях хорошо известные методы, процедуры и компоненты не были описаны подробно, чтобы не затруднять излишне понимание особенностей настоящего изобретения.
Кроме того, из приведенного изложения будет ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, будут очевидными для квалифицированных в предметной области специалистов.
Настоящее изобретение направлено на реализацию способа защиты нейронных сетей от несанкционированного копирования и использования, а также программно-аппаратного комплекса, позволяющего этот способ реализовать.
Схема на Фиг. 1 показывает, что заявленный способ реализуется за счет измененного фреймворка (111), позволяющего выполнять инференс нейронной модели (112), развернутого на исполнительном устройстве (110), а также связанного исполнительным устройством аппаратным ключом шифрования (120). Такой программно-аппаратный комплекс (100) позволяет реализовать описанный далее способ защиты.
Исполнительным устройством (110) выступает компьютер или другие вычислительные устройства, способные выполнять заложенную логику инференса.
Аппаратный ключ шифрования (120) представляет собой электронное устройство на базе специализированной микросхемы, защищенного от считывания контроллера или встроенного криптопроцессора, имеющее специализированные алгоритмы шифрования (121), а также защищенную энергонезависимую память (122) и часы реального времени (123). Примером используемого аппаратного ключа шифрования (120) является SenseLock EL5-STD (Фиг. 2) 512 кВ на базе высокозащищенной линейки смарт-карт Infenion с процессором ARM SC300 и 12 кВ оперативной памяти, который использовался при реализации прототипа.
Аппаратный ключ шифрования (120) связан с исполнительным устройством (110) посредством шины обмены данных (140), по известным специалистам отрасли интерфейсам, например USB, LTP или другим.
Часть плагинов и библиотек в релизах фреймворков, предназначенных для инференса моделей нейронных сетей, подгружаются динамически и могут быть подменены злоумышленником для извлечения модели в процессе ее исполнения. Суть изменений фреймворка (111), заключается в том, что все необходимые функции и ресурсы, которые нужны для инференса модели нейронной сети (112), объединены в одном исполняемом файле, что позволяет получить отдельный экземпляр (инстанс) фреймворка (111). Таким образом при выполнении инференса нейронной модели все необходимые для этого ресурсы находятся внутри этого экземпляра (инстанса), что исключает возможность перехвата обращений к внешним подключаемым ресурсам и предотвращает извлечение модели нейронной сети способом подмены обращений к внешним ресурсам. Для целей изменения фреймворка может использоваться специализированное программное обеспечение.
Кроме того, по крайней мере одна из функций фреймворка (1111) выносится из исполняемого файла на аппаратный ключ шифрования (120). За счет программной логики работы ключа шифрования (120), во время исполнения инференса через данный инстанс фреймворка (111), обращение к данной функции (1111) перенаправляется на аппаратный ключ шифрования (120), где фактически располагается данная функция (1111). Возможен вариант, когда функция (1111) не выносится на ключ шифрования (120), а изменяется обратимым образом, например с помощью алгоритмов шифрования (121) или произвольного оператора К, размещаемого на аппаратном ключе шифрования (120). Таким образом, в любом случае отсутствие ключа (120) приводит к невозможности выполнения программного кода.
Для целей реализации изобретения в качестве такого программного обеспечения была использована Virbox Protector. Программа анализирует выполняемый файл, предоставляет выбор доступных функций, которые можно защитить разными методами (Obfuscation, Virtualization, Snippet, Encryption). Использование множества защищенных функций может привести к снижению производительности выполнения программной логики инференса, поэтому разработчику требуется адекватно планировать объем и качество предполагаемой защиты, поскольку перед выполнением эти функции потребуют предварительной расшифровки с помощью аппаратного ключа шифрования (120). Также в Virbox Protector присутствует функция анти-дебаггера, предотвращающая отладку зашифрованной программы, когда злоумышленник может путем последовательного выполнения функций определить потенциальные уязвимости для нарушения защиты.
На вычислительном устройстве (110), кроме измененного фреймворка (111), располагается модель нейронной сети (112), которая используется исполняемым файлом для реализации заложенной разработчиком логики, включающая в себя в том числе веса связей (1121) и слои модели (1122). Модель нейронной сети (112) также шифруется аппаратным ключом шифрования (120). Для шифрования модели нейронной сети (112) используется специализированное программное обеспечение, реализующее указанный функционал. Обычно указанное программное обеспечение предоставляется разработчиком аппаратного ключа шифрования (120) и позволяет реализовать различные возможности и алгоритмы шифрования (121), которые могут быть весьма разнообразны. Существуют также сторонние программные решения, позволяющие осуществлять шифрование с применением аппаратных ключей. В случае реализации изобретения была применена дополнительная программа из Virbox Protector под названием DS Protector, нацеленная на защиту файлов с данными (в нашем случае, модель нейронной сети (112)) с используемой основной зашифрованной программой (в нашем случае - экземпляр фреймворка (111)).
Архитектура современных электронных вычислительных устройств подразумевает необходимость нахождения данных в памяти устройства при выполнении программы. Это особенность используется злоумышленниками для получения копий данных путем анализа структуры блоков памяти с выделением из них полезной информации. Для дополнительной защиты данных модели нейронной сети (112) в памяти исполнительного устройства, можно применить метод динамического управления памятью, когда место размещения данных в памяти при каждом запуске приложения изменяется за счет параметров, связанных с аппаратным кличем шифрования (120), например, с данными часов реального времени (123). Таким образом, при каждом запуске данные расшифрованной модели нейронной сети будут находится в разных местах памяти, что делает задачу анализа бесконечно сложной.
Таким образом, способ защиты нейронной сети (112) от несанкционированного использования или копирования осуществляется за счет создания единого зашифрованного исполняемого файла, представляющего из себя экземпляр фреймворка (111), его защиты путем шифрования и/или подмены произвольной функции (1111), а также защиты файла модели нейронной сети (112) путем шифрования с помощью аппаратного ключа шифрования (120).
В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.
название | год | авторы | номер документа |
---|---|---|---|
Система и способ определения процесса, связанного с вредоносным программным обеспечением, шифрующим файлы компьютерной системы | 2020 |
|
RU2770570C2 |
СПОСОБ ОБРАБОТКИ ФАЙЛА, ХРАНЯЩЕГОСЯ ВО ВНЕШНЕЙ ПАМЯТИ | 2022 |
|
RU2809740C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ШИФРОВАНИЯ МОДЕЛИ НЕЙРОННОЙ СЕТИ И НОСИТЕЛЬ ДАННЫХ | 2019 |
|
RU2724125C1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ГЕНЕРАЦИИ УДАЛЕННЫХ ВЫЗОВОВ | 2023 |
|
RU2814437C1 |
СПОСОБ И СИСТЕМА УПРАВЛЕНИЯ ОБЪЕКТАМИ И ПРОЦЕССАМИ В ВЫЧИСЛИТЕЛЬНОЙ СРЕДЕ | 2023 |
|
RU2820753C1 |
СПОСОБ ВЫЯВЛЕНИЯ ОНКОЗАБОЛЕВАНИЙ В ОРГАНАХ МАЛОГО ТАЗА И СИСТЕМА ДЛЯ РЕАЛИЗАЦИИ СПОСОБА | 2023 |
|
RU2814790C1 |
КОМАНДА И ЛОГИКА ДЛЯ ОБЕСПЕЧЕНИЯ ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ ЦИКЛА ЗАЩИЩЕННОГО ХЕШИРОВАНИЯ С ШИФРОМ | 2014 |
|
RU2637463C2 |
СПОСОБ И СИСТЕМА АВТОМАТИЗИРОВАННОЙ ГЕНЕРАЦИИ И ЗАПОЛНЕНИЯ ВИТРИН ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ДЕКЛАРАТИВНОГО ОПИСАНИЯ | 2022 |
|
RU2795902C1 |
ВЗАИМНАЯ АУТЕНТИФИКАЦИЯ ПРОГРАММНЫХ УРОВНЕЙ | 2016 |
|
RU2715032C2 |
СПОСОБ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ ИГРОВЫХ УСТРОЙСТВ И ИГРОВОЕ УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ | 2006 |
|
RU2310907C1 |
Изобретение относится к области защиты нейронных сетей. Техническим результатом является обеспечение защиты модели нейронной сети от копирования или несанкционированного использования. Раскрыт способ защиты моделей нейронных сетей, реализуемый на базе исполнительного устройства, развернутого на нем фреймворка для машинного обучения и аппаратного ключа шифрования, связанного с исполнительным устройством, заключающийся в том, что функции программной логики инференса модели нейронной сети и используемая для корректного функционирования этой логики часть фреймворка, за исключением файла самой модели нейронной сети, упаковывается в один исполняемый файл, исключая необходимость вызова функций из-за пределов данного исполняемого файла; по меньшей мере одна функция фреймворка или/и программной логики инференса модели нейронной сети выносится из полученного исполняемого файла на аппаратный ключ шифрования; полученный исполняемый файл с вынесенной на аппаратный ключ шифрования по меньшей мере одной функцией фреймворка или/и программной логики инференса модели нейронной сети, а также модель нейронной сети шифруется с помощью аппаратного ключа шифрования. 3 н. и 1 з.п. ф-лы, 2 ил.
1. Способ защиты моделей нейронных сетей, реализуемый на базе исполнительного устройства, развернутого на нем фреймворка для машинного обучения и аппаратного ключа шифрования, связанного с исполнительным устройством, заключающийся в том, что
функции программной логики инференса модели нейронной сети и используемая для корректного функционирования этой логики часть фреймворка, за исключением файла самой модели нейронной сети, упаковывается в один исполняемый файл, исключая необходимость вызова функций из-за пределов данного исполняемого файла;
по меньшей мере одна функция фреймворка или/и программной логики инференса модели нейронной сети выносится из полученного исполняемого файла на аппаратный ключ шифрования;
полученный исполняемый файл с вынесенной на аппаратный ключ шифрования по меньшей мере одной функцией фреймворка или/и программной логики инференса модели нейронной сети, а также модель нейронной сети шифруется с помощью аппаратного ключа шифрования.
2. Способ защиты моделей нейронных сетей, реализуемый на базе исполнительного устройства, развернутого на нем фреймворка для машинного обучения и аппаратного ключа шифрования, связанного с исполнительным устройством, заключающийся в том, что
функции программной логики инференса модели нейронной сети и используемая для корректного функционирования этой логики часть фреймворка, за исключением файла самой модели нейронной сети, упаковывается в один исполняемый файл, исключая необходимость вызова функций из-за пределов данного исполняемого файла;
по меньшей мере одна функция фреймворка или/и программной логики инференса модели нейронной сети изменяется обратимым образом так, что может быть преобразована в исходный вариант с помощью аппаратного ключа шифрования;
полученный исполняемый файл с по меньшей мере одной измененной функцией фреймворка или/и программной логики инференса модели нейронной сети, а также модель нейронной сети шифруется с помощью аппаратного ключа шифрования.
3. Способ по п. 1 или 2, когда дополнительно изменяется значение указателя адреса месторасположения в памяти исполнительного устройства значений весов и/или слоев модели нейронной сети.
4. Программно-аппаратный комплекс для защиты нейронных сетей, содержащий связанные между собой исполнительное устройство с развернутыми на нем программными средствами, и ключ шифрования, обеспечивающий выполнение способа по любому из пп. 1-3.
Способ восстановления спиралей из вольфрамовой проволоки для электрических ламп накаливания, наполненных газом | 1924 |
|
SU2020A1 |
CN 108804931 A, 13.11.2018 | |||
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ШИФРОВАНИЯ МОДЕЛИ НЕЙРОННОЙ СЕТИ И НОСИТЕЛЬ ДАННЫХ | 2019 |
|
RU2724125C1 |
Авторы
Даты
2022-09-14—Публикация
2021-07-26—Подача