RE: [PHP] php behind firewall

2006-08-05 Thread tedd

At 3:37 PM -0500 8/4/06, Richard Lynch wrote:


 > http://www.caida.org/publications/papers/2005/fingerprinting/

Just to be pedantic...

It's using the clock skew of the user's computer, and I don't think
that has anything to do with PC-NIC-CABLE-FIREWALL combination
communication.

Rather, it is the error margin of the internal clock chip within the
device, as I understand it...

Or not, as I don't claim to understand that article 100%...


Richard:

As I read it, and I don't claim to understand the article 100% 
either, it's more than the margin of error of the internal clock, but 
rather how the user's computer responds do to the skew -- the timing 
in sending packets of information to a server.


The fingerprint is not instant, but derived from the performance of 
the computer over time. The more information gathered, the more 
unique the fingerprint becomes. A sort of stacking (sum) of the 
events to increase the fold (confidence) and as a result, computer 
respond times fall into different identifiable groups.


Any temporal series of data can be thought of as a waveform that can 
be analyzed via a FFT, as they mention in their article and add that 
the FFT may not be a solution. However, they fail to acknowledge that 
a time series can be analyzed via many different techniques other 
than FFT.


However, barring that, they have posed an interesting idea (but not 
proved) that every computer currently made can be identified by the 
way it responds -- each computer is unique.


Their sample size was relatively small, several hundred computers, 
and the time to distinguish individual computers took several hours. 
If their technique was applied to net, I would think it would take a 
great deal of time (perhaps prohibitively so) to gather enough data 
to clearly distinguish and identify individual computers visiting a 
server. On the other hand, a set visiting a specific server would be 
much smaller than the entire net-set.


In any event, the confidence level for identifying each computer 
would depend upon how many times the user's computer visited the site 
in question, which in the real world would lead to a vast range of 
confidence levels.


IF their claim is true and IF they could cut the analysis time 
required, then the ramifications of the technique could be 
significant in terms of Internet security, spam, law enforcement, 
software registrations, and so on.


The article presents a possible answer for those wanting to uniquely 
identify computers -- kind of an unintended built-in V chip for 
computers.


Interesting research.

tedd

--
---
http://sperling.com  http://ancientstones.com  http://earthstones.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



RE: [PHP] php behind firewall

2006-08-04 Thread Richard Lynch
On Fri, August 4, 2006 1:08 pm, Jim Moseby wrote:
>>
>> Jim Moseby wrote:
>> >
>> > I recently read an article about IP fingerprinting.  The
>> concept is that
>> > every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
>> > differences in the way they communicate.  It was very
>> in-depth, but it
>> > worked amazingly well.  If I can find the article, I'll post it.
>>
>> Please do.
>>
>> I can imagine that the concept goes to the wall with wireless
>> users, but
>> even so, should be a good read.
>>
>
> Found it:
>
> http://www.caida.org/publications/papers/2005/fingerprinting/

Just to be pedantic...

It's using the clock skew of the user's computer, and I don't think
that has anything to do with PC-NIC-CABLE-FIREWALL combination
communication.

Rather, it is the error margin of the internal clock chip within the
device, as I understand it...

Or not, as I don't claim to understand that article 100%...

-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Richard Lynch
On Fri, August 4, 2006 10:25 am, Andrew Senyshyn wrote:
> I need to get local user IP, but server with apache and php is in
> another subnetwork.
> So from server environment I can get only router's IP.
> The only solution that I see - is getting with some magic algorithm
> local IP from brouser and sending it to server.
> My application is for intranet, so I don't see any reason to make
> users
> authorization.
> Any ideas for this?

Don't.

If it's a transparent proxy, you can get their IP.

If it's NOT a transparent proxy, you can't get their IP, by design,
and nothing you can do will change that, at least in PHP.  That's the
whole point of a transparent proxy.

Suppose you wrote some JS to send you the 'local' IP -- Even if that
works, which I suspect not, it would be pointless, since you'd end up
with a few hundred people with IP addresses such as 192.168.1.100,
which is a meaningful IP address only in their subnet, not in the
larger network in general.

Now, to your specific case:
If you can get the browser to send you the IP, then a Bad Guy can
write their browser to send you whatever IP they want, thus defeating
your so-called authentication.

-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



RE: [PHP] php behind firewall

