Program security...
FORD
Posts: 221
What will prevent somebody else getting my program out of a propeller lc256,, and simply copying it to another lc256 to steal my code.
Is there some sort of code protection built into it ?
Cheers,
Chris
Is there some sort of code protection built into it ?
Cheers,
Chris
Comments
I've been thinking about this, too. I wonder if code protection could be had by including the eeprom in the same package or on the same die (if possible). I suppose that this would have to be a future device, as the 'current' one is done...
Rick
I would be interested to hear how other people would protect their many hours of work ?
·
-Martin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Martin Hebel
Perform a Survey of Electronic Technology Employers - Click here!
Personal Links with plenty of BASIC Stamp info
and SelmaWare Solutions - StampPlot - Graphical Data Acquisition and Control
I would be interested to know what Chip would do to protect·the code on the eeprom.
I'm not being smart, I am genuinely interested in his suggestions here, as it will become a serious issue for some people after they have invested lots of time / money into it.
I think this question will arise a lot over the next few years, and it may even make some people hesitate a bit if their software is that easy to copy.
Encapsulation is looking like the go here.
Cheers,
Chris
There are places that will retreive code from chips that have if encrypted.
Sure it may keep a 2-bit hack from copying your code, but if someone wants it they're only a web search away from finding a company that will extract it.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
"SX-Video OSD module" Now available from Parallax for only·$49.95
http://www.parallax.com/detail.asp?product_id=30015
Product web site: www.sxvm.com
"Ability may get you to the top, but it takes character to keep you there."
·
Thats right, and I am probably making too big a deal of it, and its no different to what we are doing now with bs2 series stamps, so if its that crucial, encapsulation would be the go.
I have a million and one other things to ask, but from now, I think I'll leave this forum alone and wait for the official documentation as it is released, then I'll probably only have 2 or 3 questions at the end.
Cheers,
Chris
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
This is because the code that accesses the security measure is open, therefore readable, and reversable.
Any devise that uses off chip security can be successfuly hacked. Period, end of report.
Security HAS got to be part of the HARDWARE design, not a afterthought or software answer.
Plainly put: any uController's code, if it's stored off chip, can be retrieved via external or internal methods.
If it can be retrieved, it can therefore be reversed. If it can be reversed, it can be hacked.
AND, just an FYI:
If a program can be accessable from a "non authorized source", even if it can't be reversed, like vb6 code can't be decompiled, it can be hacked.
Time and desire of the hacker are the driving factors.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just tossing my two bits worth into the bit bucket
KK
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
Understanding that a rom can be read by any hardware, given the 'correct' setup, no rom is safe from external hardware. Once a rom has power, if you bypass the 'original reading source', it's 100% accessable. No software security can be effective against hardware protection. I do agree with you, "...connot be adressed by user level software...", but that's only the first 1/2 of the issue. That will keep out the 2 - 4 bit hackers. A hacker will all their bits can bypass any software impliment software, no matter if it's at the user level, interpiter level or assembly level. Software is hackable. Even more so if relying on off chip resourses. The only way to keep software secure is to make it part of the hardware. Now, if every instruction contained in the device (user, interpiter and assembly code) were encrypted, and the cpu had instructions for decoding that encryption, things change. But, again, this is hardware. Add to this asm code to agument the hardware, to keep the software hackers out, and now, the code is protected at the hardware and software levels.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just tossing my two bits worth into the bit bucket
KK
·
Ideally any passkey on the system would not be in addressable rom, but would be a dedicated cell accessible only by a hardware encryption engine (each propeller having a unique passkey). This would require brute force methods of decrypting, or using expensive equipment to read the passkey directly from the exposed silicon.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
Hmmm, I like your idea about the last 4 longs in memory...
If only thoes that could affect that would see it would preserve "open code" and protect a programmer / designer's investment.
[noparse]:)[/noparse]
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just tossing my two bits worth into the bit bucket
KK
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
I think I'll quite parts of it on the next lecture I give on security.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just tossing my two bits worth into the bit bucket
KK
·
If you removed the batteries, the code went, too...
I think they also had a trick that would scramble the code if you tried to list it, but as the unit I have had long since lost power... I wouldn't know...
Anyway, the only way I can see of securing your code would be to have it on a removeable module that can be connected to the 28/29 pins before booting the machine, then be removed as soon as the machine is up and running.
Then, just make certain that it has a decent battery-backup, and run like h....
Anyone tries to read out the program will reset the Propeller and lose the program.
And if they have to pay for a tech to come and boot it again...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...
I equate it (kinda) to a car with it's keys, door locks, ignition lock. Just because I can't 100% eliminate the possibility of someone stealing my car, I'm not going to have a car that the doors don't lock and the ignition is just a 'start' button... (or leave my doors unlocked and the key in the ingition)
Perhaps (as a future device) there will be a "(mainly)secure propeller", perhaps with the eeprom built it. I don't know the costs/technologies/practicalities of this, but even from a non-security standpoint, having it all in one would be nice.
I agree that with the current generation of propeller, epoxy encapulation would be the best/only method to provide that deterance factor for those sensitive applications...
Rick
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Who says you have to have knowledge to use it?
I've killed a fly with my bare mind.
...Tiger
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just tossing my two bits worth into the bit bucket
KK
·
The arguments sound the same.
First, the hackers are not getting "your code". Just the compiled Obj stuff.
What they end up with can be "hacked with" but no real paradigm code to follow.
In the end, what is required is a good case when you take the "eprom hackers" to court.
My recommendation is that after your code is finished, place as many Easter eggs and red herrings that you can without affecting performance or reliability.
Then encapsulated the eprom and call it a day.
Once in court it will be easy to make your case by pointing out the Easter eggs in their code.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - PLJack - - -
Perfection in design is not achieved when there is nothing left to add.
It is achieved when there is nothing left to take away.
Well said... but then again, I have less respect for a lawyer then a hacker. At least a hacker has some sort of a give skill.
But, this is off topic, so I'll drop it here: Point well made!
... Next ...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Just tossing my two bits worth into the bit bucket
KK
·
It would be extremely useful to condense them to a Wiki Page!
- "5/3.3V"
- "Code Protection"
- .....
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
Post Edited (Paul Baker (Parallax)) : 2/29/2008 6:34:23 PM GMT