Безопасность Ардуино

Мой вопрос: насколько безопасно я могу сделать Arduino? Проект, над которым я работаю, предполагает выложить Arduino в открытый доступ (школьный городок внутри мусорного бака, чтобы определить, сколько в нем мусора), и я хочу убедиться, что случайные люди не смогут получить к нему доступ и испортить/изменить код. Любые предложения будут полезны.

Он также будет подключен к сети и будет отправлять данные в базу данных.

, 👍0

Обсуждение

Дайте определение понятию «безопасный». Поставьте в него сейф и он «безопасен»., @Majenko

Я голосую за закрытие этого вопроса как не по теме, поскольку речь идет о физической безопасности, а не об Arduino., @Majenko

Я думаю, что ОП спрашивал о безопасности программного обеспечения. Кажется, это актуальная тема., @Duncan C

С точки зрения программного обеспечения Arduino совершенно небезопасен. Ни логина, ни паролей, ничего. Вам просто нужен компьютер и доступ к USB-порту. Вам нужно будет использовать физическую безопасность, чтобы защитить его., @Duncan C

@DuncanC да, я хочу знать о защите паролем и других средствах защиты программного обеспечения, могу ли я их добавить?, @Dax Yeen

Нет. Если у кого-то есть доступ к USB-порту, безопасности нет., @Duncan C

@Маженко, ОП пояснил, что они спрашивают о безопасности программного обеспечения, так что это кажется правильным вопросом., @Duncan C

Если скетч (часть веб-сервера) поддерживает обновление данных, доступ может быть ограничен определенными MAC-адресами. Если в скетче для конфигурации и т. д. используется последовательный порт, может потребоваться пароль/шифрование. В других случаях, если скетч только отправляет данные на сервер (базу данных), защищать нечего, кроме среды (вмешательства) устройства., @Mikael Patel


2 ответа


Лучший ответ:

1

Если я понимаю ваш вопрос, то вы хотите убедиться, что никто не сможет прочитать и изменить ваш код, чтобы увидеть, что вы делаете, и отправить вам поддельные данные с этого Arduino.

Какие здесь проблемы:

  • Его можно украсть (в конечном итоге вместе со всей мусорной корзиной) – значит никаких поддельных данных и никаких данных
  • Он может быть разрушен/разрушен за считанные минуты (максимум) – опять же, никаких (настоящих/поддельных) данных
  • Arduino можно перепрограммировать обычным способом (через загрузчик) и отправить поддельные данные — вы можете предотвратить это, изменив загрузчик.
  • ISP может читать и перепрограммировать Arduino, а также отправлять поддельные данные — вы можете заблокировать ее (установив SPIEN), чтобы предотвратить как чтение ее памяти, так и перепрограммирование таким образом.
  • Замок можно очистить, стереть чип и перепрограммировать (но не прочитать) с помощью команды стирания чипа из программирования высокого напряжения. Вы можете усложнить задачу, если к каким-то устройствам подключены необходимые контакты или заземление/питание.
  • чип можно выпаять, перепрограммировать и припаять обратно, чтобы избежать проблем с подключенными устройствами.
  • также весь Arduino можно заменить на уже измененный Arduino
  • к сети можно подключить еще один Arduino для ввода поддельных данных (и, возможно, предотвратить нормальную передачу оригинала из-за помех) (поэтому у него проблемы с физической безопасностью)

Чтобы испортить ваши данные (отправить поддельные данные), такая программа должна иметь возможность отправлять данные в (каким-то) правильном формате по сети. Без исходного кода или, по крайней мере, кода в Arduino формат данных все равно можно было бы уловить из передаваемых данных и расшифровать (но это трудная задача), и вы можете использовать некоторую криптографию, чтобы сделать задачу еще сложнее (но это потребует много времени). памяти и вычислительной мощности вашего кода).


Ну, в практической жизни ваша проблема — это украденный/испорченный Arduino и простые атаки, которые можно заблокировать, заблокировав предохранители и загрузчик Arduino (но вам будет сложно поместить туда обновление после его блокировки) и используя некоторую криптографию.< /п>

,

спасибо за ответ, это было очень полезно, @Dax Yeen


0

Функции безопасности программного обеспечения недоступны в Arduino. Однако, если вы хотите в какой-то степени запретить людям прошивать новый код, вы можете отпаять контакты USB или использовать версию Arduino, например ProMini, которая требует внешнего USB-разъема для кодирования.

,

да, только в некоторой степени., @gilhad