2006-08-04 Thread Jim Moseby
> 
> Jim Moseby wrote:
> > 
> > Found it:
> > 
> > http://www.caida.org/publications/papers/2005/fingerprinting/
> 
> Thanks!  Interesting stuff...
> 
> Regards,
> Austin.


No problem.  My recollection of the technique was a bit off, but the concept
was still there.  ;-)

JM 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Austin Denyer
Jim Moseby wrote:
> 
> Found it:
> 
> http://www.caida.org/publications/papers/2005/fingerprinting/

Thanks!  Interesting stuff...

Regards,
Austin.


signature.asc
Description: OpenPGP digital signature


Re: [PHP] php behind firewall

2006-08-04 Thread Jochem Maas
Austin Denyer wrote:
> Jochem Maas wrote:
>> John Nichel wrote:
>>> Well, if you would stop using the Vic20, and upgrade!
>> how dare you call my altair a vic20. new-fangled rubbish. ;-)
>> you want real authentication? get some carrier pidgeons like us real
>> programmers.
> 
> So, how many different tunes did you get your Altair to play over the
> radio? #;-D
> 
> My first machine wasn't quite an Altair, but it did make the Vic look
> space-age - I started with a ZX81.

I was only joking about the altair - the closest I have got to one of those
is a documentary on the Discovery channel :-P

I do remember having a Spectrum48, although it was only ever used to play
'Horace goes Skiing'

> 
> The carrier pigeon trick only works for IP though.  And packet traces
> can be a tad messy...

seperates the men from the boys ;-)

> 
> Regards,
> Austin.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Adam Zey

tedd wrote:

At 1:26 PM -0400 8/4/06, John Nichel wrote:

tedd wrote:

At 12:55 PM -0400 8/4/06, John Nichel wrote:

Wait, are you telling me that I can't auth my customers based on IP
alone?  Great, now how do I let them view their sensitive data?  ;)


Okay, how do you?


Retina scan, and DNA sample.

Seriously though, not by IP in any way, shape or form.  The only 
'sensitive' data I keep for customers to view is their order history. 
Credit card numbers are trashed the moment I get a response back from 
the cc gateway.  To get to that they just need their username and 
password.  If they want the system to 'remember' their login, I use a 
hash of quite a few variables that I place into a cookie on their 
browser.


The only place I use IP to help identify a user (not really a user, 
but a particular computer) is on our Intranet...and I can only safely 
(for the most part) rely on this because I control the network and the 
IP addresses.


Thanks.

Not that I have done this on the net, but has anyone thought about using 
a fuzzy logic approach to the problem? While it wouldn't be a perfect 
solution, you could set a threshold you're comfortable with.


Also while your DNA comment was meant to be humorous, it's not a bad 
idea to build a "trust-index" via user actions that would be similar to 
a DNA-like reasoning solution.


Just food for thought.

tedd


Either account-based authentication, or a unique ID stored in a cookie, 
that's how I've done it.


Regards, Adam Zey.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Austin Denyer
Jochem Maas wrote:
> John Nichel wrote:
>>
>>Well, if you would stop using the Vic20, and upgrade!
> 
> how dare you call my altair a vic20. new-fangled rubbish. ;-)
> you want real authentication? get some carrier pidgeons like us real
> programmers.

So, how many different tunes did you get your Altair to play over the
radio? #;-D

My first machine wasn't quite an Altair, but it did make the Vic look
space-age - I started with a ZX81.

The carrier pigeon trick only works for IP though.  And packet traces
can be a tad messy...

Regards,
Austin.


signature.asc
Description: OpenPGP digital signature


Re: [PHP] php behind firewall

2006-08-04 Thread Jochem Maas
John Nichel wrote:
> Jochem Maas wrote:
>> Jim Moseby wrote:
 Jim Moseby wrote:
> I recently read an article about IP fingerprinting.  The 
 concept is that
> every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
> differences in the way they communicate.  It was very 
 in-depth, but it
> worked amazingly well.  If I can find the article, I'll post it.
 Please do.
>>
>> I had read about this before, will read it again.
>> but I suspect that my current server will probably have a
>> hard time calculating the finger print for each connection. :-)
>>
> 
> Well, if you would stop using the Vic20, and upgrade!

how dare you call my altair a vic20. new-fangled rubbish. ;-)
you want real authentication? get some carrier pidgeons like us real
programmers.

> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread John Nichel

Jochem Maas wrote:

Jim Moseby wrote:

Jim Moseby wrote:
I recently read an article about IP fingerprinting.  The 

concept is that

every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
differences in the way they communicate.  It was very 

