On Thu, Jun 25, 2009 at 10:48 AM, Dustin McQuay <[email protected]> wrote:

> I am working on a program that runs on a user's PC. We do not charge the
> user for the software directly, but we charge them to use it. One of the
> things the software does is generate a report. I need a way of allowing the
> user to pay for a number of credits, and then use one of those credits each
> time they generate a report.
>
> I am hoping to find some information on how others have solved similar
> problems, but have had a hard time finding anything. I think it might be
> that I just don't know exactly what to search for. Does anyone have any
> experience to offer?
>
> Here's what I'm thinking so far:
>
> Have a file store on the PC that contains the number of credits and is
> reversibly encrypted.
> The key to decrypt that file is hard coded into the software.
> To generate a report, the file would be read, decrypted and a decremented
> number would be encrypted and written back to file.
> To buy more credits, it gets iffy. Here are some ideas:
> For a simple first iteration, let's not worry about payment. I just want to
> start by figuring out how to increment the credits.
> Our company could give the customer an encrypted file containing a number
> of credits. The key used for encryption would be the same for all
> installations of the application. That key is used by the application to
> check if the file is authoritative.
>
> There are glaring problems with this. Just to name a couple:
>
>     * It may be easy to reverse engineer the keys used for encryption from
> the software.
>     * If a user found that file, they could charge it up, then save it
> elsewhere. Then, after using up the credits, just replace the depleted file
> with the saved one.
>
> Please let me know if you can offer any ideas or just some key words to
> research.
>
> Thanks!
>
> Dustin McQuay


Is requiring an internet connect to run the report not an option?  It seems
like a simple solution would be to have to program query some server that
you keep to ask if the user has any credits.  With the ubiquity of the
internet, that doesn't seem like to unreasonable a requirement.
--------------------
BYU Unix Users Group 
http://uug.byu.edu/ 

The opinions expressed in this message are the responsibility of their
author.  They are not endorsed by BYU, the BYU CS Department or BYU-UUG. 
___________________________________________________________________
List Info (unsubscribe here): http://uug.byu.edu/mailman/listinfo/uug-list

Reply via email to