Join Now

Random musings on mobile software development...

Open License Manager?

Sorcery-ltd | 02 August, 2008 15:52

Another thing that is made possible by the Symbian Foundation, is for any member to submit source code and potentially get it released in millions of devices.

What do you think would be a good feature or component to add to Symbian devices?

I think an open license manager could be useful.  The N-Gage application acts as a license (& DRM) manager for N-Gage games but there isn't a similar solution for the rest of the developer community.  Securing your application can be costly and time consuming.  Would it be a good idea to get a license manager that supported trial functionality and various activation schemes (type in code, SMS activation, connect to license server etc.) as part of the core OS.  An advantage of this is that it could store all the relevant details in its private directory and these would then be protected by platform security and never removed, even if the application is uninstalled.

Obviously there would need to be some mechanisms to prevent spoofing of the server too!  An open source project could potentially provide a license manager server, code samples for developers wanting to use it and guidelines for use to prevent your application from being easily hacked to remove the license checks.  A server application you could host yourself on the internet and connect to via the license manager in the device could also also be part of the project.

Anyone interested?  The first cut could make an excellent masters project for a good university student studying Symbian OS...

Just a thought.  Comments and suggestions for features welcome.

Anything else you'd like to see included in the Symbian Foundation releases?

Mark

 

Comments

It's a great idea

tote_b5 | 05/08/2008, 10:22

tote_b5

Hi Mark,

