首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dongle发展

dongle发展
EN

Security用户
提问于 2018-07-31 16:28:24
回答 3查看 244关注 0票数 1

我将提供一个hardware+software解决方案。该软件是一个在windows上运行的c++应用程序。硬件为motherboard+processor+disk+memory。为了保护这个解决方案,我需要开发一个USB接口。

我正计划开发一个应用程序,通过加密不同的数据(客户数据、硬件组件.)来生成USB接口。用密码混合。

解决方案将检查这个USB接口是否每60秒出现一次。如果是这样,解决方案将解密USB的内容,并将其与解决方案内部加载的内容进行比较(在代码中)。如果有匹配,解决方案将继续工作到下一个周期(60秒后)。否则,解决方案就会停止。

问题:

  1. 说得通吗?
  2. 我是否应该检查硬件组件的序列号(cpu.)每一个周期?怎么把这张支票开得真快?
EN

回答 3

Security用户

发布于 2018-08-01 12:55:31

说得通吗?

不是的。

几年前,每一家小型的专业软件供应商都试图用硬件线缆来保护他们的IP。对于客户来说,这是一个关机,是支持的一个替罪羊,并且随着他们的破产而绕道而行。

世界已经改变了--你也应该如此。

解决方案将检查这个USB接口是否每60秒出现一次。如果是这样的话,解决方案将解密USB的内容并进行比较.

因此,解决方案将检查一个文件是否存在每60秒。如果是这样,解决方案将解密文件并进行比较。那会有多难颠覆?

我是否应该检查硬件组件的序列号(cpu.)每一个周期?

比使用软绳稍微明智一些。但是,如果您的产品确实需要这样的功能,那么为什么不使用网络高速切削;或者是客户自己的,甚至是您自己的客户。

怎么把这张支票开得真快?

读取属性的速度应该与RAM的读取速度大致相同--也就是说,对于建议每60秒执行一次的事情,以纳秒为单位进行测量,而您关心的是性能?!

票数 2
EN

Security用户

发布于 2018-08-01 06:11:17

说得通吗?

不是的。它依赖于应用程序读取dongle的内容并对其执行一些操作。这意味着内容是可读的,因此复制起来很简单。只要用wireshark拦截所有USB调用,并写下预期的响应即可。

我是否应该检查硬件组件的序列号(cpu.)每一个周期?怎么把这张支票开得真快?

你不需要把支票开得太快。例如,您可以在一个单独的线程中每10秒执行一次。但我建议您研究一下商业dongle系统,比如弗拉克塞拉祭品。因为我怀疑你自己是否能够建立一个好的系统--基于你所问的问题。

票数 1
EN

Security用户

发布于 2018-08-01 07:51:41

我同意vidarlo (先前的回答)。IMHO使用开箱即用解决方案的速度更快,成本更低。

也许一个简单的密码令牌(USB令牌或卡)就足够了--您可以让软件对一些随机数据进行签名并检查签名。

无论如何--一旦代码驻留在客户端,您就会有效地失去对它的任何控制,并且无法阻止客户端更改代码,从而禁用验证(好的--除非它在hw上显式地运行,以阻止对其内部代码(例如微控制器)的访问)。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/190743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档