(Partially) security client-server communications
From: Mike Hunson (mike_at_nospammingallowed.com)
Date: 01/12/05
- Next message: Marcel Martin: "Re: WAS Frobenius, so good?"
- Previous message: Phil Carmody: "Re: WAS Frobenius, so good?"
- Next in thread: David Wagner: "Re: (Partially) security client-server communications"
- Reply: David Wagner: "Re: (Partially) security client-server communications"
- Reply: Jan Panteltje: "Re: (Partially) security client-server communications"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Tue, 11 Jan 2005 18:23:36 -0800
I'm looking for a way to secure (ok, partially secure) communications
between a software product (client) and our website (server).
Here's what I mean:
The software product we have will grab information from a website (a PHP
script on our website, specifically), connecting via HTTP.
However, we want to try to prevent other applications or even casual users
from getting this information without using our application. We don't care
if the information in transmit is plaintext, we just want to make sure that
only our client can communicate with the server.
My understanding is that NOTHING we can do will offer 100% security, because
somebody can always reverse engineer our application to see what is going
on.
However, if we can just make it reasonably difficult, that would be fine.
I'm guessing we want some sort of challenge-response protocol. Right now,
the application calls the script:
http://xyzsite.com/getinfo.php&userid=20digituserid&query=term
and the script returns information, which the application then displays to
the user.
However, as you can see, nothing is really there that can prevent somebody
from accessing this (if they know the userid).
So I was thinking something like this:
1. Application calls login script:
http://xyzsite.com/login.php&userid=20digituserid
2. Script returns some sort of number based on, say, rand() | userid. Let's
call this number challenge_number.
3. Application runs some sort of mathematical algorithm on this number.
This algorithm should be broken up between several different functions.
Something like:
sha1( ((challenge_number % 93132) * 9) | userid );
Application then uses this number in all subsequent calls to server for next
12 hours?
After 12 hours, client initiates this procedure again (and server discards
old number/information).
This doesn't exactly seem ideal to me, but it will prevent people from just
using their web browser to access our script (unless they know the protocol,
which of course we will try to hide).
Any thoughts or ideas? The simpler the better.
Thanks,
Mike
- Next message: Marcel Martin: "Re: WAS Frobenius, so good?"
- Previous message: Phil Carmody: "Re: WAS Frobenius, so good?"
- Next in thread: David Wagner: "Re: (Partially) security client-server communications"
- Reply: David Wagner: "Re: (Partially) security client-server communications"
- Reply: Jan Panteltje: "Re: (Partially) security client-server communications"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|