文章 "保证 MQL5 代码的安全:密码保护、钥匙生成器、时间限制、远程许可证及先进的 EA 许可证密钥加密技术" - 页 2

 
我认为这是目前唯一的选择。
 
sergeev:
我认为这是目前唯一的选择。

没有其他方法可以证明交易者的技能。只有监控自己的交易。在这个网站上就可以做到这一点,真是太好了。不需要什么Onyx之类的....。

只是目前这方面的信息还不多。例如,哪些类型的账户可以连接到这项服务?更确切地说,是否也可以连接模拟账户?还是只能连接真实账户?当然,真实账户更值得信赖。如果长期(例如半年以上)结果稳定,模拟账户和真实账户都更值得信赖。可能还有更多问题......

附注:总的来说,这个话题是关于其他方面的,所以我要走了。:)

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
Renat:

顺便说一句,我们很快将为所有用户推出一个大型评级系统。这将是一个非常有趣的创新--"给我一个 80 级的交易员!"。

至少有三个评级:"程序员用户评级"、"商人用户评级 "和 "洪水商用户评级"。
 

很抱歉,我说得很刻薄,但这篇文章所介绍的不是安全性,而是模糊性。 拷贝保护是一个极其 困难的问题,因此音乐/电影行业在 DRM 方面做了很多努力,但却屡屡失败。

充其量,这里的信息会浪费一些人的时间;最糟糕的情况是,你可能会给读者带来虚假的安全感。 如果他们决定使用你的建议来 "保护 "产品,当他们的消费者在几个小时内取消保护并以极低的价格转售产品时,他们可能会有些惊讶。

严重的是,base64 编码与加密无关。 Base64 编码的设计目的是让 8 位数据可以安全地通过认为数据编码为 7 位的协议进行传输。 你可以轻易地逆转 base64 编码,它就是为此目的而设计的!

在我看来,安全分发 MQL5 软件的唯一解决方案是通过经纪人的有限授权条款,或者在某个服务器上安装带有 .ex5 文件的 MQL5 实例,并允许客户 使用瘦客户端访问(这样他们就无法下载 .ex5)。 是的,我在信息安全领域工作了 15 年以上,所以对我所说的有相当的了解。

老实说,我对 Metaquotes 发表这篇文章感到非常惊讶。

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Types of Chart Events
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Types of Chart Events - Documentation on MQL5
 

这篇文章提供了一些如何处理该问题的线索。实际上,该问题应由 mt5 客户端解决。有很多平台都在客户端软件中使用 "枚举 "功能,因此是软件而不是编码员解决了这个问题。

 
molanisfx:

这篇文章提供了一些如何处理该问题的线索。实际上,该问题应由 mt5 客户端解决。有许多平台都在客户端软件中使用 "枚举 "功能,因此该问题应由软件而非编码员来解决。

即使是 MetaQuotes 客户端软件要实现该功能 也是一个棘手的问题:软件必须包含或下载解密密钥,这意味着有可能泄露该密钥。 如果使用防篡改硬件设备,那么除非 .ex5 在**防篡改硬件上运行,否则它仍然是脆弱的,因为它必须在某一点上解密才能执行。 虽然我可能无法实现这种攻击,但我知道有相当多的人可以做到这一点,根本不费吹灰之力。

在终端用户可以访问并运行 .ex5 的威胁模型中,没有**安全的解决方案。

这就是公司/机构使用瘦客户端模式来解决的一般问题(换句话说就是内容保护):这样敏感内容就不能被下载,只能在公司/机构的服务器上使用。

 

您应该知道,所有 EX5-prorgram 都是用强密钥加密的。这是第一点。

第二点 - 不要忘记 Market - MetaTrader 5 的智能交易市场。市场中的所有产品都通过附加密钥为买家加密。这意味着,除合法用户外,任何人都无法启动此类 EX5 程序。

 
Rosh:

您应该知道,所有 EX5-prorgram 都是用强密钥加密的。这是第一点。

第二点 - 不要忘记 Market - MetaTrader 5 的智能交易市场。Market 中的所有产品都通过附加密钥为买家加密。这意味着,除合法用户外,任何人都无法启动此类 EX5 程序。

您也可以将前门换成加固钢板,但如果您将钥匙放在门垫上,也无法阻止他人进入。 您所描述的保护措施可以阻止随意编码者,但肯定无法阻止有动机的攻击者。

问题不在于加密--那是最简单的部分--而在于如何处理密钥和解密过程。

在这种情况下,攻击者--按照经典的说法,我们称她为 Mallory--希望复制和分发她拥有密钥的 EX5,那么她当然可以通过以下方式做到:

i. 使用密钥运行 EX5;

在运行过程中监控进程,例如在进程中附加一个 DLL,并在解密后立即转储 EX5 的内容;

iii. 重新组装现在的明文 EX5(如果费心的话,还可能反汇编成源代码)。

如果您的第一点保护涉及签名验证,那么攻击者要分发文件,只需分发一个替换了相关公钥的不同 MQL 可执行文件即可。 如果 MQL5 使用加密 API 来验证证书,那么就可以将其从二进制文件中剥离出来。这种情况会一直 持续下去。

这些都是在开始考虑密钥管理这个噩梦之前的事情。

虽然这种二进制分析超出了我现在的能力范围,但我知道有几个人可以毫不费力地完成。 因此,您应该担心的不是加密的强度,而是您有一个无效的安全模型。 这本身 并不是一个特殊的问题,因为没有人指望 MetaTrader 能解决这个问题 - 这个问题还有其他非常有用的解决方案,特别是让 MQL5/EX5 代码的所有者在他们控制的独立服务器上运行,并授权买家访问/信号。

因此,我不明白为什么人们需要这种设施,而它却很难正确实现,至少在没有防篡改硬件的情况下。

 

"您还可以添加与硬件属性(硬盘序列号或 CPUID 信息)相关的变量。在这种情况下,必须使用硬件绑定运行额外的生成器才能运行智能交易系统。

结果可作为生成器的输入参数,生成的密码仅对特定硬件正确。这就限制了那些更改了电脑配置或使用 VPS 的用户运行智能交易系统,但这可以通过提供两到三个有效密码来解决。市场 服务中就使用了这种方法"。

在哪里可以了解更多关于硬件绑定的信息或找到源代码示例? 还有,"此方法在'市场'服务中使用 "是什么意思?也就是说,如果我在 "市场 "服务中发布一个编译后的智能交易系统文件供出售,它是否会自动包含绑定到硬件的功能?还是我必须提供源代码,而 Metaquotes 员工会在其中额外包含绑定到硬件的功能?

有可能在 MQL4 中实现硬件绑定吗?(大多数经纪中心仍使用 MT4)。

 
JohnyPipa:

在哪里可以找到更多关于硬件绑定的信息或源代码示例? "此方法在"市场 " 服务中使用 "是什么意思?也就是说,如果我在 "Market "服务中发布待售的智能交易系统编译文件,那么其中就会自动包含硬件绑定功能?还是说,我必须提供源代码,Metaquotes 的员工才会在源代码中额外包含与硬件的绑定?
是的,当您在 "市场 "购买程序时,每份程序 (EX5) 都会自动重新保护/加密,并绑定到用户的硬件。无需提供源代码。


有可能在 MQL4 中实现硬件绑定吗?(大多数经纪中心仍使用 MT4)。

很遗憾,不能。