I'm not sure if I got this right, but your "certain string" is just a key
needed to get the "original" key, right? By what mean does the app
(automatically) get the "certain string"?
Ovidiu.

-----Original Message-----
From: dotnet discussion [mailto:[EMAIL PROTECTED]]On Behalf Of
Peter Vertes
Sent: Monday, May 13, 2002 7:40 PM
To: [EMAIL PROTECTED]
Subject: Re: [DOTNET] Hide part of code from Developers


The original key doesn't get transmitted via the network nor does it get
hard coded.  Consider this: you have a remote machine that has a service
running on it waiting for someone to connect to it with a certain string.
So Joe Developer makes a call to this service from his code, from his
workstation, like:

                bool authCheck = CheckKeyAuthenticity("strSecretKey");

        Now, method CheckKeyAuthenticity() will make a connection to the
remote
machine and pass in the string that was given to it as a parameter
(strSecretKey).  The service, on the remote machine, takes this string and
compares it to a string that it has (this original key can reside in a file,
registry, database, etc... depending on how you trust this remote machine).
Now, if the strings match the service returns true (meaning the correct key
was passed in to CheckKeyAuthenticity() or false if the keys didn't match.
The original key was never transmitted through the network only the result
of the authenticity check.  If one is worried about snooping then encrypting
the key would be a wise idea before sending it off to the remote machine,
but in that case the remote machine's key should be encrypted too.  That way
only the encrypted string can be sniffed and not the plain-text string.
Still not a 100% tamper-proof solution but better then nothing.  If someone
wants to get that key they would have to work hard for it.

-Pete

-----Original Message-----
From: dotnet discussion [mailto:[EMAIL PROTECTED]]On Behalf Of
Brad Wilson
Sent: Monday, May 13, 2002 12:21 PM
To: [EMAIL PROTECTED]
Subject: Re: [DOTNET] Hide part of code from Developers


Peter Vertes wrote:

> How about storing the key on a remote server ?  When you need it you
connect
> to it get it.  Or extending on this idea; you could store the key on a
> remote server, when you need to authenticate you call the authentication
> code on the remote server side and have it spit back a bool (true = user
is
> authenticated / false = user need to try again).  I haven't actually
> implemented this but in theory it should work.

You're still in an automated case. The code that calls the server is subject
to snooping, and any authentication information would be contained within
the code, so the bad guy could pick out that information and call the remote
service manually to discover the key.

Until you put a human (who isn't the person you're trying to prevent from
snooping) is put in the loop, any data is snoopable with enough effort.

Brad

--
Read my web log at http://www.quality.nu/dotnetguy/

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to