Нужно ли мне защищать свой файл ключевого ключа для проекта с открытым исходным кодом?
Я создаю стартовый набор, который устанавливает скомпилированные сборки из проекта с открытым исходным кодом в GAC, чтобы упростить ссылку на сборки в шаблоне. Поскольку они идут в GAC, они должны быть подписаны.
Нужно ли мне защищать и защищать ключевой файл паролем, или это нормально оставить его открытым и включить файл в исходный элемент управления?
Ответы
Ответ 1
Сильное подписание имени имеет несколько целей (хотя и не для реальной защиты от несанкционированного доступа к программе, как распространенное заблуждение) - в вашем случае использование сильного ключа для однозначной идентификации (и проверки) конкретной версии конкретной сборки, который требуется GAC. Другое использование, которое предотвращает спуфинг с помощью других сборок, в этом случае не кажется необходимым (исправьте меня, если я ошибаюсь). По этой причине я считаю, что вполне приемлемо оставить ключ открытым (не защищенным паролем) и включить файл в исходный элемент управления. Насколько я вижу, вы не будете останавливать все, что вы не хотите, защищая пароль паролем. (Однако, если вы могли бы предоставить более подробные сведения о контексте безопасности, мне, возможно, придется пересмотреть это представление.)
Также см. эту статью MSDN для подробного обсуждения того, как правильно использовать сильное подписание имен в целом.
Ответ 2
Я бы сказал, включив ключ "разработки" в исходный контроль, чтобы упростить построение и избежать принуждения людей к созданию и использованию собственного ключа. Ключ в управлении исходным кодом бессмысленен для безопасности, поскольку каждый может подписаться вместе с ним. Если люди хотят подписать свою сборку своего проекта с открытым исходным кодом, они могут заменить свой ключ, которым они могут управлять любым способом.
Вы также можете предоставить сборку для загрузки, подписанную с защищенным ключом (который вы никому не даете), но для людей, желающих использовать эти двоичные файлы, им нужно будет доверять вам. Вы заслуживаете доверия?:)