Pridnya 0 22 марта, 2022 Опубликовано 22 марта, 2022 · Жалоба Всем привет! Есть прошивка для микроконтроллера - файл *.bin полученный из *.hex, она встраивается в проект диагностического приложение для ПК - как файл ресурса, проект собирается с последней версией прошивки и после запуска диагностического приложения на ПК можно обновить прошивку в девайсе через интерфейс USB. Появилось требование "файл прошивки должен быть подписан сертификатом x509v3". Как это сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 22 марта, 2022 Опубликовано 22 марта, 2022 · Жалоба 20 minutes ago, Pridnya said: Всем привет! Есть прошивка для микроконтроллера - файл *.bin полученный из *.hex, она встраивается в проект диагностического приложение для ПК - как файл ресурса, проект собирается с последней версией прошивки и после запуска диагностического приложения на ПК можно обновить прошивку в девайсе через интерфейс USB. Появилось требование "файл прошивки должен быть подписан сертификатом x509v3". Как это сделать? Проще пареной репы. Генерируете сертификат. Приватным ключом подписываете свой bin и прячете ключ в сейф. Публичный ключ сохраняете в программе и при обновлении прошивке проверяете подпись (и нужные поля если нужно). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 22 марта, 2022 Опубликовано 22 марта, 2022 · Жалоба 2 hours ago, x893 said: Генерируете сертификат. Приватным ключом подписываете свой bin и прячете ключ в сейф. Публичный ключ сохраняете в программе и при обновлении прошивке проверяете подпись (и нужные поля если нужно). Диагностическое приложение для ПК генерирует сертификат X509v3 для пользователя c Login Password (кто запустил на ПК диагностическое приложение) - получили файл сертификата. Как закрытым ключом подписать свой файл bin? И где взять этот закрытый ключ? Предполагается, что открытый ключ известен всем экземплярам (приложениям для ПК). PS: Открытый и закрытый ключ используется в алгоритмах асимметричного шифрования, а в моем случае прошивка шифруется алгоритмом симметричного шифрования - один ключ, закрытый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 22 марта, 2022 Опубликовано 22 марта, 2022 · Жалоба Так нужно шифрование или подпись ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 22 марта, 2022 Опубликовано 22 марта, 2022 · Жалоба 24 minutes ago, x893 said: Так нужно шифрование или подпись ? Нужно "Прошивка должна быть подписана цифровой подписью в соответствии с X509v3. Другие сертификаты не допускаются". И трафик при обновлении прошивки должен шифроваться. Получается, что прошивка должна иметь цифровую подпись, наверное, для проверки подлинности. Обмен между приложением и девайсом должен быть зашифрован. Похоже, что девайс принимает прошивку, расшифровывает её, проверяет подпись (подлинность прошивки) и обновляется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 22 марта, 2022 Опубликовано 22 марта, 2022 · Жалоба Так это жругое дело. Для подписи можете использовать то, что выше написал (x509) Для шифрации можете использовать другой x509, что бы не светить первый. Алгоритм любой какой больше нравится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться