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

Rob*_*cks 3 .net security installer protection access-control

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

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

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

反正有没有这样做?我们愿意使用任何类型的系统或API来实现这一点,C#,C++或其他任何需要的东西.

我需要一个只有软件的解决方案,所以试着把硬件加密狗留下来.我正在寻找一种方法来防止访问软件可执行文件,而不是使用身份验证进行LIMIT访问.

Eug*_*its 5

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

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

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

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

  • @Jenko据我所知,Windows操作系统版本允许多个用户使用远程桌面(内置于Windows)远程登录服务器.这需要服务器的特定许可,但这是可行的.您可以使用任何现代版本的Windows测试远程桌面功能 - 如果您有两台计算机,则在一台计算机上启用远程桌面登录,并在另一台计算机上的"开始"菜单中使用远程连接以连接到第一台计算机.还有Citrix解决方案,但我对它们没有任何经验. (2认同)