准备升级一个开源的 php 加密扩展 跪求破解高手打脸

2016-06-21 10:50:53 +08:00
 rekulas

基于据说日本人写的 php screw
然后进行了些修改,为了区分暂时命名为 screw plus 然后做了以下改进
增加了批量加密
升级了加密算法,更加安全可靠
加密函数是用的网上找的基于 php 的 authcode 算法,然后稍微进行了些小优化
加密的优点:
可防止源码泄露,别以为 vps 就绝对安全了,我有个朋友的 vps 就被工作人员直接破解了,原因是另一个客户记错了 ip ,没核对信息就。。。
商业源码可加密核心功能,只开放接口给客户
部分公司需要团队开发的,可防止源码泄露
其他。。。我编不出来了
下面是演示对比:
PHP 原生代码:

screw 加密:

screw plus 加密:

之所以要用扩展来加密是因为这是最安全的方法,不需要扩展的加密都是可以破解的,唯一不同的就是破解时间的区别(当然,扩展加密也是可以破解的,但是破解时间不是破解者所能承受的毕竟没人能活几万年)

有兴趣的朋友可以关注下,完全完成后我会上传到 github 和 oschina

有破解能力的可以尝试下破解以下 code 来打我脸,加密函数在这里 http://filedoc.s3.sinaapp.com/myfiles/cauthcode.c

code:

