防止不需要的程序集调用方法

本文关键字:调用 方法 程序集 不需要 | 更新日期: 2023-09-27 17:50:02

我有一个程序集,做一些"神奇"的计算,转换和加密的东西,应该只从我的其他程序集使用。请注意,这些程序集必须安装在客户机器上,因此恶意攻击者可以在本地访问它们。有什么安全的方法可以做到这一点吗?我想我已经看了几乎所有的东西,从cas,强名称签名,windows srp,混淆,InternalToVisible属性,内化与ILMerge等等。这些方法的问题是,如果攻击者可以本地访问我的"魔术程序集",它们就不是完全安全的。你有什么建议给我吗?微软方面还有什么要做的吗?

防止不需要的程序集调用方法

基本上没有。如果本地机器上的代码可以由一个进程运行,那么它可以由访问程序集数据的任何进程运行。有很多方法可以使它变得困难,但并非不可能。如果攻击者可以访问机器和时间,您无法阻止访问。

有一种方法可以保护你自己:不要把代码放在本地机器上
  1. 提供一个远程服务并调用它
  2. 提供硬件加密狗的软件
  3. 使用硬件加密(如可信平台模块)

特别是对于SQL连接,您可以使用外部可信连接——如Active Directory或Kerberos。大多数企业Sql server都支持这一点。它将要求你的用户"登录"到你的应用程序,但是。net支持在RAM中保护凭据

你可以试着调查callstack我怎样才能找到调用当前方法的方法?并限制对所需程序集的调用。我不是一个安全人员,但我认为这种情况有点奇怪,你的问题的解决方案可能不是你现在所要求的。您是否定义了您的客户将拥有哪些易受攻击的数据?