I'm wondering does exist any way to prevent copying of my firmware?
Just in case if I decide use my Maple for commercial purpose.
Thanks.
How can I protect my intellectual property using Maple (code from flash rom)
(8 posts) (5 voices)-
Posted 5 years ago #
-
I'm not really sure you can. I think you mean if you sold Maples with your code on it, right? In that case, the best I think you could do is remove the USB port to make it really challenging to get the code. Other than that, I'm not sure you can protect code (like Windows does with many system-critical files). Perhaps there are some interesting things you can do with the code. You might have to write a new library or modify one though.
Posted 5 years ago # -
if a person is sufficiently motivated to copy your firmware, they will copy it, regardless of what prevention mechanisms you put in place. drm has been cracked time and again, much to the media industry's dismay, and cracked software exists on torrent sites in abundance. at best, you can consider any copy protection a speedbump to would-be copy thieves. or you could just open source it, which garners good will from the community. releasing a product as open source doesn't preclude you from protecting your trademarks and brand name/image.
thankfully, copy protection is not a requirement for using the maple commercially.
Posted 5 years ago # -
I'm not so technical guy but it sounds strange for me.
Actually I was thinking about some sort of Fuse Bits.
As for example on all AVR MCUs some of them (Fuse Bits) can be set only one's and after this MCU prevent any reads of firmware on hardware level.
So do you have any directions in this way?Posted 5 years ago # -
imshaman - I know exactly what you mean.
I have had the same thought. I have dug around a bit but I have never found anything similar to the ATmega flash memory protection fuses. I have looked through application notes and the like, where I had expected to find explantations on how to do it, but still found nothing.
The only thing I have found is this from RM0008 at st.com. I think their suggestions is to encrypt code or data values using the device-unique key.
29.2 Unique device ID register (96 bits)
The unique device identifier is ideally suited:
● for use as serial numbers (for example USB string serial numbers or other end
applications)
● for use as security keys in order to increase the security of code in Flash memory while
using and combining this unique ID with software cryptographic primitives and
protocols before programming the internal Flash memory
● to activate secure boot processes, etc.
The 96-bit unique device identifier provides a reference number which is unique for any
device and in any context. These bits can never be altered by the user.Encryption and on-the-fly decryption and execution from RAM would slow down a simple attack, but someone with proper JTAG and debug skills would be harder to stop. If you do find an approach, please post. I don't need it, but I am curious how it is supposed to be done.
You might try asking at the st.com forums
https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/AllItems.aspxPosted 5 years ago # -
I thought I had read somewhere that STM32 supports an "execution only" mode for the flash and ram.
Posted 5 years ago # -
gbulmer - thanks a lot, seams I found all answers there:
http://www.st.com/internet/mcu/product/164487.jsp
PM0075: STM32F10xxx Flash memory microcontrollersMCU have Read Data Protection register.
It will be nice to integrate this protection to the maple bootloader.
However for me it is a right time to buy JTAG. :)Posted 5 years ago # -
imshaman - thank you for the report.
I have PM0075 (and its predecessor PM0042, I think). Clearly I haven't understood it well enough :-(
And no wonder I've been feeling disturbed about not finding the functionality !-)Thanks again. You have put my mind at rest, I feel happier now.
Posted 5 years ago #
Reply
You must log in to post.