in-depth, but it

worked amazingly well.  If I can find the article, I'll post it.

Please do.


I had read about this before, will read it again.
but I suspect that my current server will probably have a
hard time calculating the finger print for each connection. :-)



Well, if you would stop using the Vic20, and upgrade!

--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
[EMAIL PROTECTED]

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Jochem Maas
Jim Moseby wrote:
>> Jim Moseby wrote:
>>> I recently read an article about IP fingerprinting.  The 
>> concept is that
>>> every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
>>> differences in the way they communicate.  It was very 
>> in-depth, but it
>>> worked amazingly well.  If I can find the article, I'll post it.
>> Please do.

I had read about this before, will read it again.
but I suspect that my current server will probably have a
hard time calculating the finger print for each connection. :-)

>>
>> I can imagine that the concept goes to the wall with wireless 
>> users, but
>> even so, should be a good read.
>>
> 
> Found it:
> 
> http://www.caida.org/publications/papers/2005/fingerprinting/
> 
> JM
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



RE: [PHP] php behind firewall

2006-08-04 Thread Jim Moseby
> 
> Jim Moseby wrote:
> > 
> > I recently read an article about IP fingerprinting.  The 
> concept is that
> > every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
> > differences in the way they communicate.  It was very 
> in-depth, but it
> > worked amazingly well.  If I can find the article, I'll post it.
> 
> Please do.
> 
> I can imagine that the concept goes to the wall with wireless 
> users, but
> even so, should be a good read.
> 

Found it:

http://www.caida.org/publications/papers/2005/fingerprinting/

JM

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Austin Denyer
Jim Moseby wrote:
> 
> I recently read an article about IP fingerprinting.  The concept is that
> every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
> differences in the way they communicate.  It was very in-depth, but it
> worked amazingly well.  If I can find the article, I'll post it.

Please do.

I can imagine that the concept goes to the wall with wireless users, but
even so, should be a good read.

Regards,
Austin.


signature.asc
Description: OpenPGP digital signature


RE: [PHP] php behind firewall

2006-08-04 Thread Jim Moseby
> 
> Thanks.
> 
> Not that I have done this on the net, but has anyone thought about 
> using a fuzzy logic approach to the problem? While it wouldn't be a 
> perfect solution, you could set a threshold you're comfortable with.
> 
> Also while your DNA comment was meant to be humorous, it's not a bad 
> idea to build a "trust-index" via user actions that would be similar 
> to a DNA-like reasoning solution.
> 
> Just food for thought.
> 
> tedd

I recently read an article about IP fingerprinting.  The concept is that
every PC-NIC-CABLE-FIREWALL combination has subtle, but measurable
differences in the way they communicate.  It was very in-depth, but it
worked amazingly well.  If I can find the article, I'll post it.

JM

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread tedd

At 1:26 PM -0400 8/4/06, John Nichel wrote:

tedd wrote:

At 12:55 PM -0400 8/4/06, John Nichel wrote:

Wait, are you telling me that I can't auth my customers based on IP
alone?  Great, now how do I let them view their sensitive data?  ;)


Okay, how do you?


Retina scan, and DNA sample.

Seriously though, not by IP in any way, shape or form.  The only 
'sensitive' data I keep for customers to view is their order 
history. Credit card numbers are trashed the moment I get a response 
back from the cc gateway.  To get to that they just need their 
username and password.  If they want the system to 'remember' their 
login, I use a hash of quite a few variables that I place into a 
cookie on their browser.


The only place I use IP to help identify a user (not really a user, 
but a particular computer) is on our Intranet...and I can only 
safely (for the most part) rely on this because I control the 
network and the IP addresses.


Thanks.

Not that I have done this on the net, but has anyone thought about 
using a fuzzy logic approach to the problem? While it wouldn't be a 
perfect solution, you could set a threshold you're comfortable with.


Also while your DNA comment was meant to be humorous, it's not a bad 
idea to build a "trust-index" via user actions that would be similar 
to a DNA-like reasoning solution.


Just food for thought.

tedd
--
---
http://sperling.com  http://ancientstones.com  http://earthstones.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread John Nichel

Jochem Maas wrote:

Andrew Senyshyn wrote:

Hi all,

I need to get local user IP, but server with apache and php is in
another subnetwork.
So from server environment I can get only router's IP.
The only solution that I see - is getting with some magic algorithm
local IP from brouser and sending it to server.
My application is for intranet, so I don't see any reason to make users
authorization.
Any ideas for this?


