我在程序中使用OpenCL,我需要保护opencl代码免受其他用户阅读。将代码编译为二进制也许是选项,但如果存在某种反编译方式,则此选项无用。我不能允许有人窃取我的opencl代码。我可以做opencl保护?谢谢!如何保护OpenCL代码免遭窃取?
回答
这真的取决于如何确定你需要防范的攻击。一般来说,任何充分确定的攻击者都可以对代码进行逆向工程,只要他们能够访问编译后的代码即可,但这可能不值得。
这可能是性能问题,但您可以像在二进制映像运行时使用一些自解压加密一样,比如与许可证服务器通信,并且只有在许可证有效时才解密其余代码。这可能会受到中间人攻击或重放攻击等的影响(特别是如果底层硬件可以虚拟化),除非您特别警惕这一点。假设你没有硬件合作来保证你的代码安全,但是你是否需要考虑运行时漏洞,或者只是在存储中?
机会是编译是针对休闲IP盗用充分的保护;混淆是一个稍高一点的酒吧,然后选项逐步实施成本更高。
我也需要保护运行时,但也许没有办法从GPU获取OpenCL二进制代码?或者没有办法做到这一点? – lebron2323
好吧,如果硬件不安全,攻击者可能会看公共汽车看到内存请求去GPU,所以他们可能会看你上传你的程序。不过,这还有很多努力。一些GPU的可能有:调试钩子将允许整个状态转储到主机,以及,这意味着你在理论上需要在任何时候,以保护你的程序在运行了。总之,没有什么是完全安全的,但有些事情比其他事情更难打破。 –
你永远不能防止反编译。
使用,授权使用具有原始OpenCL的绳子,让你几乎知道是谁,至少偷走了Facebook帐户动态编译方法。也许甚至使用你自己的加密技术将字符串混合成无意义的破坏字符数组。
今天,你可以编译和船舶的二进制文件,但格式是平台内为每个平台不同,甚至设备,所以你可以运送大量的二进制文件。
在未来,你可以使用SPIR。它今天刚刚起步,但将来会是您的解决方案。
如果您的应用程序已经有一些保护(ofuscation,等..)然后只要OpenCL的代码是应用内的静态弦,它就会受到保护。但是,聪明的攻击者也许能够把它弄出来。
的最佳方式是预编译和分发的内核二进制文件,但是这将是乏味的任务,它可能被攻击者逆转为好。
- 1. 保护Android手机免遭盗窃
- 2. 如何保护代码库免遭破坏或错误提交?
- 3. 在开发过程中保护源代码免受盗窃
- 4. 保护HTTP请求免遭篡改
- 5. 保护网站免遭盗版
- 6. 保护EEPROM数据免遭修改
- 7. 使用验证码保护免遭拒绝攻击
- 8. 如何保护我的C++应用程序免遭反编译?
- 9. 如何保护kubernetes集群免遭配置错误?
- 10. 如何保护解密密钥免遭反编译?
- 11. 如何保护速度模板免遭篡改?
- 12. 如何保护HTTP REST API免遭恶意使用?
- 13. 如何保护Android应用程序免遭盗窃和应用程序本身的修改?
- 14. 保护我的应用程序免受会话窃取全部
- 15. 保护源代码免受离开公司的过去开发人员盗窃
- 16. 如何保护代码?
- 17. 如何保护php代码?
- 18. 如何保护源代码?
- 19. 如何保护Javascript代码?
- 20. 保护Web API免遭未经授权的使用
- 21. Drupal - 保护表单数据免遭篡改
- 22. 保护Zend Framework网站免遭黑客入侵
- 23. 保护数据库免遭意外更新
- 24. 保护移动应用程序免遭中间人攻击
- 25. 保护Firebase数据库免遭点黑客攻击
- 26. 如何保护下载网址被PHP窃取?
- 27. 如何保护Java代码免受反编译?
- 28. 如何在insertRowsAtIndexPaths和设备旋转期间保护tableview免遭崩溃
- 29. 保护知识产权免受海外承包商盗窃
- 30. 保护Ruby代码
不要交给任何人吗? – crashmstr