Тип работы:
Предмет:
Язык работы:


КРИПТОЗАЩИЩЕННЫЙ USB-БУТЛОАДЕР ДЛЯ МИКРОКОНТРОЛЛЕРОВ STM32

Работа №46646

Тип работы

Дипломные работы, ВКР

Предмет

информационная безопасность

Объем работы72
Год сдачи2018
Стоимость4210 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
220
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 4
1.1. Микроконтроллеры STM32 4
1.1.1. 32-разрядные Flash-микроконтроллеры STM 4
1.1.2. Организация Flash-памяти микроконтроллера 6
1.1.3. Таблица векторов прерываний 8
1.1.4. Защита памяти. Option bytes 10
1.2. USB интерфейс 11
1.2.1. Основные сведения об USB 11
1.2.2. Дескрипторы 14
1.3. Бутлоадер 19
1.3.1. Бутлоадер в микроконтроллерах STM32 19
1.4. Криптографическая защита данных 20
1.4.1. Криптография и алгоритмы шифрования 21
1.4.2. Алгоритм шифрования RC5 22
2. ПРАКТИЧЕСКАЯ ЧАСТЬ 26
2.1. Аппаратное обеспечение системы 26
2.1.1. Используемое оборудование 26
2.1.2. Отладочная плата 27
2.1.3. Программатор 29
2.2. Программное обеспечение системы 29
2.2.1. Блок-схема программы 29
2.2.2. Инициализация периферии 30
2.2.3. Подключение библиотеки для работы с USB-интерфейсом 32
2.2.4. Подключение компонентов рабочей установки 32
2.2.5. Реализация USB Mass Storage 33
2.2.6. Реализация USB-бутлоадера 40
2.2.7. Решение проблемы форматирования памяти устройства 48
2.2.8. Криптозащита бутлоадера 50
2.2.9. Защита Flash-памяти от чтения 55
ЗАКЛЮЧЕНИЕ 58
СПИСОК ЛИТЕРАТУРЫ 59
ПРИЛОЖЕНИЕ


Спектр применения микроконтроллера достаточно велик (электронные игрушки, робототехника, пульты управления для бытовой техники). Наличие одного микроконтроллера недостаточно для решения поставленной задачи, для этого нужно выполнить его “прошивку”, то есть скопировать в него программу. Для загрузки программы в микроконтроллер необходимы программатор и несколько соединительных проводов, что достаточно накладно, так как нужно постоянно иметь при себе эти средства для обновления программы.
Использование USB-бутлоадера дает одну возможность - отсутствие необходимости в программаторе для “прошивки” микроконтроллера - достаточно подключение к компьютеру по USB. Однако теперь доступ к программе, которой прошита плата, имеет любой желающий. Отсюда возникает угроза безопасности. Решить данную проблему позволяет шифрование программы. Тогда, бутлоадер должен расшифровывать ее в момент “прошивки”.
Цель работы: Реализовать криптозащищенный USB-бутлоадер для микроконтроллера STM32.
Поставленная цель потребовала решения следующих задач:
1) изучить теорию использования USB-интерфейса в микроконтроллерах;
2) изучить теорию бутлоадера микроконтроллеров;
3) изучить микроконтроллер и средства разработки для микроконтроллеров;
4) разработать программу для микроконтроллера STM32F103,
реализующую USB-бутлоадер;
5) выбрать алгоритм шифрования и реализовать криптозащиту программы для микроконтроллера с помощью выбранного криптоалгоритма;
6) провести испытания работоспособности защищенного USB-бутлоадера.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


