Hi Corneliu, I had completely missed the private key concept. ***THANKS A LOT!!!*** I will try this out... Thanks Cheers, Girish Jain > Date: Thu, 5 Apr 2007 10:25:37 +1000> From: [EMAIL PROTECTED]> Subject: Re: > [ADVANCED-DOTNET] Confidential Data from Source Code> To: > ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> > Girish,> > I would then recommend you > use a private/public key model to generate> your licences.> 1. Basically you > generate a private/public key using some well know> algorithm:> (this will be > in your licence generator not in the app!!!)> RSACryptoServiceProvider > provider1 = new> RSACryptoServiceProvider(keySize);> // save public > > provider1.ToXmlString(false);> // save pyubli key> > provider1.ToXmlString(true);> > 2. Include the public key in your application > as some const> 3. Generate the licence info (whatever you want protected)> 4. > Sign the licence info with the private key (provider1.Sign( ... ))> 5. Save > the licence info file + the signature in the same file> 6. In the deployed > client application when you start load the licence> key from file> 7. Using > the public key that was embedded in your application try to> verity the > licence file> Provider1.FromXmlString( public key)> > Provider1.VerifyData(...)> > Make sure that the step1 only happens once and > you keep that pair of> keys in a safe place.> You can publish the public key > in the clickonce app, but you need to> keep the private key safe and use it > to generate licence files.> > > > Regards,> > Corneliu I. Tusnea> Readify | > Senior Consultant> > M: +61 410 835 593 | C: [EMAIL PROTECTED]> -----Original > Message-----> From: Discussion of advanced .NET topics.> [mailto:[EMAIL > PROTECTED] On Behalf Of Girish Jain> Sent: Wednesday, 4 April 2007 8:30 PM> > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> Subject: Re: [ADVANCED-DOTNET] > Confidential Data from Source Code> > Hi Corneliu,> > Its the user of the app > as well as some other mean developer who might> help the user break the key > and then pirate the application without> license.> > Thanks> > Cheers,> > Girish Jain> Date: Wed, 4 Apr 2007 17:02:38 +1000> From:> [EMAIL PROTECTED]> > Subject: Re: [ADVANCED-DOTNET] Confidential> Data from Source Code> To: > ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> >> Girish,> > You still haven't replied > to my original question: > - From> whom are you trying to protect? The user > of the app?> You want to> protect that the user is not decompiling your > application,> getting that> private key out, generating a new key for the > application> and using> that key without your knowledge?> > > Regards,> > > Corneliu I. Tusnea>> Readify | Senior Consultant> > M: +61 410 835 593 | C:> > [EMAIL PROTECTED]> > -----Original Message-----> From:> Discussion of > advanced .NET topics.>> [mailto:[EMAIL PROTECTED] On Behalf Of Girish Jain>> > Sent: Wednesday, 4 April 2007 1:52 AM> To:> > ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> Subject: Re: [ADVANCED-DOTNET]> > Confidential Data from Source Code> > > Hi Corneliu,> > Basically, we> are > trying to protect our application from piracy. Its a> file which> would be > created at the installation of the application and> thereafter> would be read > on each startup of the application. The file> would be> created for that > particular machine and will have some entries> into it> (of course > encrypted!). The application which creates this file> would> be **manually** > run on the target machine to produce the file.> Each> installation of the app > would be manual.> > Now, if we have the key to> decrypt the file into source > code, its easy> to break it. Therefore, do> you have any better idea for > achieving the> same? > > Thanks for taking> time out to reply on this one...> > > > Cheers,> Girish Jain> Date: Wed, 4> Apr 2007 00:18:30 +1000> From:> > [EMAIL PROTECTED]> Subject:> Re: [ADVANCED-DOTNET] Confidential> Data from > Source Code> To:> ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> >> Girish,> > For your > own fun,> even Obfuscation, sending the data back and> forth to> the server > and> other tricks can't really do it if the key is> part of the> app and > used> actively in the application. Just try a tool> like Hawkeye>> > (http://www.acorns.com.au/hawkeye) over your running> application to> see> > how much time do you need to find the key pair. 1-2> or 5 minutes?>> > My > primary question is: Whom are you trying to protect> from? The> user,> other > users with read access on the same machine or> malicious>> application (eg: > malware, spyware?). In the first scenario> it's a no>> brainer. There is no > true way of protecting.> For all the> other> scenarios the best protection > you could achieve is to> ask the> user for> a password, then use a one way > algorithm together with> some> random key> (that you save) to generate a the > key that you use to>> encrypt/decrypt.> If the user forgot the pass, then > simply bad luck,>> there is no way> back. Alternatively you could use the > registry to keep> a> unique key> you generated at installation or a key based > on a user>> password. The> registry at least is safe from other users.> > > > Regards,>> > Corneliu> I. Tusnea> Readify | Senior Consultant> > M: +61 410 > 835 593> | C:> [EMAIL PROTECTED]> > > -----Original Message-----> From:>> > Discussion of advanced .NET topics.>>> [mailto:[EMAIL PROTECTED] On Behalf Of > Dave> Sent:>> Tuesday, 3 April 2007 11:58 PM> To:> > ADVANCED-DOTNET@DISCUSS.DEVELOP.COM>> Subject: Re: [ADVANCED-DOTNET]> > Confidential Data from Source Code> >> Ahh, hiding the private key......> > :-)> > Obfuscation is great, but by> definition, it does not change the>> > semantics,> it just messes the code> around. Private keys are pure> binary > data, so> they> cannot be changed> by a bit without changing> their > "meaning". Then you> end> up wanting to> encrypt the private key,> but that's > not a perfect> solution, as> you> still have another private> key to hide.> > > One solution is to obfuscate> the code that> **generates** the private key> > with a well-known logic.> Another one> would be to simply create a web> > service that decrypts the> data (or> sends the key), over ssl, asking for> a> > username-password from> your> user.> > In all cases, you must remember that: > The most private> keys> you publish> around, the less private they become. No > matter the>> solution you choose> you> hide it from the very same client that > will>> ultimately use it...> > Good luck!> Dave.> www.omniscient.ca>>> > www.omniscienttrader.com> > > -----Original Message-----> From:>> Discussion > of advanced .NET topics.>>> [mailto:[EMAIL PROTECTED] On Behalf Of Shawn>>> > Wildermuth> (MVP)> Sent: April 3, 2007 6:18 AM> To:>> > ADVANCED-DOTNET@DISCUSS.DEVELOP.COM> Subject: Re: [ADVANCED-DOTNET]>> > Confidential Data from Source Code> > I think you'll have better luck>> with > Obfuscation. I haven't done it> before> and I am sure others can>> suggestion > their favorites, but Brent Rector is> a> super bright guy so>> I usually > recommend Demeanor (http://wiseowl.com)> ...> but I don't> know> the pros and > cons.> > Thanks,> > Shawn Wildermuth>> http://adoguy.com>> > http://wildermuthconsulting.com> Microsoft MVP (C#),> MCSD.NET, Author> and > Speaker> > > -----Original Message-----> From:> Discussion of> advanced .NET > topics.> [mailto:[EMAIL PROTECTED]>> ===================================> > This list is hosted by> DevelopMentor(r) http://www.develop.com> > View > archives and manage your> subscription(s) at> http://discuss.develop.com> >> > ===================================> This list is hosted by> DevelopMentor(r) > http://www.develop.com> > View archives and manage your> subscription(s) at > http://discuss.develop.com> > _________________________________________________________________> Check out > some new online services at Windows Live Ideas-so new they> haven't even been > officially released yet.> http://www.msnspecials.in/windowslive/> > ===================================> This list is hosted by DevelopMentor(r) > http://www.develop.com> > View archives and manage your subscription(s) at> > http://discuss.develop.com> > ===================================> This list > is hosted by DevelopMentor® http://www.develop.com> > View archives and > manage your subscription(s) at http://discuss.develop.com _________________________________________________________________ Windows Live Spaces is here! It’s easy to create your own personal Web site. http://spaces.live.com/?mkt=en-in =================================== This list is hosted by DevelopMentor® http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com