Deploying protected executable or p-code (Taurus Software or similar)
5 views (last 30 days)
Show older comments
Hello,
I am looking for a solution to protect my matlab codes when I deploy them either as pcodes or executable files. I was going to get Taurus from http://www.algorithmprotection.com/ but the site is not working anymore. is there another professional solution to my problem?
2 Comments
Answers (2)
Walter Roberson
on 6 Sep 2015
The files compiled with MATLAB Compiler are encrypted with AES.
There is no way to prevent a program from being distributed without your permission, except perhaps to burn the program into tamper-resistant chips, preferably ones that use a store of entangled particles to communicate with your server in order to authenticate.
Yes you can use MAC addresses, but it is not at all uncommon for systems to be able to rewrite their MAC addresses.
2 Comments
Walter Roberson
on 10 Sep 2015
For Mathworks to develop a license file system for user deployment would place them in competition with their provider for FlexLM. Mathworks would be unlikely to do that unless they were to replace the use of FlexLM with their own in-house product.
One thing that I learned in my former work as a Systems Administrator is that license file management gets very complicated and breaks really often.
Do you lock by user but allow each user to have the software on a few different registered systems? Do you lock by user but allow each user to use the software on any host in their network? Do you lock by hardware but allow any one user on the hardware to have multiple sessions? Do you lock by hardware but allow any number of users working directly on the hardware to use it simultaneously? Do you support groups of users? Can groups of users have a set up to allow any (say) 6 of them to be using the software simultaneously? Can different groups have different rights? Can you "borrow" a license for when you are going to be away from the network? Can a large organization manage the licenses at a central server that might be connected to regional offices by way of VPN? How do you support classrooms? How do you support MOOCs?
When you are locking by hardware, do you lock by hard drive serial number, or do you lock by ethernet MAC or do you lock by CPU serial number? It is not uncommon to replace hard drives in any system larger than a laptop. It is not uncommon to have multiple ethernet ports. It is not uncommon to replace ethernet cards. What about when the user pulls out the ethernet wire and picks up their laptop and takes it somewhere in the building using WiFi, do you switch which ethernet card you are paying attention to? When you have multiple ethernet ports and can add and remove them on the fly (such as USB), then how do you decide which one to lock against? Do you go by naming system? If you do, what if the operating system changes the naming system?
Firewalls, firewalls, firewalls! Every non-trivial organization needs them, but they tend to interfere with the ability of systems to reach each other for license checks!
And so on.
Last time I looked at the administration documentation for FlexLM (license management software) there were over 225 different possible configuration error messages, each with multiple causes -- and that was years ago so there are probably more now.
Robust and flexible license management is difficult. No science and technology software company would want to get into the hassles of manufacturing flexible license management software -- the task is too thankless (and unprofitable) for any company that does not choose that as a niche.
See Also
Categories
Find more on Administer Network Licenses in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!