you can't always get the real users IP because of proxies, anonimizers, 
firewalls/gateways
[on the user end] (and don't bother using an IP as an absolute indicator when 
validating a


Wait, are you telling me that I can't auth my customers based on IP
alone?  Great, now how do I let them view their sensitive data?  ;)


session - you can use it as one of a number of metrics - for instance AOL users 
have their
IP addresses changed roughly every 300 milliseconds).



Gawd, AOL causes us so many headaches with that crap.

--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
[EMAIL PROTECTED]

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread John Nichel

tedd wrote:

At 12:55 PM -0400 8/4/06, John Nichel wrote:

Wait, are you telling me that I can't auth my customers based on IP
alone?  Great, now how do I let them view their sensitive data?  ;)


Okay, how do you?



Retina scan, and DNA sample.

Seriously though, not by IP in any way, shape or form.  The only 
'sensitive' data I keep for customers to view is their order history. 
Credit card numbers are trashed the moment I get a response back from 
the cc gateway.  To get to that they just need their username and 
password.  If they want the system to 'remember' their login, I use a 
hash of quite a few variables that I place into a cookie on their browser.


The only place I use IP to help identify a user (not really a user, but 
a particular computer) is on our Intranet...and I can only safely (for 
the most part) rely on this because I control the network and the IP 
addresses.


--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
[EMAIL PROTECTED]

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread tedd

At 12:55 PM -0400 8/4/06, John Nichel wrote:

Wait, are you telling me that I can't auth my customers based on IP
alone?  Great, now how do I let them view their sensitive data?  ;)


Okay, how do you?

tedd
--
---
http://sperling.com  http://ancientstones.com  http://earthstones.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] php behind firewall

2006-08-04 Thread Jochem Maas
Andrew Senyshyn wrote:
> Hi all,
> 
> I need to get local user IP, but server with apache and php is in
> another subnetwork.
> So from server environment I can get only router's IP.
> The only solution that I see - is getting with some magic algorithm
> local IP from brouser and sending it to server.
> My application is for intranet, so I don't see any reason to make users
> authorization.
> Any ideas for this?

you can't always get the real users IP because of proxies, anonimizers, 
firewalls/gateways
[on the user end] (and don't bother using an IP as an absolute indicator when 
validating a
session - you can use it as one of a number of metrics - for instance AOL users 
have their
IP addresses changed roughly every 300 milliseconds).

nonetheless here are a couple of funcs that might help you (at least to 
understand
what is possible it terms of trying to determine a users IP):

/* Determine if an ip is in a net.
 * E.G. 120.120.120.120 in 120.120.0.0/16
 */
function isIPInSubnet($ip, $net, $mask)
{
$firstpart  = substr(str_pad(decbin(ip2long($net)), 32, "0", STR_PAD_LEFT) 
,0 , $mask);
$firstip= substr(str_pad(decbin(ip2long($ip)), 32, "0", STR_PAD_LEFT), 
0, $mask);

return (strcmp($firstpart, $firstip) == 0);
}

/* This function check if a ip is in an array of nets (ip and mask) */
function isPrivateIP($theip)
{
foreach (array("10.0.0.0/8",
   "172.16.0.0/12",
   "192.168.0.0/16") as $subnet)
{
list($net, $mask) = explode('/', $subnet);
if(isIPInSubnet($theip,$net,$mask)) {
return true;
}
}

return false;
}

/* Building the ip array with the HTTP_X_FORWARDED_FOR and REMOTE_ADDR HTTP 
vars.
 * With this function we get an array where first are the ip's listed in
 * HTTP_X_FORWARDED_FOR and the last ip is the REMOTE_ADDR
 */
function getRequestIPs()
{
$ipList = array();

foreach (array('HTTP_X_FORWARDED_FOR', 'HTTP_FORWARDED_FOR', 'REMOTE_ADDR') 
as $key) {
if (isset($_SERVER[$key]) && $_SERVER[$key]) {
$ipList = array_merge($ipList, explode(',', $_SERVER[$key]));
break;
}
}

return $ipList;
}

/* try hard to determine whAt the users/clients public IP address is */
function getRequestIP($allowPrivIPs = false)
{
foreach (getRequestIPs() as $ip) {
if($ip && ($allowPrivIPs === true || !isPrivateIP($ip))) {
return $ip;
}
}


return 'unknown';
}



> thanks beforehand
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php