1. Проведен обзор микроконтроллеров семейства STM32F1xx, изучен микроконтроллер STM32F103C8T6. Flash-память микроконтроллера поделена на страницы размером 1 Кбайт, имеется возможность защиты памяти от чтения с помощью установки специальных байтов (Option bytes). Рассмотрены способы реализации загрузчиков программного кода: для упрощения процесса обновления “прошивки” возможно применение бутлоадера, при его использовании исключается необходимость в программаторе для загрузки программы в микроконтроллер. Наличие USB-интерфейса в микроконтроллере позволило решить поставленные задачи.
2. Средствами CooCox CoIDE разработана программа для STM32F103,
реализующая USB-бутлоадер. Работа платы возможна в двух режимах: режим работы основной программы, работа USB-бутлоадера.
Управление режимами выполняется с помощью перемычки.
3. Для защиты данных реализована криптографическая защита “прошивки” с помощью блочного алгоритма шифрования RC5-32/12/16. Программа, передаваемая пользователю от разработчика в зашифрованном виде, дешифруется бутлоадером в процессе записи в память устройства. Так же реализована защита памяти от чтения как при подключении с помощью программатора, так и по USB.
4. Проведены испытания работоспособности криптозащищенного USB- бутлоадера. Бутлоадер успешно расшифровывает “прошивку”, и основная программа исправно выполняется. Для контроля целостности расшифрованной программы реализована проверка контрольной суммы.



1 Крылов Е. STM32 - 32-разрядные микроконтроллеры [Электронный
ресурс] — Режим доступа: https://www.kit-
e.ru/assets/files/pdf/2008_11_82.pdf.— Дата обращения: 10.04.2018 г.
2 Микроконтроллеры STM8 и STM32 [Электронный ресурс] —Режим доступа: http://portal.tpu.ru:7777/lern/Tab/Лекция%20STM32.pdf. — Дата обращения: 10.04.2018 г.
3 PM0075 Programming manual [Электронный ресурс] — Режим доступа:
http://www.st.com/programming_manual/en.CD00283419.pdf. — Дата
обращения: 02.03.2018 г.
4 Начинаем изучать Cortex-M на примере STM32 [Электронный ресурс] — Режим доступа:https://habr.com/post/218825/.— Дата обращения: 06.03.2018 г.
5 PM0056 Programming manual [Электронный ресурс] — Режим доступа:
http://www.st.com/content/programming_manual/en.CD00228163.pdf. —
Дата обращения: 04.03.2018 г.
6 Интерфейс USB. Часть 1. Основы [Электронный ресурс] — Режим доступа:http://radiohlam.ru/?p=1280.Дата обращения: 15.04.2018 г.
7 Интерфейс USB. Часть 3. Дескрипторы и классы [Электронный ресурс] — Режим доступа:http://radiohlam.ru/?p=1358.— Дата обращения: 20.04.2018 г.
8 Что такое загрузчик операционной системы? [Электронный ресурс] — Режим доступа:https://www.kv.by/archive/index2010181104.htm.— Дата обращения: 01.03.2018 г.
9 Микроконтроллер и Bootloader. Описание и принцип работы
[Электронный ресурс] — Режим доступа:
http://microtechnics.ru/bootloader.— Дата обращения: 02.03.2018 г.
10 STM32F103x8. Datasheet - production data [Электронный ресурс]. — Режим доступа: http://www.st.com/en.CD00161566.pdf. — Дата
обращения: 15.03.2018 г.
11 UM0424 User manual. STM32 USB-FS-Device development kit
[Электронный ресурс]. — Режим доступа:
http://www.st.com/en.CD00158241.pdf.— Дата обращения: 20.03.2018 г.
12 Программатор ST-Link V2 [Электронный ресурс] — Режим доступа: https: //mcustore.ru/store/programmatory/programmator-st-link-v2. — Дата обращения: 20.04.2018 г.
13 Ronald L. Rivest. The RC5 Encryption Algorithm [Электронный ресурс] — Режим доступа:http://people.csail.mit.edu/rivest/Rivest-rc5rev.pdf.— Дата обращения: 20.05.2018 г.
14 Проект RC5-64 [Электронный ресурс] — Режим доступа: http://www.distributed.net/RC5/ru.— Дата обращения: 26.05.2018 г.
15 RC5-72. Overall Project Stats [Электронный ресурс] — Режим доступа: http://stats.distributed.net/project_id=8.— Дата обращения: 26.05.2018 г.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