> On 12 Nov 2019, at 15:35, Fred Beckhusen <f...@mitsi.com> wrote:
> 
> --ooo------/\/\/\-----|(------ooo------/\/\/\-----|(------ooo----
> Fred K. Beckhusen
> President
> Micro Technology Services, Inc.
> fre...@mitsi.com
> tel: (888) 230-MTSI Toll Free
> cel: (469) 951-7635
> http://www.mitsi.com
> 
> I would think a grid could be be very trustworthy with this patch,  as the 
> headers are set in code. No one but the grid operator can change them.   I am 
> assuming the HTTP_CUSTOM_HEADER does not override these settings, or can be 
> detected.   Has this been tested?

While custom headers set by script should already be overridden by generated 
ones, the problem with trusting these headers is that they can still be very 
easily spoofed by other means; unless the web-service you are sending the 
request to maintains a list of valid simulator IP addresses, it has no way of 
knowing if a request came from a legitimate simulator, or from some other 
source. For example, common command line tools such as cURL can be used to be 
build custom http requests, allowing you to set the value of headers to 
anything you like, because that's just how HTTP works. So if I were a malicious 
actor and can figure out enough about your API, I can send it any requests I 
want.

This is why I raised the possibility of a callback mechanism a little while 
ago, as this could at least be used to verify whether an IP address is 
permitted to send HTTP requests on behalf of a grid: 
http://opensimulator.org/wiki/User:Haravikk_Mistral/RegionVerification 
<http://opensimulator.org/wiki/User:Haravikk_Mistral/RegionVerification>

Even with that, all this does is confirms that a request came from a (probably) 
genuine simulator belonging to the grid that the request claimed to come from, 
i.e- you can be reasonably sure the request is from an actual script on an 
OpenSimulator grid. If you know that the grid is fully privately operated (i.e- 
doesn't allow others to setup simulators and properly configures them) then, 
and only then, can you be confident that the headers weren't spoofed and should 
be okay to process without additional checks.

But that still doesn't do anything to establish the trustworthiness of the 
specific object sending the request, or the owner of that object, which is why 
for anything sensitive you still need some kind of authentication like a 
password, public key or such that only the person you expect could have 
provided.

Of course, if all you're tracking is non-sensitive information (like the 
example of a lost object tracker) then none of this is all that critical, but 
for anything else headers are useful information, but they shouldn't be viewed 
as always reliable or authoritative.
_______________________________________________
Opensim-dev mailing list
Opensim-dev@opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

Reply via email to