I have already written about using DRM for application protection in one of my blogs (http://mobile-thoughts.blogspot.com/2007/03/lets-use-drm.html). I strongly support an open source license manager, however, I would ask what would make more sense: to write a license manager from scratch or making the current solution (e.g. from S60) open source. You know, with your own solution you would sooner or later realize that you would need to be DRM-compatible and hell, it's a LOT of work to do it. Nokia has been working on it for years with lots of people on it (OMA-DRM), do you think you could achieve the same in a reasonable timeframe?

What I think would be more important, as also mentioned in my blog post above, is that application distributor sites (e.g. Nokia Ovi and/or MOSH) could offer DRM-hosting, too. You know, it's a bit of laborous to set up your own site offering DRM-hosting and having to do it for everyone interested in application protection would be even less efficient.

Not DRM for most applications...

Sorcery-ltd | 05/08/2008, 10:50

Sorcery-ltd

Actually, I'd only go for a license check and not full DRM for most applications. Even with the N-Gage applications you can get quite bored waiting for the very slow start-up. I guess that's because it has to remove the encryption from the binaries before it runs them every time.

I don't think putting DRM on an application is as simple as you suggest in your blog. It's the executable files that need to be encrypted, not the SIS file. If you DRM protect a SIS file and allow 4 uses then the user would be able to install it 4 times, not run the application 4 times.

If you only protect the SIS file then a hacker can still easily extract the binaries from a memory card after install.

However, if we had a separate license manager and it wanted to support DRM protection of the executables it could potentially do so via the existing DRM/crypto capabilities in Symbian - no need to re-write it, just need very sensitive capabilities (DRM & TCB, the latter so you can create and run the executable after you've removed the encryption).

Mark

I wouldn't DRM-protect the SIS file

tote_b5 | 05/08/2008, 11:47

tote_b5

Hey,

To be honest, the (2-years old) blog post in question was one of my firsts, so please bear with me that I didn't spend enough time with the investigation how SIS-protection works before writing the post.

However, let me cite another URL (http://blogs.forum.nokia.com/blog/gabor-toroks-forum-nokia-blog/s60/2006/08/03/let-s-use-drm#comments), where in the comments I added some details as to how I imagined the protection of a Symbian application. It IS a workaround, which I didn't like much, but at least it fits in the available DRM-solution.

Back to the idea of a separate license manager, could you please elaborate how it would be different compared to DRM (e.g. OMA-DRM)? There would be a content that we'd like to protect, there would be rights that could limit the consumption of the content based on some criteria (time-limit, consumption limit, etc.), these rights could be renewed, etc.? What value would it add on the top of other existing DRM solutions considering (assuming?) that the S60 solution will be open-sourced anyway?

Another question is how this solution would be taken into use on other mobile platforms, too, or it would simply remain a solution for Symbian Foundation phones only (which is also remarkable). Because a working license manager would have value on the market, but if operators/distributors preferred standard solutions (such as DRM), then "our" solution would have limited success only, no?

Oops, not enough details...

Sorcery-ltd | 05/08/2008, 12:58

Sorcery-ltd

Hi,

Sorry, I've clearly not provided enough details! I've made the mistake of assuming that everyone knows what a license manager is from their day-to-day software work. I expect most people will have used something where the licenses are managed by FLEXlm for example (http://en.wikipedia.org/wiki/FLEXlm)??

Security is HARD. As an example, your very reasonable sounding suggestion of protecting an application by using a piece of DRM protected passive content and trying to "consume" that before running is actually fairly easy to break by simply replacing the content with a similar file that has unlimited usage rights. You could make it more secure by checking the actual content of the file but that would require all applications that used this scheme to have DRM capability.

The idea of a license manager is that applications make a run-time query to the server to see if they are allowed to run or what features they are allowed to enable. For some use cases the license manager just securely stores and manages license keys. It is up to the application to interpret their key. It would be nice to provide an open reference implementation for standard license key functionality - but license key generation and interpretation is actually another area and will probably never be standardised (although arguably it should be, just using secret private keys as part of the generation process). So, although I'd want to add a reference license generation process that can create IMEI locked licenses I wouldn't tie the license manager to it.

There isn't a standard solution in this area (for example the way N-Gage works is a proprietary use of a DRM mechanism). What I'm proposing is that we create one since I don't expect the N-Gage solution to be part of the Symbian Foundation code and I also don't think that all of OMA DRM 2.0 will be either (it would make it too easy to build devices that could crack DRM protected content - you'll probably have to license the DRM plug-ins separately with a hefty legal agreement in place).

Anyway, to answer your question, rather than encrypt the application (as in DRM), it simply refuses to run if it doesn't have an appropriate license. You can enable various levels of security depending on the value of the application. For example, a very high value application might have an encrypted binary that is only de-crypted after a run time check with a remote license server. A low/normal value application may simply have a locally stored license key. The main thing is to have the entry of license keys, delivery via SMS or query from remote server handled in one place for all applications.

The motivation is the same is in your posts from 2 years ago - stop everyone from having to re-invent (inferior) wheels by developing their own solutions. The only things left to the application developer would be making sure they authenticate the license manager (e.g. via a UID check) and ensuring that their license checks could not be easily removed from their binaries. Reference code and advice for this could be provided (it can't be pure cut and paste without thinking because that makes the license checking code easy to find).

The main difference now is that with PlatSec and the Symbian Foundation I can see a way to get a common solution that is secure. If the solution were developed with with OpenSSL libraries for crytography related parts rather than the Symbian Crypto APIs then it would also be portable to other platforms, however another solution for avoiding spoofing of the license manager would be required elsewhere - indeed on a truly open Linux platform I think there isn't much chance for any DRM/license management schemes to succeed long term, although the semi-closed ones could hide a secret key in the license manager binary or similar.

Hope that makes it clearer.

Mark

Yes, it's much clearer now

tote_b5 | 05/08/2008, 14:43

tote_b5

Hi again,

Mark you wrote, again, such a lengthy explanation that would be worth another article on its own. :)

You're right on how easy would my suggested solution be cracked, well, I couldn't re-invent the wheel. Thanks for pointing it out, anyway!

As to the query to a remote server, this all means that the ability to establish a network connection & the willingness to do it would be needed for a local application launch, right? Sometimes the first is hard, since not all users have network access all the time or at all. Or they would not like to make a connection when they're roaming, for example - would that mean that they wouldn't be able to use their favourite application? Is there a solution for off-line use, too?

You know, I have used products that made use of FLEXlm license manager, but they required access to the remote license manager - today it is a fair assumption that corporate machines have access to such a remote machine, but the same solution might not work with mobile phones, too.

What do you think?

Yes, a remote server is extreme

Sorcery-ltd | 05/08/2008, 14:59

Sorcery-ltd

Hi,

I expect most applications would be happy with the local license manager keeping (and possibly interpreting) a local license key for them. Connecting to a remote server would have to be reserved for the sort of application where you'd pay many hundreds or even thousands of euros for a license so you wouldn't care about roaming fees for a few kilobytes of data to check the license.

I'm just suggesting that application developers can choose their options. Data usage and roaming cost will not always be so high. One day I expect people will want to implement floating licenses like those in FLEXlm on mobile devices too.

Mark

P.S. Thanks for the discussion!

You must login to post comments. Login
 
 
Powered by LifeType
     
     RDF Facets:
     
     
     qfnZtopicQUqfnBlogTopicZgeneralQ
     qfnZtopicQUqfnTopicZbrowsingQ
     qfnZtypeQUqfnTypeZBlogContentQ
     qfnZtypeQUqfnTypeZBlogE45ntryQ
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX