Hi List.

I'm interested in hearing people's thoughts on the issues surrounding 
prevention of software piracy on Flash based applications, released on CD-ROM.

We have an existing product range that we are planning to roll out to 
territories renowned for software piracy. The infrastructure is the same across 
the range, with only the content changing, which allows us to quickly and 
easily release new titles, a key factor in the product's success. However, 
security wasn't a consideration when planning the original project architecture.

I know that nothing digital is completely safe from piracy ("Digital files 
cannot be made uncopyable, any more than water can be made not wet" - Bruce 
Schneier), and that this is even more of an issue for an open file format such 
as SWF, but I am hoping to at least make it a bit more difficult.


Let me describe our setup:

- We have a Director executable, allowing OS level interactions to take place 
where required, which acts as a shell for Flash content.
- The Flash application has a 'main movie', which loads an XML file which in 
turn describes content 'tabs'.
- These tabs then provide different types of content (Book, Glossary etc).
- Each content type has it's functionality encapsulated in separate SWFs, which 
in turn load further XML files which describe the content for each module.
- Some content module types will then load further Flash based content.

The main SWF will run fine out with the Director executable, except for the OS 
level interactions, which aren't essential to the product's use. Furthermore, 
each content module will also run independently of the executable and of the 
main SWF.

The product must be able to run without an internet connection being present 
(so no online authentication is possible).

So essentially:

>Director executable
>> Main Flash Movie & XML
>>> Flash functional 'sections' & XML
>>>> Flash content



We plan to protect the CD from simple copying using SecuROM ( 
http://www.securom.com/ ). However this protects only the executable, which 
still leaves us vulnerable to the SWFs being copied and distributed along with 
their dependent assets, which allows an unacceptable level of product usability.

Avenues we have considered focus around encrypting the XML, and / or protecting 
the SWFs.

Approach A:
1. Encrypt the XML using a key and cipher.
2. Store the key in the (reasonably well protected) Director executable
3. Return key to SWFs in response to a call to a method in the Director 
executable
4. Allow SWFs to decrypt XML after loading it.

Exploit:
1. Decompile one of the SWFs
2. Find the Director method name that returns the key
3. Roll your own SWF to retrieve key.
4. Using the retrieved key roll your own executable that will return this key 
when required, thus circumnavigating the SecuROM protection (albeit with slight 
loss of functionality)

Approach B:
1. Encrypt the XML using a key and cipher.
2. Store the key in the (reasonably well protected) Director executable
3. Reroute the loading of XML files through Director.
4. Decrypt in Director and pass XML back to SWFs

Exploit:
1. Decompile one of the SWFs
2. Find the Director method name loads, decrypts and returns XML
3. Roll your own SWF to retrieve all decrypted XML.
4. Replace encrypted XML with unencrypted.
4. Roll your own executable that will return this XML when required...

Approach C:
Protect the SWFs somehow, perhaps in conjunction with some encryption of the 
XML. AFAIK the SWFs output from most protection / obfuscation applications are 
fairly easy to decompile anyway. We have also considered wrapping the SWFs in a 
Director DCR (again, AFAIK it is reasonably easy to decompile a Director DXR or 
CXT too?), thought this will require a major code rewrite, and may not even be 
possible given our current architecture.

Including the SWFs in the Director projector isn't an option, as these are of 
course uncompressed and stored in a temporary location while the application is 
running...


Ok, thanks for reading (assuming you got this far ;), apologies for the 
massively long and probably OT post!

Answers on a postcard please to...

Pete

TIA

This email may contain confidential material. If you were not an
intended recipient, please notify the sender and delete all copies.
We may monitor email to and from our network.
This email was sent by a company within the corporate group owned
by Pearson plc, registered office at 80 Strand, London WC2R 0RL,
registered in England and Wales with company number 53723 and
VAT number GB 278 5371 21.
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to