В моей компании мы разрабатываем продукт на базе процессора ARM. Мы используем Buildroot, чтобы создать для него систему Linux.
Для целей отладки / обслуживания доступ по SSH будет разрешен через Ethernet, а устройство будет иметь UART для последовательного TTY. Продукт будет продаваться компаниям, и, скорее всего, только рабочие будут иметь физический доступ к устройству.
Я хотел бы знать, какой стратегии мы должны придерживаться в отношении хранения пароля пользователя и закрытого ключа:
- Пароль: какой пароль пользователя мы должны выбрать? Выбор одного пароля для всех не кажется хорошей идеей. Если кто-то узнает этот пароль, у него будет доступ ко всем нашим устройствам, и мы не сможем их обновить, поскольку они отключены. Нам вообще нужно выбирать пароль? Есть ли другое безопасное решение, не использующее пароли? Что-то похожее на SSH-ключи, может быть ...
- Закрытый ключ SSH: я собираюсь создать пару ключей и добавить открытый ключ в файл authorized_keys всех устройств. Таким образом, любой член нашей компании, который должен заниматься обслуживанием, может импортировать закрытый ключ на свой компьютер и иметь прямой доступ ко всем устройствам. Но как мы могли бы сохранить этот закрытый ключ, чтобы сохранить его в разумной безопасности (и не потерять его)?
Безопасность не имеет решающего значения для этого устройства, поскольку взломать его вряд ли будет интересно, его функция вообще не важна, оно находится в автономном режиме, и физический доступ к нему будет разумно ограничен. Зная это, я хотел бы получить ответы на приведенные выше вопросы, чтобы обеспечить разумную безопасность без чрезмерного усложнения всего.
Некоторые вещи, которые я думал о ключах SSH:
- Запишите это в бумагу и храните в нашем офисе: мне это очень не нравится, потому что я не верю, что это не потеряно, не уничтожено ...
- Сохранение его в нашем частном репозитории Git в Bitbucket: мне он не очень нравится, потому что тем же людям, у которых есть доступ к репозиторию, должно быть разрешено иметь закрытый ключ, но я не знаю, насколько я должен доверять облачный сервис для этого
Я помню, что в этом случае требования к безопасности невысоки, но все же хочу иметь разумные передовые методы.