Распространение сертификата подписи кода - лучшие практики?
Примечание: я абсолютный новичок, когда дело доходит до подписания кода и сертификатов программного обеспечения. Я пытался найти и прочитать о том, как решить нашу конкретную проблему, но не нашел ничего похожего в Интернете.
До сих пор подписывание кода не было для нас проблемой, так как мы работаем над встроенными системами на базе Windows, но там, где мы предоставляем решения под ключ. Тогда наш антивирус (что обязательно!) Я не любил некоторые из наших двоичных файлов (во всех проектах), и, похоже, в том, что ему не нравится, нет реальной картины. После нескольких недель разговоров с поставщиком антивируса мы обнаружили, что решение для нас заключается в том, что у наших разработчиков есть папка, исключенная из сканирования (используемая для создания программного обеспечения), и что мы реализуем подпись кода, имея наш сертификат Белый список в антивирусном приложении (используется для ограниченного внутреннего распространения и тестирования нашего программного обеспечения).
Поэтому сейчас мы будем использовать подписывание кода не для безопасности, а просто для того, чтобы нам разрешали делать свою работу. Поставщик антивируса сообщил нам, что самозаверяющие сертификаты не могут быть в белом списке - даже мысль, что это имело бы смысл.
Наши разработчики находятся в пяти местах по всему миру, и мы ищем самое простое решение для нас, чтобы они могли выполнять подписывание кода (поскольку в противном случае у них не было бы возможности протестировать код, который они создают).
Мы надеемся, что возможно какое-то распространение сертификатов, возможно, даже с использованием Active Directory?
В недалеком будущем нам потребуется подписать код, чтобы фактически проверить безопасность нашего программного обеспечения, поэтому если мы будем использовать распределенный сертификат, будет ли он по-прежнему "безопасным" для проверки? Я думаю, нет - что заставляет меня задуматься, могли бы мы иметь два сертификата и подписать оба? Один сертификат затем будет распространен и позволит нам создавать и тестировать, а другой будет использоваться для фактической публикации.
Мы, вероятно, пойдем с сертификатом Microsoft Authenticode - если нет веских причин не делать этого.
Однако, насколько я понимаю, Microsoft с 1 февраля 2017 года требовала использования модуля аппаратной безопасности (HSM) в процессе подписи кода - мы надеемся, что это не означает, что каждому разработчику нужен собственный HSM на своем компьютере!
Итак, подведем итог моим вопросам:
- Для подписи кода в двоичных файлах Windows требуется сертификат HSM или есть другие лучшие альтернативы (в этой ситуации).
- Какие есть варианты распространения сертификата среди разработчиков? Было бы неплохо использовать AD, так как он уже существует во всем мире.
- Можно ли при распределенной установке сохранить сертификат подписи в секрете?
- Будет ли двойная подпись вариантом для повышения безопасности? (Одна подпись, чтобы победить антивирус во время тестирования, другая для реальной безопасности выпущенного программного обеспечения)
- У вас есть лучшее решение для нас, чтобы рассмотреть?
Заранее спасибо.