views:

157

answers:

3

Is there any way through which i can restrict my AIR app to be further distribution?

Say I have make one AIR application and I give this app to my friend. Is there any way so that he can not re distribute this app to any new person?

+4  A: 

There's nothing built in that will help you solve this, but two ideas come to mind.

One choice is to require a serial number on first startup. Validate the serial number against a server using HTTPS and then store it, encrypted, in the local store. You could then validate that machine's use of the serial either on the server, or by using something unique to the machine to encrypt the local store.

You could also possibly use client certificates, which would need to be installed on the user machine. The application could then validate against the certificate on startup.

Richard Szalay
+1, but the one thing I'm not sure of is whether there's any facility built into AIR that does uniquely identify any user's machine; I don't know that I've run across any such API yet, but I'd be curious to know if there is one (in which case, you'd have to perform all the validation on the server).
Christian Nunciato
Unfortunately I don't know of anything that uniquely identifies the client either, though Capabilities.serverString is unique-ish (even though it could theoretically change). Perhaps take a look into client certificates and whether they can help you.
Richard Szalay
A: 

If you restrict your AIR application from distribution, wouldn't that make it impossible for you to give the application to your friend? The only language-agnostic way I can see this be done with any application is that you have your friend come over and have a look on your computer.

If you are keen on making the AIR application "yours" you could try to sign it digitally but getting a certificate costs loads of money.

Spoike
Signing the application does not prevent it being redistributed if a user has the .air file, it assures the user that the creator is who they say they are.
Richard Szalay
@Richard Szalay: I only wanted to suggest it as the "next best thing" you could do other than restricting distribution if the intention was to make sure his friend wouldn't change things.
Spoike
+1  A: 

This is a good question. A possible solution to this is certification. However i have a doubt here. Do you want your friend not to distribute this application + no secondary installation is possible with it.

Secondary installation means if your friends wants his system to format and reinstall the application. Do you want to support this?

If no then solution is easy.