如何在企业环境中保护专有软件?

时间:2010-12-28 14:21:25

标签: .net security installer protection access-control

我们需要保护一个专为.NET PC构建的专有软件,以限制企业内部的使用,并确保员工无法窃取或复制该程序,即使他们应该能够执行该程序。 / p>

由于.NET应用程序可以轻松反编译,如果有人掌握了可执行文件,无论混淆技术如何,都可以轻松生成源代码。

因此,我们需要通过禁止常规用户访问或查看或修改应用程序的Program Files文件夹来保护此软件,以禁用复制可执行文件和其他文件。

有没有这样做?我们愿意使用任何类型的系统或API来实现这一点,C#,C ++或其他任何方式。

我需要一个仅限软件的解决方案的人,所以请尝试将硬件加密狗留出来。我正在寻找一种方法来防止访问软件可执行文件,而不是使用身份验证进行LIMIT访问。

6 个答案:

答案 0 :(得分:5)

首先,您可以将部分业务逻辑移动到受控环境(防火墙后面的Intranet服务器),从而在没有适当授权的情况下很难访问该部分逻辑。

接下来,如果无法拆分,请涉及硬件。一旦基于HASP和Sentinel硬件密钥的解决方案很受欢迎。如果没有密钥,应用程序将无法工作,并且密钥应始终存在(在LPT中,然后在USB端口中)。缺点是密钥可能被第三方窃取。

另一个解决方案是让终端服务器运行应用程序的实例,并使用户连接到服务器以便使用该应用程序。这种方法的好处是用户不需要功能强大的计算机(哑终端或平板电脑很好),如果他们在度假或在远程办公室,他们可以从外面连接到服务器(如果允许)。

更新:如果您不希望用户反汇编代码,那么唯一的解决方案是将其从用户移开 - 创建运行业务逻辑的客户端 - 服务器应用程序服务器超出了用户的范围。在任何其他方式(即使使用终端服务器),用户将能够获得代码。

答案 1 :(得分:4)

你做不到。如果您向公司提供代码,人们可以阅读二进制文件。 他们拥有硬件。一个基本原则是,当有人访问硬件时,软件安全意味着什么。和管理员密码。还有备份磁带。

更有趣的问题是,为什么你认为你需要这个? Oracle并不认为他们需要它。 IBM没有。他们不这样做的原因是他们在合法许可下销售软件。足够支付购买“企业软件”的公司并不是盗窃的习惯。事实上,他们经常在工具上花费大量资金,以确保他们不会偶然偷窃。为什么?因为被起诉的成本远远高于盗用他们所能获得的价值。

如果有些员工对你的代码有所不满,那么呢?他们没有您的品牌名称,声誉和市场份额。相对而言,您的代码是您宝贵的资产之一。

如果您出于某种原因对这些平台原则例外,那么您需要硬件。您需要提供一个方框 - 一个防篡改框 - 而不是给他们钥匙。例如,Google Search Appliance。

如果你的资产没有足够的价值来证明这一点,那么你应该停止担心。

答案 2 :(得分:3)

安全是一个非常棘手的主题。我可能会采用客户端服务器方法。

我认为我首先要从UI中分离后端或业务逻辑层的二进制文件,以便只在客户端计算机上存储或安装那些二进制文件或缓存页面(在Web应用程序的情况下)。

“服务器”代码的其余部分将位于访问受限制的某些后端计算机上。

您可以通过多种方式添加额外的安全层,但是在具有不同物理安全要求的多台计算机上拆分物理二进制文件是我能想到的更好的方法之一。

分布式SOA样式应用程序甚至可以跨机器或环境进一步划分功能,以减少任何一个人完全访问所有二进制文件并能够重新生成安装的可能性。

答案 3 :(得分:1)

我们使用Nalpeiron许可服务,他们提供的各种解决方案听起来与您正在寻找的方式完全相同。

  • 将许可证绑定到PC,例如基于HDD ID
  • 仅允许在使用“加密狗”或类似内容时使用
  • 浮动网络许可,软件在启动时使用内部许可服务器进行验证。

答案 4 :(得分:1)

将所有应用程序放在服务器中,将应用程序的快捷方式放在共享文件夹中。 用户应该能够访问共享文件夹并运行应用程序,但不能直接访问应用程序。

答案 5 :(得分:1)

@Jenko - 我会选择Eugene Mayevski'EldoS建议的方式。安装Windows终端服务器并让所有用户连接到它。使终端服务器上的用户帐户非常有限,因此他只能执行您的一个程序,终端服务器也不会包含任何允许用户以某种方式复制程序的工具(也许雇用一些一种防火墙,用于阻止服务器外的互联网流量,保护应用程序所在的文件夹)。 Windows 2008终端服务有一项称为远程应用程序共享的新功能,这与将远程桌面连接到服务器基本相同,但它看起来更好,因为只共享应用程序。它看起来非常真实,好像应用程序实际上是在本地运行的(ui明智)。

任何其他解决方案都无法生效,如果您使用安全访问权限保护程序文件文件夹,用户可以加载Linux启动CD,安装驱动器并复制程序。最重要的是,如果用户对您的应用程序有某种物理访问权限,他们将能够窃取它,无论您打算使用哪种复杂的保护方法。我强烈推荐远程桌面方法,因为在我看来这是唯一的全面解决方案,它也没有那么多的缺点。除微软外,也许还有其他公司提供“远程应用”技术。