Безопасность Ардуино
Мой вопрос: насколько безопасно я могу сделать Arduino? Проект, над которым я работаю, предполагает выложить Arduino в открытый доступ (школьный городок внутри мусорного бака, чтобы определить, сколько в нем мусора), и я хочу убедиться, что случайные люди не смогут получить к нему доступ и испортить/изменить код. Любые предложения будут полезны.
Он также будет подключен к сети и будет отправлять данные в базу данных.
@Dax Yeen, 👍0
Обсуждение2 ответа
Лучший ответ:
Если я понимаю ваш вопрос, то вы хотите убедиться, что никто не сможет прочитать и изменить ваш код, чтобы увидеть, что вы делаете, и отправить вам поддельные данные с этого Arduino.
Какие здесь проблемы:
- Его можно украсть (в конечном итоге вместе со всей мусорной корзиной) – значит никаких поддельных данных и никаких данных
- Он может быть разрушен/разрушен за считанные минуты (максимум) – опять же, никаких (настоящих/поддельных) данных
- Arduino можно перепрограммировать обычным способом (через загрузчик) и отправить поддельные данные — вы можете предотвратить это, изменив загрузчик.
- ISP может читать и перепрограммировать Arduino, а также отправлять поддельные данные — вы можете заблокировать ее (установив SPIEN), чтобы предотвратить как чтение ее памяти, так и перепрограммирование таким образом.
- Замок можно очистить, стереть чип и перепрограммировать (но не прочитать) с помощью команды стирания чипа из программирования высокого напряжения. Вы можете усложнить задачу, если к каким-то устройствам подключены необходимые контакты или заземление/питание.
- чип можно выпаять, перепрограммировать и припаять обратно, чтобы избежать проблем с подключенными устройствами.
- также весь Arduino можно заменить на уже измененный Arduino
- к сети можно подключить еще один Arduino для ввода поддельных данных (и, возможно, предотвратить нормальную передачу оригинала из-за помех) (поэтому у него проблемы с физической безопасностью)
Чтобы испортить ваши данные (отправить поддельные данные), такая программа должна иметь возможность отправлять данные в (каким-то) правильном формате по сети. Без исходного кода или, по крайней мере, кода в Arduino формат данных все равно можно было бы уловить из передаваемых данных и расшифровать (но это трудная задача), и вы можете использовать некоторую криптографию, чтобы сделать задачу еще сложнее (но это потребует много времени). памяти и вычислительной мощности вашего кода).
Ну, в практической жизни ваша проблема — это украденный/испорченный Arduino и простые атаки, которые можно заблокировать, заблокировав предохранители и загрузчик Arduino (но вам будет сложно поместить туда обновление после его блокировки) и используя некоторую криптографию.< /п>
спасибо за ответ, это было очень полезно, @Dax Yeen
Функции безопасности программного обеспечения недоступны в Arduino. Однако, если вы хотите в какой-то степени запретить людям прошивать новый код, вы можете отпаять контакты USB или использовать версию Arduino, например ProMini, которая требует внешнего USB-разъема для кодирования.
да, только в некоторой степени., @gilhad
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
- Отправка данных Arduino через Ethernet на сервер PHP.
- Простая веб-страница с Ethernet-шилдом Arduino на SD-карте
- Arduino uno R4 против платы разработчика ESP32
- Как записать данные на флешку?
- Как отправить HTTP-post данные в Node Express API с Arduino esp822 6?
- Можно ли использовать AWS и Arduino Uno для загрузки данных с Arduino на веб-сайт, работающий на моем локальном хосте?
- Esp8266 не отвечает на запрос от приложения для Android, созданного с помощью MIT App Inventor
Дайте определение понятию «безопасный». Поставьте в него сейф и он «безопасен»., @Majenko
Я голосую за закрытие этого вопроса как не по теме, поскольку речь идет о физической безопасности, а не об Arduino., @Majenko
Я думаю, что ОП спрашивал о безопасности программного обеспечения. Кажется, это актуальная тема., @Duncan C
С точки зрения программного обеспечения Arduino совершенно небезопасен. Ни логина, ни паролей, ничего. Вам просто нужен компьютер и доступ к USB-порту. Вам нужно будет использовать физическую безопасность, чтобы защитить его., @Duncan C
@DuncanC да, я хочу знать о защите паролем и других средствах защиты программного обеспечения, могу ли я их добавить?, @Dax Yeen
Нет. Если у кого-то есть доступ к USB-порту, безопасности нет., @Duncan C
@Маженко, ОП пояснил, что они спрашивают о безопасности программного обеспечения, так что это кажется правильным вопросом., @Duncan C
Если скетч (часть веб-сервера) поддерживает обновление данных, доступ может быть ограничен определенными MAC-адресами. Если в скетче для конфигурации и т. д. используется последовательный порт, может потребоваться пароль/шифрование. В других случаях, если скетч только отправляет данные на сервер (базу данных), защищать нечего, кроме среды (вмешательства) устройства., @Mikael Patel