内网版本应用如何解决授权问题

2024-01-30 14:17:19 +08:00
 txzh007

有一个需求,需要实现内网激活功能,目前使用的是加密机器码和到期时间去进行匹配,但是无法防住修改系统时间去进行延长使用时间,请问大家有什么解决方案

4053 次点击
所在节点    程序员
42 条回复
starlz
2024-01-31 08:59:50 +08:00
@nevadax 不,我的意思是在激活之前,甚至是安装之前就把电脑的时间改了,激活之后时间也不改回来
tangtang369
2024-01-31 09:17:37 +08:00
给你一个不一样的思路,机器码直接用 jwt token ,假设一个 token 有效期是 1 个月,如果授权一年,将 token 自动续签次数设置为 12 次就行。
cndenis
2024-01-31 09:31:15 +08:00
@belite 老兄这个方法很巧妙, 可以再改良一下, 要求在公司网站上输入某种序列号来换取验证码, 还能解决激活问题
murmur
2024-01-31 09:34:30 +08:00
解决不了,windows 、adobe ,这些哪个解决了破解问题
zyxcompany
2024-01-31 09:52:31 +08:00
每个软件安装后根据电脑信息生成机器码,通过机器码在官网获取授权码,软件与官网的加密方式一致时,校验成功,否则失败
zyxcompany
2024-01-31 09:55:41 +08:00
授权时间的话就分两种呗,一次是年授权,一次的永久授权
zyxcompany
2024-01-31 09:58:14 +08:00
授权成功后,会记录授权的时间,每次打开软件会记录时间同时校验,如果当前时间<记录的时候 则修改了系统时间,既然有这个条件,就可以提示或者去除授权
belite
2024-01-31 10:00:12 +08:00
@cndenis 脑洞开了一下 实际上只要记住正确的时间 t1 和公开的验证码 code1 把客户端时间调到 t1 再输入 code1 就验证通过了

还是那个问题 技术上需要和可信平台交互信息来确保时间正确性
要是只有你能对客户端的时间进行操作 那么客户端也可是为可信的 但现实情况可能不是这样 除非提供软硬件的整套解决方案做成一个黑盒 所以需要一个第三方的可信平台 比如前面几个说的带时钟的加密狗和联网的加密狗

还有就是成本 技术门槛就可以挡住一部分人 投入多 时间长 怕被告(好像没什么用) 一起吃饭的时候抹不开面子(这个可能效果更好,那谁谁谁还没验收就把我们项目破解了兄弟们以后还怎么一起洗脚啊) 这些成本明显大于收益的时候也能达到防破解的效果

结论: 用加密狗!
belite
2024-01-31 10:11:33 +08:00
楼上 记录时间的... 刷 bios 让时钟频率慢 60 或 600 倍 现实中是有的时钟不准不过没这么离谱 真实时间过去 60s 客户端增加 1s 你怎么区分时间是不对的?都不用这么麻烦 写个小程序每 0.1 秒重置一次时间 600 次循环后就是 60 秒后把客户端时间增加 1 秒 相当一给他 1 年的授权 但是他的时钟要跑 60 年才过期 而且时间一直也是往前走的 你只要从客户端上取时间这就无解
7lQM1uTy635LOmbu
2024-01-31 10:43:43 +08:00
@belite 唔。。。确实,刷 bios 这么逆天的操作还真没想到。

op 说是桌面软件,不知道可不可以内网造一个自己的 license 服务器(客户没有任何权限),每隔一段时间和内网机器同步时间,类似于微软 KMS 那种。
jstony
2024-01-31 11:04:48 +08:00
op 的应用既然跟时间相关联,直接买个内置 sim 卡的加密狗,软件从加密狗读系统时间,再更进一步,可以把部分算法直接放在加密狗里。
kermitlee
2024-01-31 11:21:29 +08:00
思路一样,计算软件运行时间,如果运行时间大于授权使用时间也可以算为失效
gamexg
2024-01-31 11:29:33 +08:00
检查一些可能的时间,例如 windows 日志每个条目的时间,硬盘上各个文件创建\修改时间,拿最新的时间的和当前时间比较,如果有问题则认为时间有修改.

不过如果价值大,还是搞加密狗比较省事.
belite
2024-01-31 11:34:19 +08:00
@nevadax 举个例子 时钟频率是硬件的改不了 但是取值应该可以做手脚 最简单成熟的还是加密狗
belite
2024-01-31 12:34:46 +08:00
客户端少就加搞几个密狗 多的话可以考虑部署一个激活服务像 nevadax 提的 激活服务器能联网最好不能联网就在激活服务器上插个加密狗
所有直接或间接调用客户端时间的都是扯淡 根本原因还是那个 客户端的时间不可信 不借助第三方无解
记录程序运行时长 esxi 快照恢复或者找到你记录运行时长的文件注、册表数、据库备份还原一下
查看系统日志时间 若是客户将时间调到 2025 年产生了日志 时间校准后 发现被"回拨"了 这一年都用不了
记录程序打开时间 更是扯淡
fyxtc
2024-01-31 13:00:07 +08:00
找几个可用的时间戳 api 1-n ,启动的时候校验 apix 和本地时间的差值,然后随机时间随机调用 apix 和本地时间的差值,破解需要 hook 所有 api ,但是每次运行只会暴露当前使用的 api ,也就是你 api 集合越大越好,api 字符串不要使用常量,可以乱序拼接,可以走一层加密。这是确保客户端时间戳没有篡改的一种方式。
forty
2024-01-31 14:12:15 +08:00
搞个带 SIM 卡的加密狗就行了
cndenis
2024-01-31 18:28:26 +08:00
@forty 需要严格内网使用的地方, 用能连接外网的设备通常是违规的, 如果是保密单位的话, 插上去就刑了. 所以带 SIM 卡的加密狗最好是不要搞.
forty
2024-01-31 19:59:41 +08:00
@cndenis OP 是卖软件的, 不是买软件的, 你觉得他的软件可以卖到保密单位的话, 还能是盗版吗? 直接解除限制不就好了? 保密单位应该盗版 OP 的软件, 这个概率就不用考虑了吧
kkk9
2024-02-01 03:41:27 +08:00
@cndenis #38 真正的保密单位是需要审计源码的,根本不屑于用加密狗。能攀上保密单位这条大腿的人也不靠加密生存

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1012756

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX