.Net security noob здесь ... Каков самый простой способ предотвратить загрузку моей сборки кем-то другим?Простейший способ предотвратить загрузку моей управляемой сборки?
Фон: Несмотря на то, что я действительно искал только «достаточно хорошую» защиту (с достаточным временем/деньгами/умными, кто-то может успешно взломать, взломать и атаковать), похоже, что это уже проблема, и я просто не хватает.
Вот что я (думаю) Я знаю:
Хотя сильное именование может быть использован уровень безопасности, это не обязательно предназначено быть, согласно this microsoft documentation (см Предупреждения: не полагаться на сильных имен для безопасности. Они обеспечивают только уникальный идентификатор.)
на этой ноте я^сталкивались с ситуациями, когда я не был в состоянии нагрузки узел третьей стороны (Aspose я думаю, что это было), так как они сделали не подписывают свою сборку но все мои были. Поэтому мне пришлось ildasm их сборку, подписать ее с помощью нашего собственного snk, затем ilasm назад) в , чтобы использовать их библиотеку. Таким образом, сильное имя не похоже на хороший механизм безопасности для меня .HOWEVER ... как насчет простой проверки, в коде, чтобы убедиться, что вызывающая сборка подписана с моим токеном открытого ключа ? Насколько это достаточно эффективно?
Если сильное именование не следует использовать для того, что я пытаюсь выполнить, реализует Authenticode проверки цифровой подписи на DLL лучше маршрут (кажется wintrust.dll может помочь с этим)?
Я прошел через инструментарий нескольких поставщиков для обфускации , и многие из них поставляются с лицензированием и всеми видами вещей. Я, скорее всего, использовать немного обфускации, чтобы скрыть некоторые чувствительные части, однако я все же хотел бы иметь механизм для предотвращения кого-то из загрузки моей чувствительной библиотеки, без необходимости использовать функции, такие как строки и код шифрования , которые часто поставляются с стоимостью (и другими).
Итак, вернемся к вопросу, Что такое простейший способ предотвратить кто-то от загрузки моей сборки?
Был ли у вас голос, чтобы закрыть это? если да, то почему? Может быть, укажите мне, на что это ответили. Возможно, я пропустил что-то уже там. Или также возможно, что на это действительно не ответил. – JohnZaj
Что вы подразумеваете под «предотвращением загрузки»? В общем случае это невозможно, потому что ваша сборка является непрозрачным файлом, как и любой другой. Возможно, что ваш .NET-код внутри этой сборки не запущен или скрывается внутри. PS: как вы узнали, сильное имя - это просто идентификация. Когда вы уходите в отставку, он больше не приходит от того же издателя. Если эта сборка содержит код, который проверяет его издатель, код внутри может использовать его для изменения его действия, но все еще можно загрузить. –
Вы хотите, чтобы остановить вас .Net dll был COM читабельным? – TechLiam