Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 在用户';s机器_Security_Whitelist_Qdesktopservices - Fatal编程技术网

Security 在用户';s机器

Security 在用户';s机器,security,whitelist,qdesktopservices,Security,Whitelist,Qdesktopservices,我有一个由InstallJammer构建的桌面应用程序。应用程序不是问题,但当它安装在用户机器上时,用户机器上的防病毒软件会停止我的应用程序创建的服务,因此它会停止与服务器的通信。我需要把它列入白名单,这样它就不会被视为对机器的风险,而且防病毒也不会阻止它 到目前为止我所知道的是 将“发布者”添加到应用程序可能有助于将其视为不存在风险,因为此过程包含使用证书验证我的应用程序的步骤。(虽然我不知道这是否正确。我已经推荐了林克) 通过谷歌搜索,我发现一些反病毒网站要求我在那里注册我的应用程序 我

我有一个由InstallJammer构建的桌面应用程序。应用程序不是问题,但当它安装在用户机器上时,用户机器上的防病毒软件会停止我的应用程序创建的服务,因此它会停止与服务器的通信。我需要把它列入白名单,这样它就不会被视为对机器的风险,而且防病毒也不会阻止它

到目前为止我所知道的是

  • 将“发布者”添加到应用程序可能有助于将其视为不存在风险,因为此过程包含使用证书验证我的应用程序的步骤。(虽然我不知道这是否正确。我已经推荐了林克)
  • 通过谷歌搜索,我发现一些反病毒网站要求我在那里注册我的应用程序
我的问题是:

  • 添加“publisher”符合我的目的吗?如果是,它将如何将我的应用程序列入白名单
  • 如果上述选项不起作用,我是否需要在每一个防病毒软件产品上都列入白名单

在我实现了我想要的一切后回答

tl;博士

对于直接阅读答案的人:

我有一个windows安装程序(使用InstallJammer构建),可以在用户的机器上创建windows服务,该机器经常被反病毒程序和防火墙列入黑名单。同时,在浏览器中下载它会显示如下图所示的消息

为什么会发生这种情况: 这是因为防病毒软件和防火墙无法识别您的代码(即,它无法验证代码是否来自可靠来源)。因此,它试图阻止下载或黑名单的服务(服务,因为我是指我的应用程序)停止它或不允许它通过网络通信

解决方案: 您需要通过代码签名证书对代码进行验证(即,对代码进行数字签名)(此后将被视为CSC)。这些证书由证书颁发机构提供(从此以后将被推荐为CA)

CA的一些示例有:Symantec(我使用的那个,因为我们从这个CA获得了webapp的SSL证书)、GlobalSign、DigiCert、Comodo等。)

显示来自不同CA的CSC的定价列表

获取证书的过程: 这是一个有点乏味的过程,因为它需要遵守某些标准和规则。获取证书的过程通常需要几天时间。例如,验证过程需要将许可证副本和一些公用事业账单传真给证书颁发机构,以合理证明我的身份。他们还验证电话号码,可能需要与代表交谈。(我对这个过程有点不确定,因为这是我的客户在美国完成的)

获得CSC后: 您需要将证书另存为.p12文件,然后用于对代码进行签名

如何签署: Microsoft SDK包含一个可用于对代码进行签名的工具(signtool.exe)(通常位于C:\Program Files(x86)\Windows Kits\8.0\bin\x86,具体取决于安装的SDK版本),“8.0”在我们的计算机中可能会有所不同

如果您是一名新手,并且在签署文件的过程中没有达到需要自动化的程度(签名代码不明确),或者需要签署的文件很少(最多3个或4个)或者有很多文件要签名,而且你是一个有很多时间的疯子,你可能想使用DigiCert提供的优秀实用程序,它提供了一个非常好的UI(可能是讽刺)来签名,并检查你的文件是否真的被签名。谢谢DigiCert人

如何检查文件是否已签名: 当然,最简单的过程是检查文件的属性是否包含用于数字签名的选项卡。另一种方法是,Microsoft有工具可以检查您的代码是否经过数字签名,可以通过简单的谷歌搜索找到

我如何进行代码签名(自动化): 对于我构建的主windows可执行应用程序,它有相当多的二进制文件和可执行文件。因此,我创建了一个批处理文件,用于执行以下签名和构建任务。(我使用Microsoft的SignTool从命令行对文件进行签名)

  • 询问我希望为哪个环境(开发、暂存或生产)进行构建
  • 将生成所需的所有文件复制到主文件夹
  • 对所有内部二进制文件和可执行文件进行签名
  • 从命令行本身执行InstallJammer构建(正如我前面提到的,我的应用程序是使用InstallJammer构建的)。它输出最终的Setup.exe文件
  • 然后Setup.exe也会被签名
  • p.S.: 代码签名后,您的软件被列入白名单(通过防病毒软件和防火墙进行身份验证或验证)的成功与失败取决于您的证书的信誉。此信誉是通过启发式方法确定的,良好的信誉意味着您的应用程序被阻止的可能性较小

    潜伏在那里的极客小贴士 尝试购买期限最长的CSC订阅。这将帮助您避免证书延期

    什么是证书延期? 当旧证书过期,并且您开始使用新的替换证书对代码进行签名时,就会发生证书滚动;您在旧证书上获得的所有声誉都可能受到影响,因此新证书获得良好声誉可能会有一段时间延迟

    因此,当您的CSC过期并且您希望避免发生意外时,您可能希望从一开始就使用时间戳对软件进行签名。通过谷歌搜索它(使用时间戳签名)将使您更聪明

    对于那些在整个过程中帮助过我的人、博客和网站,可以在上找到更多详细信息

    也有一个关于这一切的详细解释和