f83c0c86454591265c9f772eb499ea4a3+Mrn7H3huTwgitNLGtAZlrixw5BLaHDeoYUJR8xg3NgVz8wlTWYV0x9dgW7q6eRVexLVBWOipqQgK74mdMNe/fyx42uf607MUfpPLNiBNCtHbB8rnrnpxKqVXJVUu/83GVFfwOTrt4Bge3erdYUp38DyHgLXlKGevf4MW7SB1hwd9P1rsyDQHzvzxltBU9+fanOC5Vp+uuz4BhXJsnhJTlM8pRjEwfnH9D+KkxryKNnC0YwmCrGYWDODanCzyDOOjadr5GovnGyzPmhZjlSy6zSWX0OVjESSO+evaN4tB5V5WWqC0cjZTTfHIjFt5i5Gut8qpOM8oWKzCUd5B8NOwFoNsotlM6feRHQajRDOQiXURco1yvHeUGWT07mg9h+65jJxVxF0gx8OFQrxxFxMBXEUdzb9T6V6jwA8jcyjn2U8HESLo+t4YC8P//afy6yXicSeW1LGeLyng7RITLnFSPPxRHeuAMSBqvXhxXSbIv+HCLst/edoWUtBq09Ig0UXuLo1MWce/DuqDg2QHe9NQM4AVUE9VD2p0DTcmgrCDXRjufiSqzh2pPnWkw6yNUqp6SNSAGVSzrMm8OvoLKt6bwTB22FNAsI5ANlVvgRnth+sSeZ1FdTKOt0vQckMBgxLi2emm8V6PD6NQhlJisX0K21uySiQIZRMlNhAHGMgM6s7dYgGwQUNWfmrgTfNvLaA2BL7cRbLmb9BK2n+VI/fP4xY4NbvhtykImOVXTY9g8gyZqykbTo7WHwXleRl7qj6rIh7WZKmrn+IURZbm0lFd8g4YKs5kOcEDAlZequv2sAGMECLLx5qPSTnuUVTrDBGIWG5Uy4IsOnkeRBKMNN4L1UlT3jPygqc5Dd9axGcnvOM5FGZU/Xj7CBFtNwTkcBeUd40t2FiQ0ZgDy+rP7eRV5fCSosd2ol2bpzbbYQjjAASqz7duknPM+y8daSRIuvS83eJUe/5gIYDaJqNPgS1cl6L6feij1xiV4syZ4UD5byaZreMHKGTtdh5iGHjTakdje5Tt5OxoRr/JK74QqVaXDibUFQuZKAsGkrR3S3JgL//cPkvymSlVed355BZHPPMZ0x+0o3MFWkJZL5mSgHxmO6WzW34wMGIY8N/yhSgJflGElSgm61O1E8yYrOBD2UWmXr55WvcnivkemY4pLzAnQRn6tug89yseEELG46w87TIfes9zTtmr1/mogZzbGcjEU3j+kR8pLMSE03LtVp2QSxEHxepc6ngSxXiWugMyfWaOlTK+1X1AyN4IGvZBdkM7HEQx2iHGJ+yT2lEqrwiD0/yuD6T7pWOhTmx6W/UAdopciiUPraoeEJcAw7eSMOn1xZbq7SBgzzSAWcFXYoZZeejsSHZGSXWM+IXKzjJ6pTiuErPykMUvu698z7Cpb235f2vI0tIRE0UOKrnaGGgGVIJCORlpoccLKuzkNuU3HmNEKCfTL1QgsxWMNGgZlWKZsQWbYJNOj0xFUu12CUcwnpjB2faRh3CKXNZtOweKnLTfF/wgLHA7tNs4mZydLxad4dwkvfXl69bn3K+D7NRT22BYbnACbGODFQTZ+dWi033YbXr/bPAwULVnWh56DC/Q2NFKzQYND+gML/8IqSNq4g+rCGzziNtysV0IIpNdptoLcH9GB/fEQkpfHPS1Bh/wTG
14489 次点击
所在节点    程序员
56 条回复
rekulas
2016-06-22 19:27:06 +08:00
@SunnyMeow 最后非常感谢你的耐心分析
msg7086
2016-06-22 20:37:49 +08:00
只想吐槽为什么你会觉得 VPS 是安全的。
VPS 本来就在服务商的硬件上,有硬件访问权限就可以得到所有你的数据,除非你从文件系统级别去加密。
(然而密钥一样会存在内存里,一个 dump 解决问题。)
rekulas
2016-06-22 21:04:00 +08:00
@msg7086 你这个属于钻牛角尖,对于小的 idc ,是这样的,权限管理混乱。大的云公司,我相信他们有成熟的管理方案来防范这种风险。就比如小公司程序员很容易就能把用户数据库给 down 下来,大公司可能只有顶层人物才有这个权限。
SunnyMeow
2016-06-22 21:43:41 +08:00
@rekulas 我也只是略微知晓一点,所以技术上的讨论还是放在这里吧,有更厉害的看到了也能指点一下。私以为 hiddenkey 没有太大用处。如果让我设计的话,最简单的就是最保险的,每个文件随机产生一个定长 IV ,正确使用 AES 产生伪随机数并与明文异或,最后把 IV 放在密文之前就行了,如果需要 MAC 的话可以用 HMAC 附在明文后,简单方便,几乎避免了我上面提到的所有问题
peablog
2016-06-24 18:01:03 +08:00
有测试性能影响吗?
rekulas
2016-06-24 19:29:10 +08:00
@peablog 测试过 运行 discuz 未见明显影响 首页加载几十个文件都是 50-60 毫秒 不过测试还不严谨 晚上我再出个测试报告
性能影响肯定是有的,但处于忽略的水平(<5ms)
rekulas
2016-06-24 23:07:55 +08:00
@peablog
阿里云 ecs 最低配置 vps 测试单核 1g 内存
进行 10 万次 13kb 大小的数据循环加解密
耗时约 12s
处理速度:约 105MB/S
每毫秒处理速度约 107kb
按照平均每个网页加载 20 个 13kb 大小的页面算,多消耗 2.4 毫秒 按 100 个(1.3MB)算增加 12 毫秒

这个性能损失个人认为是可以接受的,比起网络传输性能损失微不足道
liexusong
2016-06-29 15:03:44 +08:00
rekulas
2016-06-29 15:31:26 +08:00
@liexusong 我之前已经看到过了 刚刚买了你的书 没想到你也在 v2 潜水
rekulas
2016-06-29 15:33:39 +08:00
@liexusong 能加好友吗
liexusong
2016-06-29 17:08:06 +08:00
@rekulas 加 QQ : 280259971 吧
rekulas
2016-06-29 17:29:07 +08:00
@liexusong 我已经加了 下午加你的那个就是我
firebroo
2016-10-24 16:28:45 +08:00
很容易破啊。。 ida 逆向一下你的 so ,分分钟找到 key 。。
rekulas
2016-12-04 22:55:09 +08:00
@firebroo 又不是防服务器破解的,要防服务器破解可没这么简单。可以把解密程序装载到内存,一旦检测到异常登录就清除,至少除了机房托管公司没有人能够破解了。
whj
2018-07-11 13:46:57 +08:00
另外起个拓展 也接管 zend_compile_file,直接就能输出解密后的原始文件了?
solaro
2018-07-27 17:09:57 +08:00
用起来了,好屌

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

https://www.v2ex.com/t/287240

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

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

© 2021